diff --git a/components/configureDevice_4/configureDevice_4.js b/components/configureDevice_4/configureDevice_4.js index def3714..6be6523 100644 --- a/components/configureDevice_4/configureDevice_4.js +++ b/components/configureDevice_4/configureDevice_4.js @@ -1,36 +1,9 @@ const app = getApp(); Component({ - data: { - otaProgress: 0, - otaStatus: '', // 'upgrading' | 'success' | 'failed' | '' - otaMessage: '' - }, - - lifetimes: { - attached() { - // OTA 升级由父页面在 activeProtocol 就绪后显式调用,此处不自动触发 - }, - detached() { - // 组件销毁时清除超时定时器,防止泄漏 - this._clearOtaTimer(); - } - }, + data: {}, methods: { - // 完成按钮回调(成功或失败后展示) - bindOk() { - this.triggerEvent('deviceEvent', { status: true }); - }, - - // 清除 OTA 超时定时器 - _clearOtaTimer() { - if (this._otaTimer) { - clearTimeout(this._otaTimer); - this._otaTimer = null; - } - }, - // 开始 OTA 升级 startOtaUpgrade() { const activeProtocol = app.globalData.ppScale.activeProtocol; @@ -40,92 +13,42 @@ Component({ return; } - wx.showLoading({ title: '正在升级...', mask: true }); + wx.showLoading({ title: '正在升级固件,请稍候...', mask: true }); - // 重置完成标志位,防止超时与回调重复触发 + // 重置完成标志位,防止回调重复触发 this._otaCompleted = false; - this.setData({ - otaProgress: 0, - otaStatus: 'upgrading', - otaMessage: '升级初始化中...' - }); - - // 启动超时保护,30 秒内未完成则视为失败 - this._clearOtaTimer(); - this._otaTimer = setTimeout(() => { - console.log('OTA 升级超时'); - this.handleOtaFailed('升级超时,设备即将重启'); - }, 30000); - - // 回调参数:数字(指令状态码)或对象 { progress, isFailed } - activeProtocol.codeOtaUpdate((res, status) => { - console.log('OTA 升级 status 回调 :', status); - console.log('OTA 升级 res 回调:', res); - - // // 已完成(成功或失败)则忽略后续回调 - // if (this._otaCompleted) return; - // - // // SDK 返回数字时:1 表示指令已下发、设备开始通过 WiFi 升级并重启 - // if (typeof res === 'number') { - // if (res === 1) { - // this._clearOtaTimer(); - // this.handleOtaSuccess(); - // } else { - // this._clearOtaTimer(); - // this.handleOtaFailed(`OTA 指令失败,错误码:${res}`); - // } - // return; - // } - // - // // SDK 返回对象时:{ progress, isFailed } - // if (res && res.progress !== undefined) { - // this.setData({ - // otaProgress: res.progress, - // otaMessage: `升级进度: ${res.progress}%` - // }); - // } - // - // if (res && res.isFailed === false) { - // this._clearOtaTimer(); - // this.handleOtaSuccess(); - // } else if (res && res.isFailed === true) { - // this._clearOtaTimer(); - // this.handleOtaFailed(); - // } + // status: false = 成功,true = 失败 + activeProtocol.codeOtaUpdate((_res, status) => { + console.log('OTA status 回调:', status); + // 延迟 3 秒,让 Loading 多转一会再收口 + setTimeout(() => { + if (status) { + // status true → 升级失败 + this._finish(false, '固件升级失败'); + } else { + // status false → 升级成功 + this._finish(true); + } + }, 3000); }); }, - // OTA 升级成功处理 - handleOtaSuccess() { + // 统一收口:成功/失败提示后跳转首页 + _finish(success, failMsg) { if (this._otaCompleted) return; this._otaCompleted = true; wx.hideLoading(); - this.setData({ - otaProgress: 100, - otaStatus: 'success', - otaMessage: '升级指令已下发,设备正在重启...' - }); - wx.showToast({ title: 'OTA 升级成功', icon: 'success', duration: 2000 }); - setTimeout(() => { - this.bindOk(); - }, 2000); - }, - // OTA 升级失败处理 - handleOtaFailed(msg) { - if (this._otaCompleted) return; - this._otaCompleted = true; - wx.hideLoading(); - const message = msg || '升级失败,设备即将重启'; - this.setData({ - otaProgress: 0, - otaStatus: 'failed', - otaMessage: message - }); - wx.showToast({ title: message, icon: 'none', duration: 2000 }); + if (success) { + wx.showToast({ title: '固件升级成功', icon: 'success', duration: 2000 }); + } else { + wx.showToast({ title: failMsg || '固件升级失败', icon: 'none', duration: 2000 }); + } + setTimeout(() => { - this.bindOk(); + app.cleanupConnection(); + wx.switchTab({ url: '/pages/home/home' }); }, 2000); } } diff --git a/components/configureDevice_4/configureDevice_4.wxml b/components/configureDevice_4/configureDevice_4.wxml index bda9c5e..ff27bb8 100644 --- a/components/configureDevice_4/configureDevice_4.wxml +++ b/components/configureDevice_4/configureDevice_4.wxml @@ -7,16 +7,4 @@ 随时随地同步测量数据 - - - - {{otaMessage}} - - - - {{otaProgress}}% - - - - 完成 diff --git a/pages/searchDevice/searchDevice.js b/pages/searchDevice/searchDevice.js index b3bd417..d8dc87b 100644 --- a/pages/searchDevice/searchDevice.js +++ b/pages/searchDevice/searchDevice.js @@ -209,7 +209,7 @@ Page({ }, getDeviceSettingList() { - // app.globalData.ppScale.plugin.Blue.visibleLog(true); + app.globalData.ppScale.plugin.Blue.visibleLog(true); this.setData({ initText: "设备搜索中..." });