@ovok/native 1.10.9 → 1.10.10
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 +16 -1
- package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-aoj-variants.js +137 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-aoj-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +15 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js +3 -2
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js +227 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-joytech-variants.js +95 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-joytech-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-jumper-variants.js +149 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-jumper-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-standard-variants.js +1001 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-standard-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-transtek-variants.js +1093 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-transtek-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-variants.js +312 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +75 -9
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +2 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/aoj-device-variants.js +112 -0
- package/lib/commonjs/modules/bt-management/constants/aoj-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/device-variants.js +252 -0
- package/lib/commonjs/modules/bt-management/constants/device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/famidoc-device-variants.js +190 -0
- package/lib/commonjs/modules/bt-management/constants/famidoc-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +9 -1
- package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/joytech-device-variants.js +80 -0
- package/lib/commonjs/modules/bt-management/constants/joytech-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/jumper-device-variants.js +115 -0
- package/lib/commonjs/modules/bt-management/constants/jumper-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/standard-device-variants.js +802 -0
- package/lib/commonjs/modules/bt-management/constants/standard-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/transtek-device-variants.js +890 -0
- package/lib/commonjs/modules/bt-management/constants/transtek-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/index.js +20 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +15 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +7 -1
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-classes.js +22 -1
- package/lib/commonjs/modules/bt-management/services/device-classes.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-secrets.js +68 -0
- package/lib/commonjs/modules/bt-management/services/device-secrets.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-70b.device.js +41 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-70b.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.device.js +45 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js +140 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js +138 -0
- package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +24 -1
- package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +27 -1
- 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 +4 -4
- 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 +12 -1
- 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.device.js +12 -4
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.device.js +49 -0
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.protocol.js +163 -0
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js +95 -0
- package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.device.js +40 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.protocol.js +162 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.sequencer.js +63 -0
- package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.device.js +56 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.protocol.js +67 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.sequencer.js +60 -0
- package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/live-oximeter.sequencer.js +85 -0
- package/lib/commonjs/modules/bt-management/services/devices/live-oximeter.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js +22 -8
- package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +13 -2
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +153 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.device.js +71 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.protocol.js +112 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.records.js +132 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.records.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js +145 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.session.js +91 -0
- package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.session.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js +15 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/device-title.js +5 -1
- package/lib/commonjs/modules/bt-management/utils/device-title.js.map +1 -1
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +16 -1
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-aoj-variants.js +135 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-aoj-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +15 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js +3 -2
- package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js +225 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-joytech-variants.js +93 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-joytech-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-jumper-variants.js +147 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-jumper-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-standard-variants.js +999 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-standard-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-transtek-variants.js +1091 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-transtek-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-variants.js +309 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js +76 -10
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +2 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/constants/aoj-device-variants.js +110 -0
- package/lib/module/modules/bt-management/constants/aoj-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/device-variants.js +249 -0
- package/lib/module/modules/bt-management/constants/device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/famidoc-device-variants.js +188 -0
- package/lib/module/modules/bt-management/constants/famidoc-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/integrated-devices-map.js +9 -1
- package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
- package/lib/module/modules/bt-management/constants/joytech-device-variants.js +78 -0
- package/lib/module/modules/bt-management/constants/joytech-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/jumper-device-variants.js +113 -0
- package/lib/module/modules/bt-management/constants/jumper-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/standard-device-variants.js +799 -0
- package/lib/module/modules/bt-management/constants/standard-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/transtek-device-variants.js +888 -0
- package/lib/module/modules/bt-management/constants/transtek-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/index.js +2 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +15 -0
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js +7 -1
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-classes.js +22 -1
- package/lib/module/modules/bt-management/services/device-classes.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-secrets.js +59 -0
- package/lib/module/modules/bt-management/services/device-secrets.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-70b.device.js +37 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-70b.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.device.js +41 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js +123 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js +134 -0
- package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +24 -1
- package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +27 -1
- 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 +4 -4
- 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 +12 -1
- 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.device.js +12 -4
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.device.js +45 -0
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.protocol.js +149 -0
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js +91 -0
- package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.device.js +36 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.protocol.js +150 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.sequencer.js +60 -0
- package/lib/module/modules/bt-management/services/devices/joytech/joytech.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.device.js +52 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.protocol.js +62 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.sequencer.js +57 -0
- package/lib/module/modules/bt-management/services/devices/jumper/jumper.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/live-oximeter.sequencer.js +79 -0
- package/lib/module/modules/bt-management/services/devices/live-oximeter.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js +22 -8
- package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +6 -2
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +149 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.device.js +67 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.protocol.js +94 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js +125 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js +142 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js +85 -0
- package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js.map +1 -0
- package/lib/module/modules/bt-management/types/custom-device-definition.js +2 -0
- package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
- package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
- package/lib/module/modules/bt-management/types/integrated-devices.js +15 -0
- package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/module/modules/bt-management/utils/device-title.js +5 -1
- package/lib/module/modules/bt-management/utils/device-title.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +15 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/constants/aoj-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/aoj-device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/device-variants.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/famidoc-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/famidoc-device-variants.d.ts.map +1 -0
- 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/constants/joytech-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/joytech-device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/jumper-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/jumper-device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/standard-device-variants.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/standard-device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/transtek-device-variants.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/transtek-device-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-secrets.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-secrets.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts +17 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts +54 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts +36 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +3 -0
- 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 +1 -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.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -2
- 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/famidoc/famidoc.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts +56 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts +34 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts +43 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +4 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts +51 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts +49 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts +39 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +4 -2
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +2 -1
- 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-service-spec.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +15 -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 +16 -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/types/service.type.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/service.type.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/write-characteristic.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/write-characteristic.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +15 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/constants/aoj-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/aoj-device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/device-variants.d.ts +23 -0
- package/lib/typescript/module/src/modules/bt-management/constants/device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/famidoc-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/famidoc-device-variants.d.ts.map +1 -0
- 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/constants/joytech-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/joytech-device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/jumper-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/jumper-device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/standard-device-variants.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/constants/standard-device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/transtek-device-variants.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/constants/transtek-device-variants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/device-secrets.d.ts +22 -0
- package/lib/typescript/module/src/modules/bt-management/services/device-secrets.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts +17 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts +54 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts +36 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +3 -0
- 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 +1 -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.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -2
- 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/famidoc/famidoc.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts +56 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts +34 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts +43 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts +23 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts +18 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts +22 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +4 -2
- package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts +51 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts +49 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts +39 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +4 -2
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +2 -1
- 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-service-spec.d.ts +6 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +15 -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 +16 -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/types/service.type.d.ts +6 -0
- package/lib/typescript/module/src/modules/bt-management/types/service.type.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/write-characteristic.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/types/write-characteristic.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","BTManagedDevice","JUMPER_VALUES","LiveOximeterSequencer","JUMPER_GATT","JUMPER_NOTIFY","JUMPER_SERVICE","JumperSequencer","passThrough","caseValuePosition","cases","service","uuid","notify","optional","monitorUuids","parsingModel","SERVICES","JUMPER_OXIMETER","oximeterAlternate","JUMPER_THERMOMETER","thermometerAlternate","JUMPER_BPM","bloodPressure","JumperDeviceClass","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","mainServices","deviceName","onResult","result","createCommandSequencer","isValuesFrame","kind","validatePackage","handleSuccessResult","JumperDevice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/jumper/jumper.device.ts"],"mappings":";;AAIA,SAASA,iBAAiB,QAAQ,sCAAmC;AAGrE,SAASC,eAAe,QAAQ,yBAAsB;AACtD,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,+BAA4B;AAEjF,SAASC,WAAW,EAAEC,aAAa,EAAEC,cAAc,QAAQ,sBAAmB;AAC9E,SAASC,eAAe,QAAQ,uBAAoB;AAOpD,MAAMC,WAAW,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAExD,MAAMC,OAAO,GAAGA,CAACC,IAAY,EAAEC,MAAc,EAAEC,QAAiB,MAAgB;EAC9EF,IAAI;EACJE,QAAQ;EACRC,YAAY,EAAE,CAAC;IAAEH,IAAI,EAAEC,MAAM;IAAEG,YAAY,EAAER;EAAY,CAAC;AAC5D,CAAC,CAAC;;AAEF;AACA,MAAMS,QAA0C,GAAG;EACjD,CAACjB,iBAAiB,CAACkB,eAAe,GAAG,CACnCP,OAAO,CAACL,cAAc,EAAED,aAAa,EAAE,IAAI,CAAC,EAC5CM,OAAO,CAACP,WAAW,CAACe,iBAAiB,CAACR,OAAO,EAAEP,WAAW,CAACe,iBAAiB,CAACN,MAAM,EAAE,IAAI,CAAC,CAC3F;EACD,CAACb,iBAAiB,CAACoB,kBAAkB,GAAG,CACtCT,OAAO,CAACL,cAAc,EAAED,aAAa,EAAE,IAAI,CAAC,EAC5CM,OAAO,CAACP,WAAW,CAACiB,oBAAoB,CAACV,OAAO,EAAEP,WAAW,CAACiB,oBAAoB,CAACR,MAAM,EAAE,IAAI,CAAC,CACjG;EACD,CAACb,iBAAiB,CAACsB,UAAU,GAAG,CAC9BX,OAAO,CAACP,WAAW,CAACmB,aAAa,CAACZ,OAAO,EAAEP,WAAW,CAACmB,aAAa,CAACV,MAAM,EAAE,KAAK,CAAC;AAEvF,CAAC;;AAED;AACA,MAAMW,iBAAiB,SAASvB,eAAe,CAAe;EAElDwB,gBAAgB,GAAG,OAAO;EAC1BC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAACC,MAAc,EAAEC,MAAwC,EAAE;IAC3E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,YAAY,GAAGd,QAAQ,CAACa,MAAM,CAACE,UAAU,CAAC;IAE/C,MAAMC,QAAQ,GAAIC,MAA+B,IAC/C,IAAI,CAACD,QAAQ,GACXC,MACF,CAAC;IAEH,IAAI,CAACC,sBAAsB,GAAG,MAC5BL,MAAM,CAACE,UAAU,KAAKhC,iBAAiB,CAACkB,eAAe,GACnD,IAAIf,qBAAqB,CAAC;MAAEiC,aAAa,EAAElC,aAAa;MAAE+B;IAAS,CAAC,CAAC,GACrE,IAAI1B,eAAe,CAAC;MAClB8B,IAAI,EACFP,MAAM,CAACE,UAAU,KAAKhC,iBAAiB,CAACsB,UAAU,GAAG,gBAAgB,GAAG,aAAa;MACvFW;IACF,CAAC,CAAC;EACV;;EAEA;EACUK,eAAe,GAAGA,CAAA,KAAe,IAAI;EAErCC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAEA,SAASf,iBAAiB,IAAIgB,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Jumper Medical devices and their rebrands, from MedM Health Diary 3.12.11's `CJumper_*`
|
|
9
|
+
* classes. All three kinds here only notify; the app never writes.
|
|
10
|
+
*/
|
|
11
|
+
const sig16 = assigned => `0000${assigned}-0000-1000-8000-00805f9b34fb`;
|
|
12
|
+
|
|
13
|
+
/** Jumper's own service and characteristic, used by the oximeter and thermometers. */
|
|
14
|
+
export const JUMPER_SERVICE = "cdeacb80-5235-4c07-8846-93a37ee6b86d";
|
|
15
|
+
export const JUMPER_NOTIFY = "cdeacb81-5235-4c07-8846-93a37ee6b86d";
|
|
16
|
+
export const JUMPER_GATT = {
|
|
17
|
+
oximeterAlternate: {
|
|
18
|
+
service: sig16("fee0"),
|
|
19
|
+
notify: sig16("fee1")
|
|
20
|
+
},
|
|
21
|
+
thermometerAlternate: {
|
|
22
|
+
service: sig16("fff0"),
|
|
23
|
+
notify: sig16("fff3")
|
|
24
|
+
},
|
|
25
|
+
bloodPressure: {
|
|
26
|
+
service: sig16("fff0"),
|
|
27
|
+
notify: sig16("fff1")
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const bytes = frame => frame.map(byte => hexToByte(byte));
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* HA120 (and Medicare Lifesense MD1803, Oxiline Pressure X Pro, Alphamed U80N/U90): a single
|
|
34
|
+
* `FD FD FC SYS DIA PULSE [X] 0D 0A` frame per measurement, in mmHg, timed by the phone.
|
|
35
|
+
*/
|
|
36
|
+
export const readHa120 = frame => {
|
|
37
|
+
const b = bytes(frame);
|
|
38
|
+
if (b.length !== 8 && b.length !== 9 || b[0] !== 0xfd || b[1] !== 0xfd || b[2] !== 0xfc || b[b.length - 2] !== 0x0d || b[b.length - 1] !== 0x0a) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
systolic: b[3] ?? 0,
|
|
43
|
+
diastolic: b[4] ?? 0,
|
|
44
|
+
heartRate: b[5] ?? 0
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* FR302 / FR409 thermometers (and Zewa, iProven, Kinetik, Medicare Lifesense rebrands):
|
|
50
|
+
* `AA 22|33 hi lo sum`, hundredths of a degree Celsius, timed by the phone.
|
|
51
|
+
*/
|
|
52
|
+
export const readFr302 = frame => {
|
|
53
|
+
const b = bytes(frame);
|
|
54
|
+
if (b.length !== 5 || b[0] !== 0xaa || b[1] !== 0x22 && b[1] !== 0x33) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
if (((b[0] ?? 0) + (b[1] ?? 0) + (b[2] ?? 0) + (b[3] ?? 0) & 0xff) !== b[4]) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return ((b[2] ?? 0) << 8 | (b[3] ?? 0)) / 100;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=jumper.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hexToByte","sig16","assigned","JUMPER_SERVICE","JUMPER_NOTIFY","JUMPER_GATT","oximeterAlternate","service","notify","thermometerAlternate","bloodPressure","bytes","frame","map","byte","readHa120","b","length","undefined","systolic","diastolic","heartRate","readFr302"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/jumper/jumper.protocol.ts"],"mappings":";;AAAA;;AAEA,SAASA,SAAS,QAAQ,+BAA4B;;AAEtD;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAIC,QAAgB,IAC7B,OAAOA,QAAQ,8BAA8B;;AAE/C;AACA,OAAO,MAAMC,cAAc,GAAG,sCAAsC;AACpE,OAAO,MAAMC,aAAa,GAAG,sCAAsC;AAEnE,OAAO,MAAMC,WAAW,GAAG;EACzBC,iBAAiB,EAAE;IAAEC,OAAO,EAAEN,KAAK,CAAC,MAAM,CAAC;IAAEO,MAAM,EAAEP,KAAK,CAAC,MAAM;EAAE,CAAC;EACpEQ,oBAAoB,EAAE;IAAEF,OAAO,EAAEN,KAAK,CAAC,MAAM,CAAC;IAAEO,MAAM,EAAEP,KAAK,CAAC,MAAM;EAAE,CAAC;EACvES,aAAa,EAAE;IAAEH,OAAO,EAAEN,KAAK,CAAC,MAAM,CAAC;IAAEO,MAAM,EAAEP,KAAK,CAAC,MAAM;EAAE;AACjE,CAAU;AAEV,MAAMU,KAAK,GAAIC,KAAwB,IAAeA,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKd,SAAS,CAACc,IAAI,CAAC,CAAC;;AAE1F;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GACpBH,KAAwB,IACmD;EAC3E,MAAMI,CAAC,GAAGL,KAAK,CAACC,KAAK,CAAC;EAEtB,IACGI,CAAC,CAACC,MAAM,KAAK,CAAC,IAAID,CAAC,CAACC,MAAM,KAAK,CAAC,IACjCD,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IACbA,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IACbA,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IACbA,CAAC,CAACA,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IACxBD,CAAC,CAACA,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EACxB;IACA,OAAOC,SAAS;EAClB;EAEA,OAAO;IAAEC,QAAQ,EAAEH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAAEI,SAAS,EAAEJ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAAEK,SAAS,EAAEL,CAAC,CAAC,CAAC,CAAC,IAAI;EAAE,CAAC;AAC5E,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,SAAS,GAAIV,KAAwB,IAAyB;EACzE,MAAMI,CAAC,GAAGL,KAAK,CAACC,KAAK,CAAC;EAEtB,IAAII,CAAC,CAACC,MAAM,KAAK,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAKA,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAK,IAAK,EAAE;IACvE,OAAOE,SAAS;EAClB;EAEA,IAAI,CAAE,CAACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAI,IAAI,MAAMA,CAAC,CAAC,CAAC,CAAC,EAAE;IAC7E,OAAOE,SAAS;EAClB;EAEA,OAAO,CAAE,CAACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG;AACjD,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
5
|
+
import { readFr302, readHa120 } from "./jumper.protocol.js";
|
|
6
|
+
|
|
7
|
+
/** The thermometers repeat a reading; MedM drops repeats within 30 s. */
|
|
8
|
+
const REPEAT_WINDOW_MS = 30_000;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The Jumper HA120 blood-pressure monitor and FR302-family thermometers: the device pushes one
|
|
12
|
+
* frame per measurement and the app answers nothing.
|
|
13
|
+
*/
|
|
14
|
+
class JumperSequencer {
|
|
15
|
+
recorded = false;
|
|
16
|
+
constructor(params) {
|
|
17
|
+
this.params = params;
|
|
18
|
+
}
|
|
19
|
+
initialCommands = () => [];
|
|
20
|
+
isNormalDisconnect = () => this.recorded;
|
|
21
|
+
nextCommand = frame => {
|
|
22
|
+
const reading = this.params.kind === "blood-pressure" ? this.bloodPressure(frame) : this.temperature(frame);
|
|
23
|
+
if (reading) {
|
|
24
|
+
this.recorded = true;
|
|
25
|
+
this.params.onResult({
|
|
26
|
+
caseType: CaseType.RESULT,
|
|
27
|
+
recordedAt: new Date(),
|
|
28
|
+
...reading
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
bloodPressure = frame => {
|
|
34
|
+
const reading = readHa120(frame);
|
|
35
|
+
return reading && {
|
|
36
|
+
measurementTypeKey: MeasurementTypeKey.bloodPressure,
|
|
37
|
+
...reading
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
temperature = frame => {
|
|
41
|
+
const bodyTemp = readFr302(frame);
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
if (bodyTemp === undefined || this.lastTemperature?.value === bodyTemp && now - this.lastTemperature.at < REPEAT_WINDOW_MS) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
this.lastTemperature = {
|
|
47
|
+
value: bodyTemp,
|
|
48
|
+
at: now
|
|
49
|
+
};
|
|
50
|
+
return {
|
|
51
|
+
measurementTypeKey: MeasurementTypeKey.temperature,
|
|
52
|
+
bodyTemp
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export { JumperSequencer };
|
|
57
|
+
//# sourceMappingURL=jumper.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","readFr302","readHa120","REPEAT_WINDOW_MS","JumperSequencer","recorded","constructor","params","initialCommands","isNormalDisconnect","nextCommand","frame","reading","kind","bloodPressure","temperature","onResult","caseType","RESULT","recordedAt","Date","undefined","measurementTypeKey","bodyTemp","now","lastTemperature","value","at"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/jumper/jumper.sequencer.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAInD,SAASC,SAAS,EAAEC,SAAS,QAAQ,sBAAmB;;AAExD;AACA,MAAMC,gBAAgB,GAAG,MAAM;;AAE/B;AACA;AACA;AACA;AACA,MAAMC,eAAe,CAA6B;EACxCC,QAAQ,GAAG,KAAK;EAGjBC,WAAWA,CACCC,MAGhB,EACD;IAAA,KAJiBA,MAGhB,GAHgBA,MAGhB;EACA;EAEIC,eAAe,GAAGA,CAAA,KAAgC,EAAE;EAEpDC,kBAAkB,GAAGA,CAAA,KAAe,IAAI,CAACJ,QAAQ;EAEjDK,WAAW,GAAIC,KAAwB,IAAgB;IAC5D,MAAMC,OAAO,GACX,IAAI,CAACL,MAAM,CAACM,IAAI,KAAK,gBAAgB,GAAG,IAAI,CAACC,aAAa,CAACH,KAAK,CAAC,GAAG,IAAI,CAACI,WAAW,CAACJ,KAAK,CAAC;IAE7F,IAAIC,OAAO,EAAE;MACX,IAAI,CAACP,QAAQ,GAAG,IAAI;MACpB,IAAI,CAACE,MAAM,CAACS,QAAQ,CAAC;QAAEC,QAAQ,EAAEjB,QAAQ,CAACkB,MAAM;QAAEC,UAAU,EAAE,IAAIC,IAAI,CAAC,CAAC;QAAE,GAAGR;MAAQ,CAAC,CAAC;IACzF;IAEA,OAAOS,SAAS;EAClB,CAAC;EAEOP,aAAa,GAAIH,KAAwB,IAA0C;IACzF,MAAMC,OAAO,GAAGV,SAAS,CAACS,KAAK,CAAC;IAEhC,OAAOC,OAAO,IAAI;MAAEU,kBAAkB,EAAEvB,kBAAkB,CAACe,aAAa;MAAE,GAAGF;IAAQ,CAAC;EACxF,CAAC;EAEOG,WAAW,GAAIJ,KAAwB,IAA0C;IACvF,MAAMY,QAAQ,GAAGtB,SAAS,CAACU,KAAK,CAAC;IACjC,MAAMa,GAAG,GAAGJ,IAAI,CAACI,GAAG,CAAC,CAAC;IAEtB,IACED,QAAQ,KAAKF,SAAS,IACrB,IAAI,CAACI,eAAe,EAAEC,KAAK,KAAKH,QAAQ,IACvCC,GAAG,GAAG,IAAI,CAACC,eAAe,CAACE,EAAE,GAAGxB,gBAAiB,EACnD;MACA,OAAOkB,SAAS;IAClB;IAEA,IAAI,CAACI,eAAe,GAAG;MAAEC,KAAK,EAAEH,QAAQ;MAAEI,EAAE,EAAEH;IAAI,CAAC;IAEnD,OAAO;MAAEF,kBAAkB,EAAEvB,kBAAkB,CAACgB,WAAW;MAAEQ;IAAS,CAAC;EACzE,CAAC;AACH;AAEA,SAASnB,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../types/case-type.js";
|
|
5
|
+
import { hexToByte } from "../../utils/hex-to-byte.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Pulse oximeters that only notify live values - `PR SpO2 PI×10` after a header byte - with no
|
|
9
|
+
* stored records and no clock: the AOJ-70A/70B and Jumper JPD-500D families.
|
|
10
|
+
*
|
|
11
|
+
* A spot reading is the last valid saturation and pulse once valid values stop for a few
|
|
12
|
+
* seconds - the finger came out or the device went to sleep - which is also how MedM forms one.
|
|
13
|
+
*/
|
|
14
|
+
/** Quiet time after the last valid value before the spot reading is reported. */
|
|
15
|
+
const SETTLE_MS = 3_000;
|
|
16
|
+
|
|
17
|
+
/** Picks the values frame out of whatever else the device sends (waveform, status). */
|
|
18
|
+
|
|
19
|
+
/** AOJ-70: header exactly `81`, extra bytes ignored. */
|
|
20
|
+
const AOJ_VALUES = (header, length) => header === 0x81 && length >= 4;
|
|
21
|
+
|
|
22
|
+
/** Jumper JPD-500D: low nibble 1, exactly four bytes. */
|
|
23
|
+
const JUMPER_VALUES = (header, length) => (header & 0x0f) === 1 && length === 4;
|
|
24
|
+
|
|
25
|
+
/** Pulse rate counts at 1-254 bpm, SpO2 is invalid at 0 or 0x7F, PI 0 means none. */
|
|
26
|
+
const readOximeterData = (frame, isValuesFrame = AOJ_VALUES) => {
|
|
27
|
+
if (!isValuesFrame(hexToByte(frame[0] ?? "00"), frame.length)) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const pulseRate = hexToByte(frame[1] ?? "00");
|
|
31
|
+
const bloodOxygen = hexToByte(frame[2] ?? "00");
|
|
32
|
+
const perfusionIndex = hexToByte(frame[3] ?? "00");
|
|
33
|
+
if (pulseRate < 1 || pulseRate > 254 || bloodOxygen === 0 || bloodOxygen === 0x7f) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
bloodOxygen,
|
|
38
|
+
pulseRate,
|
|
39
|
+
...(perfusionIndex > 0 ? {
|
|
40
|
+
perfusionIndex: perfusionIndex / 10
|
|
41
|
+
} : {})
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
class LiveOximeterSequencer {
|
|
45
|
+
constructor(params) {
|
|
46
|
+
this.params = params;
|
|
47
|
+
}
|
|
48
|
+
initialCommands = () => [];
|
|
49
|
+
isNormalDisconnect = () => true;
|
|
50
|
+
commandTimeoutMs = () => this.latest ? SETTLE_MS : undefined;
|
|
51
|
+
onCommandTimeout = () => {
|
|
52
|
+
const latest = this.latest;
|
|
53
|
+
this.latest = undefined;
|
|
54
|
+
if (latest) {
|
|
55
|
+
this.params.onResult({
|
|
56
|
+
caseType: CaseType.RESULT,
|
|
57
|
+
measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
|
|
58
|
+
...latest
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {};
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/** A valid value restarts the settle time; anything else leaves it running. */
|
|
65
|
+
commandProgress = frame => {
|
|
66
|
+
const values = readOximeterData(frame, this.params.isValuesFrame);
|
|
67
|
+
if (!values) {
|
|
68
|
+
return "ignored";
|
|
69
|
+
}
|
|
70
|
+
this.latest = {
|
|
71
|
+
...values,
|
|
72
|
+
recordedAt: new Date()
|
|
73
|
+
};
|
|
74
|
+
return "partial";
|
|
75
|
+
};
|
|
76
|
+
nextCommand = () => undefined;
|
|
77
|
+
}
|
|
78
|
+
export { AOJ_VALUES, JUMPER_VALUES, LiveOximeterSequencer, readOximeterData };
|
|
79
|
+
//# sourceMappingURL=live-oximeter.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","hexToByte","SETTLE_MS","AOJ_VALUES","header","length","JUMPER_VALUES","readOximeterData","frame","isValuesFrame","undefined","pulseRate","bloodOxygen","perfusionIndex","LiveOximeterSequencer","constructor","params","initialCommands","isNormalDisconnect","commandTimeoutMs","latest","onCommandTimeout","onResult","caseType","RESULT","measurementTypeKey","bloodOxygenPulseRate","commandProgress","values","recordedAt","Date","nextCommand"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/live-oximeter.sequencer.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,0BAAuB;AAGhD,SAASC,SAAS,QAAQ,4BAAyB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG,KAAK;;AASvB;;AAGA;AACA,MAAMC,UAAyB,GAAGA,CAACC,MAAM,EAAEC,MAAM,KAAKD,MAAM,KAAK,IAAI,IAAIC,MAAM,IAAI,CAAC;;AAEpF;AACA,MAAMC,aAA4B,GAAGA,CAACF,MAAM,EAAEC,MAAM,KAAK,CAACD,MAAM,GAAG,IAAI,MAAM,CAAC,IAAIC,MAAM,KAAK,CAAC;;AAE9F;AACA,MAAME,gBAAgB,GAAGA,CACvBC,KAAwB,EACxBC,aAA4B,GAAGN,UAAU,KACE;EAC3C,IAAI,CAACM,aAAa,CAACR,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAEA,KAAK,CAACH,MAAM,CAAC,EAAE;IAC7D,OAAOK,SAAS;EAClB;EAEA,MAAMC,SAAS,GAAGV,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAC7C,MAAMI,WAAW,GAAGX,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAC/C,MAAMK,cAAc,GAAGZ,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;EAElD,IAAIG,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAG,GAAG,IAAIC,WAAW,KAAK,CAAC,IAAIA,WAAW,KAAK,IAAI,EAAE;IACjF,OAAOF,SAAS;EAClB;EAEA,OAAO;IACLE,WAAW;IACXD,SAAS;IACT,IAAIE,cAAc,GAAG,CAAC,GAAG;MAAEA,cAAc,EAAEA,cAAc,GAAG;IAAG,CAAC,GAAG,CAAC,CAAC;EACvE,CAAC;AACH,CAAC;AAED,MAAMC,qBAAqB,CAA6B;EAG/CC,WAAWA,CACCC,MAGhB,EACD;IAAA,KAJiBA,MAGhB,GAHgBA,MAGhB;EACA;EAEIC,eAAe,GAAGA,CAAA,KAAgC,EAAE;EAEpDC,kBAAkB,GAAGA,CAAA,KAAe,IAAI;EAExCC,gBAAgB,GAAGA,CAAA,KAA2B,IAAI,CAACC,MAAM,GAAGlB,SAAS,GAAGQ,SAAU;EAElFW,gBAAgB,GAAGA,CAAA,KAA4B;IACpD,MAAMD,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,IAAI,CAACA,MAAM,GAAGV,SAAS;IAEvB,IAAIU,MAAM,EAAE;MACV,IAAI,CAACJ,MAAM,CAACM,QAAQ,CAAC;QACnBC,QAAQ,EAAEvB,QAAQ,CAACwB,MAAM;QACzBC,kBAAkB,EAAE1B,kBAAkB,CAAC2B,oBAAoB;QAC3D,GAAGN;MACL,CAAC,CAAC;IACJ;IAEA,OAAO,CAAC,CAAC;EACX,CAAC;;EAED;EACOO,eAAe,GAAInB,KAAwB,IAAyC;IACzF,MAAMoB,MAAM,GAAGrB,gBAAgB,CAACC,KAAK,EAAE,IAAI,CAACQ,MAAM,CAACP,aAAa,CAAC;IAEjE,IAAI,CAACmB,MAAM,EAAE;MACX,OAAO,SAAS;IAClB;IAEA,IAAI,CAACR,MAAM,GAAG;MAAE,GAAGQ,MAAM;MAAEC,UAAU,EAAE,IAAIC,IAAI,CAAC;IAAE,CAAC;IAEnD,OAAO,SAAS;EAClB,CAAC;EAEMC,WAAW,GAAGA,CAAA,KAAiBrB,SAAS;AACjD;AAEA,SAASP,UAAU,EAAEG,aAAa,EAAEQ,qBAAqB,EAAEP,gBAAgB","ignoreList":[]}
|
|
@@ -12,23 +12,37 @@ import { hexToBytes } from "../../utils/hex-to-bytes.js";
|
|
|
12
12
|
* device changing.
|
|
13
13
|
*/
|
|
14
14
|
class PollingCommandSequencer {
|
|
15
|
-
constructor(commands) {
|
|
15
|
+
constructor(commands, repeated = commands) {
|
|
16
16
|
this.commands = commands;
|
|
17
|
+
this.repeated = repeated;
|
|
17
18
|
}
|
|
18
19
|
initialCommands = () => this.commands;
|
|
19
|
-
nextCommand = () => this.
|
|
20
|
+
nextCommand = () => this.repeated;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Builds the polling policy a device's declared services already describe.
|
|
24
25
|
*
|
|
25
26
|
* A service without a write characteristic contributes nothing, so a listen-only device
|
|
26
|
-
* gets an empty policy and is never written to.
|
|
27
|
+
* gets an empty policy and is never written to. A write marked `onConnectOnly` goes out on
|
|
28
|
+
* connect and is not repeated.
|
|
27
29
|
*/
|
|
28
|
-
const pollingSequencerFor = services =>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}] : [])
|
|
30
|
+
const pollingSequencerFor = services => {
|
|
31
|
+
const writes = services.flatMap(service => service.writeUuid ? [{
|
|
32
|
+
service,
|
|
33
|
+
write: service.writeUuid
|
|
34
|
+
}] : []);
|
|
35
|
+
const command = ({
|
|
36
|
+
service,
|
|
37
|
+
write
|
|
38
|
+
}) => ({
|
|
39
|
+
serviceUuid: service.uuid,
|
|
40
|
+
characteristicUuid: write.uuid,
|
|
41
|
+
frame: hexToBytes(write.mainCommandUuid)
|
|
42
|
+
});
|
|
43
|
+
return new PollingCommandSequencer(writes.map(command), writes.filter(({
|
|
44
|
+
write
|
|
45
|
+
}) => !write.onConnectOnly).map(command));
|
|
46
|
+
};
|
|
33
47
|
export { PollingCommandSequencer, pollingSequencerFor };
|
|
34
48
|
//# sourceMappingURL=polling-command-sequencer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hexToBytes","PollingCommandSequencer","constructor","commands","initialCommands","nextCommand","pollingSequencerFor","services","flatMap","service","writeUuid","serviceUuid","uuid","characteristicUuid","frame","mainCommandUuid"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/polling-command-sequencer.ts"],"mappings":";;AAGA,SAASA,UAAU,QAAQ,6BAA0B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,CAA6B;EACjDC,WAAWA,
|
|
1
|
+
{"version":3,"names":["hexToBytes","PollingCommandSequencer","constructor","commands","repeated","initialCommands","nextCommand","pollingSequencerFor","services","writes","flatMap","service","writeUuid","write","command","serviceUuid","uuid","characteristicUuid","frame","mainCommandUuid","map","filter","onConnectOnly"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/polling-command-sequencer.ts"],"mappings":";;AAGA,SAASA,UAAU,QAAQ,6BAA0B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,CAA6B;EACjDC,WAAWA,CACCC,QAAkC,EAClCC,QAAkC,GAAGD,QAAQ,EAC9D;IAAA,KAFiBA,QAAkC,GAAlCA,QAAkC;IAAA,KAClCC,QAAkC,GAAlCA,QAAkC;EAClD;EAEIC,eAAe,GAAGA,CAAA,KAAgC,IAAI,CAACF,QAAQ;EAE/DG,WAAW,GAAGA,CAAA,KAAgC,IAAI,CAACF,QAAQ;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,mBAAmB,GACvBC,QAAuC,IACX;EAC5B,MAAMC,MAAM,GAAGD,QAAQ,CAACE,OAAO,CAAEC,OAAO,IACtCA,OAAO,CAACC,SAAS,GAAG,CAAC;IAAED,OAAO;IAAEE,KAAK,EAAEF,OAAO,CAACC;EAAU,CAAC,CAAC,GAAG,EAChE,CAAC;EAED,MAAME,OAAO,GAAGA,CAAC;IAAEH,OAAO;IAAEE;EAA+B,CAAC,MAAqB;IAC/EE,WAAW,EAAEJ,OAAO,CAACK,IAAI;IACzBC,kBAAkB,EAAEJ,KAAK,CAACG,IAAI;IAC9BE,KAAK,EAAElB,UAAU,CAACa,KAAK,CAACM,eAAe;EACzC,CAAC,CAAC;EAEF,OAAO,IAAIlB,uBAAuB,CAChCQ,MAAM,CAACW,GAAG,CAACN,OAAO,CAAC,EACnBL,MAAM,CAACY,MAAM,CAAC,CAAC;IAAER;EAAM,CAAC,KAAK,CAACA,KAAK,CAACS,aAAa,CAAC,CAACF,GAAG,CAACN,OAAO,CAChE,CAAC;AACH,CAAC;AAED,SAASb,uBAAuB,EAAEM,mBAAmB","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/* eslint-disable max-lines */
|
|
4
4
|
|
|
5
5
|
import { MeasurementTypeKey } from "@ovok/core";
|
|
6
|
+
import { standardGlucoseDevice } from "./standard-gatt.glucose.js";
|
|
6
7
|
import { decorateBloodPressureReading, declareProfile, littleEndian } from "./standard-gatt.profile.js";
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -49,7 +50,10 @@ const standardBloodPressureDevice = params => declareProfile({
|
|
|
49
50
|
...params,
|
|
50
51
|
decorateReading: (reading, frame, recordOffset) => {
|
|
51
52
|
const decorated = decorateBloodPressureReading(reading, frame, recordOffset);
|
|
52
|
-
|
|
53
|
+
if (!decorated) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return params.decorateReading ? params.decorateReading(decorated, frame, recordOffset) : decorated;
|
|
53
57
|
}
|
|
54
58
|
}, {
|
|
55
59
|
service: "1810",
|
|
@@ -193,5 +197,5 @@ const standardHeartRateDevice = params => declareProfile(params, {
|
|
|
193
197
|
minLengthBytes: 3
|
|
194
198
|
}]))
|
|
195
199
|
});
|
|
196
|
-
export { standardBloodPressureDevice, standardHeartRateDevice, standardPulseOximeterDevice, standardThermometerDevice, standardWeightScaleDevice };
|
|
200
|
+
export { standardBloodPressureDevice, standardGlucoseDevice, standardHeartRateDevice, standardPulseOximeterDevice, standardThermometerDevice, standardWeightScaleDevice };
|
|
197
201
|
//# sourceMappingURL=standard-gatt.devices.js.map
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeasurementTypeKey","decorateBloodPressureReading","declareProfile","littleEndian","pulseAfterMeanPressure","fields","minLengthBytes","pulseAfterTimestamp","standardBloodPressureDevice","params","decorateReading","reading","frame","recordOffset","decorated","service","characteristic","measurementTypeKey","bloodPressure","selectors","optionalFields","standardThermometerDevice","temperature","fieldsBySelector","scale","offset","decimals","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","Array","from","length","_","flags","toString","padStart","Object","fromEntries","selector","standardPulseOximeterDevice","bloodOxygenPulseRate","standardHeartRateDevice","heartRate","filter","map","name","byteIndexes","encoding","unit","byteOrder"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":";;AAAA;;AAEA,SAASA,kBAAkB,QAAQ,YAAY;AAI/C,SACEC,4BAA4B,EAC5BC,cAAc,EACdC,YAAY,QAEP,4BAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG;EAC7BC,MAAM,EAAE,CAACF,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;EAC5DG,cAAc,EAAE;AAClB,CAAC;;AAED;AACA,MAAMC,mBAAmB,GAAG;EAC1BF,MAAM,EAAE,CAACF,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;EAC9DG,cAAc,EAAE;AAClB,CAAC;AAED,MAAME,2BAA2B,GAC/BC,MAA4B,IAE5BP,cAAc,CACZ;EACE,GAAGO,MAAM;EACTC,eAAe,EAAEA,CAACC,OAAO,EAAEC,KAAK,EAAEC,YAAY,KAAK;IACjD,MAAMC,SAAS,GAAGb,4BAA4B,CAC5CU,OAAO,EACPC,KAAK,EACLC,YACF,CAAC;IAED,
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","standardGlucoseDevice","decorateBloodPressureReading","declareProfile","littleEndian","pulseAfterMeanPressure","fields","minLengthBytes","pulseAfterTimestamp","standardBloodPressureDevice","params","decorateReading","reading","frame","recordOffset","decorated","service","characteristic","measurementTypeKey","bloodPressure","selectors","optionalFields","standardThermometerDevice","temperature","fieldsBySelector","scale","offset","decimals","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","Array","from","length","_","flags","toString","padStart","Object","fromEntries","selector","standardPulseOximeterDevice","bloodOxygenPulseRate","standardHeartRateDevice","heartRate","filter","map","name","byteIndexes","encoding","unit","byteOrder"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { defineCustomDevice } from "../../custom/define-custom-device.js";
|
|
5
|
+
import { littleEndian, sigUuid } from "./standard-gatt.profile.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Glucose Service 0x1808: Glucose Measurement 0x2A18 and the Record Access Control Point
|
|
9
|
+
* 0x2A52.
|
|
10
|
+
*
|
|
11
|
+
* A glucose meter does not push its readings. The collector enables indications on the
|
|
12
|
+
* control point, writes "report all stored records" (`01 01`) once, and the meter answers
|
|
13
|
+
* with one Glucose Measurement per stored record followed by a control-point response
|
|
14
|
+
* (`06 00 01 xx`). Every record is reported; the SDK's stable result identity keeps a
|
|
15
|
+
* record seen on an earlier connection from becoming a second reading.
|
|
16
|
+
*
|
|
17
|
+
* Glucose Measurement layout: flags, sequence number (2), base time (7), time offset (2,
|
|
18
|
+
* flag bit 0), concentration SFLOAT (2) and type/sample-location (1) (bit 1), sensor status
|
|
19
|
+
* (2, bit 3). Bit 2 picks the unit: kg/L, or mol/L. Both are converted to mg/dL.
|
|
20
|
+
*/
|
|
21
|
+
const MG_PER_DL_PER_KG_PER_L = 100_000;
|
|
22
|
+
|
|
23
|
+
/** One mol/L of glucose (180.16 g/mol) is 18,016 mg/dL. */
|
|
24
|
+
const MG_PER_DL_PER_MOL_PER_L = 18_016;
|
|
25
|
+
const FLAG_TIME_OFFSET = 0x01;
|
|
26
|
+
const FLAG_CONCENTRATION = 0x02;
|
|
27
|
+
const FLAG_MOL_PER_L = 0x04;
|
|
28
|
+
const BASE_TIME_INDEX = 3;
|
|
29
|
+
const TIME_OFFSET_INDEX = 10;
|
|
30
|
+
|
|
31
|
+
/** Type 0xA and sample location 0x4 both mean a control-solution test, not a patient sample. */
|
|
32
|
+
const CONTROL_SOLUTION_TYPE = 0x0a;
|
|
33
|
+
const CONTROL_SOLUTION_LOCATION = 0x04;
|
|
34
|
+
const REPORT_ALL_STORED_RECORDS = "0101";
|
|
35
|
+
const concentrationIndex = flags => flags & FLAG_TIME_OFFSET ? TIME_OFFSET_INDEX + 2 : TIME_OFFSET_INDEX;
|
|
36
|
+
const selector = flags => flags.toString(16).padStart(2, "0");
|
|
37
|
+
|
|
38
|
+
/** Bits 5-7 are reserved; a meter that sets one still sends a readable record. */
|
|
39
|
+
const ALL_FLAGS = Array.from({
|
|
40
|
+
length: 256
|
|
41
|
+
}, (_, flags) => flags);
|
|
42
|
+
const glucoseField = flags => {
|
|
43
|
+
const index = concentrationIndex(flags);
|
|
44
|
+
return {
|
|
45
|
+
...littleEndian("bloodGlucose", [index, index + 1], "mg/dL", "sfloat"),
|
|
46
|
+
scale: flags & FLAG_MOL_PER_L ? MG_PER_DL_PER_MOL_PER_L : MG_PER_DL_PER_KG_PER_L,
|
|
47
|
+
decimals: 0
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const byte = (frame, index) => {
|
|
51
|
+
const value = Number.parseInt(frame[index] ?? "", 16);
|
|
52
|
+
return Number.isInteger(value) ? value : undefined;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** The record's own time: the base time plus its offset in minutes, read as phone-local. */
|
|
56
|
+
const recordedAtFromGlucoseFrame = frame => {
|
|
57
|
+
const parts = Array.from({
|
|
58
|
+
length: 7
|
|
59
|
+
}, (_, i) => byte(frame, BASE_TIME_INDEX + i));
|
|
60
|
+
const flags = byte(frame, 0);
|
|
61
|
+
if (flags === undefined || parts.some(part => part === undefined)) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
const [yearLow, yearHigh, month, day, hour, minute, second] = parts;
|
|
65
|
+
const year = yearLow | yearHigh << 8;
|
|
66
|
+
const recordedAt = new Date(year, month - 1, day, hour, minute, second);
|
|
67
|
+
|
|
68
|
+
// A field out of range (hour 24, minute 60) would roll the Date over into a plausible wrong time.
|
|
69
|
+
if (recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day || recordedAt.getHours() !== hour || recordedAt.getMinutes() !== minute || recordedAt.getSeconds() !== second) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
if (flags & FLAG_TIME_OFFSET) {
|
|
73
|
+
const low = byte(frame, TIME_OFFSET_INDEX);
|
|
74
|
+
const high = byte(frame, TIME_OFFSET_INDEX + 1);
|
|
75
|
+
if (low === undefined || high === undefined) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const offsetMinutes = (high << 8 | low) << 16 >> 16;
|
|
79
|
+
recordedAt.setMinutes(recordedAt.getMinutes() + offsetMinutes);
|
|
80
|
+
}
|
|
81
|
+
return recordedAt;
|
|
82
|
+
};
|
|
83
|
+
const isControlSolution = frame => {
|
|
84
|
+
const flags = byte(frame, 0) ?? 0;
|
|
85
|
+
const typeAndLocation = byte(frame, concentrationIndex(flags) + 2);
|
|
86
|
+
return typeAndLocation !== undefined && ((typeAndLocation & 0x0f) === CONTROL_SOLUTION_TYPE || typeAndLocation >> 4 === CONTROL_SOLUTION_LOCATION);
|
|
87
|
+
};
|
|
88
|
+
const standardGlucoseDevice = params => defineCustomDevice({
|
|
89
|
+
id: params.id ?? `standard-${MeasurementTypeKey.bloodGlucose}`,
|
|
90
|
+
nameMatch: params.nameMatch,
|
|
91
|
+
matchByService: params.nameMatch === undefined,
|
|
92
|
+
oneReadingPerConnection: params.oneReadingPerConnection,
|
|
93
|
+
stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? 60_000,
|
|
94
|
+
services: [{
|
|
95
|
+
uuid: sigUuid("1808"),
|
|
96
|
+
monitor: [{
|
|
97
|
+
uuid: sigUuid("2a18"),
|
|
98
|
+
frame: {
|
|
99
|
+
minLengthBytes: TIME_OFFSET_INDEX
|
|
100
|
+
},
|
|
101
|
+
caseSelectorBytes: [0],
|
|
102
|
+
cases: ALL_FLAGS.map(flags => flags & FLAG_CONCENTRATION ? {
|
|
103
|
+
selector: selector(flags),
|
|
104
|
+
kind: "result",
|
|
105
|
+
measurementTypeKey: MeasurementTypeKey.bloodGlucose,
|
|
106
|
+
fields: [glucoseField(flags)],
|
|
107
|
+
minLengthBytes: concentrationIndex(flags) + 3
|
|
108
|
+
} : {
|
|
109
|
+
selector: selector(flags),
|
|
110
|
+
kind: "idle",
|
|
111
|
+
description: "A record without a concentration"
|
|
112
|
+
})
|
|
113
|
+
}, {
|
|
114
|
+
uuid: sigUuid("2a52"),
|
|
115
|
+
frame: {
|
|
116
|
+
minLengthBytes: 2
|
|
117
|
+
},
|
|
118
|
+
caseSelectorBytes: [0],
|
|
119
|
+
cases: [{
|
|
120
|
+
selector: "05",
|
|
121
|
+
kind: "idle",
|
|
122
|
+
description: "Number of stored records"
|
|
123
|
+
}, {
|
|
124
|
+
selector: "06",
|
|
125
|
+
kind: "idle",
|
|
126
|
+
description: "Record access response"
|
|
127
|
+
}]
|
|
128
|
+
}],
|
|
129
|
+
write: {
|
|
130
|
+
uuid: sigUuid("2a52"),
|
|
131
|
+
commandHex: REPORT_ALL_STORED_RECORDS,
|
|
132
|
+
when: "connect"
|
|
133
|
+
}
|
|
134
|
+
}]
|
|
135
|
+
}, {
|
|
136
|
+
decorateReading: (reading, frame, recordOffset) => {
|
|
137
|
+
if (frame && isControlSolution(frame)) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const recordedAt = frame ? recordedAtFromGlucoseFrame(frame) : undefined;
|
|
141
|
+
const decorated = recordedAt ? {
|
|
142
|
+
...reading,
|
|
143
|
+
recordedAt
|
|
144
|
+
} : reading;
|
|
145
|
+
return params.decorateReading ? params.decorateReading(decorated, frame, recordOffset) : decorated;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
export { recordedAtFromGlucoseFrame, standardGlucoseDevice };
|
|
149
|
+
//# sourceMappingURL=standard-gatt.glucose.js.map
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","defineCustomDevice","littleEndian","sigUuid","MG_PER_DL_PER_KG_PER_L","MG_PER_DL_PER_MOL_PER_L","FLAG_TIME_OFFSET","FLAG_CONCENTRATION","FLAG_MOL_PER_L","BASE_TIME_INDEX","TIME_OFFSET_INDEX","CONTROL_SOLUTION_TYPE","CONTROL_SOLUTION_LOCATION","REPORT_ALL_STORED_RECORDS","concentrationIndex","flags","selector","toString","padStart","ALL_FLAGS","Array","from","length","_","glucoseField","index","scale","decimals","byte","frame","value","Number","parseInt","isInteger","undefined","recordedAtFromGlucoseFrame","parts","i","some","part","yearLow","yearHigh","month","day","hour","minute","second","year","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","low","high","offsetMinutes","setMinutes","isControlSolution","typeAndLocation","standardGlucoseDevice","params","id","bloodGlucose","nameMatch","matchByService","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","monitor","minLengthBytes","caseSelectorBytes","cases","map","kind","measurementTypeKey","fields","description","write","commandHex","when","decorateReading","reading","recordOffset","decorated"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IntegratedDevices } from "../../../types/integrated-devices.js";
|
|
4
|
+
import { loadDeviceSecret } from "../../device-secrets.js";
|
|
5
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
6
|
+
import { TRANSTEK_CHARACTERISTICS, TRANSTEK_SERVICES } from "./transtek-command.protocol.js";
|
|
7
|
+
import { TranstekCommandSequencer } from "./transtek-command.sequencer.js";
|
|
8
|
+
/** The sequencer decodes records itself; the declarative parser only has to pass frames on. */
|
|
9
|
+
const passThrough = {
|
|
10
|
+
caseValuePosition: [],
|
|
11
|
+
cases: []
|
|
12
|
+
};
|
|
13
|
+
const service = (uuid, data, optional) => ({
|
|
14
|
+
uuid,
|
|
15
|
+
optional,
|
|
16
|
+
monitorUuids: [{
|
|
17
|
+
uuid: TRANSTEK_CHARACTERISTICS.answer,
|
|
18
|
+
parsingModel: passThrough
|
|
19
|
+
}, {
|
|
20
|
+
uuid: data,
|
|
21
|
+
parsingModel: passThrough
|
|
22
|
+
}]
|
|
23
|
+
});
|
|
24
|
+
const SERVICES_BY_KIND = {
|
|
25
|
+
"blood-pressure": [service(TRANSTEK_SERVICES.bloodPressureA2, TRANSTEK_CHARACTERISTICS.bloodPressure, true), service(TRANSTEK_SERVICES.bloodPressureA3, TRANSTEK_CHARACTERISTICS.bloodPressure, true)],
|
|
26
|
+
scale: [service(TRANSTEK_SERVICES.scaleA2, TRANSTEK_CHARACTERISTICS.weightA2, true), service(TRANSTEK_SERVICES.scaleA3, TRANSTEK_CHARACTERISTICS.weightA3, true)],
|
|
27
|
+
tracker: [service(TRANSTEK_SERVICES.tracker, TRANSTEK_CHARACTERISTICS.tracker, false)]
|
|
28
|
+
};
|
|
29
|
+
const KIND = {
|
|
30
|
+
[IntegratedDevices.TRANSTEK_BPM]: "blood-pressure",
|
|
31
|
+
[IntegratedDevices.TRANSTEK_SCALE]: "scale",
|
|
32
|
+
[IntegratedDevices.TRANSTEK_SCALE_1525]: "scale",
|
|
33
|
+
[IntegratedDevices.TRANSTEK_TRACKER]: "tracker"
|
|
34
|
+
};
|
|
35
|
+
const secretKey = device => `transtek-password:${device.id}`;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Transtek's white-label blood-pressure monitors, scales and 405A0 activity tracker, on the
|
|
39
|
+
* "command" protocol (A2/A3). See `TranstekCommandSequencer` for the session.
|
|
40
|
+
*/
|
|
41
|
+
class TranstekCommandDevice extends BTManagedDevice {
|
|
42
|
+
stuckDataTimeout = 60_000;
|
|
43
|
+
onStreamStart = undefined;
|
|
44
|
+
constructor(device, params) {
|
|
45
|
+
super(device, params);
|
|
46
|
+
const kind = KIND[params.deviceName];
|
|
47
|
+
this.mainServices = SERVICES_BY_KIND[kind];
|
|
48
|
+
|
|
49
|
+
// The random-number reply has to be answered at once, so the stored password is loaded early.
|
|
50
|
+
void loadDeviceSecret(secretKey(device));
|
|
51
|
+
this.createCommandSequencer = () => new TranstekCommandSequencer({
|
|
52
|
+
kind,
|
|
53
|
+
secretKey: secretKey(device),
|
|
54
|
+
heightInCentimetres: params.deviceName === IntegratedDevices.TRANSTEK_SCALE_1525,
|
|
55
|
+
onResult: result => this.onResult?.(result),
|
|
56
|
+
onError: error => this.onError?.(error)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** No framing: every notification is one whole message. */
|
|
61
|
+
validatePackage = () => true;
|
|
62
|
+
handleSuccessResult() {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export { TranstekCommandDevice };
|
|
67
|
+
//# sourceMappingURL=transtek-command.device.js.map
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.device.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","loadDeviceSecret","BTManagedDevice","TRANSTEK_CHARACTERISTICS","TRANSTEK_SERVICES","TranstekCommandSequencer","passThrough","caseValuePosition","cases","service","uuid","data","optional","monitorUuids","answer","parsingModel","SERVICES_BY_KIND","bloodPressureA2","bloodPressure","bloodPressureA3","scale","scaleA2","weightA2","scaleA3","weightA3","tracker","KIND","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","secretKey","device","id","TranstekCommandDevice","stuckDataTimeout","onStreamStart","undefined","constructor","params","kind","deviceName","mainServices","createCommandSequencer","heightInCentimetres","onResult","result","onError","error","validatePackage","handleSuccessResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.device.ts"],"mappings":";;AAIA,SAASA,iBAAiB,QAAQ,sCAAmC;AAGrE,SAASC,gBAAgB,QAAQ,yBAAsB;AACvD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SACEC,wBAAwB,EACxBC,iBAAiB,QACZ,gCAA6B;AACpC,SAASC,wBAAwB,QAAQ,iCAA8B;AASvE;AACA,MAAMC,WAAW,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAExD,MAAMC,OAAO,GAAGA,CAACC,IAAY,EAAEC,IAAY,EAAEC,QAAiB,MAAgB;EAC5EF,IAAI;EACJE,QAAQ;EACRC,YAAY,EAAE,CACZ;IAAEH,IAAI,EAAEP,wBAAwB,CAACW,MAAM;IAAEC,YAAY,EAAET;EAAY,CAAC,EACpE;IAAEI,IAAI,EAAEC,IAAI;IAAEI,YAAY,EAAET;EAAY,CAAC;AAE7C,CAAC,CAAC;AAEF,MAAMU,gBAAkD,GAAG;EACzD,gBAAgB,EAAE,CAChBP,OAAO,CAACL,iBAAiB,CAACa,eAAe,EAAEd,wBAAwB,CAACe,aAAa,EAAE,IAAI,CAAC,EACxFT,OAAO,CAACL,iBAAiB,CAACe,eAAe,EAAEhB,wBAAwB,CAACe,aAAa,EAAE,IAAI,CAAC,CACzF;EACDE,KAAK,EAAE,CACLX,OAAO,CAACL,iBAAiB,CAACiB,OAAO,EAAElB,wBAAwB,CAACmB,QAAQ,EAAE,IAAI,CAAC,EAC3Eb,OAAO,CAACL,iBAAiB,CAACmB,OAAO,EAAEpB,wBAAwB,CAACqB,QAAQ,EAAE,IAAI,CAAC,CAC5E;EACDC,OAAO,EAAE,CAAChB,OAAO,CAACL,iBAAiB,CAACqB,OAAO,EAAEtB,wBAAwB,CAACsB,OAAO,EAAE,KAAK,CAAC;AACvF,CAAC;AAED,MAAMC,IAA0C,GAAG;EACjD,CAAC1B,iBAAiB,CAAC2B,YAAY,GAAG,gBAAgB;EAClD,CAAC3B,iBAAiB,CAAC4B,cAAc,GAAG,OAAO;EAC3C,CAAC5B,iBAAiB,CAAC6B,mBAAmB,GAAG,OAAO;EAChD,CAAC7B,iBAAiB,CAAC8B,gBAAgB,GAAG;AACxC,CAAC;AAED,MAAMC,SAAS,GAAIC,MAAc,IAAa,qBAAqBA,MAAM,CAACC,EAAE,EAAE;;AAE9E;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,SAAShC,eAAe,CAAiB;EAExDiC,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAACN,MAAc,EAAEO,MAA0C,EAAE;IAC7E,KAAK,CAACP,MAAM,EAAEO,MAAM,CAAC;IAErB,MAAMC,IAAI,GAAGd,IAAI,CAACa,MAAM,CAACE,UAAU,CAAC;IAEpC,IAAI,CAACC,YAAY,GAAG1B,gBAAgB,CAACwB,IAAI,CAAC;;IAE1C;IACA,KAAKvC,gBAAgB,CAAC8B,SAAS,CAACC,MAAM,CAAC,CAAC;IAExC,IAAI,CAACW,sBAAsB,GAAG,MAC5B,IAAItC,wBAAwB,CAAC;MAC3BmC,IAAI;MACJT,SAAS,EAAEA,SAAS,CAACC,MAAM,CAAC;MAC5BY,mBAAmB,EACjBL,MAAM,CAACE,UAAU,KAAKzC,iBAAiB,CAAC6B,mBAAmB;MAC7DgB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF,CAAC;MACHC,OAAO,EAAGC,KAAK,IAAK,IAAI,CAACD,OAAO,GAAGC,KAAK;IAC1C,CAAC,CAAC;EACN;;EAEA;EACUC,eAAe,GAAGA,CAAA,KAAe,IAAI;EAErCC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAEA,SAAShB,qBAAqB","ignoreList":[]}
|