@ovok/native 0.4.6 → 0.4.7
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/index.js +176 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js +49 -0
- package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +47 -41
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-frame.js +48 -2
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +98 -0
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +24 -1
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js +15 -8
- package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +85 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.frame-reader.js +8 -74
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.frame-reader.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +141 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +9 -49
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +17 -6
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +21 -14
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +36 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +81 -14
- 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.command-builder.js +48 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js +37 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-info.js +83 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-info.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js +26 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-names.js +36 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-names.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +155 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame-reader.js +98 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame-reader.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame.js +29 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +103 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js +32 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.response-type.js +64 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.response-type.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +143 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js +38 -0
- package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +156 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +124 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +113 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js +117 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +82 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/command-sequencer.js +6 -0
- package/lib/commonjs/modules/bt-management/types/command-sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/custom-checksum-algorithm.js +2 -0
- package/lib/commonjs/modules/bt-management/types/custom-checksum-algorithm.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/custom-checksum-spec.js +6 -0
- package/lib/commonjs/modules/bt-management/types/custom-checksum-spec.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/custom-lepu-spec.js +2 -0
- package/lib/commonjs/modules/bt-management/types/custom-lepu-spec.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/custom-measurement-spec.js +6 -0
- package/lib/commonjs/modules/bt-management/types/custom-measurement-spec.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/device-command.js +2 -0
- package/lib/commonjs/modules/bt-management/types/device-command.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/measurement-group.js +6 -0
- package/lib/commonjs/modules/bt-management/types/measurement-group.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/calculate-checksum.js +49 -0
- package/lib/commonjs/modules/bt-management/utils/calculate-checksum.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js +9 -0
- package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/hex-to-bytes.js +19 -0
- package/lib/commonjs/modules/bt-management/utils/hex-to-bytes.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/le-32-to-bytes.js +13 -0
- package/lib/commonjs/modules/bt-management/utils/le-32-to-bytes.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/summarise-measurement-for-log.js +22 -0
- package/lib/commonjs/modules/bt-management/utils/summarise-measurement-for-log.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/supported-measurement-type-keys.js +18 -0
- package/lib/commonjs/modules/bt-management/utils/supported-measurement-type-keys.js.map +1 -0
- package/lib/module/modules/bt-management/index.js +16 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/compile-case-fields.js +44 -0
- package/lib/module/modules/bt-management/services/custom/compile-case-fields.js.map +1 -0
- package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +47 -41
- package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js +48 -2
- package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +93 -0
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -0
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js +24 -1
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-creator.js +16 -8
- package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +81 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.frame-reader.js +8 -73
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.frame-reader.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +136 -0
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +9 -49
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +17 -6
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +21 -14
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +32 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +81 -14
- 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.command-builder.js +43 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js +33 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-info.js +79 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-info.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js +22 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-names.js +32 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-names.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +150 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame-reader.js +93 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame-reader.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame.js +24 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +98 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js +27 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.response-type.js +59 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.response-type.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +140 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js +34 -0
- package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +149 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +118 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +108 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js +114 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +79 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -0
- package/lib/module/modules/bt-management/types/command-sequencer.js +4 -0
- package/lib/module/modules/bt-management/types/command-sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/types/custom-checksum-algorithm.js +2 -0
- package/lib/module/modules/bt-management/types/custom-checksum-algorithm.js.map +1 -0
- package/lib/module/modules/bt-management/types/custom-checksum-spec.js +4 -0
- package/lib/module/modules/bt-management/types/custom-checksum-spec.js.map +1 -0
- package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
- package/lib/module/modules/bt-management/types/custom-lepu-spec.js +2 -0
- package/lib/module/modules/bt-management/types/custom-lepu-spec.js.map +1 -0
- package/lib/module/modules/bt-management/types/custom-measurement-spec.js +4 -0
- package/lib/module/modules/bt-management/types/custom-measurement-spec.js.map +1 -0
- package/lib/module/modules/bt-management/types/device-command.js +2 -0
- package/lib/module/modules/bt-management/types/device-command.js.map +1 -0
- package/lib/module/modules/bt-management/types/measurement-group.js +4 -0
- package/lib/module/modules/bt-management/types/measurement-group.js.map +1 -0
- package/lib/module/modules/bt-management/utils/calculate-checksum.js +44 -0
- package/lib/module/modules/bt-management/utils/calculate-checksum.js.map +1 -0
- package/lib/module/modules/bt-management/utils/create-frame-validator.js +9 -0
- package/lib/module/modules/bt-management/utils/create-frame-validator.js.map +1 -1
- package/lib/module/modules/bt-management/utils/hex-to-bytes.js +14 -0
- package/lib/module/modules/bt-management/utils/hex-to-bytes.js.map +1 -0
- package/lib/module/modules/bt-management/utils/le-32-to-bytes.js +8 -0
- package/lib/module/modules/bt-management/utils/le-32-to-bytes.js.map +1 -0
- package/lib/module/modules/bt-management/utils/summarise-measurement-for-log.js +17 -0
- package/lib/module/modules/bt-management/utils/summarise-measurement-for-log.js.map +1 -0
- package/lib/module/modules/bt-management/utils/supported-measurement-type-keys.js +13 -0
- package/lib/module/modules/bt-management/utils/supported-measurement-type-keys.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-case-fields.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.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/aoj/aoj.thermometers.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts +5 -8
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +67 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -4
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +20 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +33 -0
- 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.command-builder.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts +27 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +20 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts +14 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +75 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts +28 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +81 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts +17 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +85 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +27 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +44 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +44 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +25 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +39 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-algorithm.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-algorithm.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-spec.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-spec.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +44 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement-spec.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement-spec.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-group.d.ts +14 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-group.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-checksum.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-checksum.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/hex-to-bytes.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/hex-to-bytes.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/le-32-to-bytes.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/le-32-to-bytes.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-case-fields.d.ts +13 -0
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.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/aoj/aoj.thermometers.d.ts +24 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts +5 -8
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +67 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -4
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +20 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +33 -0
- 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.command-builder.d.ts +24 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts +27 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +20 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts +14 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +75 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts +28 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts +12 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +81 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts +17 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +85 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +27 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +44 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +44 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +25 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +39 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts +13 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-algorithm.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-algorithm.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-spec.d.ts +23 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-spec.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +44 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-measurement-spec.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-measurement-spec.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts +18 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/measurement-group.d.ts +14 -0
- package/lib/typescript/module/src/modules/bt-management/types/measurement-group.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-checksum.d.ts +13 -0
- package/lib/typescript/module/src/modules/bt-management/utils/calculate-checksum.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/hex-to-bytes.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/utils/hex-to-bytes.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/le-32-to-bytes.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/utils/le-32-to-bytes.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.er3Recorder = exports.er2Recorder = exports.er1Recorder = exports.ER2_MODEL_NAMES = exports.ER1_MODEL_NAMES = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _lepuNameMatch = require("../lepu/lepu.name-match.js");
|
|
9
|
+
var _lepuTransports = require("../lepu/lepu.transports.js");
|
|
10
|
+
/**
|
|
11
|
+
* The Viatom ECG recorders - ER1, ER2 and ER3.
|
|
12
|
+
*
|
|
13
|
+
* **What a declaration gets from these is the heart rate, not the waveform.** The ECG itself
|
|
14
|
+
* arrives as a stream of samples assembled across many notifications and belongs to a device
|
|
15
|
+
* class; the recorders also report a heart rate in the same realtime frame, at a fixed
|
|
16
|
+
* offset, and that is a reading a declaration can carry on its own.
|
|
17
|
+
*
|
|
18
|
+
* Their stored recordings are a separate matter and are reachable: these devices use the
|
|
19
|
+
* family's generic file opcodes, so `LepuFileTransfer` downloads their records unchanged.
|
|
20
|
+
* Turning a downloaded recording into a measurement still needs a device class.
|
|
21
|
+
*
|
|
22
|
+
* ## A note on the opcodes
|
|
23
|
+
*
|
|
24
|
+
* This range numbers its commands low, in the space where the family's meanings diverge
|
|
25
|
+
* most, so the poll is chosen deliberately rather than taken from whatever the vendor's SDK
|
|
26
|
+
* calls first:
|
|
27
|
+
*
|
|
28
|
+
* - `RT_PARAM` is `0x02` here and **`CALIBRATION_SLOPE` on a BP2**, a factory command that
|
|
29
|
+
* silently biases every subsequent blood-pressure reading. It is never sent, even though
|
|
30
|
+
* it would be the cheaper poll - it returns the parameters without the waveform.
|
|
31
|
+
* - `START_ECG` is `0x08` on a Lepod and `RT_DATA` on a BP2. It is never sent either.
|
|
32
|
+
*
|
|
33
|
+
* `RT_DATA` is a read on every one of them, which is why it is the poll here. The advertised
|
|
34
|
+
* name is what keeps these opcodes pointed at the right hardware, so a matcher for one of
|
|
35
|
+
* these devices should be narrowed, never widened.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/** Reads the realtime parameters and waveform. A read on every device in this range. */
|
|
39
|
+
const RT_DATA = 0x03;
|
|
40
|
+
|
|
41
|
+
/** The ER3 answers its realtime data on a different opcode from the rest of the range. */
|
|
42
|
+
const ER3_RT_DATA = 0x06;
|
|
43
|
+
const HEART_RATE_UNIT = "bpm";
|
|
44
|
+
/** ER1, ER2 and ER3 share one parameter block: the heart rate opens it. */
|
|
45
|
+
const ER_HEART_RATE_BYTES = [7, 8];
|
|
46
|
+
/**
|
|
47
|
+
* Declares one recorder, reporting the heart rate from its realtime frame.
|
|
48
|
+
*
|
|
49
|
+
* A recorder that is not against the skin reports a rate outside what a heart can beat at,
|
|
50
|
+
* so it is discarded rather than reported. The device marks that condition in bits of a
|
|
51
|
+
* status byte, which a declaration cannot select on, so a recorder left connected and unworn
|
|
52
|
+
* reports a decoding failure on each poll. Reading those bits quietly needs a device class.
|
|
53
|
+
*/
|
|
54
|
+
const declareRecorder = (advertisedName, profile, params) => (0, _lepuTransports.lepuDevice)({
|
|
55
|
+
id: params.id,
|
|
56
|
+
nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
|
|
57
|
+
transport: profile.transport,
|
|
58
|
+
pollCommand: profile.pollCommand,
|
|
59
|
+
minLengthBytes: profile.heartRateBytes[1] + 1,
|
|
60
|
+
caseSelectorBytes: [1],
|
|
61
|
+
cases: [{
|
|
62
|
+
selector: profile.pollCommand.toString(16).padStart(2, "0"),
|
|
63
|
+
kind: "result",
|
|
64
|
+
measurementTypeKey: _core.MeasurementTypeKey.heartRate,
|
|
65
|
+
description: "Realtime parameters and waveform",
|
|
66
|
+
fields: [{
|
|
67
|
+
name: "heartRate",
|
|
68
|
+
byteIndexes: [...profile.heartRateBytes],
|
|
69
|
+
byteOrder: "little",
|
|
70
|
+
encoding: "uint",
|
|
71
|
+
unit: HEART_RATE_UNIT
|
|
72
|
+
}]
|
|
73
|
+
}],
|
|
74
|
+
...(params.expectedDeviceTypes ? {
|
|
75
|
+
expectedDeviceTypes: params.expectedDeviceTypes
|
|
76
|
+
} : {})
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/** The ER1, and the handheld recorders sold under other names on the same protocol. */
|
|
80
|
+
const er1Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
|
|
81
|
+
pollCommand: RT_DATA,
|
|
82
|
+
heartRateBytes: ER_HEART_RATE_BYTES,
|
|
83
|
+
transport: "standard"
|
|
84
|
+
}, params);
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The ER2, which reads the same block but over a link that grants nothing beyond the
|
|
88
|
+
* minimum. Asking it for the MTU the rest of the family grants is what the vendor's own SDK
|
|
89
|
+
* declines to do, and a command longer than the link carries is truncated rather than
|
|
90
|
+
* refused.
|
|
91
|
+
*/
|
|
92
|
+
exports.er1Recorder = er1Recorder;
|
|
93
|
+
const er2Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
|
|
94
|
+
pollCommand: RT_DATA,
|
|
95
|
+
heartRateBytes: ER_HEART_RATE_BYTES,
|
|
96
|
+
transport: "standardSmallMtu"
|
|
97
|
+
}, params);
|
|
98
|
+
|
|
99
|
+
/** The ER3, which reads the same parameter block from a different opcode. */
|
|
100
|
+
exports.er2Recorder = er2Recorder;
|
|
101
|
+
const er3Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
|
|
102
|
+
pollCommand: ER3_RT_DATA,
|
|
103
|
+
heartRateBytes: ER_HEART_RATE_BYTES,
|
|
104
|
+
transport: "standard"
|
|
105
|
+
}, params);
|
|
106
|
+
|
|
107
|
+
/** The names the ER1 recorders advertise. */
|
|
108
|
+
exports.er3Recorder = er3Recorder;
|
|
109
|
+
const ER1_MODEL_NAMES = exports.ER1_MODEL_NAMES = ["ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "HHM1"];
|
|
110
|
+
|
|
111
|
+
/** The names the ER2 recorders advertise, all of them on the small-MTU link. */
|
|
112
|
+
const ER2_MODEL_NAMES = exports.ER2_MODEL_NAMES = ["ER2", "ER2-S", "HHM2", "HHM3", "LP ER2"];
|
|
113
|
+
//# sourceMappingURL=viatom.ecg-recorders.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","ER3_RT_DATA","HEART_RATE_UNIT","ER_HEART_RATE_BYTES","declareRecorder","advertisedName","profile","params","lepuDevice","id","nameMatch","lepuNameMatch","transport","pollCommand","minLengthBytes","heartRateBytes","caseSelectorBytes","cases","selector","toString","padStart","kind","measurementTypeKey","MeasurementTypeKey","heartRate","description","fields","name","byteIndexes","byteOrder","encoding","unit","expectedDeviceTypes","er1Recorder","exports","er2Recorder","er3Recorder","ER1_MODEL_NAMES","ER2_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.ecg-recorders.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.lepodMonitor = exports.LEPOD_MODEL_NAMES = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _lepuNameMatch = require("../lepu/lepu.name-match.js");
|
|
9
|
+
var _lepuTransports = require("../lepu/lepu.transports.js");
|
|
10
|
+
/**
|
|
11
|
+
* The Lepod, a multi-parameter patient monitor.
|
|
12
|
+
*
|
|
13
|
+
* One realtime frame carries a heart rate, an oxygen saturation with its pulse rate, a
|
|
14
|
+
* respiration rate and a body temperature. They are four measurements taken by four
|
|
15
|
+
* instruments that happen to share a frame, so they are declared and reported separately: a
|
|
16
|
+
* temperature probe that is not attached is no reason to withhold the heart rate beside it.
|
|
17
|
+
*
|
|
18
|
+
* The ECG waveform in the same frame is not declared. It is a sample stream assembled across
|
|
19
|
+
* notifications and needs a device class; the recordings the device stores are reachable
|
|
20
|
+
* through the family's generic file opcodes.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Reads the realtime frame. A read - unlike `START_ECG`, which is `0x08` here and `RT_DATA`
|
|
25
|
+
* on a BP2, and `RT_PARAM`, which is `0x02` here and `CALIBRATION_SLOPE` on a BP2.
|
|
26
|
+
*/
|
|
27
|
+
const RT_DATA = 0x03;
|
|
28
|
+
|
|
29
|
+
/** Header plus the parameter block through the temperature, which ends it. */
|
|
30
|
+
const MIN_LENGTH_BYTES = 46;
|
|
31
|
+
|
|
32
|
+
/** Frame offsets: the vendor's parameter block starts at the seven-byte header. */
|
|
33
|
+
const HEART_RATE = [31, 32];
|
|
34
|
+
const RESPIRATION_RATE = 34;
|
|
35
|
+
const BLOOD_OXYGEN = 36;
|
|
36
|
+
const PULSE_RATE = [37, 38];
|
|
37
|
+
const PERFUSION_INDEX = 39;
|
|
38
|
+
const TEMPERATURE = [44, 45];
|
|
39
|
+
|
|
40
|
+
/** The device counts perfusion in tenths of a percent and temperature in hundredths. */
|
|
41
|
+
const PERFUSION_SCALE = 0.1;
|
|
42
|
+
const TEMPERATURE_SCALE = 0.01;
|
|
43
|
+
const littleEndian = (name, byteIndexes, unit) => ({
|
|
44
|
+
name,
|
|
45
|
+
byteIndexes,
|
|
46
|
+
byteOrder: "little",
|
|
47
|
+
encoding: "uint",
|
|
48
|
+
unit
|
|
49
|
+
});
|
|
50
|
+
const LEPOD_MEASUREMENTS = [{
|
|
51
|
+
measurementTypeKey: _core.MeasurementTypeKey.bloodOxygenPulseRate,
|
|
52
|
+
fields: [{
|
|
53
|
+
name: "bloodOxygen",
|
|
54
|
+
byteIndexes: [BLOOD_OXYGEN],
|
|
55
|
+
encoding: "uint",
|
|
56
|
+
unit: "%"
|
|
57
|
+
}, littleEndian("pulseRate", PULSE_RATE, "bpm"), {
|
|
58
|
+
name: "perfusionIndex",
|
|
59
|
+
byteIndexes: [PERFUSION_INDEX],
|
|
60
|
+
encoding: "uint",
|
|
61
|
+
unit: "%",
|
|
62
|
+
scale: PERFUSION_SCALE,
|
|
63
|
+
decimals: 1
|
|
64
|
+
}]
|
|
65
|
+
}, {
|
|
66
|
+
measurementTypeKey: _core.MeasurementTypeKey.respiratoryRate,
|
|
67
|
+
fields: [{
|
|
68
|
+
name: "respiratoryRate",
|
|
69
|
+
byteIndexes: [RESPIRATION_RATE],
|
|
70
|
+
encoding: "uint",
|
|
71
|
+
unit: "/min"
|
|
72
|
+
}]
|
|
73
|
+
}, {
|
|
74
|
+
measurementTypeKey: _core.MeasurementTypeKey.temperature,
|
|
75
|
+
fields: [{
|
|
76
|
+
name: "bodyTemp",
|
|
77
|
+
byteIndexes: TEMPERATURE,
|
|
78
|
+
byteOrder: "little",
|
|
79
|
+
encoding: "uint",
|
|
80
|
+
unit: "Cel",
|
|
81
|
+
scale: TEMPERATURE_SCALE,
|
|
82
|
+
decimals: 2
|
|
83
|
+
}]
|
|
84
|
+
}];
|
|
85
|
+
/**
|
|
86
|
+
* Declares a Lepod, reporting every reading its realtime frame carries.
|
|
87
|
+
*
|
|
88
|
+
* An instrument that is not attached reports a value outside the physiological range for
|
|
89
|
+
* what it measures, so that reading is discarded and reported while the others in the same
|
|
90
|
+
* frame are still delivered. The device also marks those conditions in bits of a lead-off
|
|
91
|
+
* byte, which a declaration cannot select on - reading them quietly needs a device class.
|
|
92
|
+
*/
|
|
93
|
+
const lepodMonitor = (advertisedName, params) => (0, _lepuTransports.lepuDevice)({
|
|
94
|
+
id: params.id,
|
|
95
|
+
nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
|
|
96
|
+
pollCommand: RT_DATA,
|
|
97
|
+
minLengthBytes: MIN_LENGTH_BYTES,
|
|
98
|
+
caseSelectorBytes: [1],
|
|
99
|
+
cases: [{
|
|
100
|
+
selector: "03",
|
|
101
|
+
kind: "result",
|
|
102
|
+
measurementTypeKey: _core.MeasurementTypeKey.heartRate,
|
|
103
|
+
description: "Realtime parameters, waveform and lead state",
|
|
104
|
+
fields: [littleEndian("heartRate", HEART_RATE, "bpm")],
|
|
105
|
+
additionalMeasurements: LEPOD_MEASUREMENTS.map(each => ({
|
|
106
|
+
...each
|
|
107
|
+
}))
|
|
108
|
+
}],
|
|
109
|
+
...(params.expectedDeviceTypes ? {
|
|
110
|
+
expectedDeviceTypes: params.expectedDeviceTypes
|
|
111
|
+
} : {})
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
/** The names the Lepod range advertises. */
|
|
115
|
+
exports.lepodMonitor = lepodMonitor;
|
|
116
|
+
const LEPOD_MODEL_NAMES = exports.LEPOD_MODEL_NAMES = ["Lepod", "LepodPro"];
|
|
117
|
+
//# sourceMappingURL=viatom.lepod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","MIN_LENGTH_BYTES","HEART_RATE","RESPIRATION_RATE","BLOOD_OXYGEN","PULSE_RATE","PERFUSION_INDEX","TEMPERATURE","PERFUSION_SCALE","TEMPERATURE_SCALE","littleEndian","name","byteIndexes","unit","byteOrder","encoding","LEPOD_MEASUREMENTS","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","fields","scale","decimals","respiratoryRate","temperature","lepodMonitor","advertisedName","params","lepuDevice","id","nameMatch","lepuNameMatch","pollCommand","minLengthBytes","caseSelectorBytes","cases","selector","kind","heartRate","description","additionalMeasurements","map","each","expectedDeviceTypes","exports","LEPOD_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.lepod.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.viatomOximeter = exports.VIATOM_OXIMETER_NAMES = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _lepuNameMatch = require("../lepu/lepu.name-match.js");
|
|
9
|
+
var _lepuTransports = require("../lepu/lepu.transports.js");
|
|
10
|
+
/**
|
|
11
|
+
* The Viatom pulse oximeters - the O2Ring, Oxyfit, KidsO2 and BabyO2 ranges.
|
|
12
|
+
*
|
|
13
|
+
* They share the family's framing and characteristics but not its opcodes: this range
|
|
14
|
+
* numbers its own commands, so realtime parameters are `0x17` here rather than the `0x08`
|
|
15
|
+
* the blood-pressure monitors answer, and its stored files are read with `0x03`-`0x05`
|
|
16
|
+
* rather than the generic `0xF1`-`0xF4`. A file transfer written for the rest of the family
|
|
17
|
+
* does not apply to these.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/** Realtime parameters. A read: it reports what the sensor sees and starts nothing. */
|
|
21
|
+
const RT_PARAM = 0x17;
|
|
22
|
+
|
|
23
|
+
/** Only the command byte, because what makes a reading valid here is a bit, not a byte. */
|
|
24
|
+
const CASE_SELECTOR_BYTES = [1];
|
|
25
|
+
|
|
26
|
+
/** Header plus the realtime parameters through the pulse rate. */
|
|
27
|
+
const MIN_LENGTH_BYTES = 10;
|
|
28
|
+
const PAYLOAD = 7;
|
|
29
|
+
const SPOT_CHECK_TIMEOUT_MS = 60_000;
|
|
30
|
+
/**
|
|
31
|
+
* Declares one oximeter of the range.
|
|
32
|
+
*
|
|
33
|
+
* **A finger that is not in the sensor yields no reading, reported as an error.** The device
|
|
34
|
+
* answers every poll whether or not it is measuring, and marks an unusable reading in two
|
|
35
|
+
* bits of a status byte - which a declaration cannot read, because a case is selected by
|
|
36
|
+
* whole bytes. What it can do is refuse the number: an oxygen saturation measured off the
|
|
37
|
+
* finger falls outside the physiological range, so it is discarded rather than reported.
|
|
38
|
+
* The reading is therefore never wrong, but a device left connected with nobody wearing it
|
|
39
|
+
* reports a decoding failure on each poll. Reading those bits quietly needs a device class.
|
|
40
|
+
*/
|
|
41
|
+
const viatomOximeter = (advertisedName, params) => (0, _lepuTransports.lepuDevice)({
|
|
42
|
+
id: params.id,
|
|
43
|
+
nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
|
|
44
|
+
stuckDataTimeoutMs: SPOT_CHECK_TIMEOUT_MS,
|
|
45
|
+
pollCommand: RT_PARAM,
|
|
46
|
+
minLengthBytes: MIN_LENGTH_BYTES,
|
|
47
|
+
caseSelectorBytes: CASE_SELECTOR_BYTES,
|
|
48
|
+
cases: [{
|
|
49
|
+
selector: "17",
|
|
50
|
+
kind: "result",
|
|
51
|
+
measurementTypeKey: _core.MeasurementTypeKey.bloodOxygenPulseRate,
|
|
52
|
+
description: "Realtime parameters",
|
|
53
|
+
fields: [{
|
|
54
|
+
name: "bloodOxygen",
|
|
55
|
+
byteIndexes: [PAYLOAD],
|
|
56
|
+
encoding: "uint",
|
|
57
|
+
unit: "%"
|
|
58
|
+
}, {
|
|
59
|
+
name: "pulseRate",
|
|
60
|
+
byteIndexes: [PAYLOAD + 1, PAYLOAD + 2],
|
|
61
|
+
byteOrder: "little",
|
|
62
|
+
encoding: "uint",
|
|
63
|
+
unit: "bpm"
|
|
64
|
+
}]
|
|
65
|
+
}],
|
|
66
|
+
...(params.expectedDeviceTypes ? {
|
|
67
|
+
expectedDeviceTypes: params.expectedDeviceTypes
|
|
68
|
+
} : {})
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* The names the oximeter range advertises.
|
|
73
|
+
*
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const oximeters = VIATOM_OXIMETER_NAMES.map((name) =>
|
|
76
|
+
* viatomOximeter(name, { id: `viatom-${name.toLowerCase()}` }),
|
|
77
|
+
* );
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
exports.viatomOximeter = viatomOximeter;
|
|
81
|
+
const VIATOM_OXIMETER_NAMES = exports.VIATOM_OXIMETER_NAMES = ["BBSM S1", "BBSM S2", "CMRing", "KidsO2-WPS", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "Oxyfit", "Oxyfit-WPS", "OxyU", "OxyU SE", "SI PO2"];
|
|
82
|
+
//# sourceMappingURL=viatom.oximeters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_PARAM","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","PAYLOAD","SPOT_CHECK_TIMEOUT_MS","viatomOximeter","advertisedName","params","lepuDevice","id","nameMatch","lepuNameMatch","stuckDataTimeoutMs","pollCommand","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","description","fields","name","byteIndexes","encoding","unit","byteOrder","expectedDeviceTypes","exports","VIATOM_OXIMETER_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.oximeters.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMG,QAAQ,GAAG,IAAI;;AAErB;AACA,MAAMC,mBAAmB,GAAG,CAAC,CAAC,CAAC;;AAE/B;AACA,MAAMC,gBAAgB,GAAG,EAAE;AAE3B,MAAMC,OAAO,GAAG,CAAC;AAEjB,MAAMC,qBAAqB,GAAG,MAAM;AAoBpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAGA,CACrBC,cAAsB,EACtBC,MAA4B,KAE5B,IAAAC,0BAAU,EAAC;EACTC,EAAE,EAAEF,MAAM,CAACE,EAAE;EACbC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAI,IAAAC,4BAAa,EAACL,cAAc,CAAC;EAC5DM,kBAAkB,EAAER,qBAAqB;EACzCS,WAAW,EAAEb,QAAQ;EACrBc,cAAc,EAAEZ,gBAAgB;EAChCa,iBAAiB,EAAEd,mBAAmB;EACtCe,KAAK,EAAE,CACL;IACEC,QAAQ,EAAE,IAAI;IACdC,IAAI,EAAE,QAAQ;IACdC,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;IAC3DC,WAAW,EAAE,qBAAqB;IAClCC,MAAM,EAAE,CACN;MACEC,IAAI,EAAE,aAAa;MACnBC,WAAW,EAAE,CAACtB,OAAO,CAAC;MACtBuB,QAAQ,EAAE,MAAM;MAChBC,IAAI,EAAE;IACR,CAAC,EACD;MACEH,IAAI,EAAE,WAAW;MACjBC,WAAW,EAAE,CAACtB,OAAO,GAAG,CAAC,EAAEA,OAAO,GAAG,CAAC,CAAC;MACvCyB,SAAS,EAAE,QAAQ;MACnBF,QAAQ,EAAE,MAAM;MAChBC,IAAI,EAAE;IACR,CAAC;EAEL,CAAC,CACF;EACD,IAAIpB,MAAM,CAACsB,mBAAmB,GAC1B;IAAEA,mBAAmB,EAAEtB,MAAM,CAACsB;EAAoB,CAAC,GACnD,CAAC,CAAC;AACR,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAC,OAAA,CAAAzB,cAAA,GAAAA,cAAA;AASA,MAAM0B,qBAAwC,GAAAD,OAAA,CAAAC,qBAAA,GAAG,CAC/C,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,SAAS,EACT,QAAQ,CACT","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/command-sequencer.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-checksum-algorithm.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-checksum-spec.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-lepu-spec.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-measurement-spec.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-command.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/measurement-group.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isChecksumAlgorithm = exports.hasValidChecksum = void 0;
|
|
7
|
+
var _calculateCrc = require("./calculate-crc-8.js");
|
|
8
|
+
var _hexToByte = require("./hex-to-byte.js");
|
|
9
|
+
const BYTE_MASK = 0xff;
|
|
10
|
+
const foldBytes = (covered, combine) => covered.reduce((total, byte) => combine(total, (0, _hexToByte.hexToByte)(byte || "0")) & BYTE_MASK, 0);
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* One implementation per algorithm, looked up by name.
|
|
14
|
+
*
|
|
15
|
+
* A map rather than a switch, so adding an algorithm is adding an entry, and so a
|
|
16
|
+
* declaration naming one that does not exist is rejected at registration instead of falling
|
|
17
|
+
* through to a default that would accept every frame.
|
|
18
|
+
*/
|
|
19
|
+
const ALGORITHMS = {
|
|
20
|
+
crc8: covered => (0, _calculateCrc.calculateCrc8)(covered, covered.length),
|
|
21
|
+
xor: covered => foldBytes(covered, (total, byte) => total ^ byte),
|
|
22
|
+
sum: covered => foldBytes(covered, (total, byte) => total + byte)
|
|
23
|
+
};
|
|
24
|
+
const isChecksumAlgorithm = candidate => typeof candidate === "string" && candidate in ALGORITHMS;
|
|
25
|
+
|
|
26
|
+
/** The bytes a checksum covers, defaulting to everything between `from` and the checksum. */
|
|
27
|
+
exports.isChecksumAlgorithm = isChecksumAlgorithm;
|
|
28
|
+
const coveredBytes = (pkg, checksum) => {
|
|
29
|
+
const from = checksum.from ?? 0;
|
|
30
|
+
const byteCount = checksum.byteCount ?? checksum.index - from;
|
|
31
|
+
return pkg.slice(from, from + byteCount);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Whether a buffer's checksum byte matches the bytes it covers.
|
|
36
|
+
*
|
|
37
|
+
* A buffer too short to hold the checksum byte fails rather than reading it as zero: an
|
|
38
|
+
* absent byte is not a matching byte, and treating it as one would let a truncated
|
|
39
|
+
* notification through as a valid reading.
|
|
40
|
+
*/
|
|
41
|
+
const hasValidChecksum = (pkg, checksum) => {
|
|
42
|
+
const declared = pkg[checksum.index];
|
|
43
|
+
if (declared === undefined) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return ALGORITHMS[checksum.algorithm](coveredBytes(pkg, checksum)) === (0, _hexToByte.hexToByte)(declared);
|
|
47
|
+
};
|
|
48
|
+
exports.hasValidChecksum = hasValidChecksum;
|
|
49
|
+
//# sourceMappingURL=calculate-checksum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_calculateCrc","require","_hexToByte","BYTE_MASK","foldBytes","covered","combine","reduce","total","byte","hexToByte","ALGORITHMS","crc8","calculateCrc8","length","xor","sum","isChecksumAlgorithm","candidate","exports","coveredBytes","pkg","checksum","from","byteCount","index","slice","hasValidChecksum","declared","undefined","algorithm"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/calculate-checksum.ts"],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,SAAS,GAAG,IAAI;AAEtB,MAAMC,SAAS,GAAGA,CAChBC,OAAiB,EACjBC,OAAgD,KAEhDD,OAAO,CAACE,MAAM,CACZ,CAACC,KAAK,EAAEC,IAAI,KAAKH,OAAO,CAACE,KAAK,EAAE,IAAAE,oBAAS,EAACD,IAAI,IAAI,GAAG,CAAC,CAAC,GAAGN,SAAS,EACnE,CACF,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,UAGL,GAAG;EACFC,IAAI,EAAGP,OAAO,IAAK,IAAAQ,2BAAa,EAACR,OAAO,EAAEA,OAAO,CAACS,MAAM,CAAC;EACzDC,GAAG,EAAGV,OAAO,IAAKD,SAAS,CAACC,OAAO,EAAE,CAACG,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAGC,IAAI,CAAC;EACnEO,GAAG,EAAGX,OAAO,IAAKD,SAAS,CAACC,OAAO,EAAE,CAACG,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAGC,IAAI;AACpE,CAAC;AAED,MAAMQ,mBAAmB,GACvBC,SAAkB,IAElB,OAAOA,SAAS,KAAK,QAAQ,IAAIA,SAAS,IAAIP,UAAU;;AAE1D;AAAAQ,OAAA,CAAAF,mBAAA,GAAAA,mBAAA;AACA,MAAMG,YAAY,GAAGA,CAACC,GAAa,EAAEC,QAA4B,KAAe;EAC9E,MAAMC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAI,CAAC;EAC/B,MAAMC,SAAS,GAAGF,QAAQ,CAACE,SAAS,IAAIF,QAAQ,CAACG,KAAK,GAAGF,IAAI;EAE7D,OAAOF,GAAG,CAACK,KAAK,CAACH,IAAI,EAAEA,IAAI,GAAGC,SAAS,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAGA,CACvBN,GAAa,EACbC,QAA4B,KAChB;EACZ,MAAMM,QAAQ,GAAGP,GAAG,CAACC,QAAQ,CAACG,KAAK,CAAC;EAEpC,IAAIG,QAAQ,KAAKC,SAAS,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,OACElB,UAAU,CAACW,QAAQ,CAACQ,SAAS,CAAC,CAACV,YAAY,CAACC,GAAG,EAAEC,QAAQ,CAAC,CAAC,KAC3D,IAAAZ,oBAAS,EAACkB,QAAQ,CAAC;AAEvB,CAAC;AAACT,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createFrameValidator = void 0;
|
|
7
|
+
var _calculateChecksum = require("./calculate-checksum.js");
|
|
7
8
|
const byteAt = (pkg, index) => parseInt(pkg[index] ?? "0", 16);
|
|
8
9
|
const announcedLength = (pkg, length) => {
|
|
9
10
|
const bytes = [];
|
|
@@ -31,6 +32,14 @@ const createFrameValidator = frame => pkg => {
|
|
|
31
32
|
return false;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Checked before the length, because a corrupted buffer can carry a plausible length.
|
|
38
|
+
* A frame that fails here is discarded rather than decoded at a wrong value.
|
|
39
|
+
*/
|
|
40
|
+
if (frame.checksum && !(0, _calculateChecksum.hasValidChecksum)(pkg, frame.checksum)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
34
43
|
if (!frame.length) {
|
|
35
44
|
return true;
|
|
36
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["byteAt","pkg","index","parseInt","announcedLength","length","bytes","i","widthBytes","push","ordered","byteOrder","reverse","reduce","total","byte","createFrameValidator","frame","minLengthBytes","header","toLowerCase","overheadBytes","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-frame-validator.ts"],"mappings":";;;;;;AAEA,
|
|
1
|
+
{"version":3,"names":["_calculateChecksum","require","byteAt","pkg","index","parseInt","announcedLength","length","bytes","i","widthBytes","push","ordered","byteOrder","reverse","reduce","total","byte","createFrameValidator","frame","minLengthBytes","header","toLowerCase","checksum","hasValidChecksum","overheadBytes","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-frame-validator.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAGA,CAACC,GAAa,EAAEC,KAAa,KAC1CC,QAAQ,CAACF,GAAG,CAACC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;AAEjC,MAAME,eAAe,GAAGA,CACtBH,GAAa,EACbI,MAA8C,KACnC;EACX,MAAMC,KAAe,GAAG,EAAE;EAE1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,UAAU,EAAED,CAAC,EAAE,EAAE;IAC1CD,KAAK,CAACG,IAAI,CAACT,MAAM,CAACC,GAAG,EAAEI,MAAM,CAACH,KAAK,GAAGK,CAAC,CAAC,CAAC;EAC3C;EAEA,MAAMG,OAAO,GAAGL,MAAM,CAACM,SAAS,KAAK,QAAQ,GAAGL,KAAK,CAACM,OAAO,CAAC,CAAC,GAAGN,KAAK;EAEvE,OAAOI,OAAO,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAG,GAAG,GAAGC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAC9BC,KAAsB,IACtBhB,GAAa,IAAc;EAC1B,IAAIA,GAAG,CAACI,MAAM,GAAGY,KAAK,CAACC,cAAc,EAAE;IACrC,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAM,IAAI,EAAE;EAEjC,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,MAAM,CAACd,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAI,CAACN,GAAG,CAACM,CAAC,CAAC,IAAI,EAAE,EAAEa,WAAW,CAAC,CAAC,KAAKD,MAAM,CAACZ,CAAC,CAAC,EAAE;MAC9C,OAAO,KAAK;IACd;EACF;;EAEA;AACJ;AACA;AACA;EACI,IAAIU,KAAK,CAACI,QAAQ,IAAI,CAAC,IAAAC,mCAAgB,EAACrB,GAAG,EAAEgB,KAAK,CAACI,QAAQ,CAAC,EAAE;IAC5D,OAAO,KAAK;EACd;EAEA,IAAI,CAACJ,KAAK,CAACZ,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,OACEJ,GAAG,CAACI,MAAM,IACVY,KAAK,CAACZ,MAAM,CAACkB,aAAa,GAAGnB,eAAe,CAACH,GAAG,EAAEgB,KAAK,CAACZ,MAAM,CAAC;AAEnE,CAAC;AAACmB,OAAA,CAAAR,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hexToBytes = void 0;
|
|
7
|
+
const HEX_BYTE = /[0-9a-f]{2}/g;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Splits a hex string into the bytes it spells: "a508f7" -> ["a5","08","f7"].
|
|
11
|
+
*
|
|
12
|
+
* Anything that is not a pair of hex digits is dropped, so a malformed string yields a
|
|
13
|
+
* shorter command rather than a byte that is half a value. Both callers hand it hex that
|
|
14
|
+
* was already validated - a declaration checks it at registration, and a built frame is
|
|
15
|
+
* assembled a byte at a time - so the dropping is a floor, not a path anything relies on.
|
|
16
|
+
*/
|
|
17
|
+
const hexToBytes = hex => hex.toLowerCase().match(HEX_BYTE) ?? [];
|
|
18
|
+
exports.hexToBytes = hexToBytes;
|
|
19
|
+
//# sourceMappingURL=hex-to-bytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HEX_BYTE","hexToBytes","hex","toLowerCase","match","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/hex-to-bytes.ts"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAG,cAAc;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,GAAW,IACpCA,GAAG,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAACJ,QAAQ,CAAC,IAAI,EAAE;AAACK,OAAA,CAAAJ,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.le32ToBytes = void 0;
|
|
7
|
+
const BYTE_MASK = 0xff;
|
|
8
|
+
const BYTE_BITS = 8;
|
|
9
|
+
|
|
10
|
+
/** Little-endian unsigned 32-bit: 0x0000000A -> [0x0a, 0x00, 0x00, 0x00]. */
|
|
11
|
+
const le32ToBytes = value => [value & BYTE_MASK, value >> BYTE_BITS & BYTE_MASK, value >> BYTE_BITS * 2 & BYTE_MASK, value >> BYTE_BITS * 3 & BYTE_MASK];
|
|
12
|
+
exports.le32ToBytes = le32ToBytes;
|
|
13
|
+
//# sourceMappingURL=le-32-to-bytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BYTE_MASK","BYTE_BITS","le32ToBytes","value","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/le-32-to-bytes.ts"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,IAAI;AACtB,MAAMC,SAAS,GAAG,CAAC;;AAEnB;AACO,MAAMC,WAAW,GAAIC,KAAa,IAAe,CACtDA,KAAK,GAAGH,SAAS,EAChBG,KAAK,IAAIF,SAAS,GAAID,SAAS,EAC/BG,KAAK,IAAKF,SAAS,GAAG,CAAE,GAAID,SAAS,EACrCG,KAAK,IAAKF,SAAS,GAAG,CAAE,GAAID,SAAS,CACvC;AAACI,OAAA,CAAAF,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.summariseMeasurementForLog = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Shapes a measurement for a log line.
|
|
9
|
+
*
|
|
10
|
+
* An ECG carries thousands of waveform points. Logging them costs more than the reading
|
|
11
|
+
* they describe and buries it, so the count stands in for them - which is the only thing
|
|
12
|
+
* the log is being asked: whether the waveform arrived, not what was in it.
|
|
13
|
+
*/
|
|
14
|
+
const summariseMeasurementForLog = data => {
|
|
15
|
+
const points = data.diagramPoints;
|
|
16
|
+
return {
|
|
17
|
+
...data,
|
|
18
|
+
diagramPoints: Array.isArray(points) ? points.length : undefined
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
exports.summariseMeasurementForLog = summariseMeasurementForLog;
|
|
22
|
+
//# sourceMappingURL=summarise-measurement-for-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["summariseMeasurementForLog","data","points","diagramPoints","Array","isArray","length","undefined","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/summarise-measurement-for-log.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,0BAA0B,GACrCC,IAAO,IACqB;EAC5B,MAAMC,MAAM,GAAID,IAAI,CAAiCE,aAAa;EAElE,OAAO;IACL,GAAGF,IAAI;IACPE,aAAa,EAAEC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,CAACI,MAAM,GAAGC;EACzD,CAAC;AACH,CAAC;AAACC,OAAA,CAAAR,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.supportedMeasurementTypeKeys = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* The measurement types a device's declared services can produce.
|
|
9
|
+
*
|
|
10
|
+
* Read from the parsing cases rather than stated separately, so a device cannot advertise a
|
|
11
|
+
* measurement it has no case to decode, or omit one it does.
|
|
12
|
+
*/
|
|
13
|
+
const supportedMeasurementTypeKeys = services => {
|
|
14
|
+
const declared = services.flatMap(service => service.monitorUuids.flatMap(monitor => monitor.parsingModel.cases.map(c => c.measurementTypeKey) || [])).filter(type => type !== undefined);
|
|
15
|
+
return [...new Set(declared.flat())];
|
|
16
|
+
};
|
|
17
|
+
exports.supportedMeasurementTypeKeys = supportedMeasurementTypeKeys;
|
|
18
|
+
//# sourceMappingURL=supported-measurement-type-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["supportedMeasurementTypeKeys","services","declared","flatMap","service","monitorUuids","monitor","parsingModel","cases","map","c","measurementTypeKey","filter","type","undefined","Set","flat","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/supported-measurement-type-keys.ts"],"mappings":";;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,4BAA4B,GACvCC,QAAuC,IACd;EACzB,MAAMC,QAAQ,GAAGD,QAAQ,CACtBE,OAAO,CAAEC,OAAO,IACfA,OAAO,CAACC,YAAY,CAACF,OAAO,CACzBG,OAAO,IACNA,OAAO,CAACC,YAAY,CAACC,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,kBAAkB,CAAC,IAAI,EACnE,CACF,CAAC,CACAC,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKC,SAAS,CAAC;EAEvC,OAAO,CAAC,GAAG,IAAIC,GAAG,CAACb,QAAQ,CAACc,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAACC,OAAA,CAAAjB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -12,9 +12,12 @@ export * from "./types/custom-device-spec.js";
|
|
|
12
12
|
export * from "./types/custom-field-encoding.js";
|
|
13
13
|
export * from "./types/custom-field-spec.js";
|
|
14
14
|
export * from "./types/custom-frame-spec.js";
|
|
15
|
+
export * from "./types/custom-lepu-spec.js";
|
|
15
16
|
export * from "./types/custom-measurement.js";
|
|
16
17
|
export * from "./types/custom-monitor-spec.js";
|
|
17
18
|
export * from "./types/custom-service-spec.js";
|
|
19
|
+
export * from "./types/command-sequencer.js";
|
|
20
|
+
export * from "./types/device-command.js";
|
|
18
21
|
export * from "./types/device-key.js";
|
|
19
22
|
export * from "./types/device-key-of.js";
|
|
20
23
|
export * from "./types/device-data.js";
|
|
@@ -32,6 +35,19 @@ export * from "./services/devices/bt-managed-device.js";
|
|
|
32
35
|
export * from "./services/devices/custom/custom.device.js";
|
|
33
36
|
export * from "./services/bt-manager.js";
|
|
34
37
|
export * from "./services/custom/define-custom-device.js";
|
|
38
|
+
export * from "./services/devices/standard-gatt/standard-gatt.devices.js";
|
|
39
|
+
export * from "./services/devices/lepu/lepu.transports.js";
|
|
40
|
+
export * from "./services/devices/aoj/aoj.thermometers.js";
|
|
41
|
+
export * from "./services/devices/viatom/viatom.bp-monitors.js";
|
|
42
|
+
export * from "./services/devices/viatom/viatom.oximeters.js";
|
|
43
|
+
export * from "./services/devices/viatom/viatom.ecg-recorders.js";
|
|
44
|
+
export * from "./services/devices/viatom/viatom.lepod.js";
|
|
45
|
+
export * from "./services/devices/lepu/lepu.device-names.js";
|
|
46
|
+
export * from "./services/devices/lepu/lepu.name-match.js";
|
|
47
|
+
export * from "./services/devices/lepu/lepu.commands.js";
|
|
48
|
+
export * from "./services/devices/lepu/lepu.device-info.js";
|
|
49
|
+
export * from "./services/devices/lepu/lepu.file-transfer.js";
|
|
50
|
+
export * from "./services/devices/lepu/lepu.response-type.js";
|
|
35
51
|
export * from "./constants/measurement-field-catalog.js";
|
|
36
52
|
export * from "./components/bt-provider.js";
|
|
37
53
|
export * from "./components/default-permission-fallback.js";
|