diff --git a/miniprogram/services/ble/connection.js b/miniprogram/services/ble/connection.js index a13b8c6..ae78725 100644 --- a/miniprogram/services/ble/connection.js +++ b/miniprogram/services/ble/connection.js @@ -85,19 +85,11 @@ function handleValueChange(res) { if (protocol.PROTOCOL_MODE === 'vendor_33') { var parsed = protocol.parseVendorStatus(res.value) emit('vendor_raw', parsed) - var status = { - mode_state: parsed.is_heartbeat ? (parsed.heartbeat || 0) : protocol.MODE_STATE.IDLE, - region_mask: protocol.REGION.FULL_FACE, - wavelength: 0, - brightness: 0, - remaining_ms: 0, - error_code: 0, - battery: 0, - temperature: 0, - bind_status: 1, - subscription: 1 + if (parsed.is_heartbeat) { + emit('heartbeat', { value: parsed.heartbeat }) + return } - if (!parsed.is_heartbeat && parsed.ios) { + if (parsed.ios) { var anyActive = false for (var i = 0; i < parsed.ios.length; i++) { if (parsed.ios[i].red || parsed.ios[i].infrared || parsed.ios[i].uv || parsed.ios[i].warm_yellow) { @@ -105,12 +97,19 @@ function handleValueChange(res) { break } } - status.mode_state = anyActive ? protocol.MODE_STATE.ACTIVE : protocol.MODE_STATE.IDLE - if (parsed.hold_time > 0) { - status.remaining_ms = parsed.hold_time * 1000 - } + emit('status', { + mode_state: anyActive ? protocol.MODE_STATE.ACTIVE : protocol.MODE_STATE.IDLE, + region_mask: protocol.REGION.FULL_FACE, + wavelength: 0, + brightness: 0, + remaining_ms: parsed.hold_time > 0 ? parsed.hold_time * 1000 : 0, + error_code: 0, + battery: 0, + temperature: 0, + bind_status: 1, + subscription: 1 + }) } - emit('status', status) return } var frame = protocol.parseFrame(res.value)