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}} - - - + +