@ovok/native 1.6.43 → 1.6.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +8 -1
- package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +41 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +1 -1
- package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +3 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js +15 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.device.js +46 -0
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.protocol.js +79 -0
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.sequencer.js +37 -0
- package/lib/commonjs/modules/bt-management/services/devices/f5/f5-scale.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.device.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.js +115 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.js +58 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.device.js +41 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.js +61 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.js +41 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.device.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.js +141 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.js +76 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.device.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.js +149 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.js +81 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.device.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.js +228 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.js +122 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js +7 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +8 -1
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-devices.js +41 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-management/constants/integrated-devices-map.js +1 -1
- package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +3 -0
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-creator.js +15 -1
- package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.device.js +41 -0
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.protocol.js +71 -0
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.sequencer.js +32 -0
- package/lib/module/modules/bt-management/services/devices/f5/f5-scale.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.device.js +45 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.js +106 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.js +53 -0
- package/lib/module/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.device.js +36 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.js +55 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.js +36 -0
- package/lib/module/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.device.js +45 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.js +130 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.js +71 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.device.js +45 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.js +136 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.js +76 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.device.js +45 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.js +209 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.js +117 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
- package/lib/module/modules/bt-management/types/integrated-devices.js +7 -0
- package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts +5 -3
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.protocol.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.sequencer.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f5/f5-scale.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.device.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.d.ts +17 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.d.ts +36 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.d.ts +43 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.d.ts +73 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.d.ts +25 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +8 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +8 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts +5 -3
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.protocol.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.sequencer.d.ts +22 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/f5/f5-scale.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.d.ts +24 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.device.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.d.ts +17 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.d.ts +36 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bpm188.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.d.ts +43 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc100.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.d.ts +73 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.d.ts +25 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.pc300.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +8 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +8 -1
- package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
import { lepuNameMatch } from "../services/devices/lepu/lepu.name-match.js";
|
|
4
4
|
import { IntegratedDevices } from "../types/integrated-devices.js";
|
|
5
|
-
export const integratedDevicesMap = new Map([[/^BP2 \d{4}$/, IntegratedDevices.BP2], [/^F4$/, IntegratedDevices.F4], [/^Oxyfit \d{4}$/, IntegratedDevices.SPO2], [/^mySense$/, IntegratedDevices.MYSENSE], [/^OxySmart \d{4}$/, IntegratedDevices.PC60WF], [/^AOJ-20A$/, IntegratedDevices.AOJ20A], [/^TAIDOC TD4216(?: \w+)?$/, IntegratedDevices.TAIDOC_GLUCOSE], [/^GlucoCheck Gold$/, IntegratedDevices.GLUCOCHECK], [/^FORA IR20$/, IntegratedDevices.FORATEMP], [/^TEMP$/, IntegratedDevices.ANDESFITTEMP], [/^two$/, IntegratedDevices.COSINUSS], [/^cmed$/, IntegratedDevices.CMED], [/^(?:BC01\d{4}|BC401BT)$/i, IntegratedDevices.BC01], [/^FORA W550$/, IntegratedDevices.FORA_SCALE], [/^GBS-2012-B$/, IntegratedDevices.RPM_SCALE], [/^TAIDOC TD1107$/, IntegratedDevices.CLEVERTEMP], [/^PULMO80BEXPGC\d{6}$/, IntegratedDevices.SP80B], [/^
|
|
5
|
+
export const integratedDevicesMap = new Map([[/^BP2 \d{4}$/, IntegratedDevices.BP2], [/^F4$/, IntegratedDevices.F4], [/^(?:F8|Lescale (?:F3|F4P|P3))(?: |$)/i, IntegratedDevices.LEPU_F4_SCALE], [/^Le S5$/, IntegratedDevices.S5], [/^(?:F5|MY_SCALE)(?: |$)/, IntegratedDevices.LEPU_F5_SCALE], [/^Oxyfit \d{4}$/, IntegratedDevices.SPO2], [/^mySense$/, IntegratedDevices.MYSENSE], [/^OxySmart \d{4}$/, IntegratedDevices.PC60WF], [/^AOJ-20A$/, IntegratedDevices.AOJ20A], [/^TAIDOC TD4216(?: \w+)?$/, IntegratedDevices.TAIDOC_GLUCOSE], [/^GlucoCheck Gold$/, IntegratedDevices.GLUCOCHECK], [/^FORA IR20$/, IntegratedDevices.FORATEMP], [/^TEMP$/, IntegratedDevices.ANDESFITTEMP], [/^two$/, IntegratedDevices.COSINUSS], [/^cmed$/, IntegratedDevices.CMED], [/^(?:BC01\d{4}|BC401BT)$/i, IntegratedDevices.BC01], [/^FORA W550$/, IntegratedDevices.FORA_SCALE], [/^GBS-2012-B$/, IntegratedDevices.RPM_SCALE], [/^TAIDOC TD1107$/, IntegratedDevices.CLEVERTEMP], [/^PULMO80BEXPGC\d{6}$/, IntegratedDevices.SP80B], [/^TeleBGM Gen1 BLE$/, IntegratedDevices.BGM], [/^Veroval duo control$/i, IntegratedDevices.VEROVAL_DUO_CONTROL], [/^Veroval ECG$/i, IntegratedDevices.VEROVAL_ECG], [/^Veroval Activity(?: Tracker)?$/i, IntegratedDevices.VEROVAL_ACTIVITY], [/^Genial-T31$/i, IntegratedDevices.GENIAL_T31], [/^ZH-SG-A606(?: |$)/i, IntegratedDevices.ZH_SG_A606], [/^BPW1(?: |$)/i, IntegratedDevices.BPW1], [/^Checkme Pod-WPS(?: |$)/i, IntegratedDevices.CHECKME_POD_WPS], [/^Checkme Pod(?: |$)/i, IntegratedDevices.CHECKME_POD], [/^AP-20-WPS(?: |$)/i, IntegratedDevices.AP20_WPS], [/^AP-20(?: |$)/i, IntegratedDevices.AP20], [/^PC-68B(?: |$)/i, IntegratedDevices.PC68B], [/^PC-100(?: |$)/i, IntegratedDevices.PC100], [/^BPM-188(?: |$)/i, IntegratedDevices.BPM188], [/^(?:PC_300SNT|GM_300SNT)(?:-BLE)?(?: |$)|^(?:PC-200|QC-200)(?:-BLE)?(?: |$)/i, IntegratedDevices.PC300], [/^PoctorM3102(?: |$)/i, IntegratedDevices.POCTOR_M3102], [/^Bioland-BGM(?: |$)/i, IntegratedDevices.BIOLAND_BGM], [lepuNameMatch("Checkme"), IntegratedDevices.CHECKME]]);
|
|
6
6
|
//# sourceMappingURL=integrated-devices-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lepuNameMatch","IntegratedDevices","integratedDevicesMap","Map","BP2","F4","SPO2","MYSENSE","PC60WF","AOJ20A","TAIDOC_GLUCOSE","GLUCOCHECK","FORATEMP","ANDESFITTEMP","COSINUSS","CMED","BC01","FORA_SCALE","RPM_SCALE","CLEVERTEMP","SP80B","
|
|
1
|
+
{"version":3,"names":["lepuNameMatch","IntegratedDevices","integratedDevicesMap","Map","BP2","F4","LEPU_F4_SCALE","S5","LEPU_F5_SCALE","SPO2","MYSENSE","PC60WF","AOJ20A","TAIDOC_GLUCOSE","GLUCOCHECK","FORATEMP","ANDESFITTEMP","COSINUSS","CMED","BC01","FORA_SCALE","RPM_SCALE","CLEVERTEMP","SP80B","BGM","VEROVAL_DUO_CONTROL","VEROVAL_ECG","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606","BPW1","CHECKME_POD_WPS","CHECKME_POD","AP20_WPS","AP20","PC68B","PC100","BPM188","PC300","POCTOR_M3102","BIOLAND_BGM","CHECKME"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/integrated-devices-map.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,6CAA0C;AACxE,SAASC,iBAAiB,QAAQ,gCAA6B;AAE/D,OAAO,MAAMC,oBAAoB,GAAG,IAAIC,GAAG,CAA4B,CACrE,CAAC,aAAa,EAAEF,iBAAiB,CAACG,GAAG,CAAC,EACtC,CAAC,MAAM,EAAEH,iBAAiB,CAACI,EAAE,CAAC,EAC9B,CACE,uCAAuC,EACvCJ,iBAAiB,CAACK,aAAa,CAChC,EACD,CAAC,SAAS,EAAEL,iBAAiB,CAACM,EAAE,CAAC,EACjC,CAAC,yBAAyB,EAAEN,iBAAiB,CAACO,aAAa,CAAC,EAC5D,CAAC,gBAAgB,EAAEP,iBAAiB,CAACQ,IAAI,CAAC,EAC1C,CAAC,WAAW,EAAER,iBAAiB,CAACS,OAAO,CAAC,EACxC,CAAC,kBAAkB,EAAET,iBAAiB,CAACU,MAAM,CAAC,EAC9C,CAAC,WAAW,EAAEV,iBAAiB,CAACW,MAAM,CAAC,EACvC,CAAC,0BAA0B,EAAEX,iBAAiB,CAACY,cAAc,CAAC,EAC9D,CAAC,mBAAmB,EAAEZ,iBAAiB,CAACa,UAAU,CAAC,EACnD,CAAC,aAAa,EAAEb,iBAAiB,CAACc,QAAQ,CAAC,EAC3C,CAAC,QAAQ,EAAEd,iBAAiB,CAACe,YAAY,CAAC,EAC1C,CAAC,OAAO,EAAEf,iBAAiB,CAACgB,QAAQ,CAAC,EACrC,CAAC,QAAQ,EAAEhB,iBAAiB,CAACiB,IAAI,CAAC,EAClC,CAAC,0BAA0B,EAAEjB,iBAAiB,CAACkB,IAAI,CAAC,EACpD,CAAC,aAAa,EAAElB,iBAAiB,CAACmB,UAAU,CAAC,EAC7C,CAAC,cAAc,EAAEnB,iBAAiB,CAACoB,SAAS,CAAC,EAC7C,CAAC,iBAAiB,EAAEpB,iBAAiB,CAACqB,UAAU,CAAC,EACjD,CAAC,sBAAsB,EAAErB,iBAAiB,CAACsB,KAAK,CAAC,EACjD,CAAC,oBAAoB,EAAEtB,iBAAiB,CAACuB,GAAG,CAAC,EAC7C,CAAC,wBAAwB,EAAEvB,iBAAiB,CAACwB,mBAAmB,CAAC,EACjE,CAAC,gBAAgB,EAAExB,iBAAiB,CAACyB,WAAW,CAAC,EACjD,CAAC,kCAAkC,EAAEzB,iBAAiB,CAAC0B,gBAAgB,CAAC,EACxE,CAAC,eAAe,EAAE1B,iBAAiB,CAAC2B,UAAU,CAAC,EAC/C,CAAC,qBAAqB,EAAE3B,iBAAiB,CAAC4B,UAAU,CAAC,EACrD,CAAC,eAAe,EAAE5B,iBAAiB,CAAC6B,IAAI,CAAC,EACzC,CAAC,0BAA0B,EAAE7B,iBAAiB,CAAC8B,eAAe,CAAC,EAC/D,CAAC,sBAAsB,EAAE9B,iBAAiB,CAAC+B,WAAW,CAAC,EACvD,CAAC,oBAAoB,EAAE/B,iBAAiB,CAACgC,QAAQ,CAAC,EAClD,CAAC,gBAAgB,EAAEhC,iBAAiB,CAACiC,IAAI,CAAC,EAC1C,CAAC,iBAAiB,EAAEjC,iBAAiB,CAACkC,KAAK,CAAC,EAC5C,CAAC,iBAAiB,EAAElC,iBAAiB,CAACmC,KAAK,CAAC,EAC5C,CAAC,kBAAkB,EAAEnC,iBAAiB,CAACoC,MAAM,CAAC,EAC9C,CACE,8EAA8E,EAC9EpC,iBAAiB,CAACqC,KAAK,CACxB,EACD,CAAC,sBAAsB,EAAErC,iBAAiB,CAACsC,YAAY,CAAC,EACxD,CAAC,sBAAsB,EAAEtC,iBAAiB,CAACuC,WAAW,CAAC,EACvD,CAACxC,aAAa,CAAC,SAAS,CAAC,EAAEC,iBAAiB,CAACwC,OAAO,CAAC,CACtD,CAAC","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js
CHANGED
|
@@ -12,6 +12,9 @@ const serviceUUIDs = services => services.map(service => normalize(service.uuid)
|
|
|
12
12
|
const BUILT_IN_SERVICE_UUIDS = {
|
|
13
13
|
[IntegratedDevices.BP2]: serviceUUIDs(bp2MainServices),
|
|
14
14
|
[IntegratedDevices.F4]: serviceUUIDs(f4MainServices),
|
|
15
|
+
[IntegratedDevices.S5]: serviceUUIDs(f4MainServices),
|
|
16
|
+
[IntegratedDevices.LEPU_F4_SCALE]: serviceUUIDs(f4MainServices),
|
|
17
|
+
[IntegratedDevices.LEPU_F5_SCALE]: ["0000ffb0-0000-1000-8000-00805f9b34fb"],
|
|
15
18
|
[IntegratedDevices.PC60WF]: serviceUUIDs(spo2MainServices),
|
|
16
19
|
[IntegratedDevices.BC01]: serviceUUIDs(bc01MainServices),
|
|
17
20
|
[IntegratedDevices.ZH_SG_A606]: serviceUUIDs(a606MainServices),
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","PC60WF","BC01","ZH_SG_A606","BPW1","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","forEach","acceptedDevice","deviceUUIDs","mainServices","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":";;AAEA,SAASA,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,sCAAmC;AAEpE,MAAMC,SAAS,GAAIC,IAAY,IAAaA,IAAI,CAACC,WAAW,CAAC,CAAC;AAE9D,MAAMC,YAAY,GAAIC,QAA6B,IACjDA,QAAQ,CAACC,GAAG,CAAEC,OAAO,IAAKN,SAAS,CAACM,OAAO,CAACL,IAAI,CAAC,CAAC;AAEpD,MAAMM,sBAAoE,GAAG;EAC3E,CAACd,iBAAiB,CAACe,GAAG,GAAGL,YAAY,CAACP,eAAe,CAAC;EACtD,CAACH,iBAAiB,CAACgB,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACiB,
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","forEach","acceptedDevice","deviceUUIDs","mainServices","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":";;AAEA,SAASA,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,sCAAmC;AAEpE,MAAMC,SAAS,GAAIC,IAAY,IAAaA,IAAI,CAACC,WAAW,CAAC,CAAC;AAE9D,MAAMC,YAAY,GAAIC,QAA6B,IACjDA,QAAQ,CAACC,GAAG,CAAEC,OAAO,IAAKN,SAAS,CAACM,OAAO,CAACL,IAAI,CAAC,CAAC;AAEpD,MAAMM,sBAAoE,GAAG;EAC3E,CAACd,iBAAiB,CAACe,GAAG,GAAGL,YAAY,CAACP,eAAe,CAAC;EACtD,CAACH,iBAAiB,CAACgB,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACiB,EAAE,GAAGP,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACkB,aAAa,GAAGR,YAAY,CAACL,cAAc,CAAC;EAC/D,CAACL,iBAAiB,CAACmB,aAAa,GAAG,CACjC,sCAAsC,CACvC;EACD,CAACnB,iBAAiB,CAACoB,MAAM,GAAGV,YAAY,CAACJ,gBAAgB,CAAC;EAC1D,CAACN,iBAAiB,CAACqB,IAAI,GAAGX,YAAY,CAACR,gBAAgB,CAAC;EACxD,CAACF,iBAAiB,CAACsB,UAAU,GAAGZ,YAAY,CAACT,gBAAgB,CAAC;EAC9D,CAACD,iBAAiB,CAACuB,IAAI,GAAGb,YAAY,CAACN,gBAAgB,CAAC;EACxD,CAACJ,iBAAiB,CAACwB,mBAAmB,GAAG,CACvC,sCAAsC,CACvC;EACD,CAACxB,iBAAiB,CAACyB,WAAW,GAAG,CAC/B,sCAAsC;AAE1C,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,eAA0C,EAC1CC,sBAAyC,GAAG,EAAE,KACjC;EACb,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,sBAAsB,CAAChB,GAAG,CAACL,SAAS,CAAC,CAAC;EAE5DoB,eAAe,CAACI,OAAO,CAAEC,cAAc,IAAK;IAC1C,MAAMC,WAAW,GACf,OAAOD,cAAc,KAAK,QAAQ,GAC9BlB,sBAAsB,CAACkB,cAAc,CAAC,GACtCtB,YAAY,CAAEsB,cAAc,CAA4BE,YAAY,CAAC;IAE3ED,WAAW,EAAEF,OAAO,CAAEvB,IAAI,IAAKqB,KAAK,CAACM,GAAG,CAAC5B,SAAS,CAACC,IAAI,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGqB,KAAK,CAAC;AACnB,CAAC","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ import { CheckmePodDevice } from "./devices/checkme/checkme-pod.device.js";
|
|
|
13
13
|
import { CheckmeProDevice } from "./devices/checkme/checkme.device.js";
|
|
14
14
|
import { CustomDevice } from "./devices/custom/custom.device.js";
|
|
15
15
|
import { F4Device } from "./devices/f4/f4.device.js";
|
|
16
|
+
import { F5ScaleDevice } from "./devices/f5/f5-scale.device.js";
|
|
16
17
|
import { GenialT31Device } from "./devices/genial-t31/genial-t31.device.js";
|
|
17
18
|
import { OxyfitDevice } from "./devices/spo/oxyfit.device.js";
|
|
18
19
|
import { SPO2Device } from "./devices/spo/spo2.device.js";
|
|
@@ -21,7 +22,12 @@ import { VerovalActivityDevice } from "./devices/veroval/veroval.activity-device
|
|
|
21
22
|
import { VerovalDuoControlDevice } from "./devices/veroval/veroval.duo-control-device.js";
|
|
22
23
|
import { VerovalEcgDevice } from "./devices/veroval/veroval.ecg-device.js";
|
|
23
24
|
import { Ap20Device } from "./devices/viatom/ap20.device.js";
|
|
25
|
+
import { BiolandBgmDevice } from "./devices/viatom/bioland.bgm.device.js";
|
|
24
26
|
import { Pc68bDevice } from "./devices/viatom/pc68b.device.js";
|
|
27
|
+
import { PoctorM3102Device } from "./devices/viatom/poctor.m3102.device.js";
|
|
28
|
+
import { Bpm188Device } from "./devices/viatom/viatom.bpm188.device.js";
|
|
29
|
+
import { Pc100Device } from "./devices/viatom/viatom.pc100.device.js";
|
|
30
|
+
import { Pc300Device } from "./devices/viatom/viatom.pc300.device.js";
|
|
25
31
|
|
|
26
32
|
/**
|
|
27
33
|
* The built-in names the SDK can actually build.
|
|
@@ -33,6 +39,9 @@ import { Pc68bDevice } from "./devices/viatom/pc68b.device.js";
|
|
|
33
39
|
const DEVICE_CLASSES = {
|
|
34
40
|
[IntegratedDevices.BP2]: BP2Device,
|
|
35
41
|
[IntegratedDevices.F4]: F4Device,
|
|
42
|
+
[IntegratedDevices.S5]: F4Device,
|
|
43
|
+
[IntegratedDevices.LEPU_F4_SCALE]: F4Device,
|
|
44
|
+
[IntegratedDevices.LEPU_F5_SCALE]: F5ScaleDevice,
|
|
36
45
|
[IntegratedDevices.PC60WF]: SPO2Device,
|
|
37
46
|
[IntegratedDevices.SPO2]: OxyfitDevice,
|
|
38
47
|
[IntegratedDevices.MYSENSE]: MySenseDevice,
|
|
@@ -52,7 +61,12 @@ const DEVICE_CLASSES = {
|
|
|
52
61
|
[IntegratedDevices.CHECKME_POD_WPS]: CheckmePodDevice,
|
|
53
62
|
[IntegratedDevices.AP20]: Ap20Device,
|
|
54
63
|
[IntegratedDevices.AP20_WPS]: Ap20Device,
|
|
55
|
-
[IntegratedDevices.PC68B]: Pc68bDevice
|
|
64
|
+
[IntegratedDevices.PC68B]: Pc68bDevice,
|
|
65
|
+
[IntegratedDevices.PC100]: Pc100Device,
|
|
66
|
+
[IntegratedDevices.BPM188]: Bpm188Device,
|
|
67
|
+
[IntegratedDevices.PC300]: Pc300Device,
|
|
68
|
+
[IntegratedDevices.POCTOR_M3102]: PoctorM3102Device,
|
|
69
|
+
[IntegratedDevices.BIOLAND_BGM]: BiolandBgmDevice
|
|
56
70
|
};
|
|
57
71
|
const collectCustomDevices = acceptedDevices => {
|
|
58
72
|
const customDevices = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolveDeviceKey","IntegratedDevices","isCustomDeviceDefinition","A606Device","Aoj20aDevice","BC01Device","BloodGlucoseDevice","BP2Device","Bpw1Device","CheckmePodDevice","CheckmeProDevice","CustomDevice","F4Device","GenialT31Device","OxyfitDevice","SPO2Device","MySenseDevice","VerovalActivityDevice","VerovalDuoControlDevice","VerovalEcgDevice","Ap20Device","Pc68bDevice","DEVICE_CLASSES","BP2","F4","PC60WF","SPO2","MYSENSE","BC01","AOJ20A","TAIDOC_GLUCOSE","GLUCOCHECK","BGM","VEROVAL_DUO_CONTROL","VEROVAL_ECG","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606","BPW1","CHECKME","CHECKME_POD","CHECKME_POD_WPS","AP20","AP20_WPS","PC68B","collectCustomDevices","acceptedDevices","customDevices","Map","matchers","Set","forEach","entry","index","Error","has","id","matchByService","nameMatch","source","set","add","DeviceCreator","deviceNameCache","CACHE_MAX_SIZE","constructor","acceptedDeviceNames","getDeviceName","foundName","serviceUUIDs","normalizedServices","map","uuid","toLowerCase","size","undefined","matchDeviceName","get","matched","cacheDeviceName","createDevice","params","String","deviceName","trim","device","name","localName","custom","deviceClass","Object","keys","join","destroy","clear","deviceType","firstKey","next","value","delete"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/device-creator.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,+BAA4B;AAM7D,SAASC,iBAAiB,QAAQ,gCAA6B;AAC/D,SAASC,wBAAwB,QAAQ,yCAAsC;AAE/E,SAASC,UAAU,QAAQ,+BAA4B;AACvD,SAASC,YAAY,QAAQ,6BAA0B;AACvD,SAASC,UAAU,QAAQ,+BAA4B;AACvD,SAASC,kBAAkB,QAAQ,iDAA8C;AACjF,SAASC,SAAS,QAAQ,6BAA0B;AACpD,SAASC,UAAU,QAAQ,+BAA4B;AAEvD,SAASC,gBAAgB,QAAQ,yCAAsC;AACvE,SAASC,gBAAgB,QAAQ,qCAAkC;AACnE,SAASC,YAAY,QAAQ,mCAAgC;AAC7D,SAASC,QAAQ,QAAQ,2BAAwB;AACjD,SAASC,eAAe,QAAQ,2CAAwC;AACxE,SAASC,YAAY,QAAQ,gCAA6B;AAC1D,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,qBAAqB,QAAQ,8CAA2C;AACjF,SAASC,uBAAuB,QAAQ,iDAA8C;AACtF,SAASC,gBAAgB,QAAQ,yCAAsC;AACvE,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,WAAW,QAAQ,kCAA+B;;
|
|
1
|
+
{"version":3,"names":["resolveDeviceKey","IntegratedDevices","isCustomDeviceDefinition","A606Device","Aoj20aDevice","BC01Device","BloodGlucoseDevice","BP2Device","Bpw1Device","CheckmePodDevice","CheckmeProDevice","CustomDevice","F4Device","F5ScaleDevice","GenialT31Device","OxyfitDevice","SPO2Device","MySenseDevice","VerovalActivityDevice","VerovalDuoControlDevice","VerovalEcgDevice","Ap20Device","BiolandBgmDevice","Pc68bDevice","PoctorM3102Device","Bpm188Device","Pc100Device","Pc300Device","DEVICE_CLASSES","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","SPO2","MYSENSE","BC01","AOJ20A","TAIDOC_GLUCOSE","GLUCOCHECK","BGM","VEROVAL_DUO_CONTROL","VEROVAL_ECG","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606","BPW1","CHECKME","CHECKME_POD","CHECKME_POD_WPS","AP20","AP20_WPS","PC68B","PC100","BPM188","PC300","POCTOR_M3102","BIOLAND_BGM","collectCustomDevices","acceptedDevices","customDevices","Map","matchers","Set","forEach","entry","index","Error","has","id","matchByService","nameMatch","source","set","add","DeviceCreator","deviceNameCache","CACHE_MAX_SIZE","constructor","acceptedDeviceNames","getDeviceName","foundName","serviceUUIDs","normalizedServices","map","uuid","toLowerCase","size","undefined","matchDeviceName","get","matched","cacheDeviceName","createDevice","params","String","deviceName","trim","device","name","localName","custom","deviceClass","Object","keys","join","destroy","clear","deviceType","firstKey","next","value","delete"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/device-creator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CaseType","BTManagedDevice","f4MainServices","F4Device","mainServices","validatePackage","handleDependentResult","parsingCase","measurementTypeKey","parsedData","caseType","bodyWeight","OTHER","STREAM","stuckDataTimeout","handleSuccessResult","successResult","RESULT","onError","Error","handleBodyWeightResult","error","checkIfHasError","onResult","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.device.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,6BAA0B;AAMnD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,cAAc,QAAQ,uBAAoB;
|
|
1
|
+
{"version":3,"names":["CaseType","BTManagedDevice","f4MainServices","F4Device","mainServices","validatePackage","handleDependentResult","parsingCase","measurementTypeKey","parsedData","caseType","bodyWeight","OTHER","STREAM","stuckDataTimeout","handleSuccessResult","successResult","RESULT","onError","Error","handleBodyWeightResult","error","checkIfHasError","onResult","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f4/f4.device.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,6BAA0B;AAMnD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,cAAc,QAAQ,uBAAoB;AAOnD,OAAO,MAAMC,QAAQ,SAASF,eAAe,CAAiB;EAClDG,YAAY,GAAeF,cAAc;EAGzCG,eAAe,GAA6CA,CAAA,KAAM;IAC1E,OAAO,IAAI;EACb,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYC,qBAAqB,GAM3BA,CAAC;IAAEC,WAAW;IAAEC,kBAAkB;IAAEC;EAAW,CAAC,KAAK;IACvD,MAAMC,QAAQ,GACZD,UAAU,CAACE,UAAU,KAAK,CAAC,GAAGX,QAAQ,CAACY,KAAK,GAAGZ,QAAQ,CAACa,MAAM;IAEhE,OAAO;MACLN,WAAW,EAAE;QACX,GAAGA,WAAW;QACdG;MACF,CAAC;MACDF,kBAAkB;MAClBC;IACF,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;EACYK,gBAAgB,GAAW,SAAS;EAEpCC,mBAAmBA,CAC3BC,aAEC,EACe;IAChB,IAAIA,aAAa,CAACN,QAAQ,KAAKV,QAAQ,CAACiB,MAAM,EAAE;MAC9C;IACF;IAEA,IAAI,CAACD,aAAa,CAACR,kBAAkB,EAAE;MACrC,IAAI,CAACU,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CH,aAAa,CAACN,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACU,sBAAsB,CAACJ,aAAa,CAAC;EAC5C;EAEQI,sBAAsBA,CAC5BJ,aAA6D,EACvD;IACN,MAAMK,KAAK,GAAG,IAAI,CAACC,eAAe,CAACN,aAAa,CAAC;IAEjD,IAAIK,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGP,aAAa,CAAC;EAChC;EAEQM,eAAeA,CACrBN,aAA6D,EACzC;IACpB,IAAIA,aAAa,CAACL,UAAU,KAAK,CAAC,EAAE;MAClC,OAAO,kDAAkD;IAC3D;IAEA,IAAIK,aAAa,CAACL,UAAU,KAAKa,SAAS,EAAE;MAC1C,OAAO,4CAA4C;IACrD;IAEA,IAAIR,aAAa,CAACL,UAAU,GAAG,GAAG,EAAE;MAClC,OAAO,4CAA4C;IACrD;IAEA,OAAOa,SAAS;EAClB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { F5_SCALE_NOTIFY, F5_SCALE_SERVICE, F5_SCALE_WRITE, F5ScaleFrameReader } from "./f5-scale.protocol.js";
|
|
7
|
+
import { F5ScaleSequencer } from "./f5-scale.sequencer.js";
|
|
8
|
+
const acceptNothing = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
export const f5ScaleMainServices = [{
|
|
13
|
+
uuid: F5_SCALE_SERVICE,
|
|
14
|
+
monitorUuids: [{
|
|
15
|
+
uuid: F5_SCALE_NOTIFY,
|
|
16
|
+
parsingModel: acceptNothing
|
|
17
|
+
}],
|
|
18
|
+
writeUuid: {
|
|
19
|
+
uuid: F5_SCALE_WRITE,
|
|
20
|
+
mainCommandUuid: "ac27"
|
|
21
|
+
}
|
|
22
|
+
}];
|
|
23
|
+
|
|
24
|
+
/** ViHealth F5/MY_SCALE body-scale history and live-reading driver. */
|
|
25
|
+
export class F5ScaleDevice extends BTManagedDevice {
|
|
26
|
+
mainServices = f5ScaleMainServices;
|
|
27
|
+
stuckDataTimeout = 60_000;
|
|
28
|
+
onStreamStart = undefined;
|
|
29
|
+
preferredMtu = 247;
|
|
30
|
+
constructor(device, params) {
|
|
31
|
+
super(device, params);
|
|
32
|
+
this.frameReader = new F5ScaleFrameReader();
|
|
33
|
+
this.createCommandSequencer = () => new F5ScaleSequencer({
|
|
34
|
+
onResult: result => this.onResult?.(result)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
handleSuccessResult() {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=f5-scale.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BTManagedDevice","F5_SCALE_NOTIFY","F5_SCALE_SERVICE","F5_SCALE_WRITE","F5ScaleFrameReader","F5ScaleSequencer","acceptNothing","caseValuePosition","cases","f5ScaleMainServices","uuid","monitorUuids","parsingModel","writeUuid","mainCommandUuid","F5ScaleDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","createCommandSequencer","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f5/f5-scale.device.ts"],"mappings":";;AAAA;;AASA,SAASA,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,kBAAkB,QACb,wBAAqB;AAC5B,SAASC,gBAAgB,QAAQ,yBAAsB;AAEvD,MAAMC,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE1D,OAAO,MAAMC,mBAA+B,GAAG,CAC7C;EACEC,IAAI,EAAER,gBAAgB;EACtBS,YAAY,EAAE,CAAC;IAAED,IAAI,EAAET,eAAe;IAAEW,YAAY,EAAEN;EAAc,CAAC,CAAC;EACtEO,SAAS,EAAE;IACTH,IAAI,EAAEP,cAAc;IACpBW,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACA,OAAO,MAAMC,aAAa,SAASf,eAAe,CAAkC;EACxEgB,YAAY,GAAGP,mBAAmB;EAClCQ,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAChBC,YAAY,GAAG,GAAG;EAE9BC,WAAWA,CAChBC,MAAc,EACdC,MAA2D,EAC3D;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIpB,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAACqB,sBAAsB,GAAG,MAC5B,IAAIpB,gBAAgB,CAAC;MACnBqB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { FrameReadStatus } from "../../../types/frame-read-status.js";
|
|
6
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
7
|
+
export const F5_SCALE_SERVICE = "0000ffb0-0000-1000-8000-00805f9b34fb";
|
|
8
|
+
export const F5_SCALE_WRITE = "0000ffb1-0000-1000-8000-00805f9b34fb";
|
|
9
|
+
export const F5_SCALE_NOTIFY = "0000ffb2-0000-1000-8000-00805f9b34fb";
|
|
10
|
+
export const F5ScaleCommand = {
|
|
11
|
+
weight: 0xd5,
|
|
12
|
+
history: 0xd8
|
|
13
|
+
};
|
|
14
|
+
const FRAME_LENGTH = 20;
|
|
15
|
+
const checksum = frame => frame.slice(2, -1).reduce((sum, value) => sum + hexToByte(value) & 0x1f, 0);
|
|
16
|
+
export const decodeF5ScaleFrame = frame => {
|
|
17
|
+
if (frame.length !== FRAME_LENGTH || hexToByte(frame[0] ?? "00") !== 0xac || hexToByte(frame[1] ?? "00") !== 0x27 || (hexToByte(frame.at(-1) ?? "00") & 0x1f) !== checksum(frame)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
command: hexToByte(frame[18] ?? "00"),
|
|
22
|
+
content: frame.slice(2, 18)
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export const parseF5WeightKg = content => {
|
|
26
|
+
if (content.length < 4) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const grams = hexToByte(content[3] ?? "00") + ((hexToByte(content[1] ?? "00") & 0x03) << 16) + (hexToByte(content[2] ?? "00") << 8);
|
|
30
|
+
return grams > 0 && grams <= 300_000 ? grams / 1000 : undefined;
|
|
31
|
+
};
|
|
32
|
+
export const parseF5HistoryDate = content => {
|
|
33
|
+
if (content.length < 9) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const seconds = hexToByte(content[4] ?? "00") + (hexToByte(content[1] ?? "00") << 24) + (hexToByte(content[2] ?? "00") << 16) + (hexToByte(content[3] ?? "00") << 8);
|
|
37
|
+
const date = new Date(seconds * 1000);
|
|
38
|
+
return Number.isNaN(date.getTime()) || seconds === 0 ? undefined : date;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** Reads the fixed 20-byte AC 27 frames used by F5/MY_SCALE. */
|
|
42
|
+
export class F5ScaleFrameReader {
|
|
43
|
+
readFrame(buffer) {
|
|
44
|
+
const start = buffer.findIndex((byte, index) => hexToByte(byte) === 0xac && hexToByte(buffer[index + 1] ?? "00") === 0x27);
|
|
45
|
+
if (start === -1) {
|
|
46
|
+
return {
|
|
47
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
48
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (start + FRAME_LENGTH > buffer.length) {
|
|
52
|
+
return {
|
|
53
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
54
|
+
consumedBytes: start
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const frame = buffer.slice(start, start + FRAME_LENGTH);
|
|
58
|
+
if (!decodeF5ScaleFrame(frame)) {
|
|
59
|
+
return {
|
|
60
|
+
status: FrameReadStatus.CORRUPT,
|
|
61
|
+
consumedBytes: start + 1
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
status: FrameReadStatus.COMPLETE,
|
|
66
|
+
consumedBytes: start + FRAME_LENGTH,
|
|
67
|
+
frame
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=f5-scale.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","hexToByte","F5_SCALE_SERVICE","F5_SCALE_WRITE","F5_SCALE_NOTIFY","F5ScaleCommand","weight","history","FRAME_LENGTH","checksum","frame","slice","reduce","sum","value","decodeF5ScaleFrame","length","at","undefined","command","content","parseF5WeightKg","grams","parseF5HistoryDate","seconds","date","Date","Number","isNaN","getTime","F5ScaleFrameReader","readFrame","buffer","start","findIndex","byte","index","status","INCOMPLETE","consumedBytes","Math","max","CORRUPT","COMPLETE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f5/f5-scale.protocol.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
5
|
+
import { decodeF5ScaleFrame, F5ScaleCommand, parseF5HistoryDate, parseF5WeightKg } from "./f5-scale.protocol.js";
|
|
6
|
+
/** Decodes passive live and history records from the F5 scale stream. */
|
|
7
|
+
export class F5ScaleSequencer {
|
|
8
|
+
constructor(params) {
|
|
9
|
+
this.params = params;
|
|
10
|
+
}
|
|
11
|
+
initialCommands = () => [];
|
|
12
|
+
isHistoryTransfer = () => true;
|
|
13
|
+
nextCommand = frame => {
|
|
14
|
+
const response = decodeF5ScaleFrame(frame);
|
|
15
|
+
if (!response) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const content = response.command === F5ScaleCommand.history ? response.content.slice(5, 9) : response.content;
|
|
19
|
+
const bodyWeight = parseF5WeightKg(content);
|
|
20
|
+
if (bodyWeight === undefined) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
this.params.onResult({
|
|
24
|
+
caseType: CaseType.RESULT,
|
|
25
|
+
measurementTypeKey: MeasurementTypeKey.bodyWeight,
|
|
26
|
+
bodyWeight,
|
|
27
|
+
recordedAt: response.command === F5ScaleCommand.history ? parseF5HistoryDate(response.content) ?? this.params.now?.() ?? new Date() : this.params.now?.() ?? new Date()
|
|
28
|
+
});
|
|
29
|
+
return undefined;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=f5-scale.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","decodeF5ScaleFrame","F5ScaleCommand","parseF5HistoryDate","parseF5WeightKg","F5ScaleSequencer","constructor","params","initialCommands","isHistoryTransfer","nextCommand","frame","response","undefined","content","command","history","slice","bodyWeight","onResult","caseType","RESULT","measurementTypeKey","recordedAt","now","Date"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/f5/f5-scale.sequencer.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,SACEC,kBAAkB,EAClBC,cAAc,EACdC,kBAAkB,EAClBC,eAAe,QACV,wBAAqB;AAY5B;AACA,OAAO,MAAMC,gBAAgB,CAA6B;EACjDC,WAAWA,CAAkBC,MAA6B,EAAE;IAAA,KAA/BA,MAA6B,GAA7BA,MAA6B;EAAG;EAE7DC,eAAe,GAAGA,CAAA,KAAmB,EAAE;EAEvCC,iBAAiB,GAAGA,CAAA,KAAe,IAAI;EAEvCC,WAAW,GAAIC,KAAwB,IAAgB;IAC5D,MAAMC,QAAQ,GAAGX,kBAAkB,CAACU,KAAK,CAAC;IAE1C,IAAI,CAACC,QAAQ,EAAE;MACb,OAAOC,SAAS;IAClB;IAEA,MAAMC,OAAO,GACXF,QAAQ,CAACG,OAAO,KAAKb,cAAc,CAACc,OAAO,GACvCJ,QAAQ,CAACE,OAAO,CAACG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5BL,QAAQ,CAACE,OAAO;IAEtB,MAAMI,UAAU,GAAGd,eAAe,CAACU,OAAO,CAAC;IAE3C,IAAII,UAAU,KAAKL,SAAS,EAAE;MAC5B,OAAOA,SAAS;IAClB;IAEA,IAAI,CAACN,MAAM,CAACY,QAAQ,CAAC;MACnBC,QAAQ,EAAEpB,QAAQ,CAACqB,MAAM;MACzBC,kBAAkB,EAAEvB,kBAAkB,CAACmB,UAAU;MACjDA,UAAU;MACVK,UAAU,EACRX,QAAQ,CAACG,OAAO,KAAKb,cAAc,CAACc,OAAO,GACvCb,kBAAkB,CAACS,QAAQ,CAACE,OAAO,CAAC,IACnC,IAAI,CAACP,MAAM,CAACiB,GAAG,GAAG,CAAC,IAAI,IAAIC,IAAI,CAAC,CAAE,GACnC,IAAI,CAAClB,MAAM,CAACiB,GAAG,GAAG,CAAC,IAAI,IAAIC,IAAI,CAAC;IACxC,CAAC,CAAC;IAEF,OAAOZ,SAAS;EAClB,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { BIOLAND_NOTIFY, BIOLAND_SERVICE, BIOLAND_WRITE, BiolandFrameReader } from "./bioland.bgm.protocol.js";
|
|
7
|
+
import { BiolandBgmSequencer } from "./bioland.bgm.sequencer.js";
|
|
8
|
+
const acceptNothing = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
export const biolandBgmMainServices = [{
|
|
13
|
+
uuid: BIOLAND_SERVICE,
|
|
14
|
+
monitorUuids: [{
|
|
15
|
+
uuid: BIOLAND_NOTIFY,
|
|
16
|
+
parsingModel: acceptNothing
|
|
17
|
+
}],
|
|
18
|
+
writeUuid: {
|
|
19
|
+
uuid: BIOLAND_WRITE,
|
|
20
|
+
mainCommandUuid: "5a"
|
|
21
|
+
}
|
|
22
|
+
}];
|
|
23
|
+
|
|
24
|
+
/** Bioland BGM glucose meter using the 5A length-prefixed protocol. */
|
|
25
|
+
export class BiolandBgmDevice extends BTManagedDevice {
|
|
26
|
+
mainServices = biolandBgmMainServices;
|
|
27
|
+
stuckDataTimeout = 30_000;
|
|
28
|
+
onStreamStart = undefined;
|
|
29
|
+
preferredMtu = 247;
|
|
30
|
+
constructor(device, params) {
|
|
31
|
+
super(device, params);
|
|
32
|
+
this.frameReader = new BiolandFrameReader();
|
|
33
|
+
this.createCommandSequencer = () => new BiolandBgmSequencer({
|
|
34
|
+
write: {
|
|
35
|
+
serviceUuid: BIOLAND_SERVICE,
|
|
36
|
+
characteristicUuid: BIOLAND_WRITE
|
|
37
|
+
},
|
|
38
|
+
onResult: result => this.onResult?.(result)
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
handleSuccessResult() {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=bioland.bgm.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BTManagedDevice","BIOLAND_NOTIFY","BIOLAND_SERVICE","BIOLAND_WRITE","BiolandFrameReader","BiolandBgmSequencer","acceptNothing","caseValuePosition","cases","biolandBgmMainServices","uuid","monitorUuids","parsingModel","writeUuid","mainCommandUuid","BiolandBgmDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","createCommandSequencer","write","serviceUuid","characteristicUuid","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.device.ts"],"mappings":";;AAAA;;AASA,SAASA,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,cAAc,EACdC,eAAe,EACfC,aAAa,EACbC,kBAAkB,QACb,2BAAwB;AAC/B,SAASC,mBAAmB,QAAQ,4BAAyB;AAE7D,MAAMC,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE1D,OAAO,MAAMC,sBAAkC,GAAG,CAChD;EACEC,IAAI,EAAER,eAAe;EACrBS,YAAY,EAAE,CAAC;IAAED,IAAI,EAAET,cAAc;IAAEW,YAAY,EAAEN;EAAc,CAAC,CAAC;EACrEO,SAAS,EAAE;IACTH,IAAI,EAAEP,aAAa;IACnBW,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACA,OAAO,MAAMC,gBAAgB,SAASf,eAAe,CAAgC;EACzEgB,YAAY,GAAGP,sBAAsB;EACrCQ,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAChBC,YAAY,GAAG,GAAG;EAE9BC,WAAWA,CAChBC,MAAc,EACdC,MAAyD,EACzD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIpB,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAACqB,sBAAsB,GAAG,MAC5B,IAAIpB,mBAAmB,CAAC;MACtBqB,KAAK,EAAE;QACLC,WAAW,EAAEzB,eAAe;QAC5B0B,kBAAkB,EAAEzB;MACtB,CAAC;MACD0B,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { FrameReadStatus } from "../../../types/frame-read-status.js";
|
|
6
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
7
|
+
export const BIOLAND_SERVICE = "00001000-0000-1000-8000-00805f9b34fb";
|
|
8
|
+
export const BIOLAND_WRITE = "00001001-0000-1000-8000-00805f9b34fb";
|
|
9
|
+
export const BIOLAND_NOTIFY = "00001002-0000-1000-8000-00805f9b34fb";
|
|
10
|
+
export const BiolandCommand = {
|
|
11
|
+
info: 0x00,
|
|
12
|
+
data: 0x03
|
|
13
|
+
};
|
|
14
|
+
const byte = value => (value & 0xff).toString(16).padStart(2, "0");
|
|
15
|
+
const checksum = frame => {
|
|
16
|
+
const sum = frame.slice(0, -1).reduce((total, value) => total + hexToByte(value), 2);
|
|
17
|
+
return byte(sum);
|
|
18
|
+
};
|
|
19
|
+
const command = (commandType, now = new Date()) => {
|
|
20
|
+
const frame = ["5a", "0a", byte(commandType), byte(now.getFullYear() - 2000), byte(now.getMonth() + 1), byte(now.getDate()), byte(now.getHours()), byte(now.getMinutes()), byte(now.getSeconds()), "00"];
|
|
21
|
+
frame[frame.length - 1] = checksum(frame);
|
|
22
|
+
return frame;
|
|
23
|
+
};
|
|
24
|
+
export const biolandGetInfo = now => command(BiolandCommand.info, now);
|
|
25
|
+
export const biolandGetData = now => command(BiolandCommand.data, now);
|
|
26
|
+
export const decodeBiolandResponse = bytes => {
|
|
27
|
+
if (hexToByte(bytes[0] ?? "00") !== 0x5a) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const length = hexToByte(bytes[1] ?? "00");
|
|
31
|
+
if (length < 4 || bytes.length < length) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const frame = bytes.slice(0, length);
|
|
35
|
+
if (checksum(frame) !== (frame.at(-1) ?? "00")) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
command: hexToByte(frame[2] ?? "00"),
|
|
40
|
+
content: frame.slice(3, -1)
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export const parseBiolandGlucoseResult = content => {
|
|
44
|
+
if (content.length < 8) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const year = 2000 + hexToByte(content[0] ?? "00");
|
|
48
|
+
const month = hexToByte(content[1] ?? "00");
|
|
49
|
+
const day = hexToByte(content[2] ?? "00");
|
|
50
|
+
const hour = hexToByte(content[3] ?? "00");
|
|
51
|
+
const minute = hexToByte(content[4] ?? "00");
|
|
52
|
+
const bloodGlucose = hexToByte(content[6] ?? "00") << 8 | hexToByte(content[7] ?? "00");
|
|
53
|
+
const recordedAt = new Date(year, month - 1, day, hour, minute);
|
|
54
|
+
if (month < 1 || month > 12 || day < 1 || day > 31 || hour > 23 || minute > 59 || recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day || bloodGlucose < 1 || bloodGlucose > 1_000) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
bloodGlucose,
|
|
59
|
+
recordedAt
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/** Reads split and concatenated 5A length-prefixed Bioland frames. */
|
|
64
|
+
export class BiolandFrameReader {
|
|
65
|
+
readFrame(buffer) {
|
|
66
|
+
const start = buffer.indexOf("5a");
|
|
67
|
+
if (start < 0) {
|
|
68
|
+
return {
|
|
69
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
70
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (start + 2 > buffer.length) {
|
|
74
|
+
return {
|
|
75
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
76
|
+
consumedBytes: start
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const length = hexToByte(buffer[start + 1] ?? "00");
|
|
80
|
+
if (length < 4) {
|
|
81
|
+
return {
|
|
82
|
+
status: FrameReadStatus.CORRUPT,
|
|
83
|
+
consumedBytes: start + 1
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (start + length > buffer.length) {
|
|
87
|
+
return {
|
|
88
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
89
|
+
consumedBytes: start
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const frame = buffer.slice(start, start + length);
|
|
93
|
+
if (checksum(frame) !== (frame.at(-1) ?? "00")) {
|
|
94
|
+
return {
|
|
95
|
+
status: FrameReadStatus.CORRUPT,
|
|
96
|
+
consumedBytes: start + 1
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
status: FrameReadStatus.COMPLETE,
|
|
101
|
+
consumedBytes: start + length,
|
|
102
|
+
frame
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=bioland.bgm.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","hexToByte","BIOLAND_SERVICE","BIOLAND_WRITE","BIOLAND_NOTIFY","BiolandCommand","info","data","byte","value","toString","padStart","checksum","frame","sum","slice","reduce","total","command","commandType","now","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","length","biolandGetInfo","biolandGetData","decodeBiolandResponse","bytes","undefined","at","content","parseBiolandGlucoseResult","year","month","day","hour","minute","bloodGlucose","recordedAt","BiolandFrameReader","readFrame","buffer","start","indexOf","status","INCOMPLETE","consumedBytes","Math","max","CORRUPT","COMPLETE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.protocol.ts"],"mappings":";;AAAA;;AAGA,SAASA,eAAe,QAAQ,qCAAkC;AAElE,SAASC,SAAS,QAAQ,+BAA4B;AAEtD,OAAO,MAAMC,eAAe,GAAG,sCAAsC;AACrE,OAAO,MAAMC,aAAa,GAAG,sCAAsC;AACnE,OAAO,MAAMC,cAAc,GAAG,sCAAsC;AAEpE,OAAO,MAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE;AACR,CAAU;AAEV,MAAMC,IAAI,GAAIC,KAAa,IACzB,CAACA,KAAK,GAAG,IAAI,EAAEC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAE9C,MAAMC,QAAQ,GAAIC,KAAwB,IAAa;EACrD,MAAMC,GAAG,GAAGD,KAAK,CACdE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACZC,MAAM,CAAC,CAACC,KAAK,EAAER,KAAK,KAAKQ,KAAK,GAAGhB,SAAS,CAACQ,KAAK,CAAC,EAAE,CAAC,CAAC;EAExD,OAAOD,IAAI,CAACM,GAAG,CAAC;AAClB,CAAC;AAED,MAAMI,OAAO,GAAGA,CAACC,WAAmB,EAAEC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC,KAAe;EACnE,MAAMR,KAAK,GAAG,CACZ,IAAI,EACJ,IAAI,EACJL,IAAI,CAACW,WAAW,CAAC,EACjBX,IAAI,CAACY,GAAG,CAACE,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,EAC9Bd,IAAI,CAACY,GAAG,CAACG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EACxBf,IAAI,CAACY,GAAG,CAACI,OAAO,CAAC,CAAC,CAAC,EACnBhB,IAAI,CAACY,GAAG,CAACK,QAAQ,CAAC,CAAC,CAAC,EACpBjB,IAAI,CAACY,GAAG,CAACM,UAAU,CAAC,CAAC,CAAC,EACtBlB,IAAI,CAACY,GAAG,CAACO,UAAU,CAAC,CAAC,CAAC,EACtB,IAAI,CACL;EAEDd,KAAK,CAACA,KAAK,CAACe,MAAM,GAAG,CAAC,CAAC,GAAGhB,QAAQ,CAACC,KAAK,CAAC;EAEzC,OAAOA,KAAK;AACd,CAAC;AAED,OAAO,MAAMgB,cAAc,GAAIT,GAAU,IACvCF,OAAO,CAACb,cAAc,CAACC,IAAI,EAAEc,GAAG,CAAC;AAEnC,OAAO,MAAMU,cAAc,GAAIV,GAAU,IACvCF,OAAO,CAACb,cAAc,CAACE,IAAI,EAAEa,GAAG,CAAC;AAOnC,OAAO,MAAMW,qBAAqB,GAChCC,KAAwB,IACQ;EAChC,IAAI/B,SAAS,CAAC+B,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;IACxC,OAAOC,SAAS;EAClB;EAEA,MAAML,MAAM,GAAG3B,SAAS,CAAC+B,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAE1C,IAAIJ,MAAM,GAAG,CAAC,IAAII,KAAK,CAACJ,MAAM,GAAGA,MAAM,EAAE;IACvC,OAAOK,SAAS;EAClB;EAEA,MAAMpB,KAAK,GAAGmB,KAAK,CAACjB,KAAK,CAAC,CAAC,EAAEa,MAAM,CAAC;EAEpC,IAAIhB,QAAQ,CAACC,KAAK,CAAC,MAAMA,KAAK,CAACqB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;IAC9C,OAAOD,SAAS;EAClB;EAEA,OAAO;IACLf,OAAO,EAAEjB,SAAS,CAACY,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpCsB,OAAO,EAAEtB,KAAK,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAC5B,CAAC;AACH,CAAC;AAOD,OAAO,MAAMqB,yBAAyB,GACpCD,OAA0B,IACW;EACrC,IAAIA,OAAO,CAACP,MAAM,GAAG,CAAC,EAAE;IACtB,OAAOK,SAAS;EAClB;EAEA,MAAMI,IAAI,GAAG,IAAI,GAAGpC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EACjD,MAAMG,KAAK,GAAGrC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAC3C,MAAMI,GAAG,GAAGtC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EACzC,MAAMK,IAAI,GAAGvC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAC1C,MAAMM,MAAM,GAAGxC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAE5C,MAAMO,YAAY,GACfzC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAIlC,SAAS,CAACkC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAEtE,MAAMQ,UAAU,GAAG,IAAItB,IAAI,CAACgB,IAAI,EAAEC,KAAK,GAAG,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,CAAC;EAE/D,IACEH,KAAK,GAAG,CAAC,IACTA,KAAK,GAAG,EAAE,IACVC,GAAG,GAAG,CAAC,IACPA,GAAG,GAAG,EAAE,IACRC,IAAI,GAAG,EAAE,IACTC,MAAM,GAAG,EAAE,IACXE,UAAU,CAACrB,WAAW,CAAC,CAAC,KAAKe,IAAI,IACjCM,UAAU,CAACpB,QAAQ,CAAC,CAAC,KAAKe,KAAK,GAAG,CAAC,IACnCK,UAAU,CAACnB,OAAO,CAAC,CAAC,KAAKe,GAAG,IAC5BG,YAAY,GAAG,CAAC,IAChBA,YAAY,GAAG,KAAK,EACpB;IACA,OAAOT,SAAS;EAClB;EAEA,OAAO;IAAES,YAAY;IAAEC;EAAW,CAAC;AACrC,CAAC;;AAED;AACA,OAAO,MAAMC,kBAAkB,CAAwB;EAC9CC,SAASA,CAACC,MAAyB,EAAmB;IAC3D,MAAMC,KAAK,GAAGD,MAAM,CAACE,OAAO,CAAC,IAAI,CAAC;IAElC,IAAID,KAAK,GAAG,CAAC,EAAE;MACb,OAAO;QACLE,MAAM,EAAEjD,eAAe,CAACkD,UAAU;QAClCC,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEP,MAAM,CAAClB,MAAM,GAAG,CAAC;MAC9C,CAAC;IACH;IAEA,IAAImB,KAAK,GAAG,CAAC,GAAGD,MAAM,CAAClB,MAAM,EAAE;MAC7B,OAAO;QAAEqB,MAAM,EAAEjD,eAAe,CAACkD,UAAU;QAAEC,aAAa,EAAEJ;MAAM,CAAC;IACrE;IAEA,MAAMnB,MAAM,GAAG3B,SAAS,CAAC6C,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAEnD,IAAInB,MAAM,GAAG,CAAC,EAAE;MACd,OAAO;QAAEqB,MAAM,EAAEjD,eAAe,CAACsD,OAAO;QAAEH,aAAa,EAAEJ,KAAK,GAAG;MAAE,CAAC;IACtE;IAEA,IAAIA,KAAK,GAAGnB,MAAM,GAAGkB,MAAM,CAAClB,MAAM,EAAE;MAClC,OAAO;QAAEqB,MAAM,EAAEjD,eAAe,CAACkD,UAAU;QAAEC,aAAa,EAAEJ;MAAM,CAAC;IACrE;IAEA,MAAMlC,KAAK,GAAGiC,MAAM,CAAC/B,KAAK,CAACgC,KAAK,EAAEA,KAAK,GAAGnB,MAAM,CAAC;IAEjD,IAAIhB,QAAQ,CAACC,KAAK,CAAC,MAAMA,KAAK,CAACqB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;MAC9C,OAAO;QAAEe,MAAM,EAAEjD,eAAe,CAACsD,OAAO;QAAEH,aAAa,EAAEJ,KAAK,GAAG;MAAE,CAAC;IACtE;IAEA,OAAO;MACLE,MAAM,EAAEjD,eAAe,CAACuD,QAAQ;MAChCJ,aAAa,EAAEJ,KAAK,GAAGnB,MAAM;MAC7Bf;IACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
5
|
+
import { biolandGetData, biolandGetInfo, BiolandCommand, decodeBiolandResponse, parseBiolandGlucoseResult } from "./bioland.bgm.protocol.js";
|
|
6
|
+
const command = (write, frame) => ({
|
|
7
|
+
...write,
|
|
8
|
+
frame,
|
|
9
|
+
withoutResponse: true
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
/** Reads the timestamped glucose result from a Bioland BGM. */
|
|
13
|
+
export class BiolandBgmSequencer {
|
|
14
|
+
phase = "info";
|
|
15
|
+
constructor(params) {
|
|
16
|
+
this.params = params;
|
|
17
|
+
}
|
|
18
|
+
initialCommands = () => [this.write(biolandGetInfo(this.params.now?.()))];
|
|
19
|
+
isHistoryTransfer = () => true;
|
|
20
|
+
isNormalDisconnect = () => this.phase === "done";
|
|
21
|
+
commandTimeoutMs = () => this.phase === "done" ? undefined : 5_000;
|
|
22
|
+
onCommandTimeout = () => {
|
|
23
|
+
this.phase = "done";
|
|
24
|
+
return {
|
|
25
|
+
terminal: true
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
nextCommand = frame => {
|
|
29
|
+
const response = decodeBiolandResponse(frame);
|
|
30
|
+
if (!response || this.phase === "done") {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
if (this.phase === "info" && response.command === BiolandCommand.info) {
|
|
34
|
+
this.phase = "data";
|
|
35
|
+
return [this.write(biolandGetData(this.params.now?.()))];
|
|
36
|
+
}
|
|
37
|
+
if (this.phase === "data" && response.command === BiolandCommand.data) {
|
|
38
|
+
const result = parseBiolandGlucoseResult(response.content);
|
|
39
|
+
if (result) {
|
|
40
|
+
this.params.onResult({
|
|
41
|
+
caseType: CaseType.RESULT,
|
|
42
|
+
measurementTypeKey: MeasurementTypeKey.bloodGlucose,
|
|
43
|
+
bloodGlucose: result.bloodGlucose,
|
|
44
|
+
recordedAt: result.recordedAt
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
this.phase = "done";
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
};
|
|
51
|
+
write = frame => command(this.params.write, frame);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=bioland.bgm.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","biolandGetData","biolandGetInfo","BiolandCommand","decodeBiolandResponse","parseBiolandGlucoseResult","command","write","frame","withoutResponse","BiolandBgmSequencer","phase","constructor","params","initialCommands","now","isHistoryTransfer","isNormalDisconnect","commandTimeoutMs","undefined","onCommandTimeout","terminal","nextCommand","response","info","data","result","content","onResult","caseType","RESULT","measurementTypeKey","bloodGlucose","recordedAt"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.ts"],"mappings":";;AAAA,SAAkCA,kBAAkB,QAAQ,YAAY;AAExE,SAASC,QAAQ,QAAQ,6BAA0B;AAQnD,SACEC,cAAc,EACdC,cAAc,EACdC,cAAc,EACdC,qBAAqB,EACrBC,yBAAyB,QACpB,2BAAwB;AAU/B,MAAMC,OAAO,GAAGA,CACdC,KAAmC,EACnCC,KAAwB,MACL;EAAE,GAAGD,KAAK;EAAEC,KAAK;EAAEC,eAAe,EAAE;AAAK,CAAC,CAAC;;AAEhE;AACA,OAAO,MAAMC,mBAAmB,CAA6B;EACnDC,KAAK,GAA6B,MAAM;EAEzCC,WAAWA,CAAkBC,MAA8B,EAAE;IAAA,KAAhCA,MAA8B,GAA9BA,MAA8B;EAAG;EAE9DC,eAAe,GAAGA,CAAA,KAAgC,CACvD,IAAI,CAACP,KAAK,CAACL,cAAc,CAAC,IAAI,CAACW,MAAM,CAACE,GAAG,GAAG,CAAC,CAAC,CAAC,CAChD;EAEMC,iBAAiB,GAAGA,CAAA,KAAe,IAAI;EAEvCC,kBAAkB,GAAGA,CAAA,KAAe,IAAI,CAACN,KAAK,KAAK,MAAM;EAEzDO,gBAAgB,GAAGA,CAAA,KACxB,IAAI,CAACP,KAAK,KAAK,MAAM,GAAGQ,SAAS,GAAG,KAAK;EAEpCC,gBAAgB,GAAGA,CAAA,KAA4B;IACpD,IAAI,CAACT,KAAK,GAAG,MAAM;IAEnB,OAAO;MAAEU,QAAQ,EAAE;IAAK,CAAC;EAC3B,CAAC;EAEMC,WAAW,GAChBd,KAAwB,IACiB;IACzC,MAAMe,QAAQ,GAAGnB,qBAAqB,CAACI,KAAK,CAAC;IAE7C,IAAI,CAACe,QAAQ,IAAI,IAAI,CAACZ,KAAK,KAAK,MAAM,EAAE;MACtC,OAAOQ,SAAS;IAClB;IAEA,IAAI,IAAI,CAACR,KAAK,KAAK,MAAM,IAAIY,QAAQ,CAACjB,OAAO,KAAKH,cAAc,CAACqB,IAAI,EAAE;MACrE,IAAI,CAACb,KAAK,GAAG,MAAM;MAEnB,OAAO,CAAC,IAAI,CAACJ,KAAK,CAACN,cAAc,CAAC,IAAI,CAACY,MAAM,CAACE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D;IAEA,IAAI,IAAI,CAACJ,KAAK,KAAK,MAAM,IAAIY,QAAQ,CAACjB,OAAO,KAAKH,cAAc,CAACsB,IAAI,EAAE;MACrE,MAAMC,MAAM,GAAGrB,yBAAyB,CAACkB,QAAQ,CAACI,OAAO,CAAC;MAE1D,IAAID,MAAM,EAAE;QACV,IAAI,CAACb,MAAM,CAACe,QAAQ,CAAC;UACnBC,QAAQ,EAAE7B,QAAQ,CAAC8B,MAAM;UACzBC,kBAAkB,EAAEhC,kBAAkB,CAACiC,YAAY;UACnDA,YAAY,EAAEN,MAAM,CAACM,YAAY;UACjCC,UAAU,EAAEP,MAAM,CAACO;QACrB,CAAC,CAAC;MACJ;MAEA,IAAI,CAACtB,KAAK,GAAG,MAAM;IACrB;IAEA,OAAOQ,SAAS;EAClB,CAAC;EAEOZ,KAAK,GAAIC,KAAwB,IACvCF,OAAO,CAAC,IAAI,CAACO,MAAM,CAACN,KAAK,EAAEC,KAAK,CAAC;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { POCTOR_NOTIFY, POCTOR_SERVICE, PoctorFrameReader } from "./poctor.m3102.protocol.js";
|
|
7
|
+
import { PoctorSequencer } from "./poctor.m3102.sequencer.js";
|
|
8
|
+
const acceptNothing = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
export const poctorM3102MainServices = [{
|
|
13
|
+
uuid: POCTOR_SERVICE,
|
|
14
|
+
monitorUuids: [{
|
|
15
|
+
uuid: POCTOR_NOTIFY,
|
|
16
|
+
parsingModel: acceptNothing
|
|
17
|
+
}]
|
|
18
|
+
}];
|
|
19
|
+
|
|
20
|
+
/** Poctor M3102 unsolicited glucose and uric-acid records. */
|
|
21
|
+
export class PoctorM3102Device extends BTManagedDevice {
|
|
22
|
+
mainServices = poctorM3102MainServices;
|
|
23
|
+
stuckDataTimeout = 60_000;
|
|
24
|
+
onStreamStart = undefined;
|
|
25
|
+
constructor(device, params) {
|
|
26
|
+
super(device, params);
|
|
27
|
+
this.frameReader = new PoctorFrameReader();
|
|
28
|
+
this.createCommandSequencer = () => new PoctorSequencer({
|
|
29
|
+
onResult: result => this.onResult?.(result)
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
handleSuccessResult() {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=poctor.m3102.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BTManagedDevice","POCTOR_NOTIFY","POCTOR_SERVICE","PoctorFrameReader","PoctorSequencer","acceptNothing","caseValuePosition","cases","poctorM3102MainServices","uuid","monitorUuids","parsingModel","PoctorM3102Device","mainServices","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","frameReader","createCommandSequencer","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/poctor.m3102.device.ts"],"mappings":";;AAAA;;AASA,SAASA,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,QACZ,4BAAyB;AAChC,SAASC,eAAe,QAAQ,6BAA0B;AAE1D,MAAMC,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE1D,OAAO,MAAMC,uBAAmC,GAAG,CACjD;EACEC,IAAI,EAAEP,cAAc;EACpBQ,YAAY,EAAE,CAAC;IAAED,IAAI,EAAER,aAAa;IAAEU,YAAY,EAAEN;EAAc,CAAC;AACrE,CAAC,CACF;;AAED;AACA,OAAO,MAAMO,iBAAiB,SAASZ,eAAe,CAAiC;EAC3Ea,YAAY,GAAGL,uBAAuB;EACtCM,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAChBC,MAAc,EACdC,MAA0D,EAC1D;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIjB,iBAAiB,CAAC,CAAC;IAC1C,IAAI,CAACkB,sBAAsB,GAAG,MAC5B,IAAIjB,eAAe,CAAC;MAClBkB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF","ignoreList":[]}
|