@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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.biolandBgmMainServices = exports.BiolandBgmDevice = void 0;
|
|
7
|
+
var _btManagedDevice = require("../bt-managed-device.js");
|
|
8
|
+
var _biolandBgmProtocol = require("./bioland.bgm.protocol.js");
|
|
9
|
+
var _biolandBgmSequencer = require("./bioland.bgm.sequencer.js");
|
|
10
|
+
/* eslint-disable import/group-exports */
|
|
11
|
+
|
|
12
|
+
const acceptNothing = {
|
|
13
|
+
caseValuePosition: [],
|
|
14
|
+
cases: []
|
|
15
|
+
};
|
|
16
|
+
const biolandBgmMainServices = exports.biolandBgmMainServices = [{
|
|
17
|
+
uuid: _biolandBgmProtocol.BIOLAND_SERVICE,
|
|
18
|
+
monitorUuids: [{
|
|
19
|
+
uuid: _biolandBgmProtocol.BIOLAND_NOTIFY,
|
|
20
|
+
parsingModel: acceptNothing
|
|
21
|
+
}],
|
|
22
|
+
writeUuid: {
|
|
23
|
+
uuid: _biolandBgmProtocol.BIOLAND_WRITE,
|
|
24
|
+
mainCommandUuid: "5a"
|
|
25
|
+
}
|
|
26
|
+
}];
|
|
27
|
+
|
|
28
|
+
/** Bioland BGM glucose meter using the 5A length-prefixed protocol. */
|
|
29
|
+
class BiolandBgmDevice extends _btManagedDevice.BTManagedDevice {
|
|
30
|
+
mainServices = biolandBgmMainServices;
|
|
31
|
+
stuckDataTimeout = 30_000;
|
|
32
|
+
onStreamStart = undefined;
|
|
33
|
+
preferredMtu = 247;
|
|
34
|
+
constructor(device, params) {
|
|
35
|
+
super(device, params);
|
|
36
|
+
this.frameReader = new _biolandBgmProtocol.BiolandFrameReader();
|
|
37
|
+
this.createCommandSequencer = () => new _biolandBgmSequencer.BiolandBgmSequencer({
|
|
38
|
+
write: {
|
|
39
|
+
serviceUuid: _biolandBgmProtocol.BIOLAND_SERVICE,
|
|
40
|
+
characteristicUuid: _biolandBgmProtocol.BIOLAND_WRITE
|
|
41
|
+
},
|
|
42
|
+
onResult: result => this.onResult?.(result)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
handleSuccessResult() {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.BiolandBgmDevice = BiolandBgmDevice;
|
|
50
|
+
//# sourceMappingURL=bioland.bgm.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_btManagedDevice","require","_biolandBgmProtocol","_biolandBgmSequencer","acceptNothing","caseValuePosition","cases","biolandBgmMainServices","exports","uuid","BIOLAND_SERVICE","monitorUuids","BIOLAND_NOTIFY","parsingModel","writeUuid","BIOLAND_WRITE","mainCommandUuid","BiolandBgmDevice","BTManagedDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","BiolandFrameReader","createCommandSequencer","BiolandBgmSequencer","write","serviceUuid","characteristicUuid","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.device.ts"],"mappings":";;;;;;AASA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AAMA,IAAAE,oBAAA,GAAAF,OAAA;AAjBA;;AAmBA,MAAMG,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEnD,MAAMC,sBAAkC,GAAAC,OAAA,CAAAD,sBAAA,GAAG,CAChD;EACEE,IAAI,EAAEC,mCAAe;EACrBC,YAAY,EAAE,CAAC;IAAEF,IAAI,EAAEG,kCAAc;IAAEC,YAAY,EAAET;EAAc,CAAC,CAAC;EACrEU,SAAS,EAAE;IACTL,IAAI,EAAEM,iCAAa;IACnBC,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACO,MAAMC,gBAAgB,SAASC,gCAAe,CAAgC;EACzEC,YAAY,GAAGZ,sBAAsB;EACrCa,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,IAAIC,sCAAkB,CAAC,CAAC;IAC3C,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIC,wCAAmB,CAAC;MACtBC,KAAK,EAAE;QACLC,WAAW,EAAEtB,mCAAe;QAC5BuB,kBAAkB,EAAElB;MACtB,CAAC;MACDmB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAAC5B,OAAA,CAAAS,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseBiolandGlucoseResult = exports.decodeBiolandResponse = exports.biolandGetInfo = exports.biolandGetData = exports.BiolandFrameReader = exports.BiolandCommand = exports.BIOLAND_WRITE = exports.BIOLAND_SERVICE = exports.BIOLAND_NOTIFY = void 0;
|
|
7
|
+
var _frameReadStatus = require("../../../types/frame-read-status.js");
|
|
8
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
9
|
+
/* eslint-disable import/group-exports */
|
|
10
|
+
|
|
11
|
+
const BIOLAND_SERVICE = exports.BIOLAND_SERVICE = "00001000-0000-1000-8000-00805f9b34fb";
|
|
12
|
+
const BIOLAND_WRITE = exports.BIOLAND_WRITE = "00001001-0000-1000-8000-00805f9b34fb";
|
|
13
|
+
const BIOLAND_NOTIFY = exports.BIOLAND_NOTIFY = "00001002-0000-1000-8000-00805f9b34fb";
|
|
14
|
+
const BiolandCommand = exports.BiolandCommand = {
|
|
15
|
+
info: 0x00,
|
|
16
|
+
data: 0x03
|
|
17
|
+
};
|
|
18
|
+
const byte = value => (value & 0xff).toString(16).padStart(2, "0");
|
|
19
|
+
const checksum = frame => {
|
|
20
|
+
const sum = frame.slice(0, -1).reduce((total, value) => total + (0, _hexToByte.hexToByte)(value), 2);
|
|
21
|
+
return byte(sum);
|
|
22
|
+
};
|
|
23
|
+
const command = (commandType, now = new Date()) => {
|
|
24
|
+
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"];
|
|
25
|
+
frame[frame.length - 1] = checksum(frame);
|
|
26
|
+
return frame;
|
|
27
|
+
};
|
|
28
|
+
const biolandGetInfo = now => command(BiolandCommand.info, now);
|
|
29
|
+
exports.biolandGetInfo = biolandGetInfo;
|
|
30
|
+
const biolandGetData = now => command(BiolandCommand.data, now);
|
|
31
|
+
exports.biolandGetData = biolandGetData;
|
|
32
|
+
const decodeBiolandResponse = bytes => {
|
|
33
|
+
if ((0, _hexToByte.hexToByte)(bytes[0] ?? "00") !== 0x5a) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const length = (0, _hexToByte.hexToByte)(bytes[1] ?? "00");
|
|
37
|
+
if (length < 4 || bytes.length < length) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const frame = bytes.slice(0, length);
|
|
41
|
+
if (checksum(frame) !== (frame.at(-1) ?? "00")) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
command: (0, _hexToByte.hexToByte)(frame[2] ?? "00"),
|
|
46
|
+
content: frame.slice(3, -1)
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
exports.decodeBiolandResponse = decodeBiolandResponse;
|
|
50
|
+
const parseBiolandGlucoseResult = content => {
|
|
51
|
+
if (content.length < 8) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const year = 2000 + (0, _hexToByte.hexToByte)(content[0] ?? "00");
|
|
55
|
+
const month = (0, _hexToByte.hexToByte)(content[1] ?? "00");
|
|
56
|
+
const day = (0, _hexToByte.hexToByte)(content[2] ?? "00");
|
|
57
|
+
const hour = (0, _hexToByte.hexToByte)(content[3] ?? "00");
|
|
58
|
+
const minute = (0, _hexToByte.hexToByte)(content[4] ?? "00");
|
|
59
|
+
const bloodGlucose = (0, _hexToByte.hexToByte)(content[6] ?? "00") << 8 | (0, _hexToByte.hexToByte)(content[7] ?? "00");
|
|
60
|
+
const recordedAt = new Date(year, month - 1, day, hour, minute);
|
|
61
|
+
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) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
bloodGlucose,
|
|
66
|
+
recordedAt
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/** Reads split and concatenated 5A length-prefixed Bioland frames. */
|
|
71
|
+
exports.parseBiolandGlucoseResult = parseBiolandGlucoseResult;
|
|
72
|
+
class BiolandFrameReader {
|
|
73
|
+
readFrame(buffer) {
|
|
74
|
+
const start = buffer.indexOf("5a");
|
|
75
|
+
if (start < 0) {
|
|
76
|
+
return {
|
|
77
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
78
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (start + 2 > buffer.length) {
|
|
82
|
+
return {
|
|
83
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
84
|
+
consumedBytes: start
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const length = (0, _hexToByte.hexToByte)(buffer[start + 1] ?? "00");
|
|
88
|
+
if (length < 4) {
|
|
89
|
+
return {
|
|
90
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
91
|
+
consumedBytes: start + 1
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (start + length > buffer.length) {
|
|
95
|
+
return {
|
|
96
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
97
|
+
consumedBytes: start
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const frame = buffer.slice(start, start + length);
|
|
101
|
+
if (checksum(frame) !== (frame.at(-1) ?? "00")) {
|
|
102
|
+
return {
|
|
103
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
104
|
+
consumedBytes: start + 1
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
status: _frameReadStatus.FrameReadStatus.COMPLETE,
|
|
109
|
+
consumedBytes: start + length,
|
|
110
|
+
frame
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.BiolandFrameReader = BiolandFrameReader;
|
|
115
|
+
//# sourceMappingURL=bioland.bgm.protocol.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.protocol.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_frameReadStatus","require","_hexToByte","BIOLAND_SERVICE","exports","BIOLAND_WRITE","BIOLAND_NOTIFY","BiolandCommand","info","data","byte","value","toString","padStart","checksum","frame","sum","slice","reduce","total","hexToByte","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","FrameReadStatus","INCOMPLETE","consumedBytes","Math","max","CORRUPT","COMPLETE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.protocol.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BiolandBgmSequencer = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _caseType = require("../../../types/case-type.js");
|
|
9
|
+
var _biolandBgmProtocol = require("./bioland.bgm.protocol.js");
|
|
10
|
+
const command = (write, frame) => ({
|
|
11
|
+
...write,
|
|
12
|
+
frame,
|
|
13
|
+
withoutResponse: true
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
/** Reads the timestamped glucose result from a Bioland BGM. */
|
|
17
|
+
class BiolandBgmSequencer {
|
|
18
|
+
phase = "info";
|
|
19
|
+
constructor(params) {
|
|
20
|
+
this.params = params;
|
|
21
|
+
}
|
|
22
|
+
initialCommands = () => [this.write((0, _biolandBgmProtocol.biolandGetInfo)(this.params.now?.()))];
|
|
23
|
+
isHistoryTransfer = () => true;
|
|
24
|
+
isNormalDisconnect = () => this.phase === "done";
|
|
25
|
+
commandTimeoutMs = () => this.phase === "done" ? undefined : 5_000;
|
|
26
|
+
onCommandTimeout = () => {
|
|
27
|
+
this.phase = "done";
|
|
28
|
+
return {
|
|
29
|
+
terminal: true
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
nextCommand = frame => {
|
|
33
|
+
const response = (0, _biolandBgmProtocol.decodeBiolandResponse)(frame);
|
|
34
|
+
if (!response || this.phase === "done") {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (this.phase === "info" && response.command === _biolandBgmProtocol.BiolandCommand.info) {
|
|
38
|
+
this.phase = "data";
|
|
39
|
+
return [this.write((0, _biolandBgmProtocol.biolandGetData)(this.params.now?.()))];
|
|
40
|
+
}
|
|
41
|
+
if (this.phase === "data" && response.command === _biolandBgmProtocol.BiolandCommand.data) {
|
|
42
|
+
const result = (0, _biolandBgmProtocol.parseBiolandGlucoseResult)(response.content);
|
|
43
|
+
if (result) {
|
|
44
|
+
this.params.onResult({
|
|
45
|
+
caseType: _caseType.CaseType.RESULT,
|
|
46
|
+
measurementTypeKey: _core.MeasurementTypeKey.bloodGlucose,
|
|
47
|
+
bloodGlucose: result.bloodGlucose,
|
|
48
|
+
recordedAt: result.recordedAt
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
this.phase = "done";
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
};
|
|
55
|
+
write = frame => command(this.params.write, frame);
|
|
56
|
+
}
|
|
57
|
+
exports.BiolandBgmSequencer = BiolandBgmSequencer;
|
|
58
|
+
//# sourceMappingURL=bioland.bgm.sequencer.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_caseType","_biolandBgmProtocol","command","write","frame","withoutResponse","BiolandBgmSequencer","phase","constructor","params","initialCommands","biolandGetInfo","now","isHistoryTransfer","isNormalDisconnect","commandTimeoutMs","undefined","onCommandTimeout","terminal","nextCommand","response","decodeBiolandResponse","BiolandCommand","info","biolandGetData","data","result","parseBiolandGlucoseResult","content","onResult","caseType","CaseType","RESULT","measurementTypeKey","MeasurementTypeKey","bloodGlucose","recordedAt","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/bioland.bgm.sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAQA,IAAAE,mBAAA,GAAAF,OAAA;AAgBA,MAAMG,OAAO,GAAGA,CACdC,KAAmC,EACnCC,KAAwB,MACL;EAAE,GAAGD,KAAK;EAAEC,KAAK;EAAEC,eAAe,EAAE;AAAK,CAAC,CAAC;;AAEhE;AACO,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,CAAC,IAAAQ,kCAAc,EAAC,IAAI,CAACF,MAAM,CAACG,GAAG,GAAG,CAAC,CAAC,CAAC,CAChD;EAEMC,iBAAiB,GAAGA,CAAA,KAAe,IAAI;EAEvCC,kBAAkB,GAAGA,CAAA,KAAe,IAAI,CAACP,KAAK,KAAK,MAAM;EAEzDQ,gBAAgB,GAAGA,CAAA,KACxB,IAAI,CAACR,KAAK,KAAK,MAAM,GAAGS,SAAS,GAAG,KAAK;EAEpCC,gBAAgB,GAAGA,CAAA,KAA4B;IACpD,IAAI,CAACV,KAAK,GAAG,MAAM;IAEnB,OAAO;MAAEW,QAAQ,EAAE;IAAK,CAAC;EAC3B,CAAC;EAEMC,WAAW,GAChBf,KAAwB,IACiB;IACzC,MAAMgB,QAAQ,GAAG,IAAAC,yCAAqB,EAACjB,KAAK,CAAC;IAE7C,IAAI,CAACgB,QAAQ,IAAI,IAAI,CAACb,KAAK,KAAK,MAAM,EAAE;MACtC,OAAOS,SAAS;IAClB;IAEA,IAAI,IAAI,CAACT,KAAK,KAAK,MAAM,IAAIa,QAAQ,CAAClB,OAAO,KAAKoB,kCAAc,CAACC,IAAI,EAAE;MACrE,IAAI,CAAChB,KAAK,GAAG,MAAM;MAEnB,OAAO,CAAC,IAAI,CAACJ,KAAK,CAAC,IAAAqB,kCAAc,EAAC,IAAI,CAACf,MAAM,CAACG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D;IAEA,IAAI,IAAI,CAACL,KAAK,KAAK,MAAM,IAAIa,QAAQ,CAAClB,OAAO,KAAKoB,kCAAc,CAACG,IAAI,EAAE;MACrE,MAAMC,MAAM,GAAG,IAAAC,6CAAyB,EAACP,QAAQ,CAACQ,OAAO,CAAC;MAE1D,IAAIF,MAAM,EAAE;QACV,IAAI,CAACjB,MAAM,CAACoB,QAAQ,CAAC;UACnBC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;UACzBC,kBAAkB,EAAEC,wBAAkB,CAACC,YAAY;UACnDA,YAAY,EAAET,MAAM,CAACS,YAAY;UACjCC,UAAU,EAAEV,MAAM,CAACU;QACrB,CAAC,CAAC;MACJ;MAEA,IAAI,CAAC7B,KAAK,GAAG,MAAM;IACrB;IAEA,OAAOS,SAAS;EAClB,CAAC;EAEOb,KAAK,GAAIC,KAAwB,IACvCF,OAAO,CAAC,IAAI,CAACO,MAAM,CAACN,KAAK,EAAEC,KAAK,CAAC;AACrC;AAACiC,OAAA,CAAA/B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.poctorM3102MainServices = exports.PoctorM3102Device = void 0;
|
|
7
|
+
var _btManagedDevice = require("../bt-managed-device.js");
|
|
8
|
+
var _poctorM3102Protocol = require("./poctor.m3102.protocol.js");
|
|
9
|
+
var _poctorM3102Sequencer = require("./poctor.m3102.sequencer.js");
|
|
10
|
+
/* eslint-disable import/group-exports */
|
|
11
|
+
|
|
12
|
+
const acceptNothing = {
|
|
13
|
+
caseValuePosition: [],
|
|
14
|
+
cases: []
|
|
15
|
+
};
|
|
16
|
+
const poctorM3102MainServices = exports.poctorM3102MainServices = [{
|
|
17
|
+
uuid: _poctorM3102Protocol.POCTOR_SERVICE,
|
|
18
|
+
monitorUuids: [{
|
|
19
|
+
uuid: _poctorM3102Protocol.POCTOR_NOTIFY,
|
|
20
|
+
parsingModel: acceptNothing
|
|
21
|
+
}]
|
|
22
|
+
}];
|
|
23
|
+
|
|
24
|
+
/** Poctor M3102 unsolicited glucose and uric-acid records. */
|
|
25
|
+
class PoctorM3102Device extends _btManagedDevice.BTManagedDevice {
|
|
26
|
+
mainServices = poctorM3102MainServices;
|
|
27
|
+
stuckDataTimeout = 60_000;
|
|
28
|
+
onStreamStart = undefined;
|
|
29
|
+
constructor(device, params) {
|
|
30
|
+
super(device, params);
|
|
31
|
+
this.frameReader = new _poctorM3102Protocol.PoctorFrameReader();
|
|
32
|
+
this.createCommandSequencer = () => new _poctorM3102Sequencer.PoctorSequencer({
|
|
33
|
+
onResult: result => this.onResult?.(result)
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
handleSuccessResult() {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.PoctorM3102Device = PoctorM3102Device;
|
|
41
|
+
//# sourceMappingURL=poctor.m3102.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_btManagedDevice","require","_poctorM3102Protocol","_poctorM3102Sequencer","acceptNothing","caseValuePosition","cases","poctorM3102MainServices","exports","uuid","POCTOR_SERVICE","monitorUuids","POCTOR_NOTIFY","parsingModel","PoctorM3102Device","BTManagedDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","frameReader","PoctorFrameReader","createCommandSequencer","PoctorSequencer","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/poctor.m3102.device.ts"],"mappings":";;;;;;AASA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAKA,IAAAE,qBAAA,GAAAF,OAAA;AAhBA;;AAkBA,MAAMG,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEnD,MAAMC,uBAAmC,GAAAC,OAAA,CAAAD,uBAAA,GAAG,CACjD;EACEE,IAAI,EAAEC,mCAAc;EACpBC,YAAY,EAAE,CAAC;IAAEF,IAAI,EAAEG,kCAAa;IAAEC,YAAY,EAAET;EAAc,CAAC;AACrE,CAAC,CACF;;AAED;AACO,MAAMU,iBAAiB,SAASC,gCAAe,CAAiC;EAC3EC,YAAY,GAAGT,uBAAuB;EACtCU,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,IAAIC,sCAAiB,CAAC,CAAC;IAC1C,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIC,qCAAe,CAAC;MAClBC,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAACrB,OAAA,CAAAM,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parsePoctorResult = exports.PoctorFrameReader = exports.POCTOR_WRITE = exports.POCTOR_SERVICE = exports.POCTOR_NOTIFY = void 0;
|
|
7
|
+
var _frameReadStatus = require("../../../types/frame-read-status.js");
|
|
8
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
9
|
+
/* eslint-disable import/group-exports */
|
|
10
|
+
|
|
11
|
+
const POCTOR_SERVICE = exports.POCTOR_SERVICE = "00010203-0405-0607-0809-0a0b0c0d1910";
|
|
12
|
+
const POCTOR_WRITE = exports.POCTOR_WRITE = "00010203-0405-0607-0809-0a0b0c0d2b11";
|
|
13
|
+
const POCTOR_NOTIFY = exports.POCTOR_NOTIFY = "00010203-0405-0607-0809-0a0b0c0d2b10";
|
|
14
|
+
const fromHex = value => (0, _hexToByte.hexToByte)(value);
|
|
15
|
+
const fromAscii = bytes => bytes.map(value => String.fromCharCode(fromHex(value))).join("");
|
|
16
|
+
const parsePoctorResult = frame => {
|
|
17
|
+
const text = fromAscii(frame).trim();
|
|
18
|
+
const fields = text.split(",");
|
|
19
|
+
if (fields.length < 7) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const type = Number.parseInt(fields[0] ?? "", 10);
|
|
23
|
+
const yearValue = Number.parseInt(fields[1] ?? "", 10);
|
|
24
|
+
const month = Number.parseInt(fields[2] ?? "", 10);
|
|
25
|
+
const day = Number.parseInt(fields[3] ?? "", 10);
|
|
26
|
+
const hour = Number.parseInt(fields[4] ?? "", 10);
|
|
27
|
+
const minute = Number.parseInt(fields[5] ?? "", 10);
|
|
28
|
+
const rawValue = Number.parseInt(fields[6] ?? "", 10);
|
|
29
|
+
const year = yearValue < 100 ? yearValue + 2_000 : yearValue;
|
|
30
|
+
const recordedAt = new Date(year, month - 1, day, hour, minute);
|
|
31
|
+
if (type !== 0 && type !== 1 || !Number.isFinite(rawValue) || month < 1 || month > 12 || day < 1 || day > 31 || hour < 0 || hour > 23 || minute < 0 || minute > 59 || recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
type: type,
|
|
36
|
+
value: type === 0 ? rawValue / 10 : rawValue,
|
|
37
|
+
recordedAt
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** Reads CRLF-terminated Poctor M3102 ASCII records. */
|
|
42
|
+
exports.parsePoctorResult = parsePoctorResult;
|
|
43
|
+
class PoctorFrameReader {
|
|
44
|
+
readFrame(buffer) {
|
|
45
|
+
const carriageReturn = buffer.indexOf("0d");
|
|
46
|
+
if (carriageReturn < 0 || buffer[carriageReturn + 1] !== "0a") {
|
|
47
|
+
return {
|
|
48
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
49
|
+
consumedBytes: 0
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const end = carriageReturn + 2;
|
|
53
|
+
return {
|
|
54
|
+
status: _frameReadStatus.FrameReadStatus.COMPLETE,
|
|
55
|
+
consumedBytes: end,
|
|
56
|
+
frame: buffer.slice(0, end)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.PoctorFrameReader = PoctorFrameReader;
|
|
61
|
+
//# sourceMappingURL=poctor.m3102.protocol.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.protocol.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_frameReadStatus","require","_hexToByte","POCTOR_SERVICE","exports","POCTOR_WRITE","POCTOR_NOTIFY","fromHex","value","hexToByte","fromAscii","bytes","map","String","fromCharCode","join","parsePoctorResult","frame","text","trim","fields","split","length","undefined","type","Number","parseInt","yearValue","month","day","hour","minute","rawValue","year","recordedAt","Date","isFinite","getFullYear","getMonth","getDate","PoctorFrameReader","readFrame","buffer","carriageReturn","indexOf","status","FrameReadStatus","INCOMPLETE","consumedBytes","end","COMPLETE","slice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/poctor.m3102.protocol.ts"],"mappings":";;;;;;AAGA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AALA;;AAOO,MAAME,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,sCAAsC;AAC7D,MAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG,sCAAsC;AAC3D,MAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,sCAAsC;AAQnE,MAAMC,OAAO,GAAIC,KAAa,IAAa,IAAAC,oBAAS,EAACD,KAAK,CAAC;AAE3D,MAAME,SAAS,GAAIC,KAAwB,IACzCA,KAAK,CAACC,GAAG,CAAEJ,KAAK,IAAKK,MAAM,CAACC,YAAY,CAACP,OAAO,CAACC,KAAK,CAAC,CAAC,CAAC,CAACO,IAAI,CAAC,EAAE,CAAC;AAE7D,MAAMC,iBAAiB,GAC5BC,KAAwB,IACK;EAC7B,MAAMC,IAAI,GAAGR,SAAS,CAACO,KAAK,CAAC,CAACE,IAAI,CAAC,CAAC;EACpC,MAAMC,MAAM,GAAGF,IAAI,CAACG,KAAK,CAAC,GAAG,CAAC;EAE9B,IAAID,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;IACrB,OAAOC,SAAS;EAClB;EAEA,MAAMC,IAAI,GAAGC,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EACjD,MAAMO,SAAS,GAAGF,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EACtD,MAAMQ,KAAK,GAAGH,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EAClD,MAAMS,GAAG,GAAGJ,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EAChD,MAAMU,IAAI,GAAGL,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EACjD,MAAMW,MAAM,GAAGN,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EACnD,MAAMY,QAAQ,GAAGP,MAAM,CAACC,QAAQ,CAACN,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EACrD,MAAMa,IAAI,GAAGN,SAAS,GAAG,GAAG,GAAGA,SAAS,GAAG,KAAK,GAAGA,SAAS;EAC5D,MAAMO,UAAU,GAAG,IAAIC,IAAI,CAACF,IAAI,EAAEL,KAAK,GAAG,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,CAAC;EAE/D,IACGP,IAAI,KAAK,CAAC,IAAIA,IAAI,KAAK,CAAC,IACzB,CAACC,MAAM,CAACW,QAAQ,CAACJ,QAAQ,CAAC,IAC1BJ,KAAK,GAAG,CAAC,IACTA,KAAK,GAAG,EAAE,IACVC,GAAG,GAAG,CAAC,IACPA,GAAG,GAAG,EAAE,IACRC,IAAI,GAAG,CAAC,IACRA,IAAI,GAAG,EAAE,IACTC,MAAM,GAAG,CAAC,IACVA,MAAM,GAAG,EAAE,IACXG,UAAU,CAACG,WAAW,CAAC,CAAC,KAAKJ,IAAI,IACjCC,UAAU,CAACI,QAAQ,CAAC,CAAC,KAAKV,KAAK,GAAG,CAAC,IACnCM,UAAU,CAACK,OAAO,CAAC,CAAC,KAAKV,GAAG,EAC5B;IACA,OAAON,SAAS;EAClB;EAEA,OAAO;IACLC,IAAI,EAAEA,IAAa;IACnBhB,KAAK,EAAEgB,IAAI,KAAK,CAAC,GAAGQ,QAAQ,GAAG,EAAE,GAAGA,QAAQ;IAC5CE;EACF,CAAC;AACH,CAAC;;AAED;AAAA9B,OAAA,CAAAY,iBAAA,GAAAA,iBAAA;AACO,MAAMwB,iBAAiB,CAAwB;EAC7CC,SAASA,CAACC,MAAyB,EAAmB;IAC3D,MAAMC,cAAc,GAAGD,MAAM,CAACE,OAAO,CAAC,IAAI,CAAC;IAE3C,IAAID,cAAc,GAAG,CAAC,IAAID,MAAM,CAACC,cAAc,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;MAC7D,OAAO;QACLE,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAE;MACjB,CAAC;IACH;IAEA,MAAMC,GAAG,GAAGN,cAAc,GAAG,CAAC;IAE9B,OAAO;MACLE,MAAM,EAAEC,gCAAe,CAACI,QAAQ;MAChCF,aAAa,EAAEC,GAAG;MAClBhC,KAAK,EAAEyB,MAAM,CAACS,KAAK,CAAC,CAAC,EAAEF,GAAG;IAC5B,CAAC;EACH;AACF;AAAC7C,OAAA,CAAAoC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PoctorSequencer = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _caseType = require("../../../types/case-type.js");
|
|
9
|
+
var _poctorM3102Protocol = require("./poctor.m3102.protocol.js");
|
|
10
|
+
/** Listens for Poctor's unsolicited CRLF records; it has no safe poll command. */
|
|
11
|
+
class PoctorSequencer {
|
|
12
|
+
constructor(params) {
|
|
13
|
+
this.params = params;
|
|
14
|
+
}
|
|
15
|
+
initialCommands = () => [];
|
|
16
|
+
nextCommand = frame => {
|
|
17
|
+
const result = (0, _poctorM3102Protocol.parsePoctorResult)(frame);
|
|
18
|
+
if (!result) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if (result.type === 0) {
|
|
22
|
+
this.params.onResult({
|
|
23
|
+
caseType: _caseType.CaseType.RESULT,
|
|
24
|
+
measurementTypeKey: _core.MeasurementTypeKey.bloodGlucose,
|
|
25
|
+
bloodGlucose: result.value,
|
|
26
|
+
recordedAt: result.recordedAt
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
this.params.onResult({
|
|
30
|
+
caseType: _caseType.CaseType.RESULT,
|
|
31
|
+
measurementTypeKey: _core.MeasurementTypeKey.uricAcid,
|
|
32
|
+
uro: result.value,
|
|
33
|
+
urineValues: [],
|
|
34
|
+
recordedAt: result.recordedAt
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.PoctorSequencer = PoctorSequencer;
|
|
41
|
+
//# sourceMappingURL=poctor.m3102.sequencer.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_caseType","_poctorM3102Protocol","PoctorSequencer","constructor","params","initialCommands","nextCommand","frame","result","parsePoctorResult","undefined","type","onResult","caseType","CaseType","RESULT","measurementTypeKey","MeasurementTypeKey","bloodGlucose","value","recordedAt","uricAcid","uro","urineValues","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/poctor.m3102.sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAMA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,oBAAA,GAAAF,OAAA;AAQA;AACO,MAAMG,eAAe,CAA6B;EAChDC,WAAWA,CAAkBC,MAA6B,EAAE;IAAA,KAA/BA,MAA6B,GAA7BA,MAA6B;EAAG;EAE7DC,eAAe,GAAGA,CAAA,KAAgC,EAAE;EAEpDC,WAAW,GAAIC,KAAwB,IAAgB;IAC5D,MAAMC,MAAM,GAAG,IAAAC,sCAAiB,EAACF,KAAK,CAAC;IAEvC,IAAI,CAACC,MAAM,EAAE;MACX,OAAOE,SAAS;IAClB;IAEA,IAAIF,MAAM,CAACG,IAAI,KAAK,CAAC,EAAE;MACrB,IAAI,CAACP,MAAM,CAACQ,QAAQ,CAAC;QACnBC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,kBAAkB,EAAEC,wBAAkB,CAACC,YAAY;QACnDA,YAAY,EAAEV,MAAM,CAACW,KAAK;QAC1BC,UAAU,EAAEZ,MAAM,CAACY;MACrB,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAI,CAAChB,MAAM,CAACQ,QAAQ,CAAC;QACnBC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,kBAAkB,EAAEC,wBAAkB,CAACI,QAAQ;QAC/CC,GAAG,EAAEd,MAAM,CAACW,KAAK;QACjBI,WAAW,EAAE,EAAE;QACfH,UAAU,EAAEZ,MAAM,CAACY;MACrB,CAAC,CAAC;IACJ;IAEA,OAAOV,SAAS;EAClB,CAAC;AACH;AAACc,OAAA,CAAAtB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.bpm188MainServices = exports.Bpm188Device = void 0;
|
|
7
|
+
var _btManagedDevice = require("../bt-managed-device.js");
|
|
8
|
+
var _viatomBpm188Protocol = require("./viatom.bpm188.protocol.js");
|
|
9
|
+
var _viatomBpm188Sequencer = require("./viatom.bpm188.sequencer.js");
|
|
10
|
+
/* eslint-disable import/group-exports */
|
|
11
|
+
|
|
12
|
+
const acceptNothing = {
|
|
13
|
+
caseValuePosition: [],
|
|
14
|
+
cases: []
|
|
15
|
+
};
|
|
16
|
+
const bpm188MainServices = exports.bpm188MainServices = [{
|
|
17
|
+
uuid: _viatomBpm188Protocol.BPM188_SERVICE,
|
|
18
|
+
monitorUuids: [{
|
|
19
|
+
uuid: _viatomBpm188Protocol.BPM188_NOTIFY,
|
|
20
|
+
parsingModel: acceptNothing
|
|
21
|
+
}],
|
|
22
|
+
writeUuid: {
|
|
23
|
+
uuid: _viatomBpm188Protocol.BPM188_WRITE,
|
|
24
|
+
mainCommandUuid: "0240dc"
|
|
25
|
+
}
|
|
26
|
+
}];
|
|
27
|
+
|
|
28
|
+
/** Viatom B02T/B02S blood-pressure history, exposed as BPM-188. */
|
|
29
|
+
class Bpm188Device extends _btManagedDevice.BTManagedDevice {
|
|
30
|
+
mainServices = bpm188MainServices;
|
|
31
|
+
stuckDataTimeout = 180_000;
|
|
32
|
+
onStreamStart = undefined;
|
|
33
|
+
preferredMtu = 247;
|
|
34
|
+
constructor(device, params) {
|
|
35
|
+
super(device, params);
|
|
36
|
+
this.frameReader = new _viatomBpm188Protocol.Bpm188FrameReader();
|
|
37
|
+
this.createCommandSequencer = () => new _viatomBpm188Sequencer.Bpm188Sequencer({
|
|
38
|
+
write: {
|
|
39
|
+
serviceUuid: _viatomBpm188Protocol.BPM188_SERVICE,
|
|
40
|
+
characteristicUuid: _viatomBpm188Protocol.BPM188_WRITE
|
|
41
|
+
},
|
|
42
|
+
onResult: result => this.onResult?.(result)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
handleSuccessResult() {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.Bpm188Device = Bpm188Device;
|
|
50
|
+
//# sourceMappingURL=viatom.bpm188.device.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.device.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_btManagedDevice","require","_viatomBpm188Protocol","_viatomBpm188Sequencer","acceptNothing","caseValuePosition","cases","bpm188MainServices","exports","uuid","BPM188_SERVICE","monitorUuids","BPM188_NOTIFY","parsingModel","writeUuid","BPM188_WRITE","mainCommandUuid","Bpm188Device","BTManagedDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","Bpm188FrameReader","createCommandSequencer","Bpm188Sequencer","write","serviceUuid","characteristicUuid","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.bpm188.device.ts"],"mappings":";;;;;;AASA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAMA,IAAAE,sBAAA,GAAAF,OAAA;AAjBA;;AAmBA,MAAMG,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAEnD,MAAMC,kBAA8B,GAAAC,OAAA,CAAAD,kBAAA,GAAG,CAC5C;EACEE,IAAI,EAAEC,oCAAc;EACpBC,YAAY,EAAE,CAAC;IAAEF,IAAI,EAAEG,mCAAa;IAAEC,YAAY,EAAET;EAAc,CAAC,CAAC;EACpEU,SAAS,EAAE;IACTL,IAAI,EAAEM,kCAAY;IAClBC,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACO,MAAMC,YAAY,SAASC,gCAAe,CAA2B;EAChEC,YAAY,GAAGZ,kBAAkB;EACjCa,gBAAgB,GAAG,OAAO;EAC1BC,aAAa,GAAGC,SAAS;EAChBC,YAAY,GAAG,GAAG;EAE9BC,WAAWA,CAChBC,MAAc,EACdC,MAAoD,EACpD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIC,uCAAiB,CAAC,CAAC;IAC1C,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIC,sCAAe,CAAC;MAClBC,KAAK,EAAE;QACLC,WAAW,EAAEtB,oCAAc;QAC3BuB,kBAAkB,EAAElB;MACtB,CAAC;MACDmB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAAC5B,OAAA,CAAAS,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseBpm188Record = exports.decodeBpm188Response = exports.calculateBpm188Checksum = exports.bpm188SyncTime = exports.bpm188GetRecords = exports.bpm188GetInfo = exports.Bpm188MessageType = exports.Bpm188FrameReader = exports.BPM188_WRITE = exports.BPM188_SERVICE = exports.BPM188_NOTIFY = void 0;
|
|
7
|
+
var _frameReadStatus = require("../../../types/frame-read-status.js");
|
|
8
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
9
|
+
/* eslint-disable import/group-exports */
|
|
10
|
+
|
|
11
|
+
const BPM188_SERVICE = exports.BPM188_SERVICE = "000018f0-0000-1000-8000-00805f9b34fb";
|
|
12
|
+
const BPM188_WRITE = exports.BPM188_WRITE = "00002af1-0000-1000-8000-00805f9b34fb";
|
|
13
|
+
const BPM188_NOTIFY = exports.BPM188_NOTIFY = "00002af0-0000-1000-8000-00805f9b34fb";
|
|
14
|
+
const Bpm188MessageType = exports.Bpm188MessageType = {
|
|
15
|
+
info: 0xab,
|
|
16
|
+
syncTime: 0xb0,
|
|
17
|
+
records: 0xb1,
|
|
18
|
+
recordsEnd: 0xb3
|
|
19
|
+
};
|
|
20
|
+
const byte = value => (value & 0xff).toString(16).padStart(2, "0");
|
|
21
|
+
|
|
22
|
+
/** The B02T/B02S checksum starts with 0x40 and XORs bytes 2 through n-2. */
|
|
23
|
+
const calculateBpm188Checksum = bytes => {
|
|
24
|
+
let checksum = 0x40;
|
|
25
|
+
for (let index = 2; index < bytes.length - 1; index += 1) {
|
|
26
|
+
checksum ^= (0, _hexToByte.hexToByte)(bytes[index] ?? "00");
|
|
27
|
+
}
|
|
28
|
+
return byte(checksum);
|
|
29
|
+
};
|
|
30
|
+
exports.calculateBpm188Checksum = calculateBpm188Checksum;
|
|
31
|
+
const command = (type, payload = []) => {
|
|
32
|
+
const frame = ["02", "40", "dc", byte(payload.length + 1), byte(type), ...payload, "00"];
|
|
33
|
+
frame[frame.length - 1] = calculateBpm188Checksum(frame);
|
|
34
|
+
return frame;
|
|
35
|
+
};
|
|
36
|
+
const bpm188GetInfo = () => command(Bpm188MessageType.info);
|
|
37
|
+
exports.bpm188GetInfo = bpm188GetInfo;
|
|
38
|
+
const bpm188SyncTime = (now = new Date()) => command(Bpm188MessageType.syncTime, [byte(now.getFullYear() - 2000), byte(now.getMonth() + 1), byte(now.getDate()), byte(now.getHours()), byte(now.getMinutes()), byte(now.getSeconds())]);
|
|
39
|
+
exports.bpm188SyncTime = bpm188SyncTime;
|
|
40
|
+
const bpm188GetRecords = () => command(Bpm188MessageType.records, ["00", "00", "00", "00"]);
|
|
41
|
+
exports.bpm188GetRecords = bpm188GetRecords;
|
|
42
|
+
const decodeBpm188Response = bytes => {
|
|
43
|
+
if ((0, _hexToByte.hexToByte)(bytes[0] ?? "00") !== 0x02 || (0, _hexToByte.hexToByte)(bytes[1] ?? "00") !== 0x40 || (0, _hexToByte.hexToByte)(bytes[2] ?? "00") !== 0xdd) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const payloadLength = (0, _hexToByte.hexToByte)(bytes[3] ?? "00");
|
|
47
|
+
const expectedLength = payloadLength + 5;
|
|
48
|
+
if (payloadLength < 1 || bytes.length < expectedLength) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const frame = bytes.slice(0, expectedLength);
|
|
52
|
+
if (frame.at(-1) !== calculateBpm188Checksum(frame)) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
type: (0, _hexToByte.hexToByte)(frame[4] ?? "00"),
|
|
57
|
+
content: frame.slice(5, -1)
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
exports.decodeBpm188Response = decodeBpm188Response;
|
|
61
|
+
const validDate = content => {
|
|
62
|
+
const year = 2000 + (0, _hexToByte.hexToByte)(content[9] ?? "00");
|
|
63
|
+
const month = (0, _hexToByte.hexToByte)(content[10] ?? "00");
|
|
64
|
+
const day = (0, _hexToByte.hexToByte)(content[11] ?? "00");
|
|
65
|
+
const hour = (0, _hexToByte.hexToByte)(content[12] ?? "00");
|
|
66
|
+
const minute = (0, _hexToByte.hexToByte)(content[13] ?? "00");
|
|
67
|
+
const date = new Date(year, month - 1, day, hour, minute, 0, 0);
|
|
68
|
+
if (month < 1 || month > 12 || day < 1 || day > 31 || hour > 23 || minute > 59 || date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day || date.getHours() !== hour || date.getMinutes() !== minute) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return date;
|
|
72
|
+
};
|
|
73
|
+
const parseBpm188Record = content => {
|
|
74
|
+
if (content.length < 14) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
const systolic = (0, _hexToByte.hexToByte)(content[0] ?? "00") << 8 | (0, _hexToByte.hexToByte)(content[1] ?? "00");
|
|
78
|
+
const diastolic = (0, _hexToByte.hexToByte)(content[2] ?? "00") << 8 | (0, _hexToByte.hexToByte)(content[3] ?? "00");
|
|
79
|
+
const heartRate = (0, _hexToByte.hexToByte)(content[5] ?? "00");
|
|
80
|
+
const recordedAt = validDate(content);
|
|
81
|
+
if (!recordedAt || systolic < 20 || systolic > 300 || diastolic < 10 || diastolic > 200) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
systolic,
|
|
86
|
+
diastolic,
|
|
87
|
+
heartRate,
|
|
88
|
+
userId: (0, _hexToByte.hexToByte)(content[6] ?? "00"),
|
|
89
|
+
storeId: (0, _hexToByte.hexToByte)(content[7] ?? "00") << 8 | (0, _hexToByte.hexToByte)(content[8] ?? "00"),
|
|
90
|
+
recordedAt
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/** Reads the split and concatenated 02 40 dd history responses. */
|
|
95
|
+
exports.parseBpm188Record = parseBpm188Record;
|
|
96
|
+
class Bpm188FrameReader {
|
|
97
|
+
readFrame(buffer) {
|
|
98
|
+
const start = this.findStart(buffer);
|
|
99
|
+
if (start < 0) {
|
|
100
|
+
return {
|
|
101
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
102
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const length = (0, _hexToByte.hexToByte)(buffer[start + 3] ?? "00") + 5;
|
|
106
|
+
if (length < 6) {
|
|
107
|
+
return {
|
|
108
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
109
|
+
consumedBytes: start + 1
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (start + length > buffer.length) {
|
|
113
|
+
return {
|
|
114
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
115
|
+
consumedBytes: start
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
const frame = buffer.slice(start, start + length);
|
|
119
|
+
if (frame.at(-1) !== calculateBpm188Checksum(frame)) {
|
|
120
|
+
return {
|
|
121
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
122
|
+
consumedBytes: start + 1
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
status: _frameReadStatus.FrameReadStatus.COMPLETE,
|
|
127
|
+
consumedBytes: start + length,
|
|
128
|
+
frame
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
findStart(buffer) {
|
|
132
|
+
for (let index = 0; index + 3 < buffer.length; index += 1) {
|
|
133
|
+
if ((0, _hexToByte.hexToByte)(buffer[index] ?? "00") === 0x02 && (0, _hexToByte.hexToByte)(buffer[index + 1] ?? "00") === 0x40 && (0, _hexToByte.hexToByte)(buffer[index + 2] ?? "00") === 0xdd) {
|
|
134
|
+
return index;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.Bpm188FrameReader = Bpm188FrameReader;
|
|
141
|
+
//# sourceMappingURL=viatom.bpm188.protocol.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_frameReadStatus","require","_hexToByte","BPM188_SERVICE","exports","BPM188_WRITE","BPM188_NOTIFY","Bpm188MessageType","info","syncTime","records","recordsEnd","byte","value","toString","padStart","calculateBpm188Checksum","bytes","checksum","index","length","hexToByte","command","type","payload","frame","bpm188GetInfo","bpm188SyncTime","now","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","bpm188GetRecords","decodeBpm188Response","undefined","payloadLength","expectedLength","slice","at","content","validDate","year","month","day","hour","minute","date","parseBpm188Record","systolic","diastolic","heartRate","recordedAt","userId","storeId","Bpm188FrameReader","readFrame","buffer","start","findStart","status","FrameReadStatus","INCOMPLETE","consumedBytes","Math","max","CORRUPT","COMPLETE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.bpm188.protocol.ts"],"mappings":"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","ignoreList":[]}
|