@ovok/native 1.6.25 → 1.6.26
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-management/services/custom/compile-custom-lepu.js +7 -0
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +8 -3
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +7 -2
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js +2 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +77 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +2 -2
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +6 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js +71 -0
- package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +31 -5
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js +5 -0
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +8 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-maxim.js +24 -0
- package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-maxim.js.map +1 -0
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +7 -0
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +8 -3
- package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +7 -2
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js +2 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +73 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +2 -2
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +6 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js +66 -0
- package/lib/module/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +31 -5
- package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js +5 -0
- package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +8 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
- package/lib/module/modules/bt-management/utils/calculate-crc-8-maxim.js +19 -0
- package/lib/module/modules/bt-management/utils/calculate-crc-8-maxim.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +41 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +41 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -88,6 +88,10 @@ const compileCustomLepu = (id, spec, serviceUuids) => {
|
|
|
88
88
|
const protocol = assertProtocol(id, lepu.protocol);
|
|
89
89
|
const expectedDeviceTypes = assertDeviceTypes(id, lepu.expectedDeviceTypes);
|
|
90
90
|
const pollCommand = assertPollCommand(id, lepu);
|
|
91
|
+
const ecgFileDecoder = lepu.ecgFileDecoder;
|
|
92
|
+
if (ecgFileDecoder !== undefined && ecgFileDecoder !== "raw-int16") {
|
|
93
|
+
throw (0, _customDeviceError.customDeviceError)(id, "lepu.ecgFileDecoder", `is "${String(ecgFileDecoder)}"; expected "raw-int16"`);
|
|
94
|
+
}
|
|
91
95
|
const requestStartByte = lepu.requestStartByte ?? startBytes[0];
|
|
92
96
|
if (!requestStartByte || !HEX_BYTE.test(requestStartByte.toLowerCase())) {
|
|
93
97
|
throw (0, _customDeviceError.customDeviceError)(id, "lepu.requestStartByte", `is "${String(lepu.requestStartByte)}"; it must be exactly two hex digits`);
|
|
@@ -100,6 +104,9 @@ const compileCustomLepu = (id, spec, serviceUuids) => {
|
|
|
100
104
|
...(protocol === undefined ? {} : {
|
|
101
105
|
protocol
|
|
102
106
|
}),
|
|
107
|
+
...(ecgFileDecoder === undefined ? {} : {
|
|
108
|
+
ecgFileDecoder
|
|
109
|
+
}),
|
|
103
110
|
startBytes,
|
|
104
111
|
requestStartByte: requestStartByte.toLowerCase(),
|
|
105
112
|
expectedDeviceTypes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_customDeviceError","require","_normalizeBleUuid","HEX_BYTE","MAX_OPCODE","MAX_DEVICE_TYPE","assertProtocol","id","protocol","undefined","customDeviceError","String","assertStartBytes","startBytes","Array","isArray","length","map","byte","index","normalized","toLowerCase","test","assertDeviceTypes","deviceTypes","deviceType","Number","isInteger","assertPollCommand","lepu","pollCommand","compileCustomLepu","spec","serviceUuids","services","some","service","write","expectedDeviceTypes","requestStartByte","serviceUuid","normalizeBleUuid","includes","writeWithoutResponse","Boolean","setClockBeforeInfo","characteristicUuid","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/compile-custom-lepu.ts"],"mappings":";;;;;;AAGA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,MAAME,QAAQ,GAAG,eAAe;AAChC,MAAMC,UAAU,GAAG,IAAI;AACvB,MAAMC,eAAe,GAAG,MAAM;AAE9B,MAAMC,cAAc,GAAGA,CACrBC,EAAU,EACVC,QAAiB,KACsB;EACvC,IAAIA,QAAQ,KAAKC,SAAS,EAAE;IAC1B,OAAOA,SAAS;EAClB;EAEA,IAAID,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,eAAe,EAAE;IACrD,MAAM,IAAAE,oCAAiB,EACrBH,EAAE,EACF,eAAe,EACf,OAAOI,MAAM,CAACH,QAAQ,CAAC,qCACzB,CAAC;EACH;EAEA,OAAOA,QAAQ;AACjB,CAAC;AAED,MAAMI,gBAAgB,GAAGA,CAACL,EAAU,EAAEM,UAAmB,KAAe;EACtE,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,UAAU,CAAC,IAAIA,UAAU,CAACG,MAAM,KAAK,CAAC,EAAE;IACzD,MAAM,IAAAN,oCAAiB,EACrBH,EAAE,EACF,iBAAiB,EACjB,2DACF,CAAC;EACH;EAEA,OAAOM,UAAU,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;IACrC,MAAMC,UAAU,GAAGT,MAAM,CAACO,IAAI,CAAC,CAACG,WAAW,CAAC,CAAC;IAE7C,IAAI,CAAClB,QAAQ,CAACmB,IAAI,CAACF,UAAU,CAAC,EAAE;MAC9B,MAAM,IAAAV,oCAAiB,EACrBH,EAAE,EACF,mBAAmBY,KAAK,GAAG,EAC3B,OAAOR,MAAM,CAACO,IAAI,CAAC,sCACrB,CAAC;IACH;IAEA,OAAOE,UAAU;EACnB,CAAC,CAAC;AACJ,CAAC;AAED,MAAMG,iBAAiB,GAAGA,CAAChB,EAAU,EAAEiB,WAAoB,KAAe;EACxE,IAAI,CAACV,KAAK,CAACC,OAAO,CAACS,WAAW,CAAC,EAAE;IAC/B,MAAM,IAAAd,oCAAiB,EACrBH,EAAE,EACF,0BAA0B,EAC1B,wEACF,CAAC;EACH;EAEA,OAAOiB,WAAW,CAACP,GAAG,CAAC,CAACQ,UAAU,EAAEN,KAAK,KAAK;IAC5C,IACE,CAACO,MAAM,CAACC,SAAS,CAACF,UAAU,CAAC,IAC5BA,UAAU,GAAc,CAAC,IACzBA,UAAU,GAAcpB,eAAe,EACxC;MACA,MAAM,IAAAK,oCAAiB,EACrBH,EAAE,EACF,4BAA4BY,KAAK,GAAG,EACpC,MAAMR,MAAM,CAACc,UAAU,CAAC,oDAAoDpB,eAAe,EAC7F,CAAC;IACH;IAEA,OAAOoB,UAAU;EACnB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,iBAAiB,GAAGA,CACxBrB,EAAU,EACVsB,IAAoB,KACG;EACvB,MAAM;IAAEC;EAAY,CAAC,GAAGD,IAAI;EAE5B,IAAIC,WAAW,KAAKrB,SAAS,EAAE;IAC7B,OAAOA,SAAS;EAClB;EAEA,IACE,CAACiB,MAAM,CAACC,SAAS,CAACG,WAAW,CAAC,IAC9BA,WAAW,GAAG,CAAC,IACfA,WAAW,GAAG1B,UAAU,EACxB;IACA,MAAM,IAAAM,oCAAiB,EACrBH,EAAE,EACF,kBAAkB,EAClB,MAAMI,MAAM,CAACmB,WAAW,CAAC,+CAA+C1B,UAAU,EACpF,CAAC;EACH;EAEA,OAAO0B,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAGA,CAC/BxB,EAAU,EACVyB,IAAsB,EACtBC,YAA+B,KACA;EAC/B,MAAMJ,IAAI,GAAGG,IAAI,CAACH,IAAI;EAEtB,IAAI,CAACA,IAAI,EAAE;IACT,OAAOpB,SAAS;EAClB;EAEA,IAAIuB,IAAI,CAACE,QAAQ,CAACC,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,KAAK,CAAC,EAAE;IAClD,MAAM,IAAA3B,oCAAiB,EACrBH,EAAE,EACF,kBAAkB,EAClB,wGACF,CAAC;EACH;EAEA,MAAMM,UAAU,GAAGD,gBAAgB,CAACL,EAAE,EAAEsB,IAAI,CAAChB,UAAU,CAAC;EACxD,MAAML,QAAQ,GAAGF,cAAc,CAACC,EAAE,EAAEsB,IAAI,CAACrB,QAAQ,CAAC;EAClD,MAAM8B,mBAAmB,GAAGf,iBAAiB,CAAChB,EAAE,EAAEsB,IAAI,CAACS,mBAAmB,CAAC;EAC3E,MAAMR,WAAW,GAAGF,iBAAiB,CAACrB,EAAE,EAAEsB,IAAI,CAAC;EAC/C,MAAMU,
|
|
1
|
+
{"version":3,"names":["_customDeviceError","require","_normalizeBleUuid","HEX_BYTE","MAX_OPCODE","MAX_DEVICE_TYPE","assertProtocol","id","protocol","undefined","customDeviceError","String","assertStartBytes","startBytes","Array","isArray","length","map","byte","index","normalized","toLowerCase","test","assertDeviceTypes","deviceTypes","deviceType","Number","isInteger","assertPollCommand","lepu","pollCommand","compileCustomLepu","spec","serviceUuids","services","some","service","write","expectedDeviceTypes","ecgFileDecoder","requestStartByte","serviceUuid","normalizeBleUuid","includes","writeWithoutResponse","Boolean","setClockBeforeInfo","characteristicUuid","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/compile-custom-lepu.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ var _defineCustomDevice = require("../../custom/define-custom-device.js");
|
|
|
18
18
|
/** Every frame opens with these two: a fixed start byte and a fixed device type. */
|
|
19
19
|
const FRAME_HEADER = ["aa", "01"];
|
|
20
20
|
const COMMAND_BYTE = 2;
|
|
21
|
+
const MODE_BYTE = 6;
|
|
21
22
|
|
|
22
23
|
/** Header, a three-byte payload and the checksum. */
|
|
23
24
|
const FRAME_BYTES = 8;
|
|
@@ -64,9 +65,9 @@ const aoj20aThermometer = params => (0, _defineCustomDevice.defineCustomDevice)(
|
|
|
64
65
|
from: CHECKSUM_FROM
|
|
65
66
|
}
|
|
66
67
|
},
|
|
67
|
-
caseSelectorBytes: [COMMAND_BYTE],
|
|
68
|
-
cases: [{
|
|
69
|
-
selector: TEMPERATURE_REPLY
|
|
68
|
+
caseSelectorBytes: [COMMAND_BYTE, MODE_BYTE],
|
|
69
|
+
cases: [...["01", "02", "03"].map(mode => ({
|
|
70
|
+
selector: `${TEMPERATURE_REPLY}${mode}`,
|
|
70
71
|
kind: "result",
|
|
71
72
|
measurementTypeKey: _core.MeasurementTypeKey.temperature,
|
|
72
73
|
fields: [{
|
|
@@ -77,6 +78,10 @@ const aoj20aThermometer = params => (0, _defineCustomDevice.defineCustomDevice)(
|
|
|
77
78
|
scale: TEMPERATURE_SCALE,
|
|
78
79
|
decimals: TEMPERATURE_DECIMALS
|
|
79
80
|
}]
|
|
81
|
+
})), {
|
|
82
|
+
selector: `${TEMPERATURE_REPLY}04`,
|
|
83
|
+
kind: "idle",
|
|
84
|
+
description: "Object or surface-temperature reading"
|
|
80
85
|
}]
|
|
81
86
|
}]
|
|
82
87
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_defineCustomDevice","FRAME_HEADER","COMMAND_BYTE","FRAME_BYTES","CHECKSUM_INDEX","CHECKSUM_FROM","PAYLOAD","TEMPERATURE_REPLY","TEMPERATURE_SCALE","TEMPERATURE_DECIMALS","SPOT_CHECK_TIMEOUT_MS","aoj20aThermometer","params","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","header","minLengthBytes","checksum","algorithm","index","from","caseSelectorBytes","cases","selector","kind","measurementTypeKey","MeasurementTypeKey","temperature","fields","name","byteIndexes","byteOrder","unit","scale","decimals","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/aoj/aoj.thermometers.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,mBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAME,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAEjC,MAAMC,YAAY,GAAG,CAAC;;
|
|
1
|
+
{"version":3,"names":["_core","require","_defineCustomDevice","FRAME_HEADER","COMMAND_BYTE","MODE_BYTE","FRAME_BYTES","CHECKSUM_INDEX","CHECKSUM_FROM","PAYLOAD","TEMPERATURE_REPLY","TEMPERATURE_SCALE","TEMPERATURE_DECIMALS","SPOT_CHECK_TIMEOUT_MS","aoj20aThermometer","params","defineCustomDevice","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","header","minLengthBytes","checksum","algorithm","index","from","caseSelectorBytes","cases","map","mode","selector","kind","measurementTypeKey","MeasurementTypeKey","temperature","fields","name","byteIndexes","byteOrder","unit","scale","decimals","description","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/aoj/aoj.thermometers.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,mBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAME,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAEjC,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,SAAS,GAAG,CAAC;;AAEnB;AACA,MAAMC,WAAW,GAAG,CAAC;AACrB,MAAMC,cAAc,GAAG,CAAC;;AAExB;AACA,MAAMC,aAAa,GAAG,CAAC;AAEvB,MAAMC,OAAO,GAAG,CAAC;;AAEjB;AACA,MAAMC,iBAAiB,GAAG,IAAI;;AAE9B;AACA,MAAMC,iBAAiB,GAAG,IAAI;AAC9B,MAAMC,oBAAoB,GAAG,CAAC;AAE9B,MAAMC,qBAAqB,GAAG,MAAM;AAapC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAC5BC,MAAuB,IAEvB,IAAAC,sCAAkB,EAAC;EACjBC,EAAE,EAAEF,MAAM,CAACE,EAAE,IAAI,qBAAqB;EACtCC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAI,YAAY;EAC3CC,kBAAkB,EAAEJ,MAAM,CAACI,kBAAkB,IAAIN,qBAAqB;EACtEO,QAAQ,EAAE,CACR;IACEC,IAAI,EAAE,MAAM;IACZC,OAAO,EAAE,CACP;MACED,IAAI,EAAE,MAAM;MACZE,KAAK,EAAE;QACLC,MAAM,EAAErB,YAAY;QACpBsB,cAAc,EAAEnB,WAAW;QAC3BoB,QAAQ,EAAE;UACRC,SAAS,EAAE,KAAK;UAChBC,KAAK,EAAErB,cAAc;UACrBsB,IAAI,EAAErB;QACR;MACF,CAAC;MACDsB,iBAAiB,EAAE,CAAC1B,YAAY,EAAEC,SAAS,CAAC;MAC5C0B,KAAK,EAAE,CACL,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAACC,GAAG,CAAEC,IAAI,KAAM;QACnCC,QAAQ,EAAE,GAAGxB,iBAAiB,GAAGuB,IAAI,EAAE;QACvCE,IAAI,EAAE,QAAiB;QACvBC,kBAAkB,EAAEC,wBAAkB,CAACC,WAAW;QAClDC,MAAM,EAAE,CACN;UACEC,IAAI,EAAE,UAAU;UAChBC,WAAW,EAAE,CAAChC,OAAO,EAAEA,OAAO,GAAG,CAAC,CAAC;UACnCiC,SAAS,EAAE,KAAc;UACzBC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAEjC,iBAAiB;UACxBkC,QAAQ,EAAEjC;QACZ,CAAC;MAEL,CAAC,CAAC,CAAC,EACH;QACEsB,QAAQ,EAAE,GAAGxB,iBAAiB,IAAI;QAClCyB,IAAI,EAAE,MAAM;QACZW,WAAW,EAAE;MACf,CAAC;IAEL,CAAC;EAEL,CAAC;AAEL,CAAC,CAAC;AAACC,OAAA,CAAAjC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -11,7 +11,7 @@ var _parseMeasurement = require("../../../utils/parse-measurement.js");
|
|
|
11
11
|
var _rejectCustomReading = require("../../../utils/reject-custom-reading.js");
|
|
12
12
|
var _btManagedDevice = require("../bt-managed-device.js");
|
|
13
13
|
var _lepuCommandBuilder = require("../lepu/lepu.command-builder.js");
|
|
14
|
-
var
|
|
14
|
+
var _lepuEcgTransfer = require("../lepu/lepu.ecg-transfer.js");
|
|
15
15
|
var _lepuFrameReader = require("../lepu/lepu.frame-reader.js");
|
|
16
16
|
var _viatomEcgFiles = require("../viatom/viatom.ecg-files.js");
|
|
17
17
|
var _customLepuSequencer = require("./custom-lepu-sequencer.js");
|
|
@@ -63,14 +63,19 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
|
|
|
63
63
|
this.frameReader = new _lepuFrameReader.LepuFrameReader(lepu.startBytes);
|
|
64
64
|
this.createCommandSequencer = () => {
|
|
65
65
|
if (lepu.fileTransfer === "ecg") {
|
|
66
|
-
return new
|
|
66
|
+
return new _lepuEcgTransfer.LepuEcgTransferSequencer({
|
|
67
67
|
write: {
|
|
68
68
|
serviceUuid: lepu.write.serviceUuid,
|
|
69
69
|
characteristicUuid: lepu.write.characteristicUuid
|
|
70
70
|
},
|
|
71
71
|
builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.startBytes[0] ?? "a5"),
|
|
72
|
+
clockSync,
|
|
73
|
+
expectedDeviceTypes: lepu.expectedDeviceTypes,
|
|
74
|
+
onIdentified: this.onIdentified,
|
|
75
|
+
onRefused: this.onIdentityRefused,
|
|
72
76
|
onFile: this.reportViatomEcgFile,
|
|
73
77
|
skipFiles: this.deliveredEcgFileNames,
|
|
78
|
+
acceptFile: name => lepu.ecgFileDecoder === "raw-int16" && /^R/i.test(name),
|
|
74
79
|
afterTransfer: lepu.pollCommand ? () => [{
|
|
75
80
|
serviceUuid: lepu.write.serviceUuid,
|
|
76
81
|
characteristicUuid: lepu.write.characteristicUuid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","
|
|
1
|
+
{"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuEcgTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deviceData","clockSync","deliveredEcgFileNames","Set","mainServices","stuckDataTimeout","reportsBondedEvent","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuEcgTransferSequencer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","expectedDeviceTypes","onIdentified","onRefused","onIdentityRefused","onFile","reportViatomEcgFile","skipFiles","acceptFile","name","ecgFileDecoder","test","afterTransfer","pollCommand","build","onError","reason","Error","onProgress","progress","onConnectionEvent","kind","current","receivedBytes","total","totalBytes","createLepuSequencer","file","decoded","decodeViatomEcgRecording","content","samples","length","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagramPoints","duration","recordedAt","recordedAtFromViatomFileName","recordingId","info","recordLepuIdentity","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","decorateReading","reading","recordOffset","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,8 @@ const LepuCommand = exports.LepuCommand = {
|
|
|
24
24
|
* addressing it with an opcode that means something else on the wrong hardware.
|
|
25
25
|
*/
|
|
26
26
|
GET_INFO: 0xe1,
|
|
27
|
+
/** Sets the device's local wall clock before history is requested. */
|
|
28
|
+
SET_TIME: 0xec,
|
|
27
29
|
GET_BATTERY: 0xe4,
|
|
28
30
|
/** Enumerate the records stored on the device. */
|
|
29
31
|
GET_FILE_LIST: 0xf1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LepuCommand","exports","ECHO","GET_INFO","GET_BATTERY","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.commands.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzB;EACAE,IAAI,EAAE,IAAI;EAEV;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE,IAAI;EAEdC,WAAW,EAAE,IAAI;EAEjB;EACAC,aAAa,EAAE,IAAI;EAEnB;EACAC,eAAe,EAAE,IAAI;EAErB;EACAC,cAAc,EAAE,IAAI;EAEpB;EACAC,aAAa,EAAE;AACjB,CAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["LepuCommand","exports","ECHO","GET_INFO","SET_TIME","GET_BATTERY","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.commands.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzB;EACAE,IAAI,EAAE,IAAI;EAEV;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE,IAAI;EAEd;EACAC,QAAQ,EAAE,IAAI;EAEdC,WAAW,EAAE,IAAI;EAEjB;EACAC,aAAa,EAAE,IAAI;EAEnB;EACAC,eAAe,EAAE,IAAI;EAErB;EACAC,cAAc,EAAE,IAAI;EAEpB;EACAC,aAAa,EAAE;AACjB,CAAU","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LepuEcgTransferSequencer = void 0;
|
|
7
|
+
var _clockSync = require("../../../types/clock-sync.js");
|
|
8
|
+
var _lepuCommands = require("./lepu.commands.js");
|
|
9
|
+
var _lepuFileTransfer = require("./lepu.file-transfer.js");
|
|
10
|
+
var _lepuFrame = require("./lepu.frame.js");
|
|
11
|
+
var _lepuIdentityGate = require("./lepu.identity-gate.js");
|
|
12
|
+
var _lepuResponseType = require("./lepu.response-type.js");
|
|
13
|
+
/** Identifies a recorder, sets its local clock, then downloads its stored files. */
|
|
14
|
+
class LepuEcgTransferSequencer {
|
|
15
|
+
phase = "identity";
|
|
16
|
+
constructor(params) {
|
|
17
|
+
this.params = params;
|
|
18
|
+
this.identity = new _lepuIdentityGate.LepuIdentityGate({
|
|
19
|
+
write: params.write,
|
|
20
|
+
builder: params.builder,
|
|
21
|
+
expectedDeviceTypes: params.expectedDeviceTypes,
|
|
22
|
+
onIdentified: params.onIdentified,
|
|
23
|
+
onRefused: params.onRefused,
|
|
24
|
+
onAdmitted: this.startClockOrTransfer
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
initialCommands = () => this.identity.initialCommands();
|
|
28
|
+
isHistoryTransfer = () => true;
|
|
29
|
+
nextCommand = frame => {
|
|
30
|
+
if (this.phase === "identity") {
|
|
31
|
+
return this.identity.nextCommand(frame);
|
|
32
|
+
}
|
|
33
|
+
if (this.phase === "clock") {
|
|
34
|
+
return this.finishClock(frame);
|
|
35
|
+
}
|
|
36
|
+
return this.transfer?.nextCommand(frame);
|
|
37
|
+
};
|
|
38
|
+
startClockOrTransfer = () => {
|
|
39
|
+
if ((0, _clockSync.isClockSyncEnabled)(this.params.clockSync)) {
|
|
40
|
+
this.phase = "clock";
|
|
41
|
+
return [{
|
|
42
|
+
...this.params.write,
|
|
43
|
+
frame: this.params.builder.build(_lepuCommands.LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
|
|
44
|
+
}];
|
|
45
|
+
}
|
|
46
|
+
return this.startTransfer();
|
|
47
|
+
};
|
|
48
|
+
finishClock = frame => {
|
|
49
|
+
if ((0, _lepuFrame.lepuCommandOf)(frame) !== _lepuCommands.LepuCommand.SET_TIME) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
if (!(0, _lepuResponseType.isLepuSuccess)(frame)) {
|
|
53
|
+
this.params.onError(`the device refused SET_TIME: ${(0, _lepuResponseType.describeLepuResponseType)(frame)}`);
|
|
54
|
+
}
|
|
55
|
+
return this.startTransfer();
|
|
56
|
+
};
|
|
57
|
+
startTransfer = () => {
|
|
58
|
+
this.phase = "files";
|
|
59
|
+
this.transfer = new _lepuFileTransfer.LepuFileTransfer({
|
|
60
|
+
write: this.params.write,
|
|
61
|
+
builder: this.params.builder,
|
|
62
|
+
onFile: this.params.onFile,
|
|
63
|
+
onError: this.params.onError,
|
|
64
|
+
skipFiles: this.params.skipFiles,
|
|
65
|
+
acceptFile: this.params.acceptFile,
|
|
66
|
+
afterTransfer: this.params.afterTransfer,
|
|
67
|
+
onProgress: this.params.onProgress
|
|
68
|
+
});
|
|
69
|
+
return this.transfer.initialCommands();
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.LepuEcgTransferSequencer = LepuEcgTransferSequencer;
|
|
73
|
+
const clockPayload = clockSync => {
|
|
74
|
+
const parts = (0, _clockSync.getClockParts)(clockSync?.now?.() ?? new Date(), clockSync?.timezone);
|
|
75
|
+
return [parts.year & 0xff, parts.year >> 8 & 0xff, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds];
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=lepu.ecg-transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_clockSync","require","_lepuCommands","_lepuFileTransfer","_lepuFrame","_lepuIdentityGate","_lepuResponseType","LepuEcgTransferSequencer","phase","constructor","params","identity","LepuIdentityGate","write","builder","expectedDeviceTypes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","nextCommand","frame","finishClock","transfer","isClockSyncEnabled","clockSync","build","LepuCommand","SET_TIME","clockPayload","startTransfer","lepuCommandOf","undefined","isLepuSuccess","onError","describeLepuResponseType","LepuFileTransfer","onFile","skipFiles","acceptFile","afterTransfer","onProgress","exports","parts","getClockParts","now","Date","timezone","year","month","day","hours","minutes","seconds"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -77,7 +77,7 @@ class LepuFileTransfer {
|
|
|
77
77
|
};
|
|
78
78
|
openNextFile = () => {
|
|
79
79
|
let name = this.files[this.fileIndex];
|
|
80
|
-
while (name !== undefined && this.params.skipFiles?.has(name)) {
|
|
80
|
+
while (name !== undefined && (this.params.skipFiles?.has(name) || this.params.acceptFile?.(name) === false)) {
|
|
81
81
|
this.fileIndex++;
|
|
82
82
|
name = this.files[this.fileIndex];
|
|
83
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_le32FromHex","require","_le32ToBytes","_lepuCommands","_lepuFileNames","_lepuFrame","_lepuResponseType","FILE_SIZE_OFFSET","MAX_FILE_BYTES","TRANSFER_COMMANDS","LepuCommand","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END","LepuFileTransfer","files","fileIndex","name","totalBytes","content","isSessionOpen","isDone","constructor","params","isHistoryTransfer","initialCommands","commandFor","nextCommand","frame","command","lepuCommandOf","afterTransfer","includes","undefined","isLepuSuccess","fail","describeLepuResponseType","lepuNamesFrom","lepuPayloadOf","openNextFile","openedFile","appendChunk","closedFile","skipFiles","has","lepuNameBytes","le32ToBytes","payload","le32FromHex","limit","maxFileBytes","closeFile","length","push","onProgress","receivedBytes","onFile","reason","onError","write","builder","build","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.file-transfer.ts"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAXA;;AAaA,MAAMM,gBAAgB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG,OAAO;AAE9B,MAAMC,iBAAoC,GAAG,CAC3CC,yBAAW,CAACC,aAAa,EACzBD,yBAAW,CAACE,eAAe,EAC3BF,yBAAW,CAACG,cAAc,EAC1BH,yBAAW,CAACI,aAAa,CAC1B;
|
|
1
|
+
{"version":3,"names":["_le32FromHex","require","_le32ToBytes","_lepuCommands","_lepuFileNames","_lepuFrame","_lepuResponseType","FILE_SIZE_OFFSET","MAX_FILE_BYTES","TRANSFER_COMMANDS","LepuCommand","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END","LepuFileTransfer","files","fileIndex","name","totalBytes","content","isSessionOpen","isDone","constructor","params","isHistoryTransfer","initialCommands","commandFor","nextCommand","frame","command","lepuCommandOf","afterTransfer","includes","undefined","isLepuSuccess","fail","describeLepuResponseType","lepuNamesFrom","lepuPayloadOf","openNextFile","openedFile","appendChunk","closedFile","skipFiles","has","acceptFile","lepuNameBytes","le32ToBytes","payload","le32FromHex","limit","maxFileBytes","closeFile","length","push","onProgress","receivedBytes","onFile","reason","onError","write","builder","build","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.file-transfer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,7 +57,7 @@ class LepuIdentityGate {
|
|
|
57
57
|
return this.refuse("the device answered with a frame too short to hold its own model number");
|
|
58
58
|
}
|
|
59
59
|
this.params.onIdentified?.(info);
|
|
60
|
-
if (this.params.pollCommand === undefined) {
|
|
60
|
+
if (this.params.pollCommand === undefined && this.params.onAdmitted === undefined) {
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
63
63
|
const isNarrowed = this.params.expectedDeviceTypes.length > 0;
|
|
@@ -65,7 +65,7 @@ class LepuIdentityGate {
|
|
|
65
65
|
return this.refuse(`the hardware reported model ${info.deviceType} (branch "${info.branchCode}"), which this declaration was not written for`);
|
|
66
66
|
}
|
|
67
67
|
this.isIdentified = true;
|
|
68
|
-
return this.poll();
|
|
68
|
+
return this.params.onAdmitted?.() ?? this.poll();
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
/** Closes the gate for good. There is no state a refused device can be talked back from. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clockSync","require","_hexToByte","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","command","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":";;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAdA;;
|
|
1
|
+
{"version":3,"names":["_clockSync","require","_hexToByte","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","command","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -117,6 +117,9 @@ const lepuDevice = params => {
|
|
|
117
117
|
matchByService: params.nameMatch === undefined,
|
|
118
118
|
stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? DEFAULT_STUCK_TIMEOUT_MS,
|
|
119
119
|
preferredMtu: transport.preferredMtu,
|
|
120
|
+
...(params.clockSync === undefined ? {} : {
|
|
121
|
+
clockSync: params.clockSync
|
|
122
|
+
}),
|
|
120
123
|
lepu: {
|
|
121
124
|
protocol: params.protocol,
|
|
122
125
|
startBytes: [viatomOxygen ? "55" : START_BYTE],
|
|
@@ -129,6 +132,9 @@ const lepuDevice = params => {
|
|
|
129
132
|
...(params.fileTransfer === undefined ? {} : {
|
|
130
133
|
fileTransfer: params.fileTransfer
|
|
131
134
|
}),
|
|
135
|
+
...(params.ecgFileDecoder === undefined ? {} : {
|
|
136
|
+
ecgFileDecoder: params.ecgFileDecoder
|
|
137
|
+
}),
|
|
132
138
|
...(params.pollCommand === undefined ? {} : {
|
|
133
139
|
pollCommand: params.pollCommand
|
|
134
140
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","viatomOxygen","protocol","defineCustomDevice","id","nameMatch","matchByService","undefined","stuckDataTimeoutMs","lepu","startBytes","requestStartByte","write","characteristicUuid","expectedDeviceTypes","fileTransfer","pollCommand","writeWithoutResponse","setClockBeforeInfo","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","decorateReading"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","viatomOxygen","protocol","defineCustomDevice","id","nameMatch","matchByService","undefined","stuckDataTimeoutMs","clockSync","lepu","startBytes","requestStartByte","write","characteristicUuid","expectedDeviceTypes","fileTransfer","ecgFileDecoder","pollCommand","writeWithoutResponse","setClockBeforeInfo","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","decorateReading"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Pc60FwFrameReader = void 0;
|
|
7
|
+
var _frameReadStatus = require("../../../types/frame-read-status.js");
|
|
8
|
+
var _calculateCrc8Maxim = require("../../../utils/calculate-crc-8-maxim.js");
|
|
9
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
10
|
+
const HEADER = ["aa", "55"];
|
|
11
|
+
const LENGTH_INDEX = 3;
|
|
12
|
+
const HEADER_BYTES = 4;
|
|
13
|
+
const CHECKSUM_BYTES = 1;
|
|
14
|
+
const byteAt = (buffer, index) => (0, _hexToByte.hexToByte)(buffer[index] ?? "0");
|
|
15
|
+
|
|
16
|
+
/** Reads the length-prefixed, CRC-8/MAXIM frames used by PC-60FW. */
|
|
17
|
+
class Pc60FwFrameReader {
|
|
18
|
+
readFrame(buffer) {
|
|
19
|
+
const start = this.findHeader(buffer);
|
|
20
|
+
if (start === -1) {
|
|
21
|
+
return {
|
|
22
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
23
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (start + HEADER_BYTES > buffer.length) {
|
|
27
|
+
return {
|
|
28
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
29
|
+
consumedBytes: start
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const payloadLength = byteAt(buffer, start + LENGTH_INDEX);
|
|
33
|
+
const frameLength = HEADER_BYTES + payloadLength;
|
|
34
|
+
if (payloadLength < CHECKSUM_BYTES) {
|
|
35
|
+
return {
|
|
36
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
37
|
+
consumedBytes: start + HEADER.length
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (start + frameLength > buffer.length) {
|
|
41
|
+
return {
|
|
42
|
+
status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
|
|
43
|
+
consumedBytes: start
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const frame = buffer.slice(start, start + frameLength);
|
|
47
|
+
const declared = byteAt(frame, frame.length - CHECKSUM_BYTES);
|
|
48
|
+
const actual = (0, _calculateCrc8Maxim.calculateCrc8Maxim)(frame, frame.length - CHECKSUM_BYTES);
|
|
49
|
+
if (declared !== actual) {
|
|
50
|
+
return {
|
|
51
|
+
status: _frameReadStatus.FrameReadStatus.CORRUPT,
|
|
52
|
+
consumedBytes: start + HEADER.length
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
status: _frameReadStatus.FrameReadStatus.COMPLETE,
|
|
57
|
+
consumedBytes: start + frameLength,
|
|
58
|
+
frame
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
findHeader(buffer) {
|
|
62
|
+
for (let index = 0; index < buffer.length - 1; index++) {
|
|
63
|
+
if (buffer[index]?.toLowerCase() === HEADER[0] && buffer[index + 1]?.toLowerCase() === HEADER[1]) {
|
|
64
|
+
return index;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return -1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Pc60FwFrameReader = Pc60FwFrameReader;
|
|
71
|
+
//# sourceMappingURL=pc60fw.frame-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_frameReadStatus","require","_calculateCrc8Maxim","_hexToByte","HEADER","LENGTH_INDEX","HEADER_BYTES","CHECKSUM_BYTES","byteAt","buffer","index","hexToByte","Pc60FwFrameReader","readFrame","start","findHeader","status","FrameReadStatus","INCOMPLETE","consumedBytes","Math","max","length","payloadLength","frameLength","CORRUPT","frame","slice","declared","actual","calculateCrc8Maxim","COMPLETE","toLowerCase","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/pc60fw.frame-reader.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,MAAMG,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,cAAc,GAAG,CAAC;AAExB,MAAMC,MAAM,GAAGA,CAACC,MAAyB,EAAEC,KAAa,KACtD,IAAAC,oBAAS,EAACF,MAAM,CAACC,KAAK,CAAC,IAAI,GAAG,CAAC;;AAEjC;AACO,MAAME,iBAAiB,CAAwB;EAC7CC,SAASA,CAACJ,MAAyB,EAAmB;IAC3D,MAAMK,KAAK,GAAG,IAAI,CAACC,UAAU,CAACN,MAAM,CAAC;IAErC,IAAIK,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,OAAO;QACLE,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,MAAM,CAACa,MAAM,GAAG,CAAC;MAC9C,CAAC;IACH;IAEA,IAAIR,KAAK,GAAGR,YAAY,GAAGG,MAAM,CAACa,MAAM,EAAE;MACxC,OAAO;QAAEN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAAEC,aAAa,EAAEL;MAAM,CAAC;IACrE;IAEA,MAAMS,aAAa,GAAGf,MAAM,CAACC,MAAM,EAAEK,KAAK,GAAGT,YAAY,CAAC;IAC1D,MAAMmB,WAAW,GAAGlB,YAAY,GAAGiB,aAAa;IAEhD,IAAIA,aAAa,GAAGhB,cAAc,EAAE;MAClC,OAAO;QACLS,MAAM,EAAEC,gCAAe,CAACQ,OAAO;QAC/BN,aAAa,EAAEL,KAAK,GAAGV,MAAM,CAACkB;MAChC,CAAC;IACH;IAEA,IAAIR,KAAK,GAAGU,WAAW,GAAGf,MAAM,CAACa,MAAM,EAAE;MACvC,OAAO;QAAEN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAAEC,aAAa,EAAEL;MAAM,CAAC;IACrE;IAEA,MAAMY,KAAK,GAAGjB,MAAM,CAACkB,KAAK,CAACb,KAAK,EAAEA,KAAK,GAAGU,WAAW,CAAC;IACtD,MAAMI,QAAQ,GAAGpB,MAAM,CAACkB,KAAK,EAAEA,KAAK,CAACJ,MAAM,GAAGf,cAAc,CAAC;IAC7D,MAAMsB,MAAM,GAAG,IAAAC,sCAAkB,EAACJ,KAAK,EAAEA,KAAK,CAACJ,MAAM,GAAGf,cAAc,CAAC;IAEvE,IAAIqB,QAAQ,KAAKC,MAAM,EAAE;MACvB,OAAO;QACLb,MAAM,EAAEC,gCAAe,CAACQ,OAAO;QAC/BN,aAAa,EAAEL,KAAK,GAAGV,MAAM,CAACkB;MAChC,CAAC;IACH;IAEA,OAAO;MACLN,MAAM,EAAEC,gCAAe,CAACc,QAAQ;MAChCZ,aAAa,EAAEL,KAAK,GAAGU,WAAW;MAClCE;IACF,CAAC;EACH;EAEQX,UAAUA,CAACN,MAAyB,EAAU;IACpD,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGD,MAAM,CAACa,MAAM,GAAG,CAAC,EAAEZ,KAAK,EAAE,EAAE;MACtD,IACED,MAAM,CAACC,KAAK,CAAC,EAAEsB,WAAW,CAAC,CAAC,KAAK5B,MAAM,CAAC,CAAC,CAAC,IAC1CK,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC,EAAEsB,WAAW,CAAC,CAAC,KAAK5B,MAAM,CAAC,CAAC,CAAC,EAC9C;QACA,OAAOM,KAAK;MACd;IACF;IAEA,OAAO,CAAC,CAAC;EACX;AACF;AAACuB,OAAA,CAAArB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SPO2Device = void 0;
|
|
7
7
|
var _caseType = require("../../../types/case-type.js");
|
|
8
8
|
var _btManagedDevice = require("../bt-managed-device.js");
|
|
9
|
+
var _pc60fwFrameReader = require("./pc60fw.frame-reader.js");
|
|
9
10
|
var _spo2MainServices = require("./spo2.main-services.js");
|
|
10
11
|
class SPO2Device extends _btManagedDevice.BTManagedDevice {
|
|
11
12
|
onStreamStart = () => {};
|
|
12
13
|
mainServices = _spo2MainServices.spo2MainServices;
|
|
13
14
|
stuckDataTimeout = 30_000;
|
|
15
|
+
frameReader = new _pc60fwFrameReader.Pc60FwFrameReader();
|
|
14
16
|
validatePackage = pkg => {
|
|
15
17
|
pkg = pkg.map(b => b.toLowerCase());
|
|
16
18
|
let headIndex = -1;
|
|
@@ -41,14 +43,24 @@ class SPO2Device extends _btManagedDevice.BTManagedDevice {
|
|
|
41
43
|
if (successResult.caseType === _caseType.CaseType.STREAM || successResult.caseType === _caseType.CaseType.OTHER) {
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
44
|
-
|
|
46
|
+
const status = Number.parseInt(collectedValues[9] ?? "0", 16);
|
|
47
|
+
if ((status & 0x02) === 0) {
|
|
48
|
+
if ((status & 0x04) === 0 && this.isValidParameterResult(successResult)) {
|
|
49
|
+
this.lastValidResult = this.withoutPerfusionMarker(successResult);
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const lastValidResult = this.lastValidResult ?? (successResult.perfusionIndex === undefined ? successResult : undefined);
|
|
54
|
+
this.lastValidResult = undefined;
|
|
55
|
+
if (!lastValidResult) {
|
|
45
56
|
return true;
|
|
46
57
|
}
|
|
47
|
-
if (!
|
|
48
|
-
this.onError?.(new Error(`Measurement type is undefined for case ${
|
|
58
|
+
if (!lastValidResult.measurementTypeKey) {
|
|
59
|
+
this.onError?.(new Error(`Measurement type is undefined for case ${lastValidResult.caseType}`));
|
|
49
60
|
return;
|
|
50
61
|
}
|
|
51
|
-
this.handlePulseOximeterResult(
|
|
62
|
+
this.handlePulseOximeterResult(lastValidResult);
|
|
63
|
+
return;
|
|
52
64
|
}
|
|
53
65
|
handlePulseOximeterResult(successResult) {
|
|
54
66
|
const error = this.checkIfHasError(successResult);
|
|
@@ -59,11 +71,25 @@ class SPO2Device extends _btManagedDevice.BTManagedDevice {
|
|
|
59
71
|
this.onResult?.(successResult);
|
|
60
72
|
}
|
|
61
73
|
checkIfHasError(successResult) {
|
|
62
|
-
if (!successResult
|
|
74
|
+
if (!this.isValidParameterResult(successResult)) {
|
|
63
75
|
return "feedback-messages.measurement.disturb-detected-error";
|
|
64
76
|
}
|
|
65
77
|
return undefined;
|
|
66
78
|
}
|
|
79
|
+
isValidParameterResult(successResult) {
|
|
80
|
+
const bloodOxygen = successResult.bloodOxygen;
|
|
81
|
+
const pulseRate = successResult.pulseRate;
|
|
82
|
+
return typeof bloodOxygen === "number" && bloodOxygen >= 50 && bloodOxygen <= 100 && ![0, 127, 255].includes(bloodOxygen) && typeof pulseRate === "number" && pulseRate >= 20 && pulseRate <= 300 && ![0, 255, 511, 65535].includes(pulseRate);
|
|
83
|
+
}
|
|
84
|
+
withoutPerfusionMarker(successResult) {
|
|
85
|
+
if (successResult.perfusionIndex !== 0 && successResult.perfusionIndex !== 255) {
|
|
86
|
+
return successResult;
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
...successResult,
|
|
90
|
+
perfusionIndex: undefined
|
|
91
|
+
};
|
|
92
|
+
}
|
|
67
93
|
}
|
|
68
94
|
exports.SPO2Device = SPO2Device;
|
|
69
95
|
//# sourceMappingURL=spo2.device.js.map
|