[AI Generated]: feat(device): 设备卡片整张可点击,波纹按状态播放,配网/OTA 日志与状态判断完善
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
ea52c495f6
commit
b94ffb7995
@@ -285,24 +285,27 @@ class LeFuService {
|
||||
|
||||
configWifi(ssid: string, password: string): Promise<void> {
|
||||
const version = (this._deviceInfo?.modelNumber ?? '').split('-').length === 5 ? 'domain2' : 'domain1'
|
||||
console.log(TAG, 'configWifi():', ssid, version)
|
||||
console.log(TAG, 'configNetWork():',this._deviceInfo?.modelNumber, version)
|
||||
const startTs = Date.now()
|
||||
console.log(TAG, 'configWifi():', ssid, version, 'ts=', startTs, 'activeProtocol=', !!this._activeProtocol)
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!this._activeProtocol) {
|
||||
console.warn(TAG, 'configWifi 早期 reject:_activeProtocol 为空')
|
||||
reject(new Error('[LeFu] 设备未连接,无法配网'))
|
||||
return
|
||||
}
|
||||
let settled = false
|
||||
const timer = setTimeout(() => {
|
||||
console.warn(TAG, 'configWifi 超时触发 elapsed=', Date.now() - startTs, 'settled=', settled)
|
||||
if (settled) return
|
||||
settled = true
|
||||
reject(new Error('[LeFu] 配网超时,请重试'))
|
||||
}, 20000)
|
||||
const callback = (res: number) => {
|
||||
console.log(TAG, 'configWifi 已注册 20s 定时器 timerId=', timer)
|
||||
const callback = (res: number, ...extra: any[]) => {
|
||||
console.log(TAG, 'configWifi 回调 res=', res, 'extra=', extra, 'elapsed=', Date.now() - startTs, 'settled=', settled)
|
||||
if (settled) return
|
||||
settled = true
|
||||
clearTimeout(timer)
|
||||
console.log(TAG, 'configWifi 回调:', res)
|
||||
res === 23 ? resolve() : reject(new Error(`[LeFu] 配网失败,错误码:${res}`))
|
||||
}
|
||||
if (version === 'domain1') {
|
||||
@@ -347,8 +350,9 @@ class LeFuService {
|
||||
const needUpdate = isServerNewer(mcuVer, mcuVersion) || isServerNewer(bleVer, bleVersion)
|
||||
|| isServerNewer(wifiVer, wifiVersion) || isServerNewer(resVer, resVersion)
|
||||
if (!needUpdate) { resolve(false); return }
|
||||
this._activeProtocol.codeOtaUpdate((status: boolean) => {
|
||||
status ? reject(new Error('[LeFu] OTA 升级失败')) : resolve(true)
|
||||
this._activeProtocol.codeOtaUpdate((status: number) => {
|
||||
console.log(`codeOtaUpdatecodeOtaUpdatecodeOtaUpdate ${status}`)
|
||||
status != 0 ? reject(new Error('[LeFu] OTA 升级失败')) : resolve(true)
|
||||
})
|
||||
})
|
||||
.catch(reject)
|
||||
@@ -405,7 +409,7 @@ class LeFuService {
|
||||
const clearTimer = setTimeout(() => reject(new Error('[LeFu] 清除设备成员超时')), 15000)
|
||||
this._activeProtocol.codeClearDeviceData('01', (clearRes: number) => {
|
||||
clearTimeout(clearTimer)
|
||||
if (clearRes !== 0x00) { reject(new Error('[LeFu] 清除设备成员失败')); return }
|
||||
if (clearRes != 0) { reject(new Error('[LeFu] 清除设备成员失败')); return }
|
||||
|
||||
let index = 0
|
||||
let syncTimer: number | null = null
|
||||
|
||||
Reference in New Issue
Block a user