From f9141b25d0029c087b8770995561baeba1221b40 Mon Sep 17 00:00:00 2001 From: Guoguo Date: Mon, 29 Jun 2026 03:57:05 -0700 Subject: [PATCH] refactor: wear-check is now pure manual confirm, no BLE commands Remove all fitting detection logic (setParams, fitting event listener, timeout). User manually confirms wearing, then proceeds to detection page. No BLE commands sent on this page. --- miniprogram/pages/wear-check/wear-check.js | 109 +++++-------------- miniprogram/pages/wear-check/wear-check.wxml | 15 +-- 2 files changed, 28 insertions(+), 96 deletions(-) diff --git a/miniprogram/pages/wear-check/wear-check.js b/miniprogram/pages/wear-check/wear-check.js index d74bf50..4386cda 100644 --- a/miniprogram/pages/wear-check/wear-check.js +++ b/miniprogram/pages/wear-check/wear-check.js @@ -1,14 +1,11 @@ var ble = require('../../services/ble') -var FITTING_TIMEOUT = 10000 Page({ data: { statusBarHeight: 44, - checking: false, - result: null, - error: '', battery: 0, - connected: false + connected: false, + regions: 0x1F }, onBack: function () { @@ -19,111 +16,57 @@ Page({ }) }, - onLoad: function () { + onLoad: function (options) { var app = getApp() - this.setData({ statusBarHeight: app.globalData.statusBarHeight }) - var device = app.globalData.currentDevice || {} this.setData({ - battery: device.battery || 0, - connected: ble.isConnected() + statusBarHeight: app.globalData.statusBarHeight, + connected: ble.isConnected(), + regions: parseInt(options.regions) || 0x1F }) - }, - - onShow: function () { - this.checkWearing() - }, - - _cleanup: function () { - if (this._onFitting) { ble.off('fitting', this._onFitting); this._onFitting = null } - if (this._onBattery) { ble.off('battery', this._onBattery); this._onBattery = null } - if (this._fittingTimer) { clearTimeout(this._fittingTimer); this._fittingTimer = null } - }, - - checkWearing: function () { - var self = this - self._cleanup() - self._resolved = false - self.setData({ checking: true, result: null, error: '' }) - - if (!ble.isConnected()) { - self.setData({ checking: false, result: 'fail', error: '设备未连接,请点击重新连接' }) - return - } - - self.setData({ connected: true }) - - self._onBattery = function (info) { - self.setData({ battery: info.battery }) - } - ble.on('battery', self._onBattery) - - self._onFitting = function (data) { - if (self._resolved) return - console.log('[WEAR] 贴合状态:', data.fitting) - if (data.fitting === 1) { - self._resolved = true - self._cleanup() - self.setData({ checking: false, result: 'ok' }) - } - } - ble.on('fitting', self._onFitting) - - ble.setParams({ - region_mask: 0x1F, - wavelength: 2, - brightness: 26, - hold_time: 0, - control: 0x01 - }).then(function () { - console.log('[WEAR] 微弱光贴合检测指令已发送') - }).catch(function () {}) - - self._fittingTimer = setTimeout(function () { - if (self._resolved) return - self._resolved = true - self._cleanup() - console.log('[WEAR] 超时未收到 fitting 事件,降级为通过(兼容旧固件)') - self.setData({ checking: false, result: 'ok' }) - }, FITTING_TIMEOUT) - }, - - onUnload: function () { - this._cleanup() - clearTimeout(this._reconnectTimer) - ble.stopScan() + var device = app.globalData.currentDevice || {} + this.setData({ battery: device.battery || 0 }) }, onNext: function () { - wx.navigateTo({ url: '/pages/treatment-setup/treatment-setup' }) + if (!ble.isConnected()) { + wx.showToast({ title: '设备未连接', icon: 'none' }) + return + } + wx.redirectTo({ + url: '/pages/auto-scan/auto-scan?regions=' + this.data.regions + }) }, onRetry: function () { var self = this - if (self.data.checking) return if (ble.isConnected()) { - self.checkWearing() + self.setData({ connected: true }) return } - self.setData({ checking: true, result: null, error: '', connected: false }) - clearTimeout(self._reconnectTimer) + self.setData({ connected: false }) ble.disconnect() setTimeout(function () { ble.startScan({ onFound: function () {}, onConnected: function () { clearTimeout(self._reconnectTimer) - self.setData({ checking: false, connected: true }) - self.checkWearing() + self.setData({ connected: true }) + wx.showToast({ title: '连接成功', icon: 'success' }) }, onError: function (err) { clearTimeout(self._reconnectTimer) - self.setData({ checking: false, result: 'fail', error: err.msg || '连接失败' }) + wx.showToast({ title: err.msg || '连接失败', icon: 'none' }) } }) self._reconnectTimer = setTimeout(function () { ble.stopScan() - self.setData({ checking: false, result: 'fail', error: '搜索超时,请确认设备已开机' }) + wx.showToast({ title: '搜索超时', icon: 'none' }) }, 15000) }, 500) + }, + + onUnload: function () { + clearTimeout(this._reconnectTimer) + ble.stopScan() } }) diff --git a/miniprogram/pages/wear-check/wear-check.wxml b/miniprogram/pages/wear-check/wear-check.wxml index 86dc4cf..c03806b 100644 --- a/miniprogram/pages/wear-check/wear-check.wxml +++ b/miniprogram/pages/wear-check/wear-check.wxml @@ -28,18 +28,7 @@ - - - - - ✓ 佩戴确认成功 - - - {{error}} - - - + +