@ovok/native 1.10.9 → 1.10.11
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 +34 -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-and-medical-variants.js +47 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-and-medical-variants.js.map +1 -0
- 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-cofoe-variants.js +119 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-cofoe-variants.js.map +1 -0
- 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 +1007 -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-taidoc-variants.js +173 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-taidoc-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 +320 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-yonker-variants.js +113 -0
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-yonker-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +58 -27
- 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/and-medical-device-variants.js +39 -0
- package/lib/commonjs/modules/bt-management/constants/and-medical-device-variants.js.map +1 -0
- 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/built-in-measurement-types.js +84 -0
- package/lib/commonjs/modules/bt-management/constants/built-in-measurement-types.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/cofoe-device-variants.js +101 -0
- package/lib/commonjs/modules/bt-management/constants/cofoe-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/device-variants.js +256 -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 +807 -0
- package/lib/commonjs/modules/bt-management/constants/standard-device-variants.js.map +1 -0
- package/lib/commonjs/modules/bt-management/constants/taidoc-device-variants.js +144 -0
- package/lib/commonjs/modules/bt-management/constants/taidoc-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/constants/yonker-device-variants.js +93 -0
- package/lib/commonjs/modules/bt-management/constants/yonker-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 +33 -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 +44 -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/and-medical/and-medical.device.js +61 -0
- package/lib/commonjs/modules/bt-management/services/devices/and-medical/and-medical.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/and-medical/and-medical.protocol.js +113 -0
- package/lib/commonjs/modules/bt-management/services/devices/and-medical/and-medical.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/and-medical/and-medical.sequencer.js +77 -0
- package/lib/commonjs/modules/bt-management/services/devices/and-medical/and-medical.sequencer.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 +12 -7
- 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 +19 -3
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.js +86 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.js +155 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.js +33 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.device.js +87 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.protocol.js +185 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.records.js +86 -0
- package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.records.js.map +1 -0
- 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 +89 -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/taidoc/taidoc.device.js +50 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.protocol.js +127 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.records.js +181 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.records.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.sequencer.js +139 -0
- package/lib/commonjs/modules/bt-management/services/devices/taidoc/taidoc.sequencer.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/services/devices/yonker/yonker.device.js +90 -0
- package/lib/commonjs/modules/bt-management/services/devices/yonker/yonker.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/yonker/yonker.protocol.js +202 -0
- package/lib/commonjs/modules/bt-management/services/devices/yonker/yonker.protocol.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/yonker/yonker.sequencer.js +137 -0
- package/lib/commonjs/modules/bt-management/services/devices/yonker/yonker.sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js +33 -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 +34 -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-and-medical-variants.js +45 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-and-medical-variants.js.map +1 -0
- 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-cofoe-variants.js +117 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-cofoe-variants.js.map +1 -0
- 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 +1005 -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-taidoc-variants.js +171 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-taidoc-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 +317 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-yonker-variants.js +111 -0
- package/lib/module/modules/bt-device/constants/supported-device-catalog-yonker-variants.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js +59 -28
- 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/and-medical-device-variants.js +37 -0
- package/lib/module/modules/bt-management/constants/and-medical-device-variants.js.map +1 -0
- 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/built-in-measurement-types.js +82 -0
- package/lib/module/modules/bt-management/constants/built-in-measurement-types.js.map +1 -0
- package/lib/module/modules/bt-management/constants/cofoe-device-variants.js +99 -0
- package/lib/module/modules/bt-management/constants/cofoe-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/device-variants.js +253 -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 +804 -0
- package/lib/module/modules/bt-management/constants/standard-device-variants.js.map +1 -0
- package/lib/module/modules/bt-management/constants/taidoc-device-variants.js +142 -0
- package/lib/module/modules/bt-management/constants/taidoc-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/constants/yonker-device-variants.js +91 -0
- package/lib/module/modules/bt-management/constants/yonker-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 +33 -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 +44 -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/and-medical/and-medical.device.js +57 -0
- package/lib/module/modules/bt-management/services/devices/and-medical/and-medical.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/and-medical/and-medical.protocol.js +106 -0
- package/lib/module/modules/bt-management/services/devices/and-medical/and-medical.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/and-medical/and-medical.sequencer.js +74 -0
- package/lib/module/modules/bt-management/services/devices/and-medical/and-medical.sequencer.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 +12 -7
- 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 +19 -3
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.js +82 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.js +148 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.js +30 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.device.js +83 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.protocol.js +173 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.records.js +78 -0
- package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.records.js.map +1 -0
- 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 +83 -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/taidoc/taidoc.device.js +46 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.protocol.js +114 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.records.js +168 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.records.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.sequencer.js +136 -0
- package/lib/module/modules/bt-management/services/devices/taidoc/taidoc.sequencer.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/services/devices/yonker/yonker.device.js +86 -0
- package/lib/module/modules/bt-management/services/devices/yonker/yonker.device.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/yonker/yonker.protocol.js +186 -0
- package/lib/module/modules/bt-management/services/devices/yonker/yonker.protocol.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/yonker/yonker.sequencer.js +133 -0
- package/lib/module/modules/bt-management/services/devices/yonker/yonker.sequencer.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 +33 -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-and-medical-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-and-medical-variants.d.ts.map +1 -0
- 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-cofoe-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-cofoe-variants.d.ts.map +1 -0
- 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-taidoc-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-taidoc-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-device-catalog-yonker-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-yonker-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/and-medical-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/and-medical-device-variants.d.ts.map +1 -0
- 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/built-in-measurement-types.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/built-in-measurement-types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/cofoe-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/cofoe-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/taidoc-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/taidoc-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/constants/yonker-device-variants.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/yonker-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 +43 -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/and-medical/and-medical.device.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/and-medical/and-medical.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/and-medical/and-medical.protocol.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/and-medical/and-medical.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/and-medical/and-medical.sequencer.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/and-medical/and-medical.sequencer.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 +4 -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/cofoe/cofoe-bp.sequencer.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.d.ts +46 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.device.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.protocol.d.ts +75 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts.map +1 -0
- 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 +37 -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/taidoc/taidoc.device.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.protocol.d.ts +50 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.records.d.ts +40 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.records.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.sequencer.d.ts +38 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/taidoc/taidoc.sequencer.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/services/devices/yonker/yonker.device.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/yonker/yonker.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/yonker/yonker.protocol.d.ts +62 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/yonker/yonker.protocol.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/yonker/yonker.sequencer.d.ts +46 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/yonker/yonker.sequencer.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 +6 -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 +33 -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 +34 -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/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +2 -2
- 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-and-medical-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-and-medical-variants.d.ts.map +1 -0
- 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-cofoe-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-cofoe-variants.d.ts.map +1 -0
- 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-taidoc-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-taidoc-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-device-catalog-yonker-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-yonker-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/and-medical-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/and-medical-device-variants.d.ts.map +1 -0
- 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/built-in-measurement-types.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/constants/built-in-measurement-types.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/constants/cofoe-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/cofoe-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/taidoc-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/taidoc-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/constants/yonker-device-variants.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/constants/yonker-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 +43 -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/and-medical/and-medical.device.d.ts +18 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/and-medical/and-medical.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/and-medical/and-medical.protocol.d.ts +30 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/and-medical/and-medical.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/and-medical/and-medical.sequencer.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/and-medical/and-medical.sequencer.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 +4 -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/cofoe/cofoe-bp.sequencer.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe-bp.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.d.ts +46 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe-glucose.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe-thermometer.sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.device.d.ts +18 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.protocol.d.ts +75 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts +22 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts.map +1 -0
- 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 +37 -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/taidoc/taidoc.device.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.protocol.d.ts +50 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.records.d.ts +40 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.records.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.sequencer.d.ts +38 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/taidoc/taidoc.sequencer.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/services/devices/yonker/yonker.device.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/yonker/yonker.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/yonker/yonker.protocol.d.ts +62 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/yonker/yonker.protocol.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/yonker/yonker.sequencer.d.ts +46 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/yonker/yonker.sequencer.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 +6 -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 +33 -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 +34 -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/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +2 -2
- package/package.json +1 -1
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
6
|
+
import { decodeMedicalFloat } from "../../../utils/decode-medical-float.js";
|
|
7
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
8
|
+
import { opcode, TRANSTEK_CHARACTERISTICS, transtekTime, u16, u32 } from "./transtek-command.protocol.js";
|
|
9
|
+
|
|
10
|
+
/** Record layouts for the Transtek command protocol's measurement characteristics. */
|
|
11
|
+
|
|
12
|
+
const POUND_IN_KG = 0.45359237;
|
|
13
|
+
const DAY_MS = 86_400_000;
|
|
14
|
+
const YEAR_MS = 365 * DAY_MS;
|
|
15
|
+
|
|
16
|
+
/** MedM drops records more than a day ahead of the phone: the device clock was wrong. */
|
|
17
|
+
const isFromFuture = recordedAt => recordedAt.getTime() > Date.now() + DAY_MS;
|
|
18
|
+
/** Characteristic 8A91, sixteen bytes at fixed offsets; MedM ignores the kPa flag. */
|
|
19
|
+
export const readBloodPressure = (frame, shiftUser) => {
|
|
20
|
+
if (frame.length < 16) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const flags = opcode(frame);
|
|
24
|
+
const status = u16(frame, 14);
|
|
25
|
+
const recordedAt = transtekTime(u32(frame, 7));
|
|
26
|
+
if (isFromFuture(recordedAt)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
systolic: u16(frame, 1),
|
|
31
|
+
diastolic: u16(frame, 3),
|
|
32
|
+
recordedAt,
|
|
33
|
+
heartRate: u16(frame, 11),
|
|
34
|
+
memorySlot: hexToByte(frame[13] ?? "00") + (shiftUser ? 1 : 0),
|
|
35
|
+
irregularHeartbeat: (flags & 0x10) !== 0 && (status & 0x04) !== 0
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Characteristic 8A21 (A2) or 8A24 (A3): an IEEE-11073 FLOAT in kilograms and a status byte
|
|
41
|
+
* that must say the reading is stable or complete. Frames are 11, 15 or 19+ bytes long.
|
|
42
|
+
*/
|
|
43
|
+
export const readWeight = frame => {
|
|
44
|
+
const length = frame.length;
|
|
45
|
+
if (!(length > 18 || length === 11 || length === 15)) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Only status bit 0 set with code 4 ("complete") is a finished weight. MedM also keeps
|
|
50
|
+
// "unstable" frames, tagged; those are the values a scale shows while someone steps on,
|
|
51
|
+
// so they are not reported here.
|
|
52
|
+
const status = hexToByte(frame[Math.min(length, 19) - 1] ?? "00");
|
|
53
|
+
if ((status & 0x01) !== 1 || (status >> 1 & 0x07) !== 4) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const value = decodeMedicalFloat(u32(frame, 1), 8, 24);
|
|
57
|
+
const recordedAt = transtekTime(u32(frame, 5));
|
|
58
|
+
if (value === undefined || value <= 0 || isFromFuture(recordedAt)) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// A scale set to pounds flags it (bit 5). MedM reads a value with at most one decimal as
|
|
63
|
+
// kilograms and one with two as already in pounds; the SDK follows it.
|
|
64
|
+
const pounds = (opcode(frame) & 0x20) !== 0 && Math.round(value * 100) % 10 !== 0;
|
|
65
|
+
return {
|
|
66
|
+
bodyWeight: Math.round((pounds ? value * POUND_IN_KG : value) * 100) / 100,
|
|
67
|
+
recordedAt
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Characteristic 8A11: nineteen bytes starting `7E`, with the day's cumulative step count.
|
|
73
|
+
*
|
|
74
|
+
* Only the live record is a reading: stored points (stamped at :59) are earlier running
|
|
75
|
+
* totals and the day's statistic (23:59:59), so reporting them as well would count the same
|
|
76
|
+
* steps again. A record dated outside the past year or after tomorrow is a clock that was
|
|
77
|
+
* never set.
|
|
78
|
+
*/
|
|
79
|
+
export const readTrackerSteps = frame => {
|
|
80
|
+
if (frame.length !== 19 || opcode(frame) !== 0x7e) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const recordedAt = transtekTime(u32(frame, 4));
|
|
84
|
+
if (recordedAt.getSeconds() === 59 || isFromFuture(recordedAt) || Date.now() - recordedAt.getTime() > YEAR_MS) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
stepCount: hexToByte(frame[1] ?? "00") | hexToByte(frame[2] ?? "00") << 8 | hexToByte(frame[3] ?? "00") << 16,
|
|
89
|
+
recordedAt
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
/** Decodes a record by the characteristic it arrived on; anything else is not a reading. */
|
|
94
|
+
export const decodeTranstekRecord = (frame, characteristicUuid, shiftUser) => {
|
|
95
|
+
if (characteristicUuid === TRANSTEK_CHARACTERISTICS.bloodPressure) {
|
|
96
|
+
const reading = readBloodPressure(frame, shiftUser);
|
|
97
|
+
return reading && {
|
|
98
|
+
measurementTypeKey: MeasurementTypeKey.bloodPressure,
|
|
99
|
+
systolic: reading.systolic,
|
|
100
|
+
diastolic: reading.diastolic,
|
|
101
|
+
heartRate: reading.heartRate,
|
|
102
|
+
recordedAt: reading.recordedAt,
|
|
103
|
+
memorySlot: reading.memorySlot,
|
|
104
|
+
...(reading.irregularHeartbeat ? {
|
|
105
|
+
irregularHeartbeat: true
|
|
106
|
+
} : {})
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (characteristicUuid === TRANSTEK_CHARACTERISTICS.weightA2 || characteristicUuid === TRANSTEK_CHARACTERISTICS.weightA3) {
|
|
110
|
+
const reading = readWeight(frame);
|
|
111
|
+
return reading && {
|
|
112
|
+
measurementTypeKey: MeasurementTypeKey.bodyWeight,
|
|
113
|
+
...reading
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (characteristicUuid === TRANSTEK_CHARACTERISTICS.tracker) {
|
|
117
|
+
const reading = readTrackerSteps(frame);
|
|
118
|
+
return reading && {
|
|
119
|
+
measurementTypeKey: MeasurementTypeKey.stepCount,
|
|
120
|
+
...reading
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return undefined;
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=transtek-command.records.js.map
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","decodeMedicalFloat","hexToByte","opcode","TRANSTEK_CHARACTERISTICS","transtekTime","u16","u32","POUND_IN_KG","DAY_MS","YEAR_MS","isFromFuture","recordedAt","getTime","Date","now","readBloodPressure","frame","shiftUser","length","undefined","flags","status","systolic","diastolic","heartRate","memorySlot","irregularHeartbeat","readWeight","Math","min","value","pounds","round","bodyWeight","readTrackerSteps","getSeconds","stepCount","decodeTranstekRecord","characteristicUuid","bloodPressure","reading","measurementTypeKey","weightA2","weightA3","tracker"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.records.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
4
|
+
import { peekDeviceSecret, saveDeviceSecret } from "../../device-secrets.js";
|
|
5
|
+
import { accountIdCommand, ANSWER, endSessionCommand, opcode, readPassword, readRandom, scaleProfileCommand, TRANSTEK_CHARACTERISTICS, verificationCommand } from "./transtek-command.protocol.js";
|
|
6
|
+
import { decodeTranstekRecord } from "./transtek-command.records.js";
|
|
7
|
+
import { END_AFTER_MS, SECRET_WAIT_MS, SERVICES, stepsAfterVerification, stepsToBindUser, USER } from "./transtek-command.session.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Drives the Transtek command protocol: the password handshake, the time, the A3 user binding,
|
|
11
|
+
* and the end of the session.
|
|
12
|
+
*
|
|
13
|
+
* The device never acknowledges a command, so every step after the verification code is sent
|
|
14
|
+
* with the pause MedM leaves between them rather than in answer to a frame.
|
|
15
|
+
*
|
|
16
|
+
* Pairing is the device's choice, not the app's: an unbound device opens with its password
|
|
17
|
+
* (`A0`), which is kept and used to answer every later connection's random number (`A1`).
|
|
18
|
+
*/
|
|
19
|
+
class TranstekCommandSequencer {
|
|
20
|
+
a3 = false;
|
|
21
|
+
pairing = false;
|
|
22
|
+
receiving = false;
|
|
23
|
+
ended = false;
|
|
24
|
+
recorded = false;
|
|
25
|
+
constructor(params) {
|
|
26
|
+
this.params = params;
|
|
27
|
+
this.serviceUuid = SERVICES[params.kind].a2;
|
|
28
|
+
}
|
|
29
|
+
onServicesDiscovered = serviceUuids => {
|
|
30
|
+
const a3 = SERVICES[this.params.kind].a3;
|
|
31
|
+
this.a3 = a3 !== undefined && serviceUuids.includes(a3);
|
|
32
|
+
this.serviceUuid = this.a3 && a3 ? a3 : SERVICES[this.params.kind].a2;
|
|
33
|
+
};
|
|
34
|
+
initialCommands = () => [];
|
|
35
|
+
|
|
36
|
+
/** The device may drop the link before the app ends the session; after a record that is normal. */
|
|
37
|
+
isNormalDisconnect = () => this.ended || this.recorded;
|
|
38
|
+
commandTimeoutMs = () => this.pendingRandom !== undefined ? SECRET_WAIT_MS : this.receiving ? END_AFTER_MS[this.params.kind] : undefined;
|
|
39
|
+
onCommandTimeout = () => {
|
|
40
|
+
if (this.pendingRandom !== undefined) {
|
|
41
|
+
const random = this.pendingRandom;
|
|
42
|
+
this.pendingRandom = undefined;
|
|
43
|
+
return {
|
|
44
|
+
commands: this.verify(random, true) ?? []
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
this.receiving = false;
|
|
48
|
+
this.ended = true;
|
|
49
|
+
return {
|
|
50
|
+
commands: [this.command(endSessionCommand())]
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Answer-channel opcodes all have the top bit set; anything else is a record, and each one
|
|
56
|
+
* restarts the quiet period after which the session is ended. This runs before
|
|
57
|
+
* `nextCommand`, so it is where receiving starts.
|
|
58
|
+
*/
|
|
59
|
+
commandProgress = frame => {
|
|
60
|
+
// A random number that arrives before the stored password has loaded waits for it.
|
|
61
|
+
if (opcode(frame) === ANSWER.random && peekDeviceSecret(this.params.secretKey) === undefined) {
|
|
62
|
+
return "partial";
|
|
63
|
+
}
|
|
64
|
+
if (opcode(frame) >= 0x80) {
|
|
65
|
+
return "complete";
|
|
66
|
+
}
|
|
67
|
+
this.receiving = !this.ended;
|
|
68
|
+
return "partial";
|
|
69
|
+
};
|
|
70
|
+
nextCommand = (frame, characteristicUuid) => {
|
|
71
|
+
if (characteristicUuid?.toLowerCase() === TRANSTEK_CHARACTERISTICS.answer) {
|
|
72
|
+
return this.answer(frame);
|
|
73
|
+
}
|
|
74
|
+
this.record(frame, characteristicUuid?.toLowerCase());
|
|
75
|
+
return undefined;
|
|
76
|
+
};
|
|
77
|
+
answer = frame => {
|
|
78
|
+
switch (opcode(frame)) {
|
|
79
|
+
case ANSWER.password:
|
|
80
|
+
this.pairing = true;
|
|
81
|
+
void saveDeviceSecret(this.params.secretKey, String(readPassword(frame))).then(stored => {
|
|
82
|
+
if (!stored) {
|
|
83
|
+
this.params.onError(new Error("Could not store this Transtek device's pairing password: it will need to be paired again after the app restarts."));
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
return [this.command(accountIdCommand(USER))];
|
|
87
|
+
case ANSWER.random:
|
|
88
|
+
return this.verify(readRandom(frame));
|
|
89
|
+
case ANSWER.userCount:
|
|
90
|
+
return this.pairing ? this.bindUser() : undefined;
|
|
91
|
+
case ANSWER.userInfo:
|
|
92
|
+
return this.params.kind === "scale" ? [this.command(scaleProfileCommand(USER, this.params.heightInCentimetres === true)), this.endCommand()] : undefined;
|
|
93
|
+
default:
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
verify = (random, retried = false) => {
|
|
98
|
+
const password = Number(peekDeviceSecret(this.params.secretKey));
|
|
99
|
+
|
|
100
|
+
// Storage may still be answering; one short wait before calling the device unpaired.
|
|
101
|
+
if (!Number.isFinite(password) && !retried) {
|
|
102
|
+
this.pendingRandom = random;
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
if (!Number.isFinite(password)) {
|
|
106
|
+
this.params.onError(new Error("Transtek device is not paired with this phone: put it in pairing mode and connect again."));
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
return [this.command(verificationCommand(password, random)), ...this.commands(stepsAfterVerification(this.params.kind, this.a3, this.pairing, this.now()))];
|
|
110
|
+
};
|
|
111
|
+
bindUser = () => this.commands(stepsToBindUser(this.params.kind, this.params.heightInCentimetres === true, this.now()));
|
|
112
|
+
commands = steps => steps.map(step => {
|
|
113
|
+
this.ended ||= step.endsSession === true;
|
|
114
|
+
return this.command(step.frame, step.delayMs);
|
|
115
|
+
});
|
|
116
|
+
record = (frame, characteristicUuid) => {
|
|
117
|
+
const reading = decodeTranstekRecord(frame, characteristicUuid, this.params.shiftUser !== false);
|
|
118
|
+
if (!reading) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this.recorded = true;
|
|
122
|
+
this.params.onResult({
|
|
123
|
+
caseType: CaseType.RESULT,
|
|
124
|
+
...reading
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
now = () => this.params.now?.() ?? new Date();
|
|
128
|
+
endCommand = () => {
|
|
129
|
+
this.ended = true;
|
|
130
|
+
return this.command(endSessionCommand());
|
|
131
|
+
};
|
|
132
|
+
command = (frame, delayBeforeWriteMs) => ({
|
|
133
|
+
serviceUuid: this.serviceUuid,
|
|
134
|
+
characteristicUuid: TRANSTEK_CHARACTERISTICS.command,
|
|
135
|
+
frame,
|
|
136
|
+
...(delayBeforeWriteMs ? {
|
|
137
|
+
delayBeforeWriteMs
|
|
138
|
+
} : {})
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
export { TranstekCommandSequencer };
|
|
142
|
+
//# sourceMappingURL=transtek-command.sequencer.js.map
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CaseType","peekDeviceSecret","saveDeviceSecret","accountIdCommand","ANSWER","endSessionCommand","opcode","readPassword","readRandom","scaleProfileCommand","TRANSTEK_CHARACTERISTICS","verificationCommand","decodeTranstekRecord","END_AFTER_MS","SECRET_WAIT_MS","SERVICES","stepsAfterVerification","stepsToBindUser","USER","TranstekCommandSequencer","a3","pairing","receiving","ended","recorded","constructor","params","serviceUuid","kind","a2","onServicesDiscovered","serviceUuids","undefined","includes","initialCommands","isNormalDisconnect","commandTimeoutMs","pendingRandom","onCommandTimeout","random","commands","verify","command","commandProgress","frame","secretKey","nextCommand","characteristicUuid","toLowerCase","answer","record","password","String","then","stored","onError","Error","userCount","bindUser","userInfo","heightInCentimetres","endCommand","retried","Number","isFinite","now","steps","map","step","endsSession","delayMs","reading","shiftUser","onResult","caseType","RESULT","Date","delayBeforeWriteMs"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.sequencer.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { bindUserCommand, endSessionCommand, scaleProfileCommand, setTimeCommand, trackerConfigurationCommand, trackerUserDataCommand, TRANSTEK_SERVICES } from "./transtek-command.protocol.js";
|
|
6
|
+
/** The only user slot the SDK binds; the protocol allows more, the SDK has one patient per phone. */
|
|
7
|
+
export const USER = 1;
|
|
8
|
+
|
|
9
|
+
/** How long an unanswered random number waits for the stored password to load. */
|
|
10
|
+
export const SECRET_WAIT_MS = 1_000;
|
|
11
|
+
|
|
12
|
+
/** The name bound into an A3 device's user slot. */
|
|
13
|
+
export const BOUND_NAME = "OVOK";
|
|
14
|
+
|
|
15
|
+
/** Quiet time after the last record before the app ends the session, per MedM. */
|
|
16
|
+
export const END_AFTER_MS = {
|
|
17
|
+
"blood-pressure": 1_000,
|
|
18
|
+
scale: 30_000,
|
|
19
|
+
tracker: 1_000
|
|
20
|
+
};
|
|
21
|
+
export const SERVICES = {
|
|
22
|
+
"blood-pressure": {
|
|
23
|
+
a2: TRANSTEK_SERVICES.bloodPressureA2,
|
|
24
|
+
a3: TRANSTEK_SERVICES.bloodPressureA3
|
|
25
|
+
},
|
|
26
|
+
scale: {
|
|
27
|
+
a2: TRANSTEK_SERVICES.scaleA2,
|
|
28
|
+
a3: TRANSTEK_SERVICES.scaleA3
|
|
29
|
+
},
|
|
30
|
+
tracker: {
|
|
31
|
+
a2: TRANSTEK_SERVICES.tracker
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/** One write, and the pause MedM leaves before it. */
|
|
36
|
+
|
|
37
|
+
const end = delayMs => ({
|
|
38
|
+
frame: endSessionCommand(),
|
|
39
|
+
delayMs,
|
|
40
|
+
endsSession: true
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* What follows a correct verification code. An A3 device that is pairing binds a user slot
|
|
45
|
+
* first, so for it nothing follows until its user count (83) arrives.
|
|
46
|
+
*/
|
|
47
|
+
export const stepsAfterVerification = (kind, a3, pairing, now) => {
|
|
48
|
+
if (pairing && a3 && kind !== "tracker") {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
if (kind === "tracker") {
|
|
52
|
+
return [...(pairing ? [{
|
|
53
|
+
frame: trackerConfigurationCommand(),
|
|
54
|
+
delayMs: 500
|
|
55
|
+
}] : []), {
|
|
56
|
+
frame: setTimeCommand(now),
|
|
57
|
+
delayMs: 500
|
|
58
|
+
}, {
|
|
59
|
+
frame: trackerUserDataCommand(),
|
|
60
|
+
delayMs: 500
|
|
61
|
+
}, ...(pairing ? [end(500)] : [])];
|
|
62
|
+
}
|
|
63
|
+
return [{
|
|
64
|
+
frame: setTimeCommand(now),
|
|
65
|
+
delayMs: a3 && kind === "scale" ? 1500 : 500
|
|
66
|
+
}, ...(pairing ? [end(1500)] : [])];
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/** An A3 device's pairing, once it has sent its user count: bind, profile (scales), time, end. */
|
|
70
|
+
export const stepsToBindUser = (kind, heightInCentimetres, now) => kind === "scale" ? [{
|
|
71
|
+
frame: bindUserCommand(USER, BOUND_NAME),
|
|
72
|
+
delayMs: 1000
|
|
73
|
+
}, {
|
|
74
|
+
frame: scaleProfileCommand(USER, heightInCentimetres),
|
|
75
|
+
delayMs: 500
|
|
76
|
+
}, {
|
|
77
|
+
frame: setTimeCommand(now),
|
|
78
|
+
delayMs: 500
|
|
79
|
+
}, end(1500)] : [{
|
|
80
|
+
frame: bindUserCommand(USER, BOUND_NAME)
|
|
81
|
+
}, {
|
|
82
|
+
frame: setTimeCommand(now),
|
|
83
|
+
delayMs: 500
|
|
84
|
+
}, end(1500)];
|
|
85
|
+
//# sourceMappingURL=transtek-command.session.js.map
|
package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bindUserCommand","endSessionCommand","scaleProfileCommand","setTimeCommand","trackerConfigurationCommand","trackerUserDataCommand","TRANSTEK_SERVICES","USER","SECRET_WAIT_MS","BOUND_NAME","END_AFTER_MS","scale","tracker","SERVICES","a2","bloodPressureA2","a3","bloodPressureA3","scaleA2","scaleA3","end","delayMs","frame","endsSession","stepsAfterVerification","kind","pairing","now","stepsToBindUser","heightInCentimetres"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.session.ts"],"mappings":";;AAAA;;AAEA,SACEA,eAAe,EACfC,iBAAiB,EACjBC,mBAAmB,EACnBC,cAAc,EACdC,2BAA2B,EAC3BC,sBAAsB,EACtBC,iBAAiB,QACZ,gCAA6B;AAqBpC;AACA,OAAO,MAAMC,IAAI,GAAG,CAAC;;AAErB;AACA,OAAO,MAAMC,cAAc,GAAG,KAAK;;AAEnC;AACA,OAAO,MAAMC,UAAU,GAAG,MAAM;;AAEhC;AACA,OAAO,MAAMC,YAA0C,GAAG;EACxD,gBAAgB,EAAE,KAAK;EACvBC,KAAK,EAAE,MAAM;EACbC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,QAA2D,GAAG;EACzE,gBAAgB,EAAE;IAChBC,EAAE,EAAER,iBAAiB,CAACS,eAAe;IACrCC,EAAE,EAAEV,iBAAiB,CAACW;EACxB,CAAC;EACDN,KAAK,EAAE;IAAEG,EAAE,EAAER,iBAAiB,CAACY,OAAO;IAAEF,EAAE,EAAEV,iBAAiB,CAACa;EAAQ,CAAC;EACvEP,OAAO,EAAE;IAAEE,EAAE,EAAER,iBAAiB,CAACM;EAAQ;AAC3C,CAAC;;AAED;;AAOA,MAAMQ,GAAG,GAAIC,OAAe,KAAmB;EAC7CC,KAAK,EAAErB,iBAAiB,CAAC,CAAC;EAC1BoB,OAAO;EACPE,WAAW,EAAE;AACf,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,IAAkB,EAClBT,EAAW,EACXU,OAAgB,EAChBC,GAAS,KACS;EAClB,IAAID,OAAO,IAAIV,EAAE,IAAIS,IAAI,KAAK,SAAS,EAAE;IACvC,OAAO,EAAE;EACX;EAEA,IAAIA,IAAI,KAAK,SAAS,EAAE;IACtB,OAAO,CACL,IAAIC,OAAO,GAAG,CAAC;MAAEJ,KAAK,EAAElB,2BAA2B,CAAC,CAAC;MAAEiB,OAAO,EAAE;IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAC5E;MAAEC,KAAK,EAAEnB,cAAc,CAACwB,GAAG,CAAC;MAAEN,OAAO,EAAE;IAAI,CAAC,EAC5C;MAAEC,KAAK,EAAEjB,sBAAsB,CAAC,CAAC;MAAEgB,OAAO,EAAE;IAAI,CAAC,EACjD,IAAIK,OAAO,GAAG,CAACN,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAC/B;EACH;EAEA,OAAO,CACL;IAAEE,KAAK,EAAEnB,cAAc,CAACwB,GAAG,CAAC;IAAEN,OAAO,EAAEL,EAAE,IAAIS,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG;EAAI,CAAC,EAC5E,IAAIC,OAAO,GAAG,CAACN,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAChC;AACH,CAAC;;AAED;AACA,OAAO,MAAMQ,eAAe,GAAGA,CAC7BH,IAAkB,EAClBI,mBAA4B,EAC5BF,GAAS,KAETF,IAAI,KAAK,OAAO,GACZ,CACE;EAAEH,KAAK,EAAEtB,eAAe,CAACO,IAAI,EAAEE,UAAU,CAAC;EAAEY,OAAO,EAAE;AAAK,CAAC,EAC3D;EAAEC,KAAK,EAAEpB,mBAAmB,CAACK,IAAI,EAAEsB,mBAAmB,CAAC;EAAER,OAAO,EAAE;AAAI,CAAC,EACvE;EAAEC,KAAK,EAAEnB,cAAc,CAACwB,GAAG,CAAC;EAAEN,OAAO,EAAE;AAAI,CAAC,EAC5CD,GAAG,CAAC,IAAI,CAAC,CACV,GACD,CACE;EAAEE,KAAK,EAAEtB,eAAe,CAACO,IAAI,EAAEE,UAAU;AAAE,CAAC,EAC5C;EAAEa,KAAK,EAAEnB,cAAc,CAACwB,GAAG,CAAC;EAAEN,OAAO,EAAE;AAAI,CAAC,EAC5CD,GAAG,CAAC,IAAI,CAAC,CACV","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IntegratedDevices } from "../../../types/integrated-devices.js";
|
|
4
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
5
|
+
import { AOJ_VALUES, LiveOximeterSequencer, readOximeterData } from "../live-oximeter.sequencer.js";
|
|
6
|
+
import { AILINK_GATT, AilinkFrameReader, FIRMWARE_REQUEST, read80bMeasurement, YONKER_GATT } from "./yonker.protocol.js";
|
|
7
|
+
import { YonkerScaleSequencer, YonkerSequencer } from "./yonker.sequencer.js";
|
|
8
|
+
const passThrough = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
const service = (uuid, notify, optional = false) => ({
|
|
13
|
+
uuid,
|
|
14
|
+
optional,
|
|
15
|
+
monitorUuids: notify.map(monitor => ({
|
|
16
|
+
uuid: monitor,
|
|
17
|
+
parsingModel: passThrough
|
|
18
|
+
}))
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
/** MedM subscribes to all three; the type byte, not the characteristic, says what a frame is. */
|
|
22
|
+
const YONKER_SERVICES = [service(YONKER_GATT.service, [YONKER_GATT.notify, YONKER_GATT.notifyAlternate], true), service(YONKER_GATT.uartService, [YONKER_GATT.uartNotify], true)];
|
|
23
|
+
const SERVICES = {
|
|
24
|
+
[IntegratedDevices.YONKER_OXIMETER]: YONKER_SERVICES,
|
|
25
|
+
[IntegratedDevices.YONKER_BPM]: YONKER_SERVICES,
|
|
26
|
+
[IntegratedDevices.YONKER_THERMOMETER]: YONKER_SERVICES,
|
|
27
|
+
[IntegratedDevices.YONKER_SCALE]: [service(AILINK_GATT.service, [AILINK_GATT.notify])],
|
|
28
|
+
[IntegratedDevices.YONKER_80B]: [service(AILINK_GATT.service, [AILINK_GATT.notify])]
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/** The YK-80B: MedM asks for the firmware version on connect, then reads the stream. */
|
|
32
|
+
class Yonker80bSequencer extends LiveOximeterSequencer {
|
|
33
|
+
initialCommands = () => [{
|
|
34
|
+
serviceUuid: AILINK_GATT.service,
|
|
35
|
+
characteristicUuid: AILINK_GATT.writeShort,
|
|
36
|
+
frame: FIRMWARE_REQUEST
|
|
37
|
+
}];
|
|
38
|
+
}
|
|
39
|
+
const SEQUENCERS = {
|
|
40
|
+
[IntegratedDevices.YONKER_OXIMETER]: onResult => new LiveOximeterSequencer({
|
|
41
|
+
readValues: frame => readOximeterData(frame, AOJ_VALUES, "spo2-pulse"),
|
|
42
|
+
onResult
|
|
43
|
+
}),
|
|
44
|
+
[IntegratedDevices.YONKER_BPM]: onResult => new YonkerSequencer({
|
|
45
|
+
kind: "blood-pressure",
|
|
46
|
+
onResult
|
|
47
|
+
}),
|
|
48
|
+
[IntegratedDevices.YONKER_THERMOMETER]: onResult => new YonkerSequencer({
|
|
49
|
+
kind: "thermometer",
|
|
50
|
+
onResult
|
|
51
|
+
}),
|
|
52
|
+
[IntegratedDevices.YONKER_SCALE]: onResult => new YonkerScaleSequencer({
|
|
53
|
+
onResult
|
|
54
|
+
}),
|
|
55
|
+
[IntegratedDevices.YONKER_80B]: onResult => new Yonker80bSequencer({
|
|
56
|
+
readValues: read80bMeasurement,
|
|
57
|
+
onResult
|
|
58
|
+
})
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Yonker YK-81C oximeters, YK-BPA blood-pressure monitors, YK-IRT4 thermometers, the AiLink
|
|
63
|
+
* weight scale and the YK-80B oximeter, with their rebrands.
|
|
64
|
+
*/
|
|
65
|
+
class YonkerDeviceClass extends BTManagedDevice {
|
|
66
|
+
stuckDataTimeout = 120_000;
|
|
67
|
+
onStreamStart = undefined;
|
|
68
|
+
constructor(device, params) {
|
|
69
|
+
super(device, params);
|
|
70
|
+
this.mainServices = SERVICES[params.deviceName];
|
|
71
|
+
if (params.deviceName === IntegratedDevices.YONKER_SCALE) {
|
|
72
|
+
this.frameReader = new AilinkFrameReader([0xa7]);
|
|
73
|
+
} else if (params.deviceName === IntegratedDevices.YONKER_80B) {
|
|
74
|
+
this.frameReader = new AilinkFrameReader([0xa6, 0xa7]);
|
|
75
|
+
}
|
|
76
|
+
this.createCommandSequencer = () => SEQUENCERS[params.deviceName](result => this.onResult?.(result));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** The oximeter, monitor and thermometer send one frame per notification. */
|
|
80
|
+
validatePackage = () => true;
|
|
81
|
+
handleSuccessResult() {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export { YonkerDeviceClass as YonkerDevice };
|
|
86
|
+
//# sourceMappingURL=yonker.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","BTManagedDevice","AOJ_VALUES","LiveOximeterSequencer","readOximeterData","AILINK_GATT","AilinkFrameReader","FIRMWARE_REQUEST","read80bMeasurement","YONKER_GATT","YonkerScaleSequencer","YonkerSequencer","passThrough","caseValuePosition","cases","service","uuid","notify","optional","monitorUuids","map","monitor","parsingModel","YONKER_SERVICES","notifyAlternate","uartService","uartNotify","SERVICES","YONKER_OXIMETER","YONKER_BPM","YONKER_THERMOMETER","YONKER_SCALE","YONKER_80B","Yonker80bSequencer","initialCommands","serviceUuid","characteristicUuid","writeShort","frame","SEQUENCERS","onResult","readValues","kind","YonkerDeviceClass","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","mainServices","deviceName","frameReader","createCommandSequencer","result","validatePackage","handleSuccessResult","YonkerDevice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/yonker/yonker.device.ts"],"mappings":";;AAKA,SAASA,iBAAiB,QAAQ,sCAAmC;AAGrE,SAASC,eAAe,QAAQ,yBAAsB;AACtD,SAASC,UAAU,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,+BAA4B;AAEhG,SACEC,WAAW,EACXC,iBAAiB,EACjBC,gBAAgB,EAChBC,kBAAkB,EAClBC,WAAW,QACN,sBAAmB;AAC1B,SAASC,oBAAoB,EAAEC,eAAe,QAAQ,uBAAoB;AAW1E,MAAMC,WAAW,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAExD,MAAMC,OAAO,GAAGA,CAACC,IAAY,EAAEC,MAAyB,EAAEC,QAAQ,GAAG,KAAK,MAAgB;EACxFF,IAAI;EACJE,QAAQ;EACRC,YAAY,EAAEF,MAAM,CAACG,GAAG,CAAEC,OAAO,KAAM;IAAEL,IAAI,EAAEK,OAAO;IAAEC,YAAY,EAAEV;EAAY,CAAC,CAAC;AACtF,CAAC,CAAC;;AAEF;AACA,MAAMW,eAA2B,GAAG,CAClCR,OAAO,CAACN,WAAW,CAACM,OAAO,EAAE,CAACN,WAAW,CAACQ,MAAM,EAAER,WAAW,CAACe,eAAe,CAAC,EAAE,IAAI,CAAC,EACrFT,OAAO,CAACN,WAAW,CAACgB,WAAW,EAAE,CAAChB,WAAW,CAACiB,UAAU,CAAC,EAAE,IAAI,CAAC,CACjE;AAED,MAAMC,QAA0C,GAAG;EACjD,CAAC3B,iBAAiB,CAAC4B,eAAe,GAAGL,eAAe;EACpD,CAACvB,iBAAiB,CAAC6B,UAAU,GAAGN,eAAe;EAC/C,CAACvB,iBAAiB,CAAC8B,kBAAkB,GAAGP,eAAe;EACvD,CAACvB,iBAAiB,CAAC+B,YAAY,GAAG,CAAChB,OAAO,CAACV,WAAW,CAACU,OAAO,EAAE,CAACV,WAAW,CAACY,MAAM,CAAC,CAAC,CAAC;EACtF,CAACjB,iBAAiB,CAACgC,UAAU,GAAG,CAACjB,OAAO,CAACV,WAAW,CAACU,OAAO,EAAE,CAACV,WAAW,CAACY,MAAM,CAAC,CAAC;AACrF,CAAC;;AAED;AACA,MAAMgB,kBAAkB,SAAS9B,qBAAqB,CAAC;EAC9C+B,eAAe,GAAGA,CAAA,KAAM,CAC7B;IACEC,WAAW,EAAE9B,WAAW,CAACU,OAAO;IAChCqB,kBAAkB,EAAE/B,WAAW,CAACgC,UAAU;IAC1CC,KAAK,EAAE/B;EACT,CAAC,CACF;AACH;AAEA,MAAMgC,UAA0E,GAAG;EACjF,CAACvC,iBAAiB,CAAC4B,eAAe,GAAIY,QAAQ,IAC5C,IAAIrC,qBAAqB,CAAC;IACxBsC,UAAU,EAAGH,KAAK,IAAKlC,gBAAgB,CAACkC,KAAK,EAAEpC,UAAU,EAAE,YAAY,CAAC;IACxEsC;EACF,CAAC,CAAC;EACJ,CAACxC,iBAAiB,CAAC6B,UAAU,GAAIW,QAAQ,IACvC,IAAI7B,eAAe,CAAC;IAAE+B,IAAI,EAAE,gBAAgB;IAAEF;EAAS,CAAC,CAAC;EAC3D,CAACxC,iBAAiB,CAAC8B,kBAAkB,GAAIU,QAAQ,IAC/C,IAAI7B,eAAe,CAAC;IAAE+B,IAAI,EAAE,aAAa;IAAEF;EAAS,CAAC,CAAC;EACxD,CAACxC,iBAAiB,CAAC+B,YAAY,GAAIS,QAAQ,IAAK,IAAI9B,oBAAoB,CAAC;IAAE8B;EAAS,CAAC,CAAC;EACtF,CAACxC,iBAAiB,CAACgC,UAAU,GAAIQ,QAAQ,IACvC,IAAIP,kBAAkB,CAAC;IAAEQ,UAAU,EAAEjC,kBAAkB;IAAEgC;EAAS,CAAC;AACvE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMG,iBAAiB,SAAS1C,eAAe,CAAe;EAElD2C,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,GAAGvB,QAAQ,CAACsB,MAAM,CAACE,UAAU,CAAC;IAE/C,IAAIF,MAAM,CAACE,UAAU,KAAKnD,iBAAiB,CAAC+B,YAAY,EAAE;MACxD,IAAI,CAACqB,WAAW,GAAG,IAAI9C,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,MAAM,IAAI2C,MAAM,CAACE,UAAU,KAAKnD,iBAAiB,CAACgC,UAAU,EAAE;MAC7D,IAAI,CAACoB,WAAW,GAAG,IAAI9C,iBAAiB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD;IAEA,IAAI,CAAC+C,sBAAsB,GAAG,MAC5Bd,UAAU,CAACU,MAAM,CAACE,UAAU,CAAC,CAAEG,MAAM,IACnC,IAAI,CAACd,QAAQ,GACXc,MACF,CACF,CAAC;EACL;;EAEA;EACUC,eAAe,GAAGA,CAAA,KAAe,IAAI;EAErCC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAEA,SAASb,iBAAiB,IAAIc,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable import/group-exports */
|
|
4
|
+
|
|
5
|
+
import { FrameReadStatus } from "../../../types/frame-read-status.js";
|
|
6
|
+
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
7
|
+
/**
|
|
8
|
+
* Yonker devices and their rebrands, from MedM Health Diary 3.12.11's `CYonker_*` classes.
|
|
9
|
+
*
|
|
10
|
+
* The oximeter, blood-pressure monitor and thermometer share one GATT map and send one frame
|
|
11
|
+
* per notification: a type byte (`80` live, `81` result) and its values, no length, no
|
|
12
|
+
* checksum. The scale (an AiLink module, MedM's `CConmo_WeightScale`) and the YK-80B oximeter
|
|
13
|
+
* frame everything as `A6|A7 xx xx LL CMD body CS 7A`.
|
|
14
|
+
*/
|
|
15
|
+
const sig16 = assigned => `0000${assigned}-0000-1000-8000-00805f9b34fb`;
|
|
16
|
+
export const YONKER_GATT = {
|
|
17
|
+
service: "cdeacd80-5235-4c07-8846-93a37ee6b86d",
|
|
18
|
+
notify: "cdeacd81-5235-4c07-8846-93a37ee6b86d",
|
|
19
|
+
notifyAlternate: "cdeacd82-5235-4c07-8846-93a37ee6b86d",
|
|
20
|
+
/** Nordic UART; MedM subscribes to its `…0002` characteristic. */
|
|
21
|
+
uartService: "6e400001-b5a3-f393-e0a9-e50e24dcca9e",
|
|
22
|
+
uartNotify: "6e400002-b5a3-f393-e0a9-e50e24dcca9e",
|
|
23
|
+
/** Where the blood-pressure monitor takes its clock. */
|
|
24
|
+
timeService: sig16("1804"),
|
|
25
|
+
timeWrite: sig16("2a07")
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** The scale and the YK-80B: notify on `ffe2`, long frames to `ffe1`, short ones to `ffe3`. */
|
|
29
|
+
export const AILINK_GATT = {
|
|
30
|
+
service: sig16("ffe0"),
|
|
31
|
+
writeLong: sig16("ffe1"),
|
|
32
|
+
notify: sig16("ffe2"),
|
|
33
|
+
writeShort: sig16("ffe3")
|
|
34
|
+
};
|
|
35
|
+
const bytes = frame => frame.map(byte => hexToByte(byte));
|
|
36
|
+
const toHex = values => values.map(value => (value & 0xff).toString(16).padStart(2, "0"));
|
|
37
|
+
const sum = values => values.reduce((total, value) => total + value, 0) & 0xff;
|
|
38
|
+
|
|
39
|
+
/** `8F YY MM DD hh mm` and nine zero bytes, local time. */
|
|
40
|
+
export const bpmSetTimeCommand = now => toHex([0x8f, now.getFullYear() - 2000, now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes(), ...new Array(9).fill(0)]);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* `81 SYS DIA PULSE USER RECORD YY MM DD hh mm`, mmHg, local time. A zero year means the clock
|
|
44
|
+
* was never set, and the phone's time is used, as MedM does.
|
|
45
|
+
*/
|
|
46
|
+
export const readYonkerBloodPressure = (frame, now) => {
|
|
47
|
+
const b = bytes(frame);
|
|
48
|
+
if (b.length < 11 || b[0] !== 0x81 || !b[1] || !b[2]) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const year = b[6] ?? 0;
|
|
52
|
+
const user = b[4] ?? 0;
|
|
53
|
+
return {
|
|
54
|
+
systolic: b[1],
|
|
55
|
+
diastolic: b[2],
|
|
56
|
+
...(b[3] ? {
|
|
57
|
+
heartRate: b[3]
|
|
58
|
+
} : {}),
|
|
59
|
+
recordedAt: year === 0 ? now : new Date(2000 + year, (b[7] ?? 1) - 1, b[8] ?? 1, b[9] ?? 0, b[10] ?? 0),
|
|
60
|
+
...(user > 0 ? {
|
|
61
|
+
memorySlot: user
|
|
62
|
+
} : {})
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* `80 hi lo FLAGS X`: hundredths of a degree; flags bit 1 marks Fahrenheit, which MedM ignores
|
|
68
|
+
* and the SDK converts.
|
|
69
|
+
*/
|
|
70
|
+
export const readYonkerTemperature = frame => {
|
|
71
|
+
const b = bytes(frame);
|
|
72
|
+
if (b.length < 5 || b[0] !== 0x80) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const value = ((b[1] ?? 0) << 8 | (b[2] ?? 0)) / 100;
|
|
76
|
+
if (value === 0) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
return ((b[3] ?? 0) & 0x02) !== 0 ? Math.round((value - 32) * 5 / 9 * 100) / 100 : value;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/** `A7 ID ID (n+1) CMD payload CS 7A`, the checksum covering everything but the first byte. */
|
|
83
|
+
export const longFrame = (id, command, payload = []) => {
|
|
84
|
+
const covered = [id >> 8, id & 0xff, payload.length + 1, command, ...payload];
|
|
85
|
+
return toHex([0xa7, ...covered, sum(covered), 0x7a]);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/** `A6 (n+1) CMD payload CS 6A`. */
|
|
89
|
+
export const shortFrame = (command, payload = []) => {
|
|
90
|
+
const covered = [payload.length + 1, command, ...payload];
|
|
91
|
+
return toHex([0xa6, ...covered, sum(covered), 0x6a]);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/** Scale set time, command `37`: `YY MM DD hh mm ss weekday` (Sunday 1), local time. */
|
|
95
|
+
export const scaleSetTimeCommand = now => shortFrame(0x37, [now.getFullYear() - 2000, now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds(), now.getDay() + 1]);
|
|
96
|
+
export const idOf = frame => hexToByte(frame[1] ?? "00") << 8 | hexToByte(frame[2] ?? "00");
|
|
97
|
+
export const commandOf = frame => hexToByte(frame[4] ?? "00");
|
|
98
|
+
export const bodyOf = frame => bytes(frame.slice(5, -2));
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Scale weight, command `02`: a u24 big-endian raw value, then precision (high nibble, decimal
|
|
102
|
+
* places) and unit (low nibble). Only kilograms (unit 0) are accepted - the SDK sets the scale to
|
|
103
|
+
* kilograms, and the other unit codes are not documented.
|
|
104
|
+
*/
|
|
105
|
+
export const readScaleWeight = body => {
|
|
106
|
+
const raw = (body[0] ?? 0) << 16 | (body[1] ?? 0) << 8 | (body[2] ?? 0);
|
|
107
|
+
const format = body[3] ?? 0;
|
|
108
|
+
if (body.length < 4 || raw === 0 || (format & 0x0f) !== 0) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return raw / 10 ** (format >> 4);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* YK-80B measurement, command `03`: status, SpO2, pulse, PI×10, battery, RR×10, waveform, bar,
|
|
116
|
+
* worn. Dropped when the status or worn flag is zero or the SpO2 is `FF`, as MedM does.
|
|
117
|
+
*/
|
|
118
|
+
export const read80bMeasurement = frame => {
|
|
119
|
+
const body = bodyOf(frame);
|
|
120
|
+
if (commandOf(frame) !== 0x03 || body.length < 9) {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
const [status = 0, bloodOxygen = 0, pulseRate = 0, perfusionIndex = 0] = body;
|
|
124
|
+
if (status === 0 || body[8] === 0 || bloodOxygen === 0 || bloodOxygen > 100 || pulseRate === 0 || pulseRate === 0xff) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
bloodOxygen,
|
|
129
|
+
pulseRate,
|
|
130
|
+
...(perfusionIndex > 0 && perfusionIndex !== 0xff ? {
|
|
131
|
+
perfusionIndex: perfusionIndex / 10
|
|
132
|
+
} : {})
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/** YK-80B firmware request, the one command MedM writes to it. */
|
|
137
|
+
export const FIRMWARE_REQUEST = shortFrame(0x0e);
|
|
138
|
+
|
|
139
|
+
/** Isolates checked `A7 … 7A` frames (and `A6 … 7A` for the YK-80B) across notifications. */
|
|
140
|
+
export class AilinkFrameReader {
|
|
141
|
+
constructor(starts) {
|
|
142
|
+
this.starts = starts;
|
|
143
|
+
}
|
|
144
|
+
readFrame(buffer) {
|
|
145
|
+
const values = bytes(buffer);
|
|
146
|
+
const start = values.findIndex(value => this.starts.includes(value));
|
|
147
|
+
if (start === -1) {
|
|
148
|
+
return {
|
|
149
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
150
|
+
consumedBytes: values.length
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (start + 4 > values.length) {
|
|
154
|
+
return {
|
|
155
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
156
|
+
consumedBytes: start
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const length = (values[start + 3] ?? 0) + 6;
|
|
160
|
+
if (length < 7) {
|
|
161
|
+
return {
|
|
162
|
+
status: FrameReadStatus.CORRUPT,
|
|
163
|
+
consumedBytes: start + 1
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (start + length > values.length) {
|
|
167
|
+
return {
|
|
168
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
169
|
+
consumedBytes: start
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const received = values.slice(start, start + length);
|
|
173
|
+
if (received[length - 1] !== 0x7a || received[length - 2] !== sum(received.slice(1, -2))) {
|
|
174
|
+
return {
|
|
175
|
+
status: FrameReadStatus.CORRUPT,
|
|
176
|
+
consumedBytes: start + 1
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
status: FrameReadStatus.COMPLETE,
|
|
181
|
+
consumedBytes: start + length,
|
|
182
|
+
frame: buffer.slice(start, start + length)
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=yonker.protocol.js.map
|