@ovok/native 1.6.42 → 1.6.43
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 +4 -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 +31 -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/device-creator.js +6 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/ap20.device.js +51 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/ap20.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/pc68b.device.js +51 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/pc68b.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.js +122 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.js +79 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +9 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.vtm20f.js +60 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.vtm20f.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js +3 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-pc.js +22 -0
- package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-pc.js.map +1 -0
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +4 -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 +32 -1
- 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/device-creator.js +6 -1
- package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/ap20.device.js +46 -0
- package/lib/module/modules/bt-management/services/devices/viatom/ap20.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/pc68b.device.js +46 -0
- package/lib/module/modules/bt-management/services/devices/viatom/pc68b.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.js +113 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.js +74 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +7 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js +45 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.js +56 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.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 +3 -0
- package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/module/modules/bt-management/utils/calculate-crc-8-pc.js +17 -0
- package/lib/module/modules/bt-management/utils/calculate-crc-8-pc.js.map +1 -0
- 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/device-creator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/ap20.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/ap20.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/pc68b.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/pc68b.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +5 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
- 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 +4 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-pc.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-pc.d.ts.map +1 -0
- 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/device-creator.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/ap20.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/ap20.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/pc68b.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/pc68b.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom-aa55.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.d.ts +23 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +5 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
- 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 +4 -1
- package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-pc.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-pc.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* `lepuNameMatch` derives the exclusions from the list itself. Adding a name automatically
|
|
22
22
|
* narrows every name it extends, which an ordered list would leave to whoever inserted it.
|
|
23
23
|
*/
|
|
24
|
-
const LEPU_DEVICE_NAMES = ["AI-S100", "AITele", "AIView VS", "AP-20", "AP-20-WPS", "AirBP", "Aura_BP2", "BBSM BS1", "BBSM P1", "BBSM S1", "BBSM S2", "BBSM S3", "BM10", "BP2", "BP2A", "BP2A Nexus", "BP2B", "BP2T", "BP2V", "BP2W", "BP3", "BP3-B", "BP3-C1", "BP3-C2", "BP3A", "BP3B", "BP3C", "BP3D", "BP3E", "BP3F", "BP3G", "BP3H", "BP3K", "BP3L", "BP3Z", "BP4 Flex", "BPWATCH", "BUZUD-CML", "Band-WU", "Bioland-BGM", "CB1L-1", "Cardio AI", "CMB590611", "CMB590840", "CMB592254", "CMI_PC303", "CMRing", "CMTouch", "CPR Feedback", "CPR-01", "CPR-02", "CheckADV", "Checkme", "Checkme EX", "Checkme Pod", "Checkme Pod-WPS", "Checkme lite A", "CheckmeLE", "CheckmeLP", "DUAL-SPP", "EM-B", "EM-W", "ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "ER2", "ER2-S", "EZY-HB-01", "EZY-HBB-02", "GM_300SNT", "GM_300SNT-BLE", "Genial-T31", "HDM3D", "HDM3G", "HHM1", "HHM2", "HHM3", "HHM4", "JFK1001", "JFR1001", "KCA", "KCB", "KS-60FW", "KardiaBP", "KidsO2-WPS", "LBM-1", "LEPU AED", "LEPU ER1", "LEPU-ER2", "LP ER2", "LP-BP2W", "LPM311", "LPRE", "Le S5", "Le-F2 Pro", "Le-W", "LeRes", "Lepod", "LepodPro", "Lepu PO6", "Lescale F3", "Lescale F4L", "Lescale F4P", "Lescale P3", "M5", "MY-SS2501", "N9+BP2", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "OxyU", "OxyU SE", "Oxyfit", "Oxyfit-WPS", "PC-100", "PC-200", "PC-200-BLE", "PC-60B_SN", "PC-60F_SN", "PC-60NW", "PC-60NW-1_SN", "PC-60NW-WPS", "PC-60NW_BLE", "PC-60NW_SN", "PC-66B", "PC-68B", "PC66B-VE", "PC80B", "PC80B-BLE", "PC80B_BLE:", "PC_300SNT", "PC_300SNT-BLE", "PF-10", "PF-10AW", "PF-10AW-1", "PF-10AW1", "PF-10BW", "PF-10BW1", "PF-10BWS", "PF-20", "PF-20AW", "PF-20B", "PF10AW-ME", "PF10BW-VE", "PM10", "PO6B-WE", "POD-1W-WU", "POD-1_SN", "POD-2B_SN", "PoctorM3102", "QC-200", "R10", "R11", "R20", "R200", "R21", "S5W-VU", "S5W_SN", "S6W", "S6W1", "S7BW", "S7W", "S8-AW", "SA10AW-PU", "SHQFlex", "SHQO2Pro", "SI PO2", "SI PO4", "SI PO6", "SP-20", "SP-20-BLE", "SP-20-WPS", "T-201", "TMB-2288", "TMB_2088", "VCOMIN", "VTM AD5", "W12c", "WBP-02", "ZH-SG", "ZH-SG-A606", "aed_box", "iGate", "int-ER2", "le B1", "le S1", "KidsO2", "O2BAND", "SleepU", "WearO2", "OxySmart", "FHR-666(BLE)", "SleepO2", "Station", "F4", "F5", "F8", "O2", "BTP", "ECN", "ER3", "LDT", "M12", "O2M", "O2S", "OMP", "BPW1", "LEM1", "O2MP", "DuoEK", "O2NCI", "VBeat", "VTM01", "OxyRing", "Oxylink", "LD-TECK", "BPM-188", "MY_SCALE", "BabyO2N", "Pulsebit", "Vetcorder", "BabyO2"];
|
|
24
|
+
const LEPU_DEVICE_NAMES = ["AI-S100", "AITele", "AIView VS", "AP-20", "AP-20-WPS", "AirBP", "Aura_BP2", "BBSM BS1", "BBSM P1", "BBSM S1", "BBSM S2", "BBSM S3", "BM10", "BP2", "BP2A", "BP2A Nexus", "BP2B", "BP2T", "BP2V", "BP2W", "BP3", "BP3-B", "BP3-C1", "BP3-C2", "BP3A", "BP3B", "BP3C", "BP3D", "BP3E", "BP3F", "BP3G", "BP3H", "BP3K", "BP3L", "BP3Z", "BP4 Flex", "BPWATCH", "BUZUD-CML", "Band-WU", "Bioland-BGM", "CB1L-1", "Cardio AI", "CMB590611", "CMB590840", "CMB592254", "CMI_PC303", "CMRing", "CMTouch", "CPR Feedback", "CPR-01", "CPR-02", "CheckADV", "Checkme", "Checkme EX", "Checkme Pod", "Checkme Pod-WPS", "Checkme lite A", "CheckmeLE", "CheckmeLP", "DUAL-SPP", "EM-B", "EM-W", "ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "ER2", "ER2-S", "EZY-HB-01", "EZY-HBB-02", "GM_300SNT", "GM_300SNT-BLE", "Genial-T31", "HDM3D", "HDM3G", "HHM1", "HHM2", "HHM3", "HHM4", "JFK1001", "JFR1001", "KCA", "KCB", "KS-60FW", "KardiaBP", "KidsO2-WPS", "LBM-1", "LEPU AED", "LEPU ER1", "LEPU-ER2", "LP ER2", "LP-BP2W", "LPM311", "LPRE", "Le S5", "Le-F2 Pro", "Le-W", "LeRes", "Lepod", "LepodPro", "Lepu PO6", "Lescale F3", "Lescale F4L", "Lescale F4P", "Lescale P3", "M5", "MY-SS2501", "N9+BP2", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "OxyU", "OxyU SE", "Oxyfit", "Oxyfit-WPS", "PC-100", "PC-200", "PC-200-BLE", "PC-60B_SN", "PC-60F_SN", "PC-60NW", "PC-60NW-1_SN", "PC-60NW-WPS", "PC-60NW_BLE", "PC-60NW_SN", "PC-66B", "PC-68B", "PC66B-VE", "PC80B", "PC80B-BLE", "PC80B_BLE:", "PC_300SNT", "PC_300SNT-BLE", "PF-10", "PF-10AW", "PF-10AW-1", "PF-10AW1", "PF-10BW", "PF-10BW1", "PF-10BWS", "PF-20", "PF-20AW", "PF-20B", "PF10AW-ME", "PF10BW-VE", "PM10", "PO6B-WE", "POD-1W-WU", "POD-1_SN", "POD-2B_SN", "PoctorM3102", "QC-200", "R10", "R11", "R20", "R200", "R21", "S5W-VU", "S5W_SN", "S6W", "S6W1", "S7BW", "S7W", "S8-AW", "SA10AW-PU", "SHQFlex", "SHQO2Pro", "SI PO2", "SI PO4", "SI PO6", "SP-20", "SP-20-BLE", "SP-20-WPS", "T-201", "TMB-2288", "TMB_2088", "VCOMIN", "VTM AD5", "VTM 20F", "W12c", "WBP-02", "ZH-SG", "ZH-SG-A606", "aed_box", "iGate", "int-ER2", "le B1", "le S1", "KidsO2", "O2BAND", "SleepU", "WearO2", "OxySmart", "FHR-666(BLE)", "SleepO2", "Station", "F4", "F5", "F8", "O2", "BTP", "ECN", "ER3", "LDT", "M12", "O2M", "O2S", "OMP", "BPW1", "LEM1", "O2MP", "DuoEK", "O2NCI", "VBeat", "VTM01", "OxyRing", "Oxylink", "LD-TECK", "BPM-188", "MY_SCALE", "BabyO2N", "Pulsebit", "Vetcorder", "BabyO2"];
|
|
25
25
|
|
|
26
26
|
/** Names the vendor matches by the complete first word of the advertisement. */
|
|
27
27
|
const LEPU_FIRST_WORD_DEVICE_NAMES = ["KidsO2", "O2BAND", "SleepU", "WearO2", "OxySmart", "FHR-666(BLE)", "SleepO2", "Station", "F4", "F5", "F8", "O2", "BTP", "ECN", "ER3", "LDT", "M12", "O2M", "O2S", "OMP", "BPW1", "LEM1", "O2MP", "DuoEK", "O2NCI", "VBeat", "VTM01", "OxyRing", "Oxylink", "LD-TECK", "BPM-188", "MY_SCALE", "BabyO2N", "Pulsebit", "Vetcorder", "BabyO2"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LEPU_DEVICE_NAMES","LEPU_FIRST_WORD_DEVICE_NAMES","LEPU_CATALOG_EXCLUDED_DEVICE_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"mappings":";;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,iBAAoC,GAAG,CAC3C,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,CACT;;AAED;AACA,MAAMC,4BAA+C,GAAG,CACtD,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,CACT;;AAED;AACA,MAAMC,kCAAqD,GAAG,CAC5D,cAAc,EACd,MAAM,CACP;AAED,SACEA,kCAAkC,EAClCF,iBAAiB,EACjBC,4BAA4B","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["LEPU_DEVICE_NAMES","LEPU_FIRST_WORD_DEVICE_NAMES","LEPU_CATALOG_EXCLUDED_DEVICE_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { VIATOM_AA55_NOTIFY, VIATOM_AA55_SERVICE, VIATOM_AA55_WRITE, ViatomAa55FrameReader } from "./viatom-aa55.protocol.js";
|
|
7
|
+
import { ViatomAa55Sequencer } from "./viatom-aa55.sequencer.js";
|
|
8
|
+
const acceptNothing = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
export const ap20MainServices = [{
|
|
13
|
+
uuid: VIATOM_AA55_SERVICE,
|
|
14
|
+
monitorUuids: [{
|
|
15
|
+
uuid: VIATOM_AA55_NOTIFY,
|
|
16
|
+
parsingModel: acceptNothing
|
|
17
|
+
}],
|
|
18
|
+
writeUuid: {
|
|
19
|
+
uuid: VIATOM_AA55_WRITE,
|
|
20
|
+
mainCommandUuid: "aa55"
|
|
21
|
+
}
|
|
22
|
+
}];
|
|
23
|
+
|
|
24
|
+
/** Viatom AP-20 and AP-20-WPS realtime oximeter driver. */
|
|
25
|
+
export class Ap20Device extends BTManagedDevice {
|
|
26
|
+
mainServices = ap20MainServices;
|
|
27
|
+
stuckDataTimeout = 60_000;
|
|
28
|
+
onStreamStart = undefined;
|
|
29
|
+
preferredMtu = 247;
|
|
30
|
+
constructor(device, params) {
|
|
31
|
+
super(device, params);
|
|
32
|
+
this.frameReader = new ViatomAa55FrameReader();
|
|
33
|
+
this.createCommandSequencer = () => new ViatomAa55Sequencer({
|
|
34
|
+
write: {
|
|
35
|
+
serviceUuid: VIATOM_AA55_SERVICE,
|
|
36
|
+
characteristicUuid: VIATOM_AA55_WRITE
|
|
37
|
+
},
|
|
38
|
+
perfusionScale: 1,
|
|
39
|
+
onResult: result => this.onResult?.(result)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
handleSuccessResult() {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ap20.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BTManagedDevice","VIATOM_AA55_NOTIFY","VIATOM_AA55_SERVICE","VIATOM_AA55_WRITE","ViatomAa55FrameReader","ViatomAa55Sequencer","acceptNothing","caseValuePosition","cases","ap20MainServices","uuid","monitorUuids","parsingModel","writeUuid","mainCommandUuid","Ap20Device","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","createCommandSequencer","write","serviceUuid","characteristicUuid","perfusionScale","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/ap20.device.ts"],"mappings":";;AAAA;;AASA,SAASA,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,iBAAiB,EACjBC,qBAAqB,QAChB,2BAAwB;AAC/B,SAASC,mBAAmB,QAAQ,4BAAyB;AAE7D,MAAMC,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE1D,OAAO,MAAMC,gBAA4B,GAAG,CAC1C;EACEC,IAAI,EAAER,mBAAmB;EACzBS,YAAY,EAAE,CAAC;IAAED,IAAI,EAAET,kBAAkB;IAAEW,YAAY,EAAEN;EAAc,CAAC,CAAC;EACzEO,SAAS,EAAE;IACTH,IAAI,EAAEP,iBAAiB;IACvBW,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACA,OAAO,MAAMC,UAAU,SAASf,eAAe,CAAyB;EAC5DgB,YAAY,GAAGP,gBAAgB;EAC/BQ,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAChBC,YAAY,GAAG,GAAG;EAE9BC,WAAWA,CAChBC,MAAc,EACdC,MAAkD,EAClD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIpB,qBAAqB,CAAC,CAAC;IAC9C,IAAI,CAACqB,sBAAsB,GAAG,MAC5B,IAAIpB,mBAAmB,CAAC;MACtBqB,KAAK,EAAE;QACLC,WAAW,EAAEzB,mBAAmB;QAChC0B,kBAAkB,EAAEzB;MACtB,CAAC;MACD0B,cAAc,EAAE,CAAC;MACjBC,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { VIATOM_AA55_NOTIFY, VIATOM_AA55_SERVICE, VIATOM_AA55_WRITE, ViatomAa55FrameReader } from "./viatom-aa55.protocol.js";
|
|
7
|
+
import { ViatomAa55Sequencer } from "./viatom-aa55.sequencer.js";
|
|
8
|
+
const acceptNothing = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
export const pc68bMainServices = [{
|
|
13
|
+
uuid: VIATOM_AA55_SERVICE,
|
|
14
|
+
monitorUuids: [{
|
|
15
|
+
uuid: VIATOM_AA55_NOTIFY,
|
|
16
|
+
parsingModel: acceptNothing
|
|
17
|
+
}],
|
|
18
|
+
writeUuid: {
|
|
19
|
+
uuid: VIATOM_AA55_WRITE,
|
|
20
|
+
mainCommandUuid: "aa55"
|
|
21
|
+
}
|
|
22
|
+
}];
|
|
23
|
+
|
|
24
|
+
/** Viatom PC-68B realtime oximeter driver. */
|
|
25
|
+
export class Pc68bDevice extends BTManagedDevice {
|
|
26
|
+
mainServices = pc68bMainServices;
|
|
27
|
+
stuckDataTimeout = 60_000;
|
|
28
|
+
onStreamStart = undefined;
|
|
29
|
+
preferredMtu = 247;
|
|
30
|
+
constructor(device, params) {
|
|
31
|
+
super(device, params);
|
|
32
|
+
this.frameReader = new ViatomAa55FrameReader();
|
|
33
|
+
this.createCommandSequencer = () => new ViatomAa55Sequencer({
|
|
34
|
+
write: {
|
|
35
|
+
serviceUuid: VIATOM_AA55_SERVICE,
|
|
36
|
+
characteristicUuid: VIATOM_AA55_WRITE
|
|
37
|
+
},
|
|
38
|
+
perfusionScale: 0.1,
|
|
39
|
+
onResult: result => this.onResult?.(result)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
handleSuccessResult() {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=pc68b.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BTManagedDevice","VIATOM_AA55_NOTIFY","VIATOM_AA55_SERVICE","VIATOM_AA55_WRITE","ViatomAa55FrameReader","ViatomAa55Sequencer","acceptNothing","caseValuePosition","cases","pc68bMainServices","uuid","monitorUuids","parsingModel","writeUuid","mainCommandUuid","Pc68bDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","preferredMtu","constructor","device","params","frameReader","createCommandSequencer","write","serviceUuid","characteristicUuid","perfusionScale","onResult","result","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/pc68b.device.ts"],"mappings":";;AAAA;;AASA,SAASA,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,iBAAiB,EACjBC,qBAAqB,QAChB,2BAAwB;AAC/B,SAASC,mBAAmB,QAAQ,4BAAyB;AAE7D,MAAMC,aAAa,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAE1D,OAAO,MAAMC,iBAA6B,GAAG,CAC3C;EACEC,IAAI,EAAER,mBAAmB;EACzBS,YAAY,EAAE,CAAC;IAAED,IAAI,EAAET,kBAAkB;IAAEW,YAAY,EAAEN;EAAc,CAAC,CAAC;EACzEO,SAAS,EAAE;IACTH,IAAI,EAAEP,iBAAiB;IACvBW,eAAe,EAAE;EACnB;AACF,CAAC,CACF;;AAED;AACA,OAAO,MAAMC,WAAW,SAASf,eAAe,CAA0B;EAC9DgB,YAAY,GAAGP,iBAAiB;EAChCQ,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAChBC,YAAY,GAAG,GAAG;EAE9BC,WAAWA,CAChBC,MAAc,EACdC,MAAmD,EACnD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIpB,qBAAqB,CAAC,CAAC;IAC9C,IAAI,CAACqB,sBAAsB,GAAG,MAC5B,IAAIpB,mBAAmB,CAAC;MACtBqB,KAAK,EAAE;QACLC,WAAW,EAAEzB,mBAAmB;QAChC0B,kBAAkB,EAAEzB;MACtB,CAAC;MACD0B,cAAc,EAAE,GAAG;MACnBC,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { FrameReadStatus } from "../../../types/frame-read-status.js";
|
|
6
|
+
import { calculateCrc8Pc } from "../../../utils/calculate-crc-8-pc.js";
|
|
7
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
8
|
+
export const VIATOM_AA55_SERVICE = "14839ac4-7d7e-415c-9a42-167340cf2339";
|
|
9
|
+
export const VIATOM_AA55_WRITE = "8b00ace7-eb0b-49b0-bbe9-9aee0a26e1a3";
|
|
10
|
+
export const VIATOM_AA55_NOTIFY = "0734594a-a8e7-4b1a-a6b1-cd5243059a57";
|
|
11
|
+
const byte = value => (value & 0xff).toString(16).padStart(2, "0");
|
|
12
|
+
const littleEndian32 = value => [byte(value), byte(value >>> 8), byte(value >>> 16), byte(value >>> 24)];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Builds the AA 55 command used by the Viatom AP-20 and PC-68B interfaces.
|
|
16
|
+
* The length byte includes the command and checksum, as in the vendor library.
|
|
17
|
+
*/
|
|
18
|
+
export const viatomAa55Command = (token, command, payload = []) => {
|
|
19
|
+
const frame = ["aa", "55", byte(token), byte(payload.length + 2), byte(command), ...payload, "00"];
|
|
20
|
+
frame[frame.length - 1] = byte(calculateCrc8Pc(frame));
|
|
21
|
+
return frame;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/** The vendor's TimeData: local epoch and timezone offset, both little-endian. */
|
|
25
|
+
export const viatomAa55SetTime = (now = new Date()) => {
|
|
26
|
+
const offsetSeconds = -now.getTimezoneOffset() * 60;
|
|
27
|
+
const localEpochSeconds = Math.floor(now.getTime() / 1000) - offsetSeconds;
|
|
28
|
+
return viatomAa55Command(0x0f, 0x87, [...littleEndian32(localEpochSeconds), ...littleEndian32(offsetSeconds), "00", "00"]);
|
|
29
|
+
};
|
|
30
|
+
export const decodeViatomAa55Response = frame => {
|
|
31
|
+
if (hexToByte(frame[0] ?? "00") !== 0xaa || hexToByte(frame[1] ?? "00") !== 0x55) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const length = hexToByte(frame[3] ?? "00");
|
|
35
|
+
if (length < 2 || frame.length !== length + 4) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (calculateCrc8Pc(frame) !== hexToByte(frame.at(-1) ?? "00")) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
token: hexToByte(frame[2] ?? "00"),
|
|
43
|
+
type: hexToByte(frame[4] ?? "00"),
|
|
44
|
+
content: frame.slice(5, frame.length - 1)
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/** Decodes the six-byte realtime parameter payload shared by both products. */
|
|
48
|
+
export const parseViatomAa55OximeterReading = (content, perfusionScale) => {
|
|
49
|
+
if (content.length < 6) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const flags = hexToByte(content[4] ?? "00");
|
|
53
|
+
return {
|
|
54
|
+
bloodOxygen: hexToByte(content[0] ?? "00"),
|
|
55
|
+
pulseRate: hexToByte(content[1] ?? "00") | hexToByte(content[2] ?? "00") << 8,
|
|
56
|
+
perfusionIndex: hexToByte(content[3] ?? "00") * perfusionScale,
|
|
57
|
+
probeOff: (flags & 0x02) !== 0,
|
|
58
|
+
pulseSearching: (flags & 0x04) !== 0
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/** Reads split and concatenated AA55 frames with the vendor CRC-8/PC checksum. */
|
|
63
|
+
export class ViatomAa55FrameReader {
|
|
64
|
+
readFrame(buffer) {
|
|
65
|
+
const start = this.findHeader(buffer);
|
|
66
|
+
if (start < 0) {
|
|
67
|
+
return {
|
|
68
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
69
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (start + 4 > buffer.length) {
|
|
73
|
+
return {
|
|
74
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
75
|
+
consumedBytes: start
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const frameLength = hexToByte(buffer[start + 3] ?? "00") + 4;
|
|
79
|
+
if (frameLength < 6) {
|
|
80
|
+
return {
|
|
81
|
+
status: FrameReadStatus.CORRUPT,
|
|
82
|
+
consumedBytes: start + 2
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (start + frameLength > buffer.length) {
|
|
86
|
+
return {
|
|
87
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
88
|
+
consumedBytes: start
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const frame = buffer.slice(start, start + frameLength);
|
|
92
|
+
if (calculateCrc8Pc(frame) !== hexToByte(frame.at(-1) ?? "00")) {
|
|
93
|
+
return {
|
|
94
|
+
status: FrameReadStatus.CORRUPT,
|
|
95
|
+
consumedBytes: start + 2
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
status: FrameReadStatus.COMPLETE,
|
|
100
|
+
consumedBytes: start + frameLength,
|
|
101
|
+
frame
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
findHeader = buffer => {
|
|
105
|
+
for (let index = 0; index < buffer.length - 1; index += 1) {
|
|
106
|
+
if (hexToByte(buffer[index] ?? "00") === 0xaa && hexToByte(buffer[index + 1] ?? "00") === 0x55) {
|
|
107
|
+
return index;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return -1;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=viatom-aa55.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","calculateCrc8Pc","hexToByte","VIATOM_AA55_SERVICE","VIATOM_AA55_WRITE","VIATOM_AA55_NOTIFY","byte","value","toString","padStart","littleEndian32","viatomAa55Command","token","command","payload","frame","length","viatomAa55SetTime","now","Date","offsetSeconds","getTimezoneOffset","localEpochSeconds","Math","floor","getTime","decodeViatomAa55Response","undefined","at","type","content","slice","parseViatomAa55OximeterReading","perfusionScale","flags","bloodOxygen","pulseRate","perfusionIndex","probeOff","pulseSearching","ViatomAa55FrameReader","readFrame","buffer","start","findHeader","status","INCOMPLETE","consumedBytes","max","frameLength","CORRUPT","COMPLETE","index"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom-aa55.protocol.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
6
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
7
|
+
import { decodeViatomAa55Response, parseViatomAa55OximeterReading, viatomAa55Command, viatomAa55SetTime } from "./viatom-aa55.protocol.js";
|
|
8
|
+
const command = (write, frame) => ({
|
|
9
|
+
...write,
|
|
10
|
+
frame,
|
|
11
|
+
withoutResponse: true
|
|
12
|
+
});
|
|
13
|
+
const validOxygen = value => Number.isFinite(value) && value >= 50 && value <= 100;
|
|
14
|
+
const validPulse = value => Number.isFinite(value) && value > 0 && value <= 300;
|
|
15
|
+
|
|
16
|
+
/** Drives the clock, realtime-parameter and realtime-wave exchange used by AP-20 and PC-68B. */
|
|
17
|
+
export class ViatomAa55Sequencer {
|
|
18
|
+
phase = "clock";
|
|
19
|
+
constructor(params) {
|
|
20
|
+
this.params = params;
|
|
21
|
+
}
|
|
22
|
+
initialCommands = () => [this.write(viatomAa55SetTime(this.params.now?.() ?? new Date()))];
|
|
23
|
+
nextCommand = frame => {
|
|
24
|
+
const response = decodeViatomAa55Response(frame);
|
|
25
|
+
if (!response || response.token !== 0x0f) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
if (response.type === 1) {
|
|
29
|
+
if (this.phase === "ready") {
|
|
30
|
+
this.report(response);
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (this.phase === "clock" && response.type === 7) {
|
|
35
|
+
this.phase = "parameters";
|
|
36
|
+
return [this.write(viatomAa55Command(0x0f, 0x84, ["01"]))];
|
|
37
|
+
}
|
|
38
|
+
if (this.phase === "parameters" && response.type === 4) {
|
|
39
|
+
this.phase = "wave";
|
|
40
|
+
return [this.write(viatomAa55Command(0x0f, 0x85, ["01"]))];
|
|
41
|
+
}
|
|
42
|
+
if (this.phase === "wave" && response.type === 5) {
|
|
43
|
+
this.phase = "ready";
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
};
|
|
47
|
+
write = frame => command(this.params.write, frame);
|
|
48
|
+
report = response => {
|
|
49
|
+
const reading = parseViatomAa55OximeterReading(response.content, this.params.perfusionScale);
|
|
50
|
+
if (!reading || reading.probeOff || reading.pulseSearching) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const hasOxygen = validOxygen(reading.bloodOxygen);
|
|
54
|
+
const hasPulse = validPulse(reading.pulseRate);
|
|
55
|
+
if (!hasOxygen && !hasPulse) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.params.onResult({
|
|
59
|
+
caseType: CaseType.RESULT,
|
|
60
|
+
measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
|
|
61
|
+
...(hasOxygen ? {
|
|
62
|
+
bloodOxygen: reading.bloodOxygen
|
|
63
|
+
} : {}),
|
|
64
|
+
...(hasPulse ? {
|
|
65
|
+
pulseRate: reading.pulseRate
|
|
66
|
+
} : {}),
|
|
67
|
+
...(reading.perfusionIndex > 0 ? {
|
|
68
|
+
perfusionIndex: reading.perfusionIndex
|
|
69
|
+
} : {}),
|
|
70
|
+
recordedAt: this.params.now?.() ?? new Date()
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=viatom-aa55.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","decodeViatomAa55Response","parseViatomAa55OximeterReading","viatomAa55Command","viatomAa55SetTime","command","write","frame","withoutResponse","validOxygen","value","Number","isFinite","validPulse","ViatomAa55Sequencer","phase","constructor","params","initialCommands","now","Date","nextCommand","response","token","undefined","type","report","reading","content","perfusionScale","probeOff","pulseSearching","hasOxygen","bloodOxygen","hasPulse","pulseRate","onResult","caseType","RESULT","measurementTypeKey","bloodOxygenPulseRate","perfusionIndex","recordedAt"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom-aa55.sequencer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -88,6 +88,12 @@ const bp2tMonitor = params => viatomBpMonitor("BP2T", params);
|
|
|
88
88
|
|
|
89
89
|
/** BP2W. Documented in its own section, but decoding the same realtime struct. */
|
|
90
90
|
const bp2wMonitor = params => viatomBpMonitor("BP2W", params);
|
|
91
|
+
|
|
92
|
+
/** BP2V, the WiFi variant that uses the BP2 realtime layout without ECG frames. */
|
|
93
|
+
const bp2vMonitor = params => viatomBpMonitor("BP2V", params);
|
|
94
|
+
|
|
95
|
+
/** LP-BP2W, the Lepu-branded WiFi variant of the BP2 family. */
|
|
96
|
+
const lpBp2wMonitor = params => viatomBpMonitor("LP-BP2W", params);
|
|
91
97
|
const TMB_SERVICE = "0000a610-0000-1000-8000-00805f9b34fb";
|
|
92
98
|
const TMB_WRITE = "0000a624-0000-1000-8000-00805f9b34fb";
|
|
93
99
|
const TMB_ACK = "0000a622-0000-1000-8000-00805f9b34fb";
|
|
@@ -148,5 +154,5 @@ const tmbBpMonitor = (advertisedName, params) => defineCustomDevice({
|
|
|
148
154
|
*/
|
|
149
155
|
const BP3_MODEL_NAMES = ["BP3", "BP3-B", "BP3-C1", "BP3-C2", "BP3A", "BP3B", "BP3C", "BP3D", "BP3E", "BP3F", "BP3G", "BP3H", "BP3K", "BP3L", "BP3Z", "HDM3D", "HDM3G"];
|
|
150
156
|
const TMB_MODEL_NAMES = ["BP3-B", "BP3-C1", "BP3-C2", "BP2A Nexus", "BP4 Flex", "TMB-2288", "TMB_2088"];
|
|
151
|
-
export { bp2aMonitor, bp2tMonitor, bp2wMonitor, BP3_MODEL_NAMES, TMB_MODEL_NAMES, tmbBpMonitor, viatomBpMonitor };
|
|
157
|
+
export { bp2aMonitor, bp2vMonitor, bp2tMonitor, bp2wMonitor, BP3_MODEL_NAMES, lpBp2wMonitor, TMB_MODEL_NAMES, tmbBpMonitor, viatomBpMonitor };
|
|
152
158
|
//# sourceMappingURL=viatom.bp-monitors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["le32FromHex","defineCustomDevice","recordedAtFromLocalSeconds","lepuNameMatch","lepuDevice","createTmbBloodPressureFrameHandler","createViatomFrameHandler","BP2_CASES","BP2_ECG_CASES","BP3_CASES","BP3_ECG_CASES","RT_DATA","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","RESULT_CODE_INDEX","DEVICE_TIME_INDEX","rejectFailedResult","reading","frame","resultCode","Number","parseInt","Error","toString","padStart","recordedAt","length","undefined","viatomBpMonitor","advertisedName","params","isBp3","BP3_MODEL_NAMES","includes","hasEcg","id","toLowerCase","replace","nameMatch","clockSync","clockSyncProtocol","fileTransfer","rejectEncryptionAtBytes","pollCommand","pollIntervalMs","minLengthBytes","caseSelectorBytes","cases","map","each","decorateReading","createFrameHandler","expectedDeviceTypes","bp2aMonitor","bp2tMonitor","bp2wMonitor","TMB_SERVICE","TMB_WRITE","TMB_ACK","TMB_NOTIFY","TMB_INDICATE","tmbBpMonitor","stuckDataTimeoutMs","preferredMtu","tmb","serviceUuid","writeUuid","ackUuid","services","uuid","monitor","selector","kind","TMB_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["le32FromHex","defineCustomDevice","recordedAtFromLocalSeconds","lepuNameMatch","lepuDevice","createTmbBloodPressureFrameHandler","createViatomFrameHandler","BP2_CASES","BP2_ECG_CASES","BP3_CASES","BP3_ECG_CASES","RT_DATA","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","RESULT_CODE_INDEX","DEVICE_TIME_INDEX","rejectFailedResult","reading","frame","resultCode","Number","parseInt","Error","toString","padStart","recordedAt","length","undefined","viatomBpMonitor","advertisedName","params","isBp3","BP3_MODEL_NAMES","includes","hasEcg","id","toLowerCase","replace","nameMatch","clockSync","clockSyncProtocol","fileTransfer","rejectEncryptionAtBytes","pollCommand","pollIntervalMs","minLengthBytes","caseSelectorBytes","cases","map","each","decorateReading","createFrameHandler","expectedDeviceTypes","bp2aMonitor","bp2tMonitor","bp2wMonitor","bp2vMonitor","lpBp2wMonitor","TMB_SERVICE","TMB_WRITE","TMB_ACK","TMB_NOTIFY","TMB_INDICATE","tmbBpMonitor","stuckDataTimeoutMs","preferredMtu","tmb","serviceUuid","writeUuid","ackUuid","services","uuid","monitor","selector","kind","TMB_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { FrameReadStatus } from "../../../types/frame-read-status.js";
|
|
4
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
5
|
+
const HEADER = "fe";
|
|
6
|
+
const LENGTH_INDEX = 1;
|
|
7
|
+
const MIN_FRAME_BYTES = 10;
|
|
8
|
+
|
|
9
|
+
/** Reads the length-prefixed VTM 20F notifications from ViHealth. */
|
|
10
|
+
export class Vtm20fFrameReader {
|
|
11
|
+
readFrame(buffer) {
|
|
12
|
+
const start = buffer.findIndex(byte => byte.toLowerCase() === HEADER);
|
|
13
|
+
if (start === -1) {
|
|
14
|
+
return {
|
|
15
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
16
|
+
consumedBytes: Math.max(0, buffer.length - 1)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (start + LENGTH_INDEX >= buffer.length) {
|
|
20
|
+
return {
|
|
21
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
22
|
+
consumedBytes: start
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const frameLength = hexToByte(buffer[start + LENGTH_INDEX] ?? "00");
|
|
26
|
+
if (frameLength < MIN_FRAME_BYTES) {
|
|
27
|
+
return {
|
|
28
|
+
status: FrameReadStatus.CORRUPT,
|
|
29
|
+
consumedBytes: start + 1
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (start + frameLength > buffer.length) {
|
|
33
|
+
return {
|
|
34
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
35
|
+
consumedBytes: start
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
status: FrameReadStatus.COMPLETE,
|
|
40
|
+
consumedBytes: start + frameLength,
|
|
41
|
+
frame: buffer.slice(start, start + frameLength)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=viatom.vtm20f.frame-reader.js.map
|
package/lib/module/modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","hexToByte","HEADER","LENGTH_INDEX","MIN_FRAME_BYTES","Vtm20fFrameReader","readFrame","buffer","start","findIndex","byte","toLowerCase","status","INCOMPLETE","consumedBytes","Math","max","length","frameLength","CORRUPT","COMPLETE","frame","slice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.vtm20f.frame-reader.ts"],"mappings":";;AACA,SAASA,eAAe,QAAQ,qCAAkC;AAElE,SAASC,SAAS,QAAQ,+BAA4B;AAEtD,MAAMC,MAAM,GAAG,IAAI;AACnB,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA,OAAO,MAAMC,iBAAiB,CAAwB;EAC7CC,SAASA,CAACC,MAAyB,EAAmB;IAC3D,MAAMC,KAAK,GAAGD,MAAM,CAACE,SAAS,CAAEC,IAAI,IAAKA,IAAI,CAACC,WAAW,CAAC,CAAC,KAAKT,MAAM,CAAC;IAEvE,IAAIM,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,OAAO;QACLI,MAAM,EAAEZ,eAAe,CAACa,UAAU;QAClCC,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAET,MAAM,CAACU,MAAM,GAAG,CAAC;MAC9C,CAAC;IACH;IAEA,IAAIT,KAAK,GAAGL,YAAY,IAAII,MAAM,CAACU,MAAM,EAAE;MACzC,OAAO;QAAEL,MAAM,EAAEZ,eAAe,CAACa,UAAU;QAAEC,aAAa,EAAEN;MAAM,CAAC;IACrE;IAEA,MAAMU,WAAW,GAAGjB,SAAS,CAC3BM,MAAM,CAACC,KAAK,GAAGL,YAAY,CAAC,IAAI,IAClC,CAAC;IAED,IAAIe,WAAW,GAAGd,eAAe,EAAE;MACjC,OAAO;QACLQ,MAAM,EAAEZ,eAAe,CAACmB,OAAO;QAC/BL,aAAa,EAAEN,KAAK,GAAG;MACzB,CAAC;IACH;IAEA,IAAIA,KAAK,GAAGU,WAAW,GAAGX,MAAM,CAACU,MAAM,EAAE;MACvC,OAAO;QAAEL,MAAM,EAAEZ,eAAe,CAACa,UAAU;QAAEC,aAAa,EAAEN;MAAM,CAAC;IACrE;IAEA,OAAO;MACLI,MAAM,EAAEZ,eAAe,CAACoB,QAAQ;MAChCN,aAAa,EAAEN,KAAK,GAAGU,WAAW;MAClCG,KAAK,EAAEd,MAAM,CAACe,KAAK,CAACd,KAAK,EAAEA,KAAK,GAAGU,WAAW;IAChD,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { defineCustomDevice } from "../../custom/define-custom-device.js";
|
|
5
|
+
import { lepuNameMatch } from "../lepu/lepu.name-match.js";
|
|
6
|
+
import { Vtm20fFrameReader } from "./viatom.vtm20f.frame-reader.js";
|
|
7
|
+
const SERVICE_UUID = "0000ffe0-0000-1000-8000-00805f9b34fb";
|
|
8
|
+
const NOTIFY_UUID = "0000ffe4-0000-1000-8000-00805f9b34fb";
|
|
9
|
+
|
|
10
|
+
/** Declares the FS20F/VTM 20F realtime oxygen parameters from ViHealth. */
|
|
11
|
+
const viatomVtm20fMonitor = (params = {}) => defineCustomDevice({
|
|
12
|
+
id: params.id ?? "viatom-vtm-20f",
|
|
13
|
+
nameMatch: params.nameMatch ?? lepuNameMatch("VTM 20F"),
|
|
14
|
+
stuckDataTimeoutMs: 30_000,
|
|
15
|
+
services: [{
|
|
16
|
+
uuid: SERVICE_UUID,
|
|
17
|
+
monitor: [{
|
|
18
|
+
uuid: NOTIFY_UUID,
|
|
19
|
+
frame: {
|
|
20
|
+
header: ["fe"],
|
|
21
|
+
minLengthBytes: 10,
|
|
22
|
+
length: {
|
|
23
|
+
index: 1,
|
|
24
|
+
widthBytes: 1,
|
|
25
|
+
byteOrder: "big",
|
|
26
|
+
overheadBytes: 0
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
caseSelectorBytes: [0, 2],
|
|
30
|
+
cases: [{
|
|
31
|
+
selector: "fe55",
|
|
32
|
+
kind: "result",
|
|
33
|
+
measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
|
|
34
|
+
fields: [{
|
|
35
|
+
name: "pulseRate",
|
|
36
|
+
byteIndexes: [3, 4],
|
|
37
|
+
unit: "bpm"
|
|
38
|
+
}, {
|
|
39
|
+
name: "bloodOxygen",
|
|
40
|
+
byteIndexes: [5],
|
|
41
|
+
unit: "%"
|
|
42
|
+
}, {
|
|
43
|
+
name: "perfusionIndex",
|
|
44
|
+
byteIndexes: [6, 7],
|
|
45
|
+
scale: 0.001,
|
|
46
|
+
decimals: 3,
|
|
47
|
+
unit: "%"
|
|
48
|
+
}]
|
|
49
|
+
}]
|
|
50
|
+
}]
|
|
51
|
+
}]
|
|
52
|
+
}, {
|
|
53
|
+
frameReader: new Vtm20fFrameReader()
|
|
54
|
+
});
|
|
55
|
+
export { viatomVtm20fMonitor };
|
|
56
|
+
//# sourceMappingURL=viatom.vtm20f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","defineCustomDevice","lepuNameMatch","Vtm20fFrameReader","SERVICE_UUID","NOTIFY_UUID","viatomVtm20fMonitor","params","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","header","minLengthBytes","length","index","widthBytes","byteOrder","overheadBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","bloodOxygenPulseRate","fields","name","byteIndexes","unit","scale","decimals","frameReader"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.vtm20f.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAG/C,SAASC,kBAAkB,QAAQ,sCAAmC;AACtE,SAASC,aAAa,QAAQ,4BAAyB;AAEvD,SAASC,iBAAiB,QAAQ,iCAA8B;AAEhE,MAAMC,YAAY,GAAG,sCAAsC;AAC3D,MAAMC,WAAW,GAAG,sCAAsC;;AAE1D;AACA,MAAMC,mBAAmB,GAAGA,CAC1BC,MAAoD,GAAG,CAAC,CAAC,KAEzDN,kBAAkB,CAChB;EACEO,EAAE,EAAED,MAAM,CAACC,EAAE,IAAI,gBAAgB;EACjCC,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAIP,aAAa,CAAC,SAAS,CAAC;EACvDQ,kBAAkB,EAAE,MAAM;EAC1BC,QAAQ,EAAE,CACR;IACEC,IAAI,EAAER,YAAY;IAClBS,OAAO,EAAE,CACP;MACED,IAAI,EAAEP,WAAW;MACjBS,KAAK,EAAE;QACLC,MAAM,EAAE,CAAC,IAAI,CAAC;QACdC,cAAc,EAAE,EAAE;QAClBC,MAAM,EAAE;UACNC,KAAK,EAAE,CAAC;UACRC,UAAU,EAAE,CAAC;UACbC,SAAS,EAAE,KAAK;UAChBC,aAAa,EAAE;QACjB;MACF,CAAC;MACDC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACzBC,KAAK,EAAE,CACL;QACEC,QAAQ,EAAE,MAAM;QAChBC,IAAI,EAAE,QAAQ;QACdC,kBAAkB,EAAE1B,kBAAkB,CAAC2B,oBAAoB;QAC3DC,MAAM,EAAE,CACN;UACEC,IAAI,EAAE,WAAW;UACjBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,IAAI,EAAE;QACR,CAAC,EACD;UACEF,IAAI,EAAE,aAAa;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBC,IAAI,EAAE;QACR,CAAC,EACD;UACEF,IAAI,EAAE,gBAAgB;UACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBE,KAAK,EAAE,KAAK;UACZC,QAAQ,EAAE,CAAC;UACXF,IAAI,EAAE;QACR,CAAC;MAEL,CAAC;IAEL,CAAC;EAEL,CAAC;AAEL,CAAC,EACD;EAAEG,WAAW,EAAE,IAAI/B,iBAAiB,CAAC;AAAE,CACzC,CAAC;AAEH,SAASG,mBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAaA,SAASA,iBAAiB,QAAQ,yBAAsB;;
|
|
1
|
+
{"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAaA,SAASA,iBAAiB,QAAQ,yBAAsB;;AAwExD;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -30,6 +30,9 @@ export let IntegratedDevices = /*#__PURE__*/function (IntegratedDevices) {
|
|
|
30
30
|
IntegratedDevices["CHECKME"] = "Checkme";
|
|
31
31
|
IntegratedDevices["CHECKME_POD"] = "Checkme Pod";
|
|
32
32
|
IntegratedDevices["CHECKME_POD_WPS"] = "Checkme Pod-WPS";
|
|
33
|
+
IntegratedDevices["AP20"] = "AP-20";
|
|
34
|
+
IntegratedDevices["AP20_WPS"] = "AP-20-WPS";
|
|
35
|
+
IntegratedDevices["PC68B"] = "PC-68B";
|
|
33
36
|
return IntegratedDevices;
|
|
34
37
|
}({});
|
|
35
38
|
//# sourceMappingURL=integrated-devices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { hexToByte } from "./hex-to-byte.js";
|
|
4
|
+
const POLYNOMIAL = 0x5e;
|
|
5
|
+
|
|
6
|
+
/** CRC-8/PC used by Viatom's AA55 interfaces, with an initial remainder of zero. */
|
|
7
|
+
export const calculateCrc8Pc = hex => {
|
|
8
|
+
let remainder = 0;
|
|
9
|
+
for (let index = 0; index < hex.length - 1; index += 1) {
|
|
10
|
+
remainder ^= hexToByte(hex[index] ?? "00");
|
|
11
|
+
for (let bit = 0; bit < 8; bit += 1) {
|
|
12
|
+
remainder = remainder & 0x80 ? (remainder << 1 ^ POLYNOMIAL) & 0xff : remainder << 1 & 0xff;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return remainder;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=calculate-crc-8-pc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hexToByte","POLYNOMIAL","calculateCrc8Pc","hex","remainder","index","length","bit"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/calculate-crc-8-pc.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,kBAAe;AAEzC,MAAMC,UAAU,GAAG,IAAI;;AAEvB;AACA,OAAO,MAAMC,eAAe,GAAIC,GAAsB,IAAa;EACjE,IAAIC,SAAS,GAAG,CAAC;EAEjB,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,GAAG,CAACG,MAAM,GAAG,CAAC,EAAED,KAAK,IAAI,CAAC,EAAE;IACtDD,SAAS,IAAIJ,SAAS,CAACG,GAAG,CAACE,KAAK,CAAC,IAAI,IAAI,CAAC;IAE1C,KAAK,IAAIE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,EAAEA,GAAG,IAAI,CAAC,EAAE;MACnCH,SAAS,GACPA,SAAS,GAAG,IAAI,GACZ,CAAEA,SAAS,IAAI,CAAC,GAAIH,UAAU,IAAI,IAAI,GACrCG,SAAS,IAAI,CAAC,GAAI,IAAI;IAC/B;EACF;EAEA,OAAOA,SAAS;AAClB,CAAC","ignoreList":[]}
|
package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAiCrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAyFhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AAmZhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUH,CAAC;AAExD,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
|
package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrated-devices-map.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/integrated-devices-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"integrated-devices-map.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/integrated-devices-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,gCAgC/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAUrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAUrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAuF9D,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAKhD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEvC,mBAAmB,EAAE,CAAC;IAI5C,aAAa,GAClB,WAAW,MAAM,EACjB,eAAc,SAAS,MAAM,EAAO,KACnC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAwB3B;IAEK,YAAY,CAAC,CAAC,SAAS,SAAS,EACrC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC;IA4Cd,OAAO,aAEZ;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CAMP;IAEhB,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lepu.device-names.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,iBAAiB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"lepu.device-names.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,iBAAiB,EAAE,SAAS,MAAM,EA4OvC,CAAC;AAEF,gFAAgF;AAChF,QAAA,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAqClD,CAAC;AAEF,gGAAgG;AAChG,QAAA,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAGxD,CAAC;AAEF,OAAO,EACL,kCAAkC,EAClC,iBAAiB,EACjB,4BAA4B,GAC7B,CAAC"}
|