@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
|
@@ -0,0 +1,149 @@
|
|
|
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
|
+
/**
|
|
9
|
+
* Famidoc's protocol, shared by its blood-pressure monitors and contact and infrared
|
|
10
|
+
* thermometers. Layouts are from MedM Health Diary 3.12.11's `CFamidoc_Device`.
|
|
11
|
+
*
|
|
12
|
+
* Every frame, both ways, is `AA addr LL cmd body CS 55`: LL counts the command byte and the
|
|
13
|
+
* body, CS is the one's complement of the 8-bit sum of address, length, command and body, and
|
|
14
|
+
* multi-byte fields are big-endian. Models differ only in the address byte.
|
|
15
|
+
*/
|
|
16
|
+
const sig16 = assigned => `0000${assigned}-0000-1000-8000-00805f9b34fb`;
|
|
17
|
+
export const FAMIDOC_SERVICE = sig16("ffff");
|
|
18
|
+
export const FAMIDOC_WRITE = sig16("ff02");
|
|
19
|
+
export const FAMIDOC_NOTIFY = sig16("ff01");
|
|
20
|
+
|
|
21
|
+
/** Device-to-app commands. */
|
|
22
|
+
export const FAMIDOC = {
|
|
23
|
+
version: 0xa1,
|
|
24
|
+
bloodPressureStatus: 0x40,
|
|
25
|
+
thermometerStatus: [0x10, 0x20],
|
|
26
|
+
bloodPressure: 0x42,
|
|
27
|
+
contactTemperature: 0x23,
|
|
28
|
+
infraredTemperature: 0x13
|
|
29
|
+
};
|
|
30
|
+
const START = 0xaa;
|
|
31
|
+
const END = 0x55;
|
|
32
|
+
|
|
33
|
+
/** The longest frame the devices send is twenty bytes; anything longer is a misread length. */
|
|
34
|
+
const MAX_FRAME_BYTES = 64;
|
|
35
|
+
const toHex = bytes => bytes.map(value => (value & 0xff).toString(16).padStart(2, "0"));
|
|
36
|
+
const byteAt = (frame, index) => hexToByte(frame[index] ?? "00");
|
|
37
|
+
const checksum = bytes => ~bytes.reduce((sum, value) => sum + value, 0) & 0xff;
|
|
38
|
+
export const frame = (address, command, data = []) => {
|
|
39
|
+
const body = [address, data.length + 1, command, ...data];
|
|
40
|
+
return toHex([START, ...body, checksum(body), END]);
|
|
41
|
+
};
|
|
42
|
+
export const commandOf = received => byteAt(received, 3);
|
|
43
|
+
|
|
44
|
+
/** The bytes after the command, before the checksum. */
|
|
45
|
+
export const bodyOf = received => received.slice(4, -2).map(byte => hexToByte(byte));
|
|
46
|
+
|
|
47
|
+
/** The fixed acknowledgement MedM sends for every frame, whatever the model. */
|
|
48
|
+
export const ACK = toHex([0xaa, 0xa4, 0x03, 0xf2, 0x4f, 0x4b, 0xcc, 0x55]);
|
|
49
|
+
export const getVersionCommand = address => frame(address, 0xa1);
|
|
50
|
+
export const getStateCommand = address => frame(address, 0xa2);
|
|
51
|
+
|
|
52
|
+
/** Set time and end-session go to the model's address minus one, as MedM sends them. */
|
|
53
|
+
export const setTimeCommand = (address, now) => frame(address - 1, 0xa3, [now.getFullYear() - 2000 & 0xff, now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds()]);
|
|
54
|
+
export const endSessionCommand = address => frame(address - 1, 0xf2, [0x4f, 0x4d]);
|
|
55
|
+
|
|
56
|
+
/** Isolates `AA … 55` frames whatever the notification boundaries, skipping noise to the next start. */
|
|
57
|
+
export class FamidocFrameReader {
|
|
58
|
+
readFrame(buffer) {
|
|
59
|
+
const start = buffer.findIndex(byte => hexToByte(byte) === START);
|
|
60
|
+
if (start === -1) {
|
|
61
|
+
return {
|
|
62
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
63
|
+
consumedBytes: buffer.length
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (start + 3 > buffer.length) {
|
|
67
|
+
return {
|
|
68
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
69
|
+
consumedBytes: start
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const length = byteAt(buffer, start + 2) + 5;
|
|
73
|
+
if (length > MAX_FRAME_BYTES || length < 6) {
|
|
74
|
+
return {
|
|
75
|
+
status: FrameReadStatus.CORRUPT,
|
|
76
|
+
consumedBytes: start + 1
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (start + length > buffer.length) {
|
|
80
|
+
return {
|
|
81
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
82
|
+
consumedBytes: start
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const received = buffer.slice(start, start + length);
|
|
86
|
+
const covered = received.slice(1, -2).map(byte => hexToByte(byte));
|
|
87
|
+
if (byteAt(received, length - 1) !== END || checksum(covered) !== byteAt(received, length - 2)) {
|
|
88
|
+
return {
|
|
89
|
+
status: FrameReadStatus.CORRUPT,
|
|
90
|
+
consumedBytes: start + 1
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
status: FrameReadStatus.COMPLETE,
|
|
95
|
+
consumedBytes: start + length,
|
|
96
|
+
frame: received
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** A record's `YY MM DD hh mm ss`, local time. */
|
|
102
|
+
const readTime = (body, at, year) => new Date(year, (body[at + 1] ?? 1) - 1, body[at + 2] ?? 1, body[at + 3] ?? 0, body[at + 4] ?? 0, body[at + 5] ?? 0);
|
|
103
|
+
/**
|
|
104
|
+
* `42`: user, status (anything but 0 is an error, Lo or Hi), time, then one byte each for
|
|
105
|
+
* systolic, diastolic and pulse in mmHg and bpm, a skipped byte, the irregular-heartbeat flag
|
|
106
|
+
* and an error code.
|
|
107
|
+
*
|
|
108
|
+
* The year byte is the low byte of the full year (2024 → 0xE8); MedM reads anything else,
|
|
109
|
+
* such as a two-digit year, as this year.
|
|
110
|
+
*/
|
|
111
|
+
export const readBloodPressure = (body, now) => {
|
|
112
|
+
if (body.length < 14 || body[1] !== 0) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
const yearByte = body[2] ?? 0;
|
|
116
|
+
return {
|
|
117
|
+
recordedAt: readTime(body, 2, yearByte >= 0xd0 ? 1792 + yearByte : now.getFullYear()),
|
|
118
|
+
systolic: body[8] ?? 0,
|
|
119
|
+
diastolic: body[9] ?? 0,
|
|
120
|
+
heartRate: body[10] ?? 0,
|
|
121
|
+
irregularHeartbeat: (body[12] ?? 0) !== 0
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
const isErrorStatus = status => status >= 3 && status <= 6;
|
|
125
|
+
|
|
126
|
+
/** `23`: contact thermometer; the temperature's decimal places are in byte 2. */
|
|
127
|
+
export const readContactTemperature = body => {
|
|
128
|
+
if (body.length < 12 || isErrorStatus(body[11] ?? 0)) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
const raw = (body[9] ?? 0) << 8 | (body[10] ?? 0);
|
|
132
|
+
return {
|
|
133
|
+
bodyTemp: raw / 10 ** (body[2] ?? 0),
|
|
134
|
+
recordedAt: readTime(body, 3, 2000 + (body[3] ?? 0))
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/** `13`: infrared thermometer, always hundredths of a degree; ambient temperature is ignored. */
|
|
139
|
+
export const readInfraredTemperature = body => {
|
|
140
|
+
const raw = (body[9] ?? 0) << 8 | (body[10] ?? 0);
|
|
141
|
+
if (body.length < 14 || raw === 0 || isErrorStatus(body[13] ?? 0)) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
bodyTemp: raw / 100,
|
|
146
|
+
recordedAt: readTime(body, 3, 2000 + (body[3] ?? 0))
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=famidoc.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","hexToByte","sig16","assigned","FAMIDOC_SERVICE","FAMIDOC_WRITE","FAMIDOC_NOTIFY","FAMIDOC","version","bloodPressureStatus","thermometerStatus","bloodPressure","contactTemperature","infraredTemperature","START","END","MAX_FRAME_BYTES","toHex","bytes","map","value","toString","padStart","byteAt","frame","index","checksum","reduce","sum","address","command","data","body","length","commandOf","received","bodyOf","slice","byte","ACK","getVersionCommand","getStateCommand","setTimeCommand","now","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","endSessionCommand","FamidocFrameReader","readFrame","buffer","start","findIndex","status","INCOMPLETE","consumedBytes","CORRUPT","covered","COMPLETE","readTime","at","year","Date","readBloodPressure","undefined","yearByte","recordedAt","systolic","diastolic","heartRate","irregularHeartbeat","isErrorStatus","readContactTemperature","raw","bodyTemp","readInfraredTemperature"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/famidoc/famidoc.protocol.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
5
|
+
import { ACK, bodyOf, commandOf, endSessionCommand, FAMIDOC, FAMIDOC_SERVICE, FAMIDOC_WRITE, getStateCommand, getVersionCommand, readBloodPressure, readContactTemperature, readInfraredTemperature, setTimeCommand } from "./famidoc.protocol.js";
|
|
6
|
+
/** MedM ends the session after this long without a record. */
|
|
7
|
+
const END_AFTER_MS = 60_000;
|
|
8
|
+
const RECORDS = [FAMIDOC.bloodPressure, FAMIDOC.contactTemperature, FAMIDOC.infraredTemperature];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Asks for the version and state, sets the clock once, then acknowledges every frame while the
|
|
12
|
+
* device pushes its records. Every valid frame is acknowledged, whatever it carries.
|
|
13
|
+
*/
|
|
14
|
+
class FamidocSequencer {
|
|
15
|
+
timeSet = false;
|
|
16
|
+
receiving = false;
|
|
17
|
+
recorded = false;
|
|
18
|
+
ended = false;
|
|
19
|
+
constructor(params) {
|
|
20
|
+
this.params = params;
|
|
21
|
+
}
|
|
22
|
+
initialCommands = () => [this.command(getVersionCommand(this.params.address))];
|
|
23
|
+
isNormalDisconnect = () => this.ended || this.recorded;
|
|
24
|
+
commandTimeoutMs = () => this.receiving ? END_AFTER_MS : undefined;
|
|
25
|
+
onCommandTimeout = () => {
|
|
26
|
+
this.receiving = false;
|
|
27
|
+
this.ended = true;
|
|
28
|
+
return {
|
|
29
|
+
commands: [this.command(endSessionCommand(this.params.address))]
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
commandProgress = frame => {
|
|
33
|
+
if (!RECORDS.includes(commandOf(frame))) {
|
|
34
|
+
return "complete";
|
|
35
|
+
}
|
|
36
|
+
this.receiving = !this.ended;
|
|
37
|
+
return "partial";
|
|
38
|
+
};
|
|
39
|
+
nextCommand = frame => {
|
|
40
|
+
const command = commandOf(frame);
|
|
41
|
+
const replies = [this.command(ACK)];
|
|
42
|
+
if (command === FAMIDOC.version) {
|
|
43
|
+
replies.push(this.command(getStateCommand(this.params.address)));
|
|
44
|
+
} else if ((command === FAMIDOC.bloodPressureStatus || FAMIDOC.thermometerStatus.includes(command)) && !this.timeSet) {
|
|
45
|
+
this.timeSet = true;
|
|
46
|
+
replies.push(this.command(setTimeCommand(this.params.address, this.now())));
|
|
47
|
+
} else {
|
|
48
|
+
this.record(command, bodyOf(frame));
|
|
49
|
+
}
|
|
50
|
+
return replies;
|
|
51
|
+
};
|
|
52
|
+
record = (command, body) => {
|
|
53
|
+
const reading = this.decode(command, body);
|
|
54
|
+
if (!reading) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.recorded = true;
|
|
58
|
+
this.params.onResult({
|
|
59
|
+
caseType: CaseType.RESULT,
|
|
60
|
+
...reading
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
decode = (command, body) => {
|
|
64
|
+
if (command === FAMIDOC.bloodPressure) {
|
|
65
|
+
const reading = readBloodPressure(body, this.now());
|
|
66
|
+
return reading && {
|
|
67
|
+
measurementTypeKey: MeasurementTypeKey.bloodPressure,
|
|
68
|
+
systolic: reading.systolic,
|
|
69
|
+
diastolic: reading.diastolic,
|
|
70
|
+
heartRate: reading.heartRate,
|
|
71
|
+
recordedAt: reading.recordedAt,
|
|
72
|
+
...(reading.irregularHeartbeat ? {
|
|
73
|
+
irregularHeartbeat: true
|
|
74
|
+
} : {})
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const temperature = command === FAMIDOC.contactTemperature ? readContactTemperature(body) : command === FAMIDOC.infraredTemperature ? readInfraredTemperature(body) : undefined;
|
|
78
|
+
return temperature && {
|
|
79
|
+
measurementTypeKey: MeasurementTypeKey.temperature,
|
|
80
|
+
...temperature
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
now = () => this.params.now?.() ?? new Date();
|
|
84
|
+
command = frame => ({
|
|
85
|
+
serviceUuid: FAMIDOC_SERVICE,
|
|
86
|
+
characteristicUuid: FAMIDOC_WRITE,
|
|
87
|
+
frame
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export { FamidocSequencer };
|
|
91
|
+
//# sourceMappingURL=famidoc.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","ACK","bodyOf","commandOf","endSessionCommand","FAMIDOC","FAMIDOC_SERVICE","FAMIDOC_WRITE","getStateCommand","getVersionCommand","readBloodPressure","readContactTemperature","readInfraredTemperature","setTimeCommand","END_AFTER_MS","RECORDS","bloodPressure","contactTemperature","infraredTemperature","FamidocSequencer","timeSet","receiving","recorded","ended","constructor","params","initialCommands","command","address","isNormalDisconnect","commandTimeoutMs","undefined","onCommandTimeout","commands","commandProgress","frame","includes","nextCommand","replies","version","push","bloodPressureStatus","thermometerStatus","now","record","body","reading","decode","onResult","caseType","RESULT","measurementTypeKey","systolic","diastolic","heartRate","recordedAt","irregularHeartbeat","temperature","Date","serviceUuid","characteristicUuid"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/famidoc/famidoc.sequencer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IntegratedDevices } from "../../../types/integrated-devices.js";
|
|
4
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
5
|
+
import { JOYTECH, JoytechFrameReader } from "./joytech.protocol.js";
|
|
6
|
+
import { JoytechSequencer } from "./joytech.sequencer.js";
|
|
7
|
+
const joytechMainServices = [{
|
|
8
|
+
uuid: JOYTECH.service,
|
|
9
|
+
monitorUuids: [{
|
|
10
|
+
uuid: JOYTECH.notify,
|
|
11
|
+
parsingModel: {
|
|
12
|
+
caseValuePosition: [],
|
|
13
|
+
cases: []
|
|
14
|
+
}
|
|
15
|
+
}]
|
|
16
|
+
}];
|
|
17
|
+
|
|
18
|
+
/** Joytech (Sejoy) blood-pressure monitors and DET thermometers. */
|
|
19
|
+
class JoytechDeviceClass extends BTManagedDevice {
|
|
20
|
+
mainServices = joytechMainServices;
|
|
21
|
+
stuckDataTimeout = 90_000;
|
|
22
|
+
onStreamStart = undefined;
|
|
23
|
+
constructor(device, params) {
|
|
24
|
+
super(device, params);
|
|
25
|
+
this.frameReader = new JoytechFrameReader();
|
|
26
|
+
this.createCommandSequencer = () => new JoytechSequencer({
|
|
27
|
+
thermometer: params.deviceName === IntegratedDevices.JOYTECH_THERMOMETER,
|
|
28
|
+
onResult: result => this.onResult?.(result)
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
handleSuccessResult() {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export { JoytechDeviceClass as JoytechDevice };
|
|
36
|
+
//# sourceMappingURL=joytech.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","BTManagedDevice","JOYTECH","JoytechFrameReader","JoytechSequencer","joytechMainServices","uuid","service","monitorUuids","notify","parsingModel","caseValuePosition","cases","JoytechDeviceClass","mainServices","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","frameReader","createCommandSequencer","thermometer","deviceName","JOYTECH_THERMOMETER","onResult","result","handleSuccessResult","JoytechDevice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/joytech/joytech.device.ts"],"mappings":";;AAIA,SAASA,iBAAiB,QAAQ,sCAAmC;AAGrE,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,OAAO,EAAEC,kBAAkB,QAAQ,uBAAoB;AAChE,SAASC,gBAAgB,QAAQ,wBAAqB;AAItD,MAAMC,mBAA+B,GAAG,CACtC;EACEC,IAAI,EAAEJ,OAAO,CAACK,OAAO;EACrBC,YAAY,EAAE,CAAC;IAAEF,IAAI,EAAEJ,OAAO,CAACO,MAAM;IAAEC,YAAY,EAAE;MAAEC,iBAAiB,EAAE,EAAE;MAAEC,KAAK,EAAE;IAAG;EAAE,CAAC;AAC7F,CAAC,CACF;;AAED;AACA,MAAMC,kBAAkB,SAASZ,eAAe,CAAgB;EACpDa,YAAY,GAAGT,mBAAmB;EAClCU,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAACC,MAAc,EAAEC,MAAyC,EAAE;IAC5E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,WAAW,GAAG,IAAIlB,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAACmB,sBAAsB,GAAG,MAC5B,IAAIlB,gBAAgB,CAAC;MACnBmB,WAAW,EAAEH,MAAM,CAACI,UAAU,KAAKxB,iBAAiB,CAACyB,mBAAmB;MACxEC,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MACF;IACJ,CAAC,CAAC;EACN;EAEUC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAEA,SAASf,kBAAkB,IAAIgB,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
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
|
+
/**
|
|
9
|
+
* Joytech (Sejoy) blood-pressure monitors and DET thermometers, from MedM Health Diary
|
|
10
|
+
* 3.12.11's `CSejoy_*` classes.
|
|
11
|
+
*
|
|
12
|
+
* Frames, both ways: `FA AA AA AF`, the whole frame's length (u16 big-endian), the command, the
|
|
13
|
+
* payload, the 8-bit sum of length, command and payload, then `F5 5F`. A reply to a device
|
|
14
|
+
* command adds 0x80 to it, wrapping - so the BP record command `83` is acknowledged as `03`.
|
|
15
|
+
*/
|
|
16
|
+
const sig16 = assigned => `0000${assigned}-0000-1000-8000-00805f9b34fb`;
|
|
17
|
+
export const JOYTECH = {
|
|
18
|
+
service: sig16("fff0"),
|
|
19
|
+
notify: sig16("fff1"),
|
|
20
|
+
write: sig16("fff2")
|
|
21
|
+
};
|
|
22
|
+
export const JOYTECH_COMMAND = {
|
|
23
|
+
bloodPressureRecord: 0x83,
|
|
24
|
+
temperatureRecords: 0x03,
|
|
25
|
+
setTimeRequest: 0x06,
|
|
26
|
+
deviceInfo: 0x19
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/** Device status commands MedM simply acknowledges. */
|
|
30
|
+
export const ACK_ONLY = [0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11];
|
|
31
|
+
const MAGIC = [0xfa, 0xaa, 0xaa, 0xaf];
|
|
32
|
+
const HEADER = 7;
|
|
33
|
+
const TAIL = 3;
|
|
34
|
+
const toHex = bytes => bytes.map(value => (value & 0xff).toString(16).padStart(2, "0"));
|
|
35
|
+
export const frame = (command, payload = []) => {
|
|
36
|
+
const length = payload.length + HEADER + TAIL;
|
|
37
|
+
const covered = [length >> 8, length & 0xff, command & 0xff, ...payload];
|
|
38
|
+
const sum = covered.reduce((total, value) => total + value, 0) & 0xff;
|
|
39
|
+
return toHex([...MAGIC, ...covered, sum, 0xf5, 0x5f]);
|
|
40
|
+
};
|
|
41
|
+
export const ack = command => frame(command + 0x80);
|
|
42
|
+
const timePayload = now => [now.getFullYear() - 2000 & 0xff, now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes()];
|
|
43
|
+
|
|
44
|
+
/** Blood-pressure monitors take the time as command `04`, thermometers as `86`. */
|
|
45
|
+
export const setTimeCommand = (now, thermometer) => frame(thermometer ? 0x86 : 0x04, timePayload(now));
|
|
46
|
+
export const getHistoryCommand = () => frame(0x0a);
|
|
47
|
+
|
|
48
|
+
/** What MedM writes in answer to device info: four `FF` bytes, unframed. */
|
|
49
|
+
export const DEVICE_INFO_REPLY = toHex([0xff, 0xff, 0xff, 0xff]);
|
|
50
|
+
export const commandOf = received => hexToByte(received[6] ?? "00");
|
|
51
|
+
export const payloadOf = received => received.slice(HEADER, -TAIL).map(byte => hexToByte(byte));
|
|
52
|
+
|
|
53
|
+
/** Isolates `FA AA AA AF … F5 5F` frames whatever the notification boundaries. */
|
|
54
|
+
export class JoytechFrameReader {
|
|
55
|
+
readFrame(buffer) {
|
|
56
|
+
const values = buffer.map(byte => hexToByte(byte));
|
|
57
|
+
const start = values.findIndex((_, index) => MAGIC.every((magic, offset) => index + offset >= values.length || values[index + offset] === magic));
|
|
58
|
+
if (start === -1) {
|
|
59
|
+
return {
|
|
60
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
61
|
+
consumedBytes: Math.max(0, values.length - 3)
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (start + HEADER > values.length) {
|
|
65
|
+
return {
|
|
66
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
67
|
+
consumedBytes: start
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const length = (values[start + 4] ?? 0) << 8 | (values[start + 5] ?? 0);
|
|
71
|
+
if (length < HEADER + TAIL || length > 512) {
|
|
72
|
+
return {
|
|
73
|
+
status: FrameReadStatus.CORRUPT,
|
|
74
|
+
consumedBytes: start + 1
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (start + length > values.length) {
|
|
78
|
+
return {
|
|
79
|
+
status: FrameReadStatus.INCOMPLETE,
|
|
80
|
+
consumedBytes: start
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const received = values.slice(start, start + length);
|
|
84
|
+
const sum = received.slice(4, length - TAIL).reduce((total, value) => total + value, 0) & 0xff;
|
|
85
|
+
if (received[length - 2] !== 0xf5 || received[length - 1] !== 0x5f || received[length - 3] !== sum) {
|
|
86
|
+
return {
|
|
87
|
+
status: FrameReadStatus.CORRUPT,
|
|
88
|
+
consumedBytes: start + 1
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
status: FrameReadStatus.COMPLETE,
|
|
93
|
+
consumedBytes: start + length,
|
|
94
|
+
frame: buffer.slice(start, start + length)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** `YY MM DD hh mm`, local time; a zero year means the clock was never set. */
|
|
100
|
+
const readTime = (payload, at) => {
|
|
101
|
+
const year = payload[at] ?? 0;
|
|
102
|
+
return year === 0 ? undefined : new Date(2000 + year, (payload[at + 1] ?? 1) - 1, payload[at + 2] ?? 1, payload[at + 3] ?? 0, payload[at + 4] ?? 0);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/** AFib status codes; MedM tags `0x07` AFib alone and `0x7F` AFib with an irregular pulse. */
|
|
106
|
+
const AFIB_STATUS = [0x07, 0x7f];
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* `83`: systolic and diastolic (u16 big-endian, mmHg), pulse, rhythm status, time, device user.
|
|
110
|
+
* Status `0x00` is a normal rhythm, `0x07` AFib, `0x7F` both and any other value an irregular
|
|
111
|
+
* pulse. Monitors without AFib detection only ever send `0x00` or `0xFF`.
|
|
112
|
+
*/
|
|
113
|
+
export const readBloodPressure = payload => {
|
|
114
|
+
const recordedAt = readTime(payload, 6);
|
|
115
|
+
if (payload.length < 12 || !recordedAt) {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
const status = payload[5] ?? 0;
|
|
119
|
+
const user = payload[11] ?? 0;
|
|
120
|
+
return {
|
|
121
|
+
systolic: (payload[0] ?? 0) << 8 | (payload[1] ?? 0),
|
|
122
|
+
diastolic: (payload[2] ?? 0) << 8 | (payload[3] ?? 0),
|
|
123
|
+
heartRate: payload[4] ?? 0,
|
|
124
|
+
irregularHeartbeat: status !== 0x00 && status !== 0x07,
|
|
125
|
+
atrialFibrillation: AFIB_STATUS.includes(status),
|
|
126
|
+
recordedAt,
|
|
127
|
+
...(user > 0 ? {
|
|
128
|
+
memorySlot: user
|
|
129
|
+
} : {})
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* `03`: one or more eight-byte records - site (3 is skipped, as MedM does), temperature in
|
|
135
|
+
* hundredths of a degree Celsius (bit 15 ignored), time.
|
|
136
|
+
*/
|
|
137
|
+
export const readTemperatures = payload => {
|
|
138
|
+
const records = [];
|
|
139
|
+
for (let at = 0; at + 8 <= payload.length; at += 8) {
|
|
140
|
+
const recordedAt = readTime(payload, at + 3);
|
|
141
|
+
if (payload[at] !== 3 && recordedAt) {
|
|
142
|
+
records.push({
|
|
143
|
+
bodyTemp: (((payload[at + 1] ?? 0) << 8 | (payload[at + 2] ?? 0)) & 0x7fff) / 100,
|
|
144
|
+
recordedAt
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return records;
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=joytech.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FrameReadStatus","hexToByte","sig16","assigned","JOYTECH","service","notify","write","JOYTECH_COMMAND","bloodPressureRecord","temperatureRecords","setTimeRequest","deviceInfo","ACK_ONLY","MAGIC","HEADER","TAIL","toHex","bytes","map","value","toString","padStart","frame","command","payload","length","covered","sum","reduce","total","ack","timePayload","now","getFullYear","getMonth","getDate","getHours","getMinutes","setTimeCommand","thermometer","getHistoryCommand","DEVICE_INFO_REPLY","commandOf","received","payloadOf","slice","byte","JoytechFrameReader","readFrame","buffer","values","start","findIndex","_","index","every","magic","offset","status","INCOMPLETE","consumedBytes","Math","max","CORRUPT","COMPLETE","readTime","at","year","undefined","Date","AFIB_STATUS","readBloodPressure","recordedAt","user","systolic","diastolic","heartRate","irregularHeartbeat","atrialFibrillation","includes","memorySlot","readTemperatures","records","push","bodyTemp"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/joytech/joytech.protocol.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { CaseType } from "../../../types/case-type.js";
|
|
5
|
+
import { ack, ACK_ONLY, commandOf, DEVICE_INFO_REPLY, getHistoryCommand, JOYTECH, JOYTECH_COMMAND, payloadOf, readBloodPressure, readTemperatures, setTimeCommand } from "./joytech.protocol.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Sets the clock, asks for history (blood pressure), and acknowledges every record frame. The
|
|
9
|
+
* monitor waits a second after connecting before each of the first two commands, as MedM does.
|
|
10
|
+
*/
|
|
11
|
+
class JoytechSequencer {
|
|
12
|
+
recorded = false;
|
|
13
|
+
constructor(params) {
|
|
14
|
+
this.params = params;
|
|
15
|
+
}
|
|
16
|
+
initialCommands = () => this.params.thermometer ? [this.command(setTimeCommand(this.now(), true))] : [this.command(setTimeCommand(this.now(), false), 1_000), this.command(getHistoryCommand(), 1_000)];
|
|
17
|
+
isNormalDisconnect = () => this.recorded;
|
|
18
|
+
nextCommand = frame => {
|
|
19
|
+
const command = commandOf(frame);
|
|
20
|
+
const dataCommand = this.params.thermometer ? JOYTECH_COMMAND.temperatureRecords : JOYTECH_COMMAND.bloodPressureRecord;
|
|
21
|
+
if (command === dataCommand) {
|
|
22
|
+
this.report(payloadOf(frame));
|
|
23
|
+
return [this.command(ack(command))];
|
|
24
|
+
}
|
|
25
|
+
if (command === JOYTECH_COMMAND.setTimeRequest) {
|
|
26
|
+
return [this.command(setTimeCommand(this.now(), this.params.thermometer))];
|
|
27
|
+
}
|
|
28
|
+
if (command === JOYTECH_COMMAND.deviceInfo) {
|
|
29
|
+
return [this.command(DEVICE_INFO_REPLY)];
|
|
30
|
+
}
|
|
31
|
+
return ACK_ONLY.includes(command) ? [this.command(ack(command))] : undefined;
|
|
32
|
+
};
|
|
33
|
+
report = payload => {
|
|
34
|
+
const readings = this.params.thermometer ? readTemperatures(payload).map(reading => ({
|
|
35
|
+
measurementTypeKey: MeasurementTypeKey.temperature,
|
|
36
|
+
...reading
|
|
37
|
+
})) : [readBloodPressure(payload)].flatMap(reading => reading ? [{
|
|
38
|
+
measurementTypeKey: MeasurementTypeKey.bloodPressure,
|
|
39
|
+
...reading
|
|
40
|
+
}] : []);
|
|
41
|
+
readings.forEach(reading => {
|
|
42
|
+
this.recorded = true;
|
|
43
|
+
this.params.onResult({
|
|
44
|
+
caseType: CaseType.RESULT,
|
|
45
|
+
...reading
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
now = () => this.params.now?.() ?? new Date();
|
|
50
|
+
command = (frame, delayBeforeWriteMs) => ({
|
|
51
|
+
serviceUuid: JOYTECH.service,
|
|
52
|
+
characteristicUuid: JOYTECH.write,
|
|
53
|
+
frame,
|
|
54
|
+
...(delayBeforeWriteMs ? {
|
|
55
|
+
delayBeforeWriteMs
|
|
56
|
+
} : {})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export { JoytechSequencer };
|
|
60
|
+
//# sourceMappingURL=joytech.sequencer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","ack","ACK_ONLY","commandOf","DEVICE_INFO_REPLY","getHistoryCommand","JOYTECH","JOYTECH_COMMAND","payloadOf","readBloodPressure","readTemperatures","setTimeCommand","JoytechSequencer","recorded","constructor","params","initialCommands","thermometer","command","now","isNormalDisconnect","nextCommand","frame","dataCommand","temperatureRecords","bloodPressureRecord","report","setTimeRequest","deviceInfo","includes","undefined","payload","readings","map","reading","measurementTypeKey","temperature","flatMap","bloodPressure","forEach","onResult","caseType","RESULT","Date","delayBeforeWriteMs","serviceUuid","service","characteristicUuid","write"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/joytech/joytech.sequencer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IntegratedDevices } from "../../../types/integrated-devices.js";
|
|
4
|
+
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
5
|
+
import { JUMPER_VALUES, LiveOximeterSequencer, readOximeterData } from "../live-oximeter.sequencer.js";
|
|
6
|
+
import { JUMPER_GATT, JUMPER_NOTIFY, JUMPER_SERVICE } from "./jumper.protocol.js";
|
|
7
|
+
import { JumperSequencer } from "./jumper.sequencer.js";
|
|
8
|
+
const passThrough = {
|
|
9
|
+
caseValuePosition: [],
|
|
10
|
+
cases: []
|
|
11
|
+
};
|
|
12
|
+
const service = (uuid, notify, optional) => ({
|
|
13
|
+
uuid,
|
|
14
|
+
optional,
|
|
15
|
+
monitorUuids: [{
|
|
16
|
+
uuid: notify,
|
|
17
|
+
parsingModel: passThrough
|
|
18
|
+
}]
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
/** Each kind listens on Jumper's own service or, on some revisions, a 16-bit one. */
|
|
22
|
+
const SERVICES = {
|
|
23
|
+
[IntegratedDevices.JUMPER_OXIMETER]: [service(JUMPER_SERVICE, JUMPER_NOTIFY, true), service(JUMPER_GATT.oximeterAlternate.service, JUMPER_GATT.oximeterAlternate.notify, true)],
|
|
24
|
+
[IntegratedDevices.JUMPER_THERMOMETER]: [service(JUMPER_SERVICE, JUMPER_NOTIFY, true), service(JUMPER_GATT.thermometerAlternate.service, JUMPER_GATT.thermometerAlternate.notify, true)],
|
|
25
|
+
[IntegratedDevices.JUMPER_BPM]: [service(JUMPER_GATT.bloodPressure.service, JUMPER_GATT.bloodPressure.notify, false)]
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** Jumper JPD-500D oximeters, HA120 blood-pressure monitors and FR302-family thermometers. */
|
|
29
|
+
class JumperDeviceClass extends BTManagedDevice {
|
|
30
|
+
stuckDataTimeout = 120_000;
|
|
31
|
+
onStreamStart = undefined;
|
|
32
|
+
constructor(device, params) {
|
|
33
|
+
super(device, params);
|
|
34
|
+
this.mainServices = SERVICES[params.deviceName];
|
|
35
|
+
const onResult = result => this.onResult?.(result);
|
|
36
|
+
this.createCommandSequencer = () => params.deviceName === IntegratedDevices.JUMPER_OXIMETER ? new LiveOximeterSequencer({
|
|
37
|
+
readValues: frame => readOximeterData(frame, JUMPER_VALUES),
|
|
38
|
+
onResult
|
|
39
|
+
}) : new JumperSequencer({
|
|
40
|
+
kind: params.deviceName === IntegratedDevices.JUMPER_BPM ? "blood-pressure" : "thermometer",
|
|
41
|
+
onResult
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** One notification is one frame. */
|
|
46
|
+
validatePackage = () => true;
|
|
47
|
+
handleSuccessResult() {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export { JumperDeviceClass as JumperDevice };
|
|
52
|
+
//# sourceMappingURL=jumper.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","BTManagedDevice","JUMPER_VALUES","LiveOximeterSequencer","readOximeterData","JUMPER_GATT","JUMPER_NOTIFY","JUMPER_SERVICE","JumperSequencer","passThrough","caseValuePosition","cases","service","uuid","notify","optional","monitorUuids","parsingModel","SERVICES","JUMPER_OXIMETER","oximeterAlternate","JUMPER_THERMOMETER","thermometerAlternate","JUMPER_BPM","bloodPressure","JumperDeviceClass","stuckDataTimeout","onStreamStart","undefined","constructor","device","params","mainServices","deviceName","onResult","result","createCommandSequencer","readValues","frame","kind","validatePackage","handleSuccessResult","JumperDevice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/jumper/jumper.device.ts"],"mappings":";;AAIA,SAASA,iBAAiB,QAAQ,sCAAmC;AAGrE,SAASC,eAAe,QAAQ,yBAAsB;AACtD,SAASC,aAAa,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,+BAA4B;AAEnG,SAASC,WAAW,EAAEC,aAAa,EAAEC,cAAc,QAAQ,sBAAmB;AAC9E,SAASC,eAAe,QAAQ,uBAAoB;AAOpD,MAAMC,WAAW,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAExD,MAAMC,OAAO,GAAGA,CAACC,IAAY,EAAEC,MAAc,EAAEC,QAAiB,MAAgB;EAC9EF,IAAI;EACJE,QAAQ;EACRC,YAAY,EAAE,CAAC;IAAEH,IAAI,EAAEC,MAAM;IAAEG,YAAY,EAAER;EAAY,CAAC;AAC5D,CAAC,CAAC;;AAEF;AACA,MAAMS,QAA0C,GAAG;EACjD,CAAClB,iBAAiB,CAACmB,eAAe,GAAG,CACnCP,OAAO,CAACL,cAAc,EAAED,aAAa,EAAE,IAAI,CAAC,EAC5CM,OAAO,CAACP,WAAW,CAACe,iBAAiB,CAACR,OAAO,EAAEP,WAAW,CAACe,iBAAiB,CAACN,MAAM,EAAE,IAAI,CAAC,CAC3F;EACD,CAACd,iBAAiB,CAACqB,kBAAkB,GAAG,CACtCT,OAAO,CAACL,cAAc,EAAED,aAAa,EAAE,IAAI,CAAC,EAC5CM,OAAO,CAACP,WAAW,CAACiB,oBAAoB,CAACV,OAAO,EAAEP,WAAW,CAACiB,oBAAoB,CAACR,MAAM,EAAE,IAAI,CAAC,CACjG;EACD,CAACd,iBAAiB,CAACuB,UAAU,GAAG,CAC9BX,OAAO,CAACP,WAAW,CAACmB,aAAa,CAACZ,OAAO,EAAEP,WAAW,CAACmB,aAAa,CAACV,MAAM,EAAE,KAAK,CAAC;AAEvF,CAAC;;AAED;AACA,MAAMW,iBAAiB,SAASxB,eAAe,CAAe;EAElDyB,gBAAgB,GAAG,OAAO;EAC1BC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAACC,MAAc,EAAEC,MAAwC,EAAE;IAC3E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;IACrB,IAAI,CAACC,YAAY,GAAGd,QAAQ,CAACa,MAAM,CAACE,UAAU,CAAC;IAE/C,MAAMC,QAAQ,GAAIC,MAA+B,IAC/C,IAAI,CAACD,QAAQ,GACXC,MACF,CAAC;IAEH,IAAI,CAACC,sBAAsB,GAAG,MAC5BL,MAAM,CAACE,UAAU,KAAKjC,iBAAiB,CAACmB,eAAe,GACnD,IAAIhB,qBAAqB,CAAC;MACxBkC,UAAU,EAAGC,KAAK,IAAKlC,gBAAgB,CAACkC,KAAK,EAAEpC,aAAa,CAAC;MAC7DgC;IACF,CAAC,CAAC,GACF,IAAI1B,eAAe,CAAC;MAClB+B,IAAI,EACFR,MAAM,CAACE,UAAU,KAAKjC,iBAAiB,CAACuB,UAAU,GAAG,gBAAgB,GAAG,aAAa;MACvFW;IACF,CAAC,CAAC;EACV;;EAEA;EACUM,eAAe,GAAGA,CAAA,KAAe,IAAI;EAErCC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAEA,SAAShB,iBAAiB,IAAIiB,YAAY","ignoreList":[]}
|