From 5c8370b943f62073a44eb634ce6650b405c777cc Mon Sep 17 00:00:00 2001 From: 17792275749 <812100002@qq.com> Date: Thu, 14 May 2026 19:56:00 +0800 Subject: [PATCH] =?UTF-8?q?[AI=20Generated]:=20fix(*):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B9=90=E7=A6=8FSDK=E4=BA=8C=E6=AC=A1=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=97=AE=E9=A2=98=EF=BC=8C=E5=AF=B9=E9=BD=90demo?= =?UTF-8?q?=E6=8C=82=E8=BD=BD=E9=A1=BA=E5=BA=8F=E5=B9=B6=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=8A=B6=E6=80=81=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/claudeCodeTabState.xml | 2 +- miniprogram/app.ts | 4 - miniprogram/images/connectedWifi/noData.png | Bin 18543 -> 123683 bytes miniprogram/lefu/service.ts | 418 ++++-------------- .../pages/connectedDevice/connectedDevice.ts | 2 + .../pages/connectedWifi/connectedWifi.ts | 114 +---- .../pages/connectedWifi/connectedWifi.wxml | 4 +- project.config.json | 96 ++-- project.private.config.json | 2 +- 9 files changed, 171 insertions(+), 471 deletions(-) diff --git a/.idea/claudeCodeTabState.xml b/.idea/claudeCodeTabState.xml index ba4c915..faec8fa 100644 --- a/.idea/claudeCodeTabState.xml +++ b/.idea/claudeCodeTabState.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/miniprogram/app.ts b/miniprogram/app.ts index 28d4986..514a129 100644 --- a/miniprogram/app.ts +++ b/miniprogram/app.ts @@ -1,5 +1,3 @@ -import { lefuService } from './lefu/index' - App({ globalData: { /** 当前已连接设备的蓝牙状态,页面可读取 */ @@ -7,8 +5,6 @@ App({ }, onLaunch() { - // 初始化乐福蓝牙 SDK - lefuService.init() // 已登录则跳过登录页 // const userInfo = wx.getStorageSync('userInfo') diff --git a/miniprogram/images/connectedWifi/noData.png b/miniprogram/images/connectedWifi/noData.png index 9a7fab2067c2352ef2eb4f4bbf21e5465a8ed5f4..37783f3b6811fb0cf695e649005af8d0b5ba1792 100644 GIT binary patch literal 123683 zcmdSAWmlV97cLCJB}j0W;I6?61%kUnDNqPf3c-K9t=Uc9C9 zhQ0T5&iM=Pm)v7yWX-kiHLrP1O|*`dG7y&<7X<|csH&o%hk^otprD{$VPhh{5%xE( zLq1SF^pxdMYA0#Gp`b9Ls4B=A_*$HF{Yd2*bz?htZQym66Pc5S&S!^0KO~x(rDBPR zvb3m>6_}*Uf|_LZ%C_}yQ6PB>H;GdQV+J}-zPJMD&Jrc0%}zl0yz8tMOqkUfsqCwu zWMpS(ypNW6&IF70n z|5i}~l;CjS|6S1=D%Tq|5t^k&^Z%Z*p+WTj?DPMl!)P#0pWk<*B-P=e%|2=;cug7k za;H!j4bR`#sZzJ@MhN0t6%4{`#Xa6QnTT%0D~ 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

Gd_gZAj0;kI-}p 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 z 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 void) | null = null private _onConnectStateCb: ((state: string) => void) | null = null private _onDeviceConnectCb: (() => void) | null = null @@ -98,142 +93,63 @@ class LeFuService { private _onDisconnectedCb: (() => void) | null = null private _onDeviceInfoCb: ((info: DeviceInfo) => void) | null = null - /** 在 app.ts onLaunch 中调用,加载 ppScale-plugin */ - init(): void { - console.log(TAG, 'init() 开始加载插件') - this._plugin = requirePlugin('ppScale-plugin') as LeFuPlugin - console.log(TAG, 'init() 插件加载完成:', !!this._plugin) - } - - /** 获取插件(未初始化时抛出) */ - private get _p(): LeFuPlugin { - if (!this._plugin) throw new Error('[LeFu] 服务未初始化,请先调用 init()') - return this._plugin - } - - /** 乐福配置(供体成分分析等外部使用) */ - get config(): LeFuConfig { - return LEFU_CONFIG - } + get config(): LeFuConfig { return LEFU_CONFIG } + get isConnected(): boolean { return !!this._activeProtocol } + get connectState(): string { return this._connectState } + get BLUE_STATE(): Record { return plugin.BLUE_STATE ?? {} } + get deviceInfo(): DeviceInfo | null { return this._deviceInfo } // ─── 回调注册 ───────────────────────────────── - - /** 注册设备列表回调(扫描到设备时触发) */ - onDevicesList(cb: (devices: ScannedDevice[]) => void): void { - console.log(TAG, 'onDevicesList 回调已注册') - this._onDevicesListCb = cb - } - - /** 注册蓝牙连接状态回调 */ - onConnectState(cb: (state: string) => void): void { - console.log(TAG, 'onConnectState 回调已注册') - this._onConnectStateCb = cb - } - - /** 注册设备连接就绪回调(activeProtocol 可用时触发) */ - onDeviceConnect(cb: () => void): void { - console.log(TAG, 'onDeviceConnect 回调已注册') - this._onDeviceConnectCb = cb - } - - /** 当前蓝牙连接状态(connectState bus 事件实时更新) */ - private _connectState = '' - - /** 设备是否已连接(activeProtocol 就绪) */ - get isConnected(): boolean { - return !!this._activeProtocol - } - - /** 当前蓝牙连接状态字符串 */ - get connectState(): string { - return this._connectState - } - - /** 插件 BLUE_STATE 常量对象(供页面 wxml 条件判断用) */ - get BLUE_STATE(): Record { - return this._plugin?.BLUE_STATE ?? {} - } - - /** 连接后从 deviceInfo 事件获取的设备信息(含 modelNumber / serialNumber 等) */ - get deviceInfo(): DeviceInfo | null { - return this._deviceInfo - } - - /** 注册实时测量回调(测量过程中多次触发) */ - onMeasuring(cb: (data: ProgressData) => void): void { - this._onProgressCb = cb - } - - /** 注册测量完成回调(数据锁定,触发一次) */ - onLocked(cb: (data: LockData) => void): void { - this._onLockedCb = cb - } - - /** 注册设备断开回调 */ - onDisconnected(cb: () => void): void { - this._onDisconnectedCb = cb - } - - /** 注册 deviceInfo 就绪回调(设备名/固件信息可用时触发) */ - onDeviceInfo(cb: (info: DeviceInfo) => void): void { - this._onDeviceInfoCb = cb - } + onDevicesList(cb: (devices: ScannedDevice[]) => void): void { this._onDevicesListCb = cb } + onConnectState(cb: (state: string) => void): void { this._onConnectStateCb = cb } + onDeviceConnect(cb: () => void): void { this._onDeviceConnectCb = cb } + onMeasuring(cb: (data: ProgressData) => void): void { this._onProgressCb = cb } + onLocked(cb: (data: LockData) => void): void { this._onLockedCb = cb } + onDisconnected(cb: () => void): void { this._onDisconnectedCb = cb } + onDeviceInfo(cb: (info: DeviceInfo) => void): void { this._onDeviceInfoCb = cb } // ─── 扫描与连接 ─────────────────────────────── - - /** - * 开始蓝牙扫描 - * 对齐 master:先 setDeviceSetting → start,再 subscribe(master searchDevice.js 顺序) - */ startScan(): void { - console.log(TAG, 'startScan() 开始,busSubscribed:', this._busSubscribed) - const plugin = this._p - - // ① 先设置设备配置并启动扫描(必须在 subscribe 之前,与 master 一致) + console.log(TAG, 'startScan()') plugin.Blue.setDeviceSetting(DEVICE_SETTINGS) - const deviceNames = DEVICE_SETTINGS.map(s => s.deviceName) - console.log(TAG, 'plugin.Blue.start() 调用,设备名称:', deviceNames) - plugin.Blue.start(deviceNames, false) + this._subscribeBus() + plugin.Blue.start(DEVICE_SETTINGS.map(s => s.deviceName), false) + } - // bus 订阅只注册一次,stopScan 时重置,避免多次搜索导致订阅累积 + private _subscribeBus(): void { if (this._busSubscribed) { - console.log(TAG, 'bus 已订阅,跳过重复注册') + console.log(TAG, 'bus 已订阅,跳过') return } this._busSubscribed = true - // ② 启动后再订阅设备列表(master 也是 start 后才 subscribe) plugin.bus.subscribe('devicesList', (devList: RawDevice[]) => { - console.log(TAG, 'bus[devicesList] 触发,原始设备数:', devList?.length, devList?.map((d: RawDevice) => d.name || d.deviceName)) - if (!devList || !devList.length) { + console.log(TAG, 'bus[devicesList],设备数:', devList?.length) + if (!devList?.length) { this._onDevicesListCb?.([]) return } - // 直接用原始列表转换,不调用 getDeviceModel(master 也是直接传 res) const devices: ScannedDevice[] = devList.map((item: RawDevice) => ({ name: item.name || item.deviceName || '未知设备', raw: item, model: {}, })) - console.log(TAG, '转换后设备列表:', devices.map(d => d.name)) this._onDevicesListCb?.(devices) }) - // 设备模型信息(含 mac 等,仅用于日志/调试) plugin.bus.subscribe('devicesModel', (res: any) => { - console.log(TAG, 'bus[devicesModel] 触发,deviceMac:', res?.deviceMac) + console.log(TAG, 'bus[devicesModel] 完整数据:', JSON.stringify(res)) }) - // 连接成功后获取固件信息(用于后续 OTA 版本比对) plugin.bus.subscribe('deviceInfo', (res: DeviceInfo) => { - console.log(TAG, 'bus[deviceInfo] 触发:',res, res?.firmwareRevision, res?.modelNumber) + console.log(TAG, 'bus[deviceInfo]:', res?.modelNumber) this._deviceInfo = res this._onDeviceInfoCb?.(res) }) - // 连接建立:从 ScaleAction 获取 activeProtocol,启动数据进度(对齐 master configureDevice.js) plugin.bus.subscribe('deviceConnect', () => { - console.log(TAG, 'bus[deviceConnect] 触发,获取 activeProtocol,启动数据进度') + console.log(TAG, 'bus[deviceConnect]') + this._intentionalConnect = false this._reconnectCount = 0 plugin.ScaleAction.startDataProgress(true) this._activeProtocol = plugin.ScaleAction.getActiveProtocol() @@ -241,228 +157,144 @@ class LeFuService { this._onDeviceConnectCb?.() }) - // 连接状态变化:CONNECTSUCCESS 时启动保活,CONNECTFAILED 时重连 plugin.bus.subscribe('connectState', (res: string) => { - console.log(TAG, 'bus[connectState] 触发:', res) + console.log(TAG, 'bus[connectState]:', res) this._connectState = res this._onConnectStateCb?.(res) if (res === plugin.BLUE_STATE.CONNECTSUCCESS) { - console.log(TAG, '连接成功,启动保活心跳') this._startKeepAlive() } if (res === plugin.BLUE_STATE.CONNECTFAILED) { - console.warn(TAG, '连接失败,触发重连逻辑') this._stopKeepAlive() - this._doReconnect() + if (!this._intentionalConnect) { + this._doReconnect() + } } }) - // 实时测量数据 plugin.bus.subscribe('progressData', (res: ProgressData) => { - console.log(TAG, 'bus[progressData] 体重(g):', res?.weight) this._onProgressCb?.(res) }) - // 测量锁定(完成) plugin.bus.subscribe('lockData', (res: LockData) => { - console.log(TAG, 'bus[lockData] 测量完成,体重(g):', res?.weight, '阻抗:', res?.resistance) this._onLockedCb?.(res) }) - // 设备自动断开 plugin.bus.subscribe('deviceWillDisconnect', () => { - console.warn(TAG, 'bus[deviceWillDisconnect] 设备断开,触发重连') + console.warn(TAG, 'bus[deviceWillDisconnect],intentionalConnect:', this._intentionalConnect) this._stopKeepAlive() this._onDisconnectedCb?.() - this._doReconnect() + if (!this._intentionalConnect) { + this._doReconnect() + } }) } - /** - * 主动连接指定设备(对齐 master:直接调 createBLEConnection,不判断 deviceConnectType) - */ connect(device: ScannedDevice): void { - console.log(TAG, 'connect() 设备:', device.name) - this._p.Blue.createBLEConnection(device.raw) - } - - /** 主动断开当前连接 */ - disconnect(): void { - console.log(TAG, 'disconnect() 主动断开') + console.log(TAG, 'connect():', device.name) + this._intentionalConnect = true this._stopKeepAlive() - this._p.Blue.disconnect() + this._stopReconnectTimer() + this._activeProtocol = null + this._connectState = '' + this._deviceInfo = null + this._onDeviceInfoCb = null + this._onDeviceConnectCb = null + plugin.Blue.stopBluetoothDevicesDiscovery() + plugin.Blue.createBLEConnection(device.raw) + } + + disconnect(): void { + console.log(TAG, 'disconnect()') + this._stopKeepAlive() + plugin.Blue.disconnect() } - /** - * 停止扫描(仅停止设备发现,不清连接态) - * connectedDevice onHide / onUnload 时调用 - */ stopScan(): void { - console.log(TAG, 'stopScan() 停止扫描') + console.log(TAG, 'stopScan()') this._stopReconnectTimer() - this._busSubscribed = false wx.stopBluetoothDevicesDiscovery() this._onDevicesListCb = null this._onDeviceConnectCb = null } // ─── WiFi 配网 ──────────────────────────────── - - /** - * 获取设备上报的 WiFi 列表(需设备已连接) - * 内部延迟 2 秒后调用,15 秒超时 - */ getWifiList(): Promise { - console.log(TAG, 'getWifiList() 开始') + console.log(TAG, 'getWifiList()') return new Promise((resolve, reject) => { if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接,无法获取 WiFi 列表')) return } - - const timer = setTimeout(() => { - reject(new Error('[LeFu] 获取 WiFi 列表超时')) - }, 15000) - - // 延迟 2 秒,等待设备就绪后再请求 + const timer = setTimeout(() => reject(new Error('[LeFu] 获取 WiFi 列表超时')), 15000) setTimeout(() => { this._activeProtocol.dataFindSurroundDevice((res: any[]) => { clearTimeout(timer) - console.log(TAG, 'getWifiList 原始结果:', res) - if (!res || res.length === 0) { + console.log(TAG, 'getWifiList 结果:', res) + if (!res?.length) { this._activeProtocol.dataExitWifiConfig(() => {}) resolve([]) return } - const list: LeFuWifiItem[] = res.map((item: any) => ({ - ssid: item.ssid || item.name || '', - signal: item.signal, - })) - console.log(TAG, 'getWifiList 解析结果:', list.map(w => w.ssid)) - resolve(list) + resolve(res.map((item: any) => ({ ssid: item.ssid || item.name || '', signal: item.signal }))) }) }, 2000) }) } - /** - * 将 WiFi 配置写入设备 - * @param ssid WiFi 名称 - * @param password WiFi 密码 - * @param version 协议版本:domain1(无鉴权)| domain2(有鉴权) - * 返回码 23 = 配网成功 - */ configWifi(ssid: string, password: string, version: WifiVersion): Promise { - console.log(TAG, 'configWifi() ssid:', ssid, 'version:', version) + console.log(TAG, 'configWifi():', ssid, version) return new Promise((resolve, reject) => { if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接,无法配网')) return } - const callback = (res: number) => { - console.log(TAG, 'configWifi 回调 res:', res) - if (res === 23) { - console.log(TAG, 'configWifi 成功') - resolve() - } else { - console.error(TAG, 'configWifi 失败,错误码:', res) - reject(new Error(`[LeFu] 配网失败,错误码:${res}`)) - } + console.log(TAG, 'configWifi 回调:', res) + res === 23 ? resolve() : reject(new Error(`[LeFu] 配网失败,错误码:${res}`)) } - if (version === 'domain1') { - this._activeProtocol.dataConfigNetWork( - { domain: LEFU_CONFIG.domain1, ssid, password }, - callback, - ) + this._activeProtocol.dataConfigNetWork({ domain: LEFU_CONFIG.domain1, ssid, password }, callback) } else { this._activeProtocol.dataConfigUserNetWork( - { - domain: LEFU_CONFIG.domain2, - ssid, - password, - userName: 'apiUser', - userPassword: '3acebb95eb49577e9c2a2082589b9bd6', - }, + { domain: LEFU_CONFIG.domain2, ssid, password, userName: 'apiUser', userPassword: '3acebb95eb49577e9c2a2082589b9bd6' }, callback, ) } }) } - /** - * 查询设备是否已完成配网 - * 返回 true = 已配网(0x01),false = 未配网 - */ checkWifiConfig(): Promise { - console.log(TAG, 'checkWifiConfig() 查询配网状态') return new Promise((resolve, reject) => { - if (!this._activeProtocol) { - reject(new Error('[LeFu] 设备未连接')) - return - } + if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接')); return } this._activeProtocol.codeFetchWifiConfig((res: number | undefined | null) => { - console.log(TAG, 'checkWifiConfig 回调 res:', res, '已配网:', res === 0x01) resolve(res === 0x01) }) }) } // ─── OTA 升级 ───────────────────────────────── - - /** - * 检查固件版本并按需触发 OTA 升级 - * @returns true = 已触发升级,false = 无需升级 - * 调用时机由业务层决定,不自动触发 - */ checkAndUpgrade(): Promise { - console.log(TAG, 'checkAndUpgrade() 开始检查固件版本') return new Promise((resolve, reject) => { - if (!this._activeProtocol) { - reject(new Error('[LeFu] 设备未连接')) - return - } - if (!this._deviceInfo) { - reject(new Error('[LeFu] 固件信息未就绪,请稍后重试')) - return - } + if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接')); return } + if (!this._deviceInfo) { reject(new Error('[LeFu] 固件信息未就绪')); return } const { firmwareRevision, modelNumber } = this._deviceInfo - console.log(TAG, '当前固件:', firmwareRevision, '型号:', modelNumber) const [mcuVer, bleVer, wifiVer, resVer] = (firmwareRevision || '').split('.') - - // 设备单段版本(如 "006")vs 服务端 x.y.z 格式(如 "0.0.6")比对 - const isServerNewer = (deviceVer: string, serverVer: string): boolean => { - const deviceNum = parseInt(deviceVer, 10) - const serverNum = (serverVer || '').split('.').map(v => parseInt(v, 10)).reduce((acc, v) => acc * 1000 + v, 0) - return serverNum > deviceNum + const isServerNewer = (dv: string, sv: string) => { + const dn = parseInt(dv, 10) + const sn = (sv || '').split('.').map(v => parseInt(v, 10)).reduce((a, v) => a * 1000 + v, 0) + return sn > dn } get('weighingScale/v2/firmware/version', { type: modelNumber }, { loading: false }) .then(res => { const { mcuVersion, bleVersion, wifiVersion, resVersion } = res.result - console.log(TAG, '服务端固件版本:', { mcuVersion, bleVersion, wifiVersion, resVersion }) - const needUpdate = - isServerNewer(mcuVer, mcuVersion) || - isServerNewer(bleVer, bleVersion) || - isServerNewer(wifiVer, wifiVersion) || - isServerNewer(resVer, resVersion) - - console.log(TAG, '需要 OTA 升级:', needUpdate) - if (!needUpdate) { - resolve(false) - return - } - - // status: false = 成功,true = 失败 + const needUpdate = isServerNewer(mcuVer, mcuVersion) || isServerNewer(bleVer, bleVersion) + || isServerNewer(wifiVer, wifiVersion) || isServerNewer(resVer, resVersion) + if (!needUpdate) { resolve(false); return } this._activeProtocol.codeOtaUpdate((status: boolean) => { - console.log(TAG, 'OTA 升级回调 status:', status) - if (!status) { - resolve(true) - } else { - reject(new Error('[LeFu] OTA 升级失败')) - } + status ? reject(new Error('[LeFu] OTA 升级失败')) : resolve(true) }) }) .catch(reject) @@ -470,20 +302,15 @@ class LeFuService { } // ─── 私有:保活与重连 ───────────────────────── - private _startKeepAlive(): void { this._stopKeepAlive() - console.log(TAG, '_startKeepAlive 保活心跳启动') - this._keepAliveTimer = setInterval(() => { - this._activeProtocol?.sendKeepAliveCode?.() - }, 15000) + this._keepAliveTimer = setInterval(() => { this._activeProtocol?.sendKeepAliveCode?.() }, 15000) } private _stopKeepAlive(): void { if (this._keepAliveTimer !== null) { clearInterval(this._keepAliveTimer) this._keepAliveTimer = null - console.log(TAG, '_stopKeepAlive 保活心跳停止') } } @@ -495,115 +322,62 @@ class LeFuService { this._reconnectCount = 0 } - /** 自动重连,最多 _maxReconnect 次,超限后等待用户手动重试 */ private _doReconnect(): void { if (this._reconnectCount >= this._maxReconnect) { - console.warn(TAG, '重连次数已达上限:', this._maxReconnect) + console.warn(TAG, '重连次数已达上限') return } this._reconnectCount++ - console.log(TAG, `_doReconnect 第 ${this._reconnectCount} 次重连`) + console.log(TAG, `_doReconnect 第 ${this._reconnectCount} 次`) this._stopReconnectTimer() this._reconnectTimer = setTimeout(() => { - this._plugin?.Blue?.disconnect((res: any) => { - console.log(TAG, '重连 disconnect 回调:', res?.errCode) - if (res?.errCode === 0) { - this._plugin?.Blue?.startBluetoothDevicesDiscovery() - } + plugin.Blue.disconnect((res: any) => { + if (res?.errCode === 0) plugin.Blue.startBluetoothDevicesDiscovery() }) }, 2000) } // ─── 成员同步 ───────────────────────────────── - - /** - * 全量将成员列表同步到设备 - * 流程:清除设备成员数据 → 逐个下发(顺序执行) - * 每步 15 秒超时保护,失败时自动重试当前成员 - * @param members 成员列表,必须包含且仅包含一个 isSelf=true 的主用户 - */ syncMembersToDevice(members: DeviceMember[]): Promise { - console.log(TAG, 'syncMembersToDevice() 成员数:', members.length) return new Promise((resolve, reject) => { - if (!this._activeProtocol) { - reject(new Error('[LeFu] 设备未连接,无法同步成员')) - return - } - + if (!this._activeProtocol) { reject(new Error('[LeFu] 设备未连接')); return } const mainUser = members.find(m => m.isSelf) - if (!mainUser) { - reject(new Error('[LeFu] 成员列表中缺少主用户(isSelf=true)')) - return - } - - // 第一步:清除设备上的所有成员数据("01" 仅清成员,保留历史) - const clearTimer = setTimeout(() => { - reject(new Error('[LeFu] 清除设备成员超时')) - }, 15000) + if (!mainUser) { reject(new Error('[LeFu] 缺少主用户')); return } + const clearTimer = setTimeout(() => reject(new Error('[LeFu] 清除设备成员超时')), 15000) this._activeProtocol.codeClearDeviceData('01', (clearRes: number) => { clearTimeout(clearTimer) - console.log(TAG, 'codeClearDeviceData 回调:', clearRes) - if (clearRes !== 0x00) { - reject(new Error('[LeFu] 清除设备成员失败')) - return - } + if (clearRes !== 0x00) { reject(new Error('[LeFu] 清除设备成员失败')); return } - // 第二步:逐个下发成员(顺序执行,失败自动重试当前) let index = 0 let syncTimer: number | null = null - const resetTimer = () => { if (syncTimer !== null) clearTimeout(syncTimer) - syncTimer = setTimeout(() => { - reject(new Error(`[LeFu] 第 ${index + 1} 个成员下发超时`)) - }, 15000) + syncTimer = setTimeout(() => reject(new Error(`[LeFu] 第 ${index + 1} 个成员下发超时`)), 15000) } - const syncNext = () => { if (index >= members.length) { if (syncTimer !== null) clearTimeout(syncTimer) - console.log(TAG, 'syncMembersToDevice 全部同步完成') resolve() return } - const member = members[index] - console.log(TAG, `下发第 ${index + 1}/${members.length} 个成员:`, member.name) resetTimer() - this._activeProtocol.dataSyncUserInfo( { - userID: mainUser.id, - userName: member.name, - // 主用户 memberID 为空,子用户用自己的 id + userID: mainUser.id, userName: member.name, memberID: member.isSelf ? '' : member.id, - age: member.age, - gender: member.gender, - height: member.height, - isAthleteMode: 0, - deviceHeaderIndex: index, - currentWeight: '', - targetWeight: '', - idealWeight: '', - recentData: [], - }, - (res: number) => { - console.log(TAG, `第 ${index + 1} 个成员同步回调:`, res) - if (res === 0) { - index++ - } - // 成功进下一个,失败重试当前(index 不变) - syncNext() + age: member.age, gender: member.gender, height: member.height, + isAthleteMode: 0, deviceHeaderIndex: index, + currentWeight: '', targetWeight: '', idealWeight: '', recentData: [], }, + (res: number) => { if (res === 0) index++; syncNext() }, ) } - syncNext() }) }) } } -/** 全局单例,整个小程序共享同一个蓝牙服务实例 */ export const lefuService = new LeFuService() diff --git a/miniprogram/pages/connectedDevice/connectedDevice.ts b/miniprogram/pages/connectedDevice/connectedDevice.ts index cc273b2..6f056f5 100644 --- a/miniprogram/pages/connectedDevice/connectedDevice.ts +++ b/miniprogram/pages/connectedDevice/connectedDevice.ts @@ -29,6 +29,8 @@ Page({ onHide() { console.log(TAG, 'onHide, 停止扫描') + _rawDevices = [] + this.setData({ status: 'idle', deviceList: [] }) lefuService.stopScan() }, diff --git a/miniprogram/pages/connectedWifi/connectedWifi.ts b/miniprogram/pages/connectedWifi/connectedWifi.ts index 2b20495..90c1732 100644 --- a/miniprogram/pages/connectedWifi/connectedWifi.ts +++ b/miniprogram/pages/connectedWifi/connectedWifi.ts @@ -1,75 +1,29 @@ import { lefuService } from '../../lefu/index' import type { LeFuWifiItem, WifiVersion } from '../../lefu/index' -/** WiFi 展示项 */ interface WifiItem { ssid: string - /** 是否已通过本页配网成功 */ connected: boolean } -/** 当前已连接设备(顶部卡片) */ -interface CurrentDevice { - id: string - name: string -} - -/** 密码态选中的 WiFi */ -interface SelectedWifi { - ssid: string -} - -/** 页面状态 */ type WifiStatus = 'idle' | 'searching' | 'list' | 'empty' | 'password' | 'configuring' +type BleStatus = 'connected' | 'failed' | 'connecting' Page({ - /** 配网协议版本,两种都支持,默认 domain2(有鉴权) */ _wifiVersion: 'domain2' as WifiVersion, data: { - /** - * 页面状态 - * - idle: 未搜索 - * - searching: 正在从设备获取 WiFi 列表 - * - list: 列表已就绪 - * - empty: 设备未扫描到任何 WiFi - * - password: 选中某项,正在输入密码 - * - configuring: 正在将 WiFi 写入设备 - */ status: 'idle' as WifiStatus, - - /** 顶部固定卡片 */ - currentDevice: { - id: '', - name: '智能体重秤', - } as CurrentDevice, - - /** 蓝牙连接状态常量(从插件获取,供 wxml 做条件判断) */ - BLUE_STATE: {} as Record, - - /** 当前蓝牙连接状态(实时更新) */ - connectState: '', - - /** 顶部卡片蓝牙状态:connected / failed / connecting */ - bleStatus: 'connected' as 'connected' | 'failed' | 'connecting', - - /** WiFi 列表 */ + deviceName: '智能体重秤', + bleStatus: 'connected' as BleStatus, wifiList: [] as WifiItem[], - - /** 是否已有任一 WiFi 配网成功 */ hasConnected: false, - - /** 当前密码态选中的 WiFi */ - selectedWifi: { ssid: '' } as SelectedWifi, - - /** 密码输入框值 */ + selectedSsid: '', selectWifiPWD: '', - - /** 密码框明文/密文切换:true 为密文(默认) */ type: true, }, - _toBleStatus(state: string): 'connected' | 'failed' | 'connecting' { + _toBleStatus(state: string): BleStatus { const bs = lefuService.BLUE_STATE if (state === bs.CONNECTSUCCESS || state === bs.WIFISUCCESS) return 'connected' if (state === bs.CONNECTFAILED) return 'failed' @@ -77,9 +31,13 @@ Page({ }, onLoad() { + // 尽早注册 deviceInfo 回调,防止 onShow 前已触发而错过 + lefuService.onDeviceInfo((info) => { + this.setData({ deviceName: info.modelNumber }) + }) this.setData({ bleStatus: this._toBleStatus(lefuService.connectState), - currentDevice: { id: '', name: lefuService.deviceInfo?.modelNumber ?? '智能体重秤' }, + deviceName: lefuService.deviceInfo?.modelNumber ?? '智能体重秤', }) this.onStartSearch() }, @@ -87,14 +45,10 @@ Page({ onShow() { lefuService.onConnectState((state) => { const bs = lefuService.BLUE_STATE - // 只处理明确的连接/断开状态,忽略蓝牙初始化过程中的中间状态 if (state === bs.CONNECTSUCCESS || state === bs.WIFISUCCESS || state === bs.CONNECTFAILED) { this.setData({ bleStatus: this._toBleStatus(state) }) } }) - lefuService.onDeviceInfo((info) => { - this.setData({ currentDevice: { id: '', name: info.modelNumber } }) - }) }, onUnload() { @@ -104,11 +58,9 @@ Page({ } }, - /** 从设备获取 WiFi 列表 */ onStartSearch() { this.setData({ status: 'searching', wifiList: [] }) wx.showLoading({ title: '正在获取 WiFi 列表...', mask: true }) - lefuService.getWifiList() .then((items: LeFuWifiItem[]) => { wx.hideLoading() @@ -116,11 +68,10 @@ Page({ this.setData({ status: 'empty' }) return } - const list: WifiItem[] = items.map(item => ({ - ssid: item.ssid, - connected: false, - })) - this.setData({ status: 'list', wifiList: list }) + this.setData({ + status: 'list', + wifiList: items.map(item => ({ ssid: item.ssid, connected: false })), + }) }) .catch(() => { wx.hideLoading() @@ -128,64 +79,42 @@ Page({ }) }, - /** 空态刷新 */ onRefresh() { this.onStartSearch() }, - /** 点击 WiFi 项 → 进密码态 */ onTapWifi(e: WechatMiniprogram.TouchEvent) { const ssid = e.currentTarget.dataset.ssid as string const target = this.data.wifiList.find(item => item.ssid === ssid) if (!target || target.connected) return - - this.setData({ - status: 'password', - selectedWifi: { ssid }, - selectWifiPWD: '', - type: true, - }) + this.setData({ status: 'password', selectedSsid: ssid, selectWifiPWD: '', type: true }) }, - /** 密码输入 */ passwordInput(e: WechatMiniprogram.Input) { this.setData({ selectWifiPWD: e.detail.value }) }, - /** 明文/密文切换 */ inputTypeChange() { this.setData({ type: !this.data.type }) }, - /** 密码态「取消」→ 回列表 */ onCancelPwd() { - this.setData({ - status: 'list', - selectedWifi: { ssid: '' }, - selectWifiPWD: '', - }) + this.setData({ status: 'list', selectedSsid: '', selectWifiPWD: '' }) }, - /** 密码态「连接」→ 将 WiFi 写入设备 */ onConfirmPwd() { - const { selectedWifi, selectWifiPWD } = this.data - if (!selectedWifi.ssid) return - + const { selectedSsid, selectWifiPWD } = this.data + if (!selectedSsid) return this.setData({ status: 'configuring' }) wx.showLoading({ title: '正在配网...', mask: true }) - - lefuService.configWifi(selectedWifi.ssid, selectWifiPWD, this._wifiVersion) + lefuService.configWifi(selectedSsid, selectWifiPWD, this._wifiVersion) .then(() => { wx.hideLoading() - const next = this.data.wifiList.map(item => ({ - ...item, - connected: item.ssid === selectedWifi.ssid, - })) this.setData({ status: 'list', - wifiList: next, + wifiList: this.data.wifiList.map(item => ({ ...item, connected: item.ssid === selectedSsid })), hasConnected: true, - selectedWifi: { ssid: '' }, + selectedSsid: '', selectWifiPWD: '', }) }) @@ -196,7 +125,6 @@ Page({ }) }, - /** 底部「确认」:已有 WiFi 配网成功才可点击 */ onConfirm() { if (!this.data.hasConnected) return wx.navigateTo({ url: '/pages/supplementPersonal/supplementPersonal' }) diff --git a/miniprogram/pages/connectedWifi/connectedWifi.wxml b/miniprogram/pages/connectedWifi/connectedWifi.wxml index d901ab7..b6abd97 100644 --- a/miniprogram/pages/connectedWifi/connectedWifi.wxml +++ b/miniprogram/pages/connectedWifi/connectedWifi.wxml @@ -7,7 +7,7 @@ - {{selectedWifi.ssid}} + {{selectedSsid}} 密码 @@ -46,7 +46,7 @@ - {{currentDevice.name}} + {{deviceName}} diff --git a/project.config.json b/project.config.json index 66ce98a..37e394e 100644 --- a/project.config.json +++ b/project.config.json @@ -1,51 +1,51 @@ { - "description": "项目配置文件", - "miniprogramRoot": "miniprogram/", - "compileType": "miniprogram", - "setting": { - "useCompilerPlugins": [ - "typescript", - "less" - ], - "babelSetting": { - "ignore": [], - "disablePlugins": [], - "outputPath": "" + "description": "项目配置文件", + "miniprogramRoot": "miniprogram/", + "compileType": "miniprogram", + "setting": { + "useCompilerPlugins": [ + "typescript", + "less" + ], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "coverView": false, + "postcss": false, + "minified": false, + "enhance": true, + "showShadowRootInWxmlPanel": false, + "packNpmRelationList": [], + "ignoreUploadUnusedFiles": true, + "compileHotReLoad": false, + "skylineRenderEnable": true, + "es6": true, + "compileWorklet": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "packNpmManually": false, + "minifyWXSS": true, + "minifyWXML": true, + "localPlugins": false, + "condition": false, + "swc": false, + "disableSWC": true, + "disableUseStrict": false }, - "coverView": false, - "postcss": false, - "minified": false, - "enhance": false, - "showShadowRootInWxmlPanel": false, - "packNpmRelationList": [], - "ignoreUploadUnusedFiles": true, - "compileHotReLoad": false, - "skylineRenderEnable": true, - "es6": false, - "compileWorklet": false, - "uglifyFileName": false, - "uploadWithSourceMap": true, - "packNpmManually": false, - "minifyWXSS": true, - "minifyWXML": true, - "localPlugins": false, - "condition": false, - "swc": false, - "disableSWC": true, - "disableUseStrict": false - }, - "simulatorType": "wechat", - "simulatorPluginLibVersion": {}, - "condition": {}, - "srcMiniprogramRoot": "miniprogram/", - "editorSetting": { - "tabIndent": "insertSpaces", - "tabSize": 4 - }, - "libVersion": "2.32.3", - "packOptions": { - "ignore": [], - "include": [] - }, - "appid": "wx6c71f3ebcdcddffd" + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": {}, + "srcMiniprogramRoot": "miniprogram/", + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 4 + }, + "libVersion": "2.32.3", + "packOptions": { + "ignore": [], + "include": [] + }, + "appid": "wx6c71f3ebcdcddffd" } \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json index 7c2ff81..357d19c 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -2,7 +2,7 @@ "libVersion": "2.32.3", "projectname": "bodyWeight", "setting": { - "urlCheck": true, + "urlCheck": false, "coverView": false, "lazyloadPlaceholderEnable": false, "skylineRenderEnable": true,