@ovok/native 1.16.1-dev.2135 → 1.16.1-dev.2139
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/commonjs/modules/bt-management/index.js +12 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +50 -0
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +3 -0
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +4 -2
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js +59 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +18 -37
- package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +12 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js +68 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js +70 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +14 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +77 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +49 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +89 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +35 -42
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/record-cursor.js +70 -0
- package/lib/commonjs/modules/bt-management/services/record-cursor.js.map +1 -0
- package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +8 -0
- package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/glucose-record-details.js +2 -0
- package/lib/commonjs/modules/bt-management/types/glucose-record-details.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/wait.js +10 -0
- package/lib/commonjs/modules/bt-management/utils/wait.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js +41 -4
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/connections.js +4 -0
- package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/driver.js +6 -0
- package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/readings.js +2 -1
- package/lib/commonjs/modules/next/bluetooth/readings.js.map +1 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/module/modules/bt-management/index.js +1 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +50 -0
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js +3 -0
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +4 -2
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-current-time.js +55 -0
- package/lib/module/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bt-device-information.js +18 -37
- package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +13 -2
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js +65 -0
- package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js +65 -0
- package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +14 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +72 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +40 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +85 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +25 -32
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
- package/lib/module/modules/bt-management/services/record-cursor.js +66 -0
- package/lib/module/modules/bt-management/services/record-cursor.js.map +1 -0
- package/lib/module/modules/bt-management/testing/fake-ble-manager.js +8 -0
- package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
- package/lib/module/modules/bt-management/types/custom-device-definition.js +4 -0
- package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
- package/lib/module/modules/bt-management/types/glucose-record-details.js +2 -0
- package/lib/module/modules/bt-management/types/glucose-record-details.js.map +1 -0
- package/lib/module/modules/bt-management/utils/wait.js +5 -0
- package/lib/module/modules/bt-management/utils/wait.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js +41 -4
- package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
- package/lib/module/modules/next/bluetooth/connections.js +4 -0
- package/lib/module/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/module/modules/next/bluetooth/driver.js +6 -0
- package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
- package/lib/module/modules/next/bluetooth/readings.js +2 -1
- package/lib/module/modules/next/bluetooth/readings.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +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/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +20 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -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/devices/bt-command-writer.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
- 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-current-time.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -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/bt-notification-readiness.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +6 -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/create-device-params.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +14 -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/glucose-record-details.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts +12 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +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/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +20 -0
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -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/devices/bt-command-writer.d.ts +3 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
- 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-current-time.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -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/bt-notification-readiness.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +6 -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/create-device-params.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +14 -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/glucose-record-details.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +6 -1
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts +12 -1
- package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +4 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -174,6 +174,9 @@ const defineCustomDevice = (spec, options = {}) => {
|
|
|
174
174
|
}),
|
|
175
175
|
...(options.createFrameHandler === undefined ? {} : {
|
|
176
176
|
createFrameHandler: options.createFrameHandler
|
|
177
|
+
}),
|
|
178
|
+
...(options.createCommandSequencer === undefined ? {} : {
|
|
179
|
+
createCommandSequencer: options.createCommandSequencer
|
|
177
180
|
})
|
|
178
181
|
};
|
|
179
182
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_customDeviceBrand","require","_integratedDevices","_assertIntegerInRange","_compileCustomLepu","_compileCustomMonitor","_compileCustomTmb","_customDeviceError","_normalizeBleUuid","MIN_STUCK_TIMEOUT_MS","MIN_MTU","MAX_MTU","MAX_STUCK_TIMEOUT_MS","HEX_BYTES","assertIdentity","spec","id","trim","customDeviceError","String","builtIn","Object","values","IntegratedDevices","find","name","toLowerCase","compileNameMatch","nameMatch","RegExp","global","sticky","exact","matchByService","replace","assertStuckTimeout","assertIntegerInRange","stuckDataTimeoutMs","assertPreferredMtu","mtu","preferredMtu","undefined","assertSessionPolicy","policy","Number","isInteger","minSamples","emit","compileWrite","path","write","commandHex","test","when","uuid","normalizeBleUuid","mainCommandUuid","onConnectOnly","defineCustomDevice","options","stuckDataTimeout","sessionPolicy","Array","isArray","services","length","fields","Map","frames","seenCharacteristics","Set","mainServices","map","service","serviceIndex","monitor","monitorUuids","monitorIndex","monitorPath","characteristic","frame","compileCustomMonitor","has","add","set","writeUuid","lepu","compileCustomLepu","tmb","compileCustomTmb","CUSTOM_DEVICE_BRAND","oneReadingPerConnection","clockSync","setClockBeforeInfo","frameReader","decorateReading","createFrameHandler","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/define-custom-device.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_customDeviceBrand","require","_integratedDevices","_assertIntegerInRange","_compileCustomLepu","_compileCustomMonitor","_compileCustomTmb","_customDeviceError","_normalizeBleUuid","MIN_STUCK_TIMEOUT_MS","MIN_MTU","MAX_MTU","MAX_STUCK_TIMEOUT_MS","HEX_BYTES","assertIdentity","spec","id","trim","customDeviceError","String","builtIn","Object","values","IntegratedDevices","find","name","toLowerCase","compileNameMatch","nameMatch","RegExp","global","sticky","exact","matchByService","replace","assertStuckTimeout","assertIntegerInRange","stuckDataTimeoutMs","assertPreferredMtu","mtu","preferredMtu","undefined","assertSessionPolicy","policy","Number","isInteger","minSamples","emit","compileWrite","path","write","commandHex","test","when","uuid","normalizeBleUuid","mainCommandUuid","onConnectOnly","defineCustomDevice","options","stuckDataTimeout","sessionPolicy","Array","isArray","services","length","fields","Map","frames","seenCharacteristics","Set","mainServices","map","service","serviceIndex","monitor","monitorUuids","monitorIndex","monitorPath","characteristic","frame","compileCustomMonitor","has","add","set","writeUuid","lepu","compileCustomLepu","tmb","compileCustomTmb","CUSTOM_DEVICE_BRAND","oneReadingPerConnection","clockSync","setClockBeforeInfo","frameReader","decorateReading","createFrameHandler","createCommandSequencer","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/define-custom-device.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ exports.BTCommandWriter = void 0;
|
|
|
7
7
|
var _sentryLogger = require("../../../helpers/utils/sentry-logger.js");
|
|
8
8
|
var _bluetoothError = require("../../types/bluetooth-error.js");
|
|
9
9
|
var _hexToBase = require("../../utils/hex-to-base-64.js");
|
|
10
|
+
var _btPairingRetry = require("./bt-pairing-retry.js");
|
|
10
11
|
const MAX_WRITE_ATTEMPTS = 3;
|
|
11
12
|
|
|
12
13
|
/** The MTU every BLE link starts at, before either side asks for more. */
|
|
@@ -27,10 +28,11 @@ const ATT_WRITE_HEADER_BYTES = 3;
|
|
|
27
28
|
class BTCommandWriter {
|
|
28
29
|
pendingWrites = Promise.resolve();
|
|
29
30
|
mtu = DEFAULT_ATT_MTU;
|
|
30
|
-
constructor(device, onError, isNormalDisconnect) {
|
|
31
|
+
constructor(device, onError, isNormalDisconnect, retryAfterPairing = _btPairingRetry.runOnce) {
|
|
31
32
|
this.device = device;
|
|
32
33
|
this.onError = onError;
|
|
33
34
|
this.isNormalDisconnect = isNormalDisconnect;
|
|
35
|
+
this.retryAfterPairing = retryAfterPairing;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
/**
|
|
@@ -139,7 +141,7 @@ class BTCommandWriter {
|
|
|
139
141
|
(0, _sentryLogger.sentryLogger)("info", "DEVICE: Skipping write after disconnect");
|
|
140
142
|
return false;
|
|
141
143
|
}
|
|
142
|
-
await this.writeTo(command, (0, _hexToBase.hexToBase64)(chunk.join("")));
|
|
144
|
+
await this.retryAfterPairing(() => this.writeTo(command, (0, _hexToBase.hexToBase64)(chunk.join(""))));
|
|
143
145
|
return true;
|
|
144
146
|
} catch (error) {
|
|
145
147
|
const message = (0, _bluetoothError.toBluetoothError)(error).message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,
|
|
1
|
+
{"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","_btPairingRetry","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","runOnce","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAEA,MAAMI,kBAAkB,GAAG,CAAC;;AAE5B;AACA,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA,MAAMC,sBAAsB,GAAG,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,CAAC;EACnBC,aAAa,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;EAChDC,GAAG,GAAGN,eAAe;EAEtBO,WAAWA,CACCC,MAAc,EACdC,OAA2C,EAC3CC,kBAAkC,EAClCC,iBAA+B,GAAGC,uBAAO,EAC1D;IAAA,KAJiBJ,MAAc,GAAdA,MAAc;IAAA,KACdC,OAA2C,GAA3CA,OAA2C;IAAA,KAC3CC,kBAAkC,GAAlCA,kBAAkC;IAAA,KAClCC,iBAA+B,GAA/BA,iBAA+B;EAC/C;;EAEH;AACF;AACA;AACA;AACA;AACA;AACA;EACSE,gBAAgB,GAAIP,GAAY,IAAW;IAChD,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIQ,MAAM,CAACC,SAAS,CAACT,GAAG,CAAC,IAAIA,GAAG,GAAG,IAAI,CAACA,GAAG,EAAE;MACtE,IAAI,CAACA,GAAG,GAAGA,GAAG;IAChB;EACF,CAAC;;EAED;EACOU,KAAK,GAAGA,CAAA,KAAY;IACzB,IAAI,CAACb,aAAa,GAAGC,OAAO,CAACC,OAAO,CAAC,CAAC;EACxC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACSY,IAAI,GAAIC,QAAkC,IAAoB;IACnE,IAAI,CAACf,aAAa,GAAG,IAAI,CAACA,aAAa,CACpCgB,IAAI,CAAC,MAAM,IAAI,CAACC,YAAY,CAACF,QAAQ,CAAC,CAAC,CACvCG,KAAK,CAAEC,KAAK,IAAK;MAChB,IAAI,CAACb,OAAO,GAAGa,KAAyB,CAAC;IAC3C,CAAC,CAAC;IAEJ,OAAO,IAAI,CAACnB,aAAa;EAC3B,CAAC;EAEOiB,YAAY,GAAG,MACrBF,QAAkC,IAChB;IAClB,KAAK,MAAMK,OAAO,IAAIL,QAAQ,EAAE;MAC9B,MAAM,IAAI,CAACM,YAAY,CAACD,OAAO,CAAC;IAClC;EACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACUC,YAAY,GAAG,MAAOD,OAAsB,IAAoB;IACtE,IAAIA,OAAO,CAACE,kBAAkB,IAAIF,OAAO,CAACE,kBAAkB,GAAG,CAAC,EAAE;MAChE,MAAM,IAAIrB,OAAO,CAAEC,OAAO,IACxBqB,UAAU,CAACrB,OAAO,EAAEkB,OAAO,CAACE,kBAAkB,CAChD,CAAC;IACH;IAEA,KAAK,MAAME,KAAK,IAAI,IAAI,CAACC,QAAQ,CAACL,OAAO,CAACM,KAAK,CAAC,EAAE;MAChD,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,UAAU,CAACR,OAAO,EAAEI,KAAK,CAAC;MAErD,IAAI,CAACG,OAAO,EAAE;QACZ;MACF;IACF;EACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACUE,OAAO,GAAG,MAAAA,CAChBT,OAAsB,EACtBU,KAAa,KACK;IAClB,IAAIV,OAAO,CAACW,eAAe,EAAE;MAC3B,MAAM,IAAI,CAAC1B,MAAM,CAAC2B,4CAA4C,CAC5DZ,OAAO,CAACa,WAAW,EACnBb,OAAO,CAACc,kBAAkB,EAC1BJ,KACF,CAAC;MAED;IACF;IAEA,MAAM,IAAI,CAACzB,MAAM,CAAC8B,yCAAyC,CACzDf,OAAO,CAACa,WAAW,EACnBb,OAAO,CAACc,kBAAkB,EAC1BJ,KACF,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACUL,QAAQ,GAAIC,KAAwB,IAAiB;IAC3D,MAAMU,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACnC,GAAG,GAAGL,sBAAsB,CAAC;IAC3D,MAAMyC,MAAkB,GAAG,EAAE;IAE7B,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGd,KAAK,CAACe,MAAM,EAAED,KAAK,IAAIJ,IAAI,EAAE;MACvDG,MAAM,CAACG,IAAI,CAAChB,KAAK,CAACiB,KAAK,CAACH,KAAK,EAAEA,KAAK,GAAGJ,IAAI,CAAC,CAAC;IAC/C;IAEA,OAAOG,MAAM;EACf,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACUX,UAAU,GAAG,MAAAA,CACnBR,OAAsB,EACtBI,KAAwB,KACH;IACrB,KAAK,IAAIoB,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAIhD,kBAAkB,EAAEgD,OAAO,EAAE,EAAE;MAC9D,IAAI;QACF,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACxC,MAAM,CAACwC,WAAW,CAAC,CAAC;QAEnD,IAAI,CAACA,WAAW,EAAE;UAChB,IAAAC,0BAAY,EAAC,MAAM,EAAE,yCAAyC,CAAC;UAE/D,OAAO,KAAK;QACd;QAEA,MAAM,IAAI,CAACtC,iBAAiB,CAAC,MAC3B,IAAI,CAACqB,OAAO,CAACT,OAAO,EAAE,IAAA2B,sBAAW,EAACvB,KAAK,CAACwB,IAAI,CAAC,EAAE,CAAC,CAAC,CACnD,CAAC;QAED,OAAO,IAAI;MACb,CAAC,CAAC,OAAO7B,KAAK,EAAE;QACd,MAAM8B,OAAO,GAAG,IAAAC,gCAAgB,EAAC/B,KAAK,CAAC,CAAC8B,OAAO;QAE/C,MAAME,WAAW,GACf,IAAI,CAAC5C,kBAAkB,GAAG,CAAC,KAAK,IAAI,IACpC,6BAA6B,CAAC6C,IAAI,CAACH,OAAO,CAAC;QAE7C,IAAAH,0BAAY,EAACK,WAAW,GAAG,MAAM,GAAG,OAAO,EAAE,+BAA+B,EAAE;UAC5EE,SAAS,EAAE,IAAAH,gCAAgB,EAAC/B,KAAK,CAAC,CAACmC;QACrC,CAAC,CAAC;MAEJ;IACF;IAEA,OAAO,KAAK;EACd,CAAC;AACH;AAACC,OAAA,CAAAxD,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -10,29 +10,36 @@ var _bluetoothError = require("../../types/bluetooth-error.js");
|
|
|
10
10
|
var _deviceStatus = require("../../types/device-status.js");
|
|
11
11
|
var _base64ToHex = require("../../utils/base-64-to-hex.js");
|
|
12
12
|
var _btCommandWriter = require("./bt-command-writer.js");
|
|
13
|
+
var _btCurrentTime = require("./bt-current-time.js");
|
|
13
14
|
var _btDeviceInformation = require("./bt-device-information.js");
|
|
15
|
+
var _btNotificationReadiness = require("./bt-notification-readiness.js");
|
|
16
|
+
var _btPairingRetry = require("./bt-pairing-retry.js");
|
|
14
17
|
/* eslint-disable max-lines */
|
|
15
18
|
|
|
16
19
|
class BTConnectionHandler {
|
|
17
20
|
characteristicSubscriptions = [];
|
|
18
21
|
disconnectObserved = false;
|
|
22
|
+
pairingReported = false;
|
|
19
23
|
constructor(device, mainServices, callbacks, preferredMtu) {
|
|
20
24
|
this.device = device;
|
|
21
25
|
this.mainServices = mainServices;
|
|
22
26
|
this.callbacks = callbacks;
|
|
23
27
|
this.preferredMtu = preferredMtu;
|
|
24
|
-
this.
|
|
28
|
+
this.pairing = new _btPairingRetry.BTPairingRetry(device, this.reportPairingRequired);
|
|
29
|
+
this.writer = new _btCommandWriter.BTCommandWriter(device, callbacks.onError, callbacks.isNormalDisconnect, this.pairing.run);
|
|
25
30
|
}
|
|
26
31
|
connect = async () => {
|
|
27
32
|
const startedAt = Date.now();
|
|
28
33
|
this.disconnectObserved = false;
|
|
34
|
+
this.pairingReported = false;
|
|
29
35
|
const span = (0, _telemetry.startOvokSpan)("bluetooth.connect");
|
|
30
36
|
try {
|
|
31
37
|
await this.connectWithRetries();
|
|
32
38
|
await this.requestPreferredMtu();
|
|
33
39
|
await this.device.discoverAllServicesAndCharacteristics();
|
|
34
|
-
await (0, _btDeviceInformation.readDeviceInformation)(this.device, this.callbacks.onDeviceInfo);
|
|
40
|
+
await (0, _btDeviceInformation.readDeviceInformation)(this.device, this.callbacks.onDeviceInfo, this.pairing.run);
|
|
35
41
|
await this.readBatteryLevel();
|
|
42
|
+
await this.syncCurrentTime();
|
|
36
43
|
if (this.disconnectObserved || !(await this.device.isConnected())) {
|
|
37
44
|
throw new Error("Device disconnected during connection setup");
|
|
38
45
|
}
|
|
@@ -54,10 +61,7 @@ class BTConnectionHandler {
|
|
|
54
61
|
(0, _telemetry.addOvokSpanEvent)("pairing.failed", {
|
|
55
62
|
errorCode
|
|
56
63
|
}, span);
|
|
57
|
-
this.
|
|
58
|
-
kind: "pairing",
|
|
59
|
-
pairingCodeRequired: true
|
|
60
|
-
});
|
|
64
|
+
this.reportPairingRequired();
|
|
61
65
|
}
|
|
62
66
|
if (!this.disconnectObserved) {
|
|
63
67
|
this.callbacks.onStatusChanged?.(_deviceStatus.DeviceStatus.DISCONNECTED);
|
|
@@ -73,8 +77,7 @@ class BTConnectionHandler {
|
|
|
73
77
|
}
|
|
74
78
|
};
|
|
75
79
|
destroy = () => {
|
|
76
|
-
this.
|
|
77
|
-
this.characteristicSubscriptions = [];
|
|
80
|
+
this.removeSubscriptions();
|
|
78
81
|
this.writer.reset();
|
|
79
82
|
this.onDisconnectSubscription?.remove();
|
|
80
83
|
this.onDisconnectSubscription = undefined;
|
|
@@ -210,26 +213,8 @@ class BTConnectionHandler {
|
|
|
210
213
|
this.callbacks.onServicesDiscovered?.(services.map(({
|
|
211
214
|
uuid
|
|
212
215
|
}) => uuid));
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
const subscription = this.device.monitorCharacteristicForService(mainService.uuid, monitorUuid.uuid, (error, result) => {
|
|
216
|
-
if (error) {
|
|
217
|
-
this.callbacks.onError?.(error);
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
if (!result || !result.value) {
|
|
221
|
-
this.callbacks.onError?.(new Error("Received empty data from device"));
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
if (monitorUuid.processData !== false) {
|
|
225
|
-
const hexValue = (0, _base64ToHex.base64ToHex)(result.value);
|
|
226
|
-
this.callbacks.onDataReceived?.(result.uuid, hexValue);
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
this.characteristicSubscriptions.push(subscription);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
const initialCommands = this.callbacks.initialCommands?.() ?? [];
|
|
216
|
+
await this.pairing.run(() => this.startMonitors(services));
|
|
217
|
+
const initialCommands = (await this.callbacks.initialCommands?.()) ?? [];
|
|
233
218
|
if (initialCommands.length > 0) {
|
|
234
219
|
await this.sendCommands(initialCommands);
|
|
235
220
|
this.callbacks.onCommandSent?.();
|
|
@@ -242,6 +227,90 @@ class BTConnectionHandler {
|
|
|
242
227
|
this.callbacks.onError?.(error);
|
|
243
228
|
}
|
|
244
229
|
};
|
|
230
|
+
|
|
231
|
+
/** A monitor failing for pairing while starting is thrown here, for the pairing retry, not reported. */
|
|
232
|
+
startMonitors = async services => {
|
|
233
|
+
this.removeSubscriptions();
|
|
234
|
+
let starting = true;
|
|
235
|
+
let pairingError;
|
|
236
|
+
const onMonitorError = error => {
|
|
237
|
+
if (starting && (0, _btPairingRetry.isPairingRequired)(error)) {
|
|
238
|
+
pairingError ??= error;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
this.callbacks.onError?.(error);
|
|
242
|
+
};
|
|
243
|
+
try {
|
|
244
|
+
const monitored = [];
|
|
245
|
+
for (const service of services) {
|
|
246
|
+
for (const monitorUuid of service.monitorUuids) {
|
|
247
|
+
this.characteristicSubscriptions.push(this.monitor(service.uuid, monitorUuid, onMonitorError));
|
|
248
|
+
monitored.push({
|
|
249
|
+
serviceUuid: service.uuid,
|
|
250
|
+
characteristicUuid: monitorUuid.uuid
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
await (0, _btNotificationReadiness.awaitNotificationsEnabled)(this.device, monitored);
|
|
255
|
+
if (pairingError) {
|
|
256
|
+
throw pairingError;
|
|
257
|
+
}
|
|
258
|
+
} finally {
|
|
259
|
+
starting = false;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
monitor = (serviceUuid, monitorUuid, onMonitorError) => this.device.monitorCharacteristicForService(serviceUuid, monitorUuid.uuid, (error, result) => {
|
|
263
|
+
if (error) {
|
|
264
|
+
onMonitorError(error);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (!result || !result.value) {
|
|
268
|
+
this.callbacks.onError?.(new Error("Received empty data from device"));
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (monitorUuid.processData !== false) {
|
|
272
|
+
const hexValue = (0, _base64ToHex.base64ToHex)(result.value);
|
|
273
|
+
this.callbacks.onDataReceived?.(result.uuid, hexValue);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
removeSubscriptions = () => {
|
|
277
|
+
this.characteristicSubscriptions.forEach(sub => sub?.remove());
|
|
278
|
+
this.characteristicSubscriptions = [];
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
/** Tells the app once per connection that the platform is asking the user to pair. */
|
|
282
|
+
reportPairingRequired = () => {
|
|
283
|
+
if (this.pairingReported) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
this.pairingReported = true;
|
|
287
|
+
this.callbacks.onConnectionEvent?.({
|
|
288
|
+
kind: "pairing",
|
|
289
|
+
pairingCodeRequired: true
|
|
290
|
+
});
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
/** Sets the device clock when the declaration asked for it; a device that refuses keeps its own time. */
|
|
294
|
+
syncCurrentTime = async () => {
|
|
295
|
+
const clock = this.callbacks.currentTimeSync;
|
|
296
|
+
if (!clock) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
try {
|
|
300
|
+
const clockAt = await (0, _btCurrentTime.writeCurrentTime)(this.device, clock);
|
|
301
|
+
if (clockAt) {
|
|
302
|
+
this.callbacks.onConnectionEvent?.({
|
|
303
|
+
kind: "clock-synchronized",
|
|
304
|
+
clockAt,
|
|
305
|
+
phoneUtcOffsetMinutes: -clockAt.getTimezoneOffset()
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
} catch (error) {
|
|
309
|
+
(0, _sentryLogger.sentryLogger)("info", "DEVICE: Current Time was not written", {
|
|
310
|
+
errorCode: (0, _bluetoothError.toBluetoothError)(error).code
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
};
|
|
245
314
|
}
|
|
246
315
|
exports.BTConnectionHandler = BTConnectionHandler;
|
|
247
316
|
//# sourceMappingURL=bt-connection-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sentryLogger","require","_telemetry","_bluetoothError","_deviceStatus","_base64ToHex","_btCommandWriter","_btDeviceInformation","BTConnectionHandler","characteristicSubscriptions","disconnectObserved","constructor","device","mainServices","callbacks","preferredMtu","writer","BTCommandWriter","onError","isNormalDisconnect","connect","startedAt","Date","now","span","startOvokSpan","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","readDeviceInformation","onDeviceInfo","readBatteryLevel","isConnected","Error","onStatusChanged","DeviceStatus","CONNECTED","subscribeToAllCharacteristics","setStatus","code","error","errorCode","toBluetoothError","sentryLogger","BluetoothErrorCode","PAIRING_REQUIRED","recordOvokMetric","addOvokSpanEvent","onConnectionEvent","kind","pairingCodeRequired","DISCONNECTED","message","recordOvokDuration","end","destroy","forEach","sub","remove","reset","onDisconnectSubscription","undefined","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","requestedMtu","characteristic","readCharacteristicForService","value","Number","parseInt","base64ToHex","isFinite","batteryLevel","maxRetries","retryDelay","maxDelay","connected","retryCount","listenForDisconnect","willRetry","Promise","resolve","setTimeout","Math","min","pow","onDisconnected","onDeviceDisconnected","servicesPresent","some","optional","services","discovered","Set","map","uuid","toLowerCase","filter","has","onServicesDiscovered","mainService","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","result","processData","hexValue","onDataReceived","push","initialCommands","length","onCommandSent","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":";;;;;;AAIA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAMA,IAAAE,eAAA,GAAAF,OAAA;AAGA,IAAAG,aAAA,GAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AApBA;;AA0CO,MAAMO,mBAAmB,CAAC;EAEvBC,2BAA2B,GAAmB,EAAE;EAChDC,kBAAkB,GAAG,KAAK;EAGlCC,WAAWA,CACQC,MAAc,EACdC,YAA2C,EAC3CC,SAAqC,EACrCC,YAAqB,EACtC;IAAA,KAJiBH,MAAc,GAAdA,MAAc;IAAA,KACdC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAAqC,GAArCA,SAAqC;IAAA,KACrCC,YAAqB,GAArBA,YAAqB;IAEtC,IAAI,CAACC,MAAM,GAAG,IAAIC,gCAAe,CAC/BL,MAAM,EACNE,SAAS,CAACI,OAAO,EACjBJ,SAAS,CAACK,kBACZ,CAAC;EACH;EAEOC,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC3B,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAE5B,IAAI,CAACb,kBAAkB,GAAG,KAAK;IAE/B,MAAMc,IAAI,GAAG,IAAAC,wBAAa,EAAC,mBAAmB,CAAC;IAE/C,IAAI;MACF,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAE/B,MAAM,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAEhC,MAAM,IAAI,CAACf,MAAM,CAACgB,qCAAqC,CAAC,CAAC;MACzD,MAAM,IAAAC,0CAAqB,EAAC,IAAI,CAACjB,MAAM,EAAE,IAAI,CAACE,SAAS,CAACgB,YAAY,CAAC;MACrE,MAAM,IAAI,CAACC,gBAAgB,CAAC,CAAC;MAE7B,IAAI,IAAI,CAACrB,kBAAkB,IAAI,EAAE,MAAM,IAAI,CAACE,MAAM,CAACoB,WAAW,CAAC,CAAC,CAAC,EAAE;QACjE,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;MAChE;MAEA,IAAI,CAACnB,SAAS,CAACoB,eAAe,GAAGC,0BAAY,CAACC,SAAS,CAAC;MAExD,MAAM,IAAI,CAACC,6BAA6B,CAAC,CAAC;MAC1Cb,IAAI,EAAEc,SAAS,GAAG;QAAEC,IAAI,EAAE;MAAE,CAAC,CAAC;IAChC,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAMC,SAAS,GAAG,IAAAC,gCAAgB,EAACF,KAAK,CAAC,CAACD,IAAI;MAE9C,IAAAI,0BAAY,EAAC,OAAO,EAAE,wCAAwC,EAAE;QAC9DF;MACF,CAAC,CAAC;MACF,IAAI,CAAC3B,SAAS,CAACI,OAAO,GAAGsB,KAAyB,CAAC;MACnD,IAAI,IAAAE,gCAAgB,EAACF,KAAK,CAAC,CAACD,IAAI,KAAKK,kCAAkB,CAACC,gBAAgB,EAAE;QACxE,IAAAC,2BAAgB,EAAC,uBAAuB,EAAE,CAAC,EAAE;UAC3CL;QACF,CAAC,CAAC;QACF,IAAAM,2BAAgB,EAAC,gBAAgB,EAAE;UAAEN;QAAU,CAAC,EAAEjB,IAAI,CAAC;QACvD,IAAI,CAACV,SAAS,CAACkC,iBAAiB,GAAG;UACjCC,IAAI,EAAE,SAAS;UACfC,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ;MACA,IAAI,CAAC,IAAI,CAACxC,kBAAkB,EAAE;QAC5B,IAAI,CAACI,SAAS,CAACoB,eAAe,GAAGC,0BAAY,CAACgB,YAAY,CAAC;MAC7D;MACA3B,IAAI,EAAEc,SAAS,GAAG;QAChBC,IAAI,EAAE,CAAC;QACPa,OAAO,EAAEX;MACX,CAAC,CAAC;MACF,MAAMD,KAAK;IACb,CAAC,SAAS;MACR,IAAAa,6BAAkB,EAAC,iCAAiC,EAAE/B,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,CAAC;MAC7EG,IAAI,EAAE8B,GAAG,CAAC,CAAC;IACb;EACF,CAAC;EAEMC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAI,CAAC9C,2BAA2B,CAAC+C,OAAO,CAAEC,GAAG,IAAKA,GAAG,EAAEC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,CAACjD,2BAA2B,GAAG,EAAE;IACrC,IAAI,CAACO,MAAM,CAAC2C,KAAK,CAAC,CAAC;IAEnB,IAAI,CAACC,wBAAwB,EAAEF,MAAM,CAAC,CAAC;IACvC,IAAI,CAACE,wBAAwB,GAAGC,SAAS;EAC3C,CAAC;;EAED;EACOC,YAAY,GAAIC,QAAkC,IACvD,IAAI,CAAC/C,MAAM,CAACgD,IAAI,CAACD,QAAQ,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;EACUpC,mBAAmB,GAAG,MAAAA,CAAA,KAA2B;IACvD,IAAI,CAAC,IAAI,CAACZ,YAAY,EAAE;MACtB;IACF;IAEA,IAAI;MACF,MAAMkD,UAAU,GAAG,MAAM,IAAI,CAACrD,MAAM,CAACsD,UAAU,CAAC,IAAI,CAACnD,YAAY,CAAC;MAElE,IAAI,CAACC,MAAM,CAACmD,gBAAgB,CAACF,UAAU,EAAEG,GAAG,IAAI,IAAI,CAACxD,MAAM,CAACwD,GAAG,CAAC;IAClE,CAAC,CAAC,OAAO5B,KAAK,EAAE;MACd,MAAMC,SAAS,GAAG,IAAAC,gCAAgB,EAACF,KAAK,CAAC,CAACD,IAAI;MAE9C,IAAAI,0BAAY,EAAC,MAAM,EAAE,qCAAqC,EAAE;QAC1D0B,YAAY,EAAE,IAAI,CAACtD,YAAY;QAC/B0B;MACF,CAAC,CAAC;IACJ;EACF,CAAC;;EAED;EACQV,gBAAgB,GAAG,MAAAA,CAAA,KAA2B;IACpD,IAAI;MACF,MAAMuC,cAAc,GAAG,MAAM,IAAI,CAAC1D,MAAM,CAAC2D,4BAA4B,CACnE,MAAM,EACN,MACF,CAAC;MAED,IAAI,CAACD,cAAc,CAACE,KAAK,EAAE;QACzB;MACF;MAEA,MAAMA,KAAK,GAAGC,MAAM,CAACC,QAAQ,CAAC,IAAAC,wBAAW,EAACL,cAAc,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;MAE7E,IAAI,CAACC,MAAM,CAACG,QAAQ,CAACJ,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,GAAG,EAAE;QACvD;MACF;MAEA,IAAI,CAAC1D,SAAS,CAACkC,iBAAiB,GAAG;QACjCC,IAAI,EAAE,SAAS;QACf4B,YAAY,EAAEL;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAEO9C,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACvC,MAAMoD,UAAU,GAAG,CAAC;IACpB,MAAMC,UAAU,GAAG,IAAI;IACvB,MAAMC,QAAQ,GAAG,KAAK;IACtB,IAAIC,SAAS,GAAG,KAAK;IACrB,IAAIC,UAAU,GAAG,CAAC;IAElB,OAAO,CAACD,SAAS,IAAIC,UAAU,GAAGJ,UAAU,EAAE;MAC5CG,SAAS,GAAG,MAAM,IAAI,CAACrE,MAAM,CAACoB,WAAW,CAAC,CAAC;MAC3C,IAAIiD,SAAS,EAAE;QACb,IAAI,CAACE,mBAAmB,CAAC,CAAC;QAE1B;MACF;MACA,IAAI;QACF,MAAM,IAAI,CAACvE,MAAM,CAACQ,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC+D,mBAAmB,CAAC,CAAC;QAC1BF,SAAS,GAAG,IAAI;MAClB,CAAC,CAAC,OAAOzC,KAAK,EAAE;QACd0C,UAAU,EAAE;QACZ,MAAMzC,SAAS,GAAG,IAAAC,gCAAgB,EAACF,KAAK,CAAC,CAACD,IAAI;QAE9C,IAAAI,0BAAY,EAAC,OAAO,EAAE,2BAA2B,EAAE;UACjDF,SAAS;UACTyC;QACF,CAAC,CAAC;QACF,IAAIA,UAAU,IAAIJ,UAAU,EAAE;UAC5B,IAAAnC,0BAAY,EAAC,OAAO,EAAE,6CAA6C,EAAE;YACnEF,SAAS;YACT2C,SAAS,EAAEF,UAAU,GAAGJ;UAC1B,CAAC,CAAC;UACF,MAAMtC,KAAK;QACb;QAEA,MAAM,IAAI6C,OAAO,CAAEC,OAAO,IACxBC,UAAU,CACRD,OAAO,EACPE,IAAI,CAACC,GAAG,CAACV,UAAU,GAAGS,IAAI,CAACE,GAAG,CAAC,CAAC,EAAER,UAAU,GAAG,CAAC,CAAC,EAAEF,QAAQ,CAC7D,CACF,CAAC;MACH;IACF;EACF,CAAC;EAEOG,mBAAmB,GAAGA,CAAA,KAAM;IAClC,IAAI,CAACvB,wBAAwB,EAAEF,MAAM,CAAC,CAAC;IACvC,IAAI,CAACE,wBAAwB,GAAG,IAAI,CAAChD,MAAM,CAAC+E,cAAc,CACxD,IAAI,CAACC,oBACP,CAAC;EACH,CAAC;EAEOA,oBAAoB,GAAIpD,KAAsB,IAAK;IACzD,IAAI,CAAC9B,kBAAkB,GAAG,IAAI;IAC9B,IAAAiC,0BAAY,EAAC,MAAM,EAAE,oCAAoC,EAAE;MACzD,IAAIH,KAAK,GAAG;QAAEC,SAAS,EAAE,IAAAC,gCAAgB,EAACF,KAAK,CAAC,CAACD;MAAK,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,IAAIC,KAAK,IAAI,CAAC,IAAI,CAAC1B,SAAS,CAACK,kBAAkB,GAAG,CAAC,EAAE;MACnD,IAAI,CAACL,SAAS,CAACI,OAAO,GAAGsB,KAAK,CAAC;IACjC;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAAC1B,SAAS,CAACoB,eAAe,GAAGC,0BAAY,CAACgB,YAAY,CAAC;IAC3D,IAAI,CAACI,OAAO,CAAC,CAAC;EAChB,CAAC;;EAED;EACQsC,eAAe,GAAG,MAAAA,CAAA,KAA0C;IAClE,IACE,CAAC,IAAI,CAAChF,YAAY,CAACiF,IAAI,CAAC,CAAC;MAAEC;IAAS,CAAC,KAAKA,QAAQ,CAAC,IACnD,OAAO,IAAI,CAACnF,MAAM,CAACoF,QAAQ,KAAK,UAAU,EAC1C;MACA,OAAO,IAAI,CAACnF,YAAY;IAC1B;IAEA,IAAIoF,UAAuB;IAE3B,IAAI;MACFA,UAAU,GAAG,IAAIC,GAAG,CAClB,CAAC,MAAM,IAAI,CAACtF,MAAM,CAACoF,QAAQ,CAAC,CAAC,EAAEG,GAAG,CAAC,CAAC;QAAEC;MAAK,CAAC,KAAKA,IAAI,CAACC,WAAW,CAAC,CAAC,CACrE,CAAC;IACH,CAAC,CAAC,MAAM;MACN;MACA,OAAO,IAAI,CAACxF,YAAY;IAC1B;IAEA,OAAO,IAAI,CAACA,YAAY,CAACyF,MAAM,CAC7B,CAAC;MAAEF,IAAI;MAAEL;IAAS,CAAC,KAAK,CAACA,QAAQ,IAAIE,UAAU,CAACM,GAAG,CAACH,IAAI,CAACC,WAAW,CAAC,CAAC,CACxE,CAAC;EACH,CAAC;EAEOhE,6BAA6B,GAAG,MAAAA,CAAA,KAAY;IAClD,IAAI;MACF,MAAM2D,QAAQ,GAAG,MAAM,IAAI,CAACH,eAAe,CAAC,CAAC;MAE7C,IAAI,CAAC/E,SAAS,CAAC0F,oBAAoB,GAAGR,QAAQ,CAACG,GAAG,CAAC,CAAC;QAAEC;MAAK,CAAC,KAAKA,IAAI,CAAC,CAAC;MAEvE,KAAK,MAAMK,WAAW,IAAIT,QAAQ,EAAE;QAClC,KAAK,MAAMU,WAAW,IAAID,WAAW,CAACE,YAAY,EAAE;UAClD,MAAMC,YAAY,GAAG,IAAI,CAAChG,MAAM,CAACiG,+BAA+B,CAC9DJ,WAAW,CAACL,IAAI,EAChBM,WAAW,CAACN,IAAI,EAChB,CAAC5D,KAAK,EAAEsE,MAAM,KAAK;YACjB,IAAItE,KAAK,EAAE;cACT,IAAI,CAAC1B,SAAS,CAACI,OAAO,GAAGsB,KAAK,CAAC;cAE/B;YACF;YAEA,IAAI,CAACsE,MAAM,IAAI,CAACA,MAAM,CAACtC,KAAK,EAAE;cAC5B,IAAI,CAAC1D,SAAS,CAACI,OAAO,GACpB,IAAIe,KAAK,CAAC,iCAAiC,CAC7C,CAAC;cAED;YACF;YAEA,IAAIyE,WAAW,CAACK,WAAW,KAAK,KAAK,EAAE;cACrC,MAAMC,QAAQ,GAAG,IAAArC,wBAAW,EAACmC,MAAM,CAACtC,KAAK,CAAC;cAE1C,IAAI,CAAC1D,SAAS,CAACmG,cAAc,GAAGH,MAAM,CAACV,IAAI,EAAEY,QAAQ,CAAC;YACxD;UACF,CACF,CAAC;UAED,IAAI,CAACvG,2BAA2B,CAACyG,IAAI,CAACN,YAAY,CAAC;QACrD;MACF;MAEA,MAAMO,eAAe,GAAG,IAAI,CAACrG,SAAS,CAACqG,eAAe,GAAG,CAAC,IAAI,EAAE;MAEhE,IAAIA,eAAe,CAACC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,CAACtD,YAAY,CAACqD,eAAe,CAAC;QACxC,IAAI,CAACrG,SAAS,CAACuG,aAAa,GAAG,CAAC;MAClC;IACF,CAAC,CAAC,OAAO7E,KAAK,EAAE;MACd,MAAMC,SAAS,GAAG,IAAAC,gCAAgB,EAACF,KAAK,CAAC,CAACD,IAAI;MAE9C,IAAAI,0BAAY,EACV,OAAO,EACP,kDAAkD,EAClD;QACEF;MACF,CACF,CAAC;MACD,IAAI,CAAC3B,SAAS,CAACI,OAAO,GAAGsB,KAAyB,CAAC;IACrD;EACF,CAAC;AACH;AAAC8E,OAAA,CAAA9G,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_sentryLogger","require","_telemetry","_bluetoothError","_deviceStatus","_base64ToHex","_btCommandWriter","_btCurrentTime","_btDeviceInformation","_btNotificationReadiness","_btPairingRetry","BTConnectionHandler","characteristicSubscriptions","disconnectObserved","pairingReported","constructor","device","mainServices","callbacks","preferredMtu","pairing","BTPairingRetry","reportPairingRequired","writer","BTCommandWriter","onError","isNormalDisconnect","run","connect","startedAt","Date","now","span","startOvokSpan","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","readDeviceInformation","onDeviceInfo","readBatteryLevel","syncCurrentTime","isConnected","Error","onStatusChanged","DeviceStatus","CONNECTED","subscribeToAllCharacteristics","setStatus","code","error","errorCode","toBluetoothError","sentryLogger","BluetoothErrorCode","PAIRING_REQUIRED","recordOvokMetric","addOvokSpanEvent","DISCONNECTED","message","recordOvokDuration","end","destroy","removeSubscriptions","reset","onDisconnectSubscription","remove","undefined","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","requestedMtu","characteristic","readCharacteristicForService","value","Number","parseInt","base64ToHex","isFinite","onConnectionEvent","kind","batteryLevel","maxRetries","retryDelay","maxDelay","connected","retryCount","listenForDisconnect","willRetry","Promise","resolve","setTimeout","Math","min","pow","onDisconnected","onDeviceDisconnected","servicesPresent","some","optional","services","discovered","Set","map","uuid","toLowerCase","filter","has","onServicesDiscovered","startMonitors","initialCommands","length","onCommandSent","starting","pairingError","onMonitorError","isPairingRequired","monitored","service","monitorUuid","monitorUuids","push","monitor","serviceUuid","characteristicUuid","awaitNotificationsEnabled","monitorCharacteristicForService","result","processData","hexValue","onDataReceived","forEach","sub","pairingCodeRequired","clock","currentTimeSync","clockAt","writeCurrentTime","phoneUtcOffsetMinutes","getTimezoneOffset","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.writeCurrentTime = void 0;
|
|
7
|
+
var _buffer = require("buffer");
|
|
8
|
+
var _clockSync = require("../../types/clock-sync.js");
|
|
9
|
+
var _sigUuid = require("../../utils/sig-uuid.js");
|
|
10
|
+
const CURRENT_TIME_SERVICE = (0, _sigUuid.sigUuid)("1805");
|
|
11
|
+
const CURRENT_TIME = (0, _sigUuid.sigUuid)("2a2b");
|
|
12
|
+
const SUNDAY = 7;
|
|
13
|
+
const BYTE_MASK = 0xff;
|
|
14
|
+
const BITS_PER_BYTE = 8;
|
|
15
|
+
const NO_FRACTION = 0;
|
|
16
|
+
|
|
17
|
+
/** Adjust Reason bit 0: the time was set by hand, which is what a phone writing it is. */
|
|
18
|
+
const MANUAL_TIME_UPDATE = 0x01;
|
|
19
|
+
/** 1 for Monday to 7 for Sunday, as Day of Week is encoded. */
|
|
20
|
+
const dayOfWeek = ({
|
|
21
|
+
year,
|
|
22
|
+
month,
|
|
23
|
+
day
|
|
24
|
+
}) => new Date(Date.UTC(year, month - 1, day)).getUTCDay() || SUNDAY;
|
|
25
|
+
|
|
26
|
+
/** Current Time 0x2A2B: Date Time, Day of Week, Fractions256 and Adjust Reason. */
|
|
27
|
+
const currentTimeBytes = parts => [parts.year & BYTE_MASK, parts.year >> BITS_PER_BYTE, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, dayOfWeek(parts), NO_FRACTION, MANUAL_TIME_UPDATE];
|
|
28
|
+
const isWritableCurrentTime = ({
|
|
29
|
+
uuid,
|
|
30
|
+
isWritableWithResponse,
|
|
31
|
+
isWritableWithoutResponse
|
|
32
|
+
}) => uuid.toLowerCase() === CURRENT_TIME && (isWritableWithResponse || isWritableWithoutResponse);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Sets the device clock through the Current Time Service.
|
|
36
|
+
*
|
|
37
|
+
* Resolves to the time written, or `undefined` when the device has no writable Current Time
|
|
38
|
+
* characteristic. A device that refuses the write rejects.
|
|
39
|
+
*/
|
|
40
|
+
const writeCurrentTime = async (device, {
|
|
41
|
+
now,
|
|
42
|
+
timezone
|
|
43
|
+
}) => {
|
|
44
|
+
const characteristics = await device.characteristicsForService(CURRENT_TIME_SERVICE).catch(() => []);
|
|
45
|
+
const characteristic = characteristics.find(isWritableCurrentTime);
|
|
46
|
+
if (!characteristic) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const time = now?.() ?? new Date();
|
|
50
|
+
const value = _buffer.Buffer.from(currentTimeBytes((0, _clockSync.getClockParts)(time, timezone))).toString("base64");
|
|
51
|
+
if (characteristic.isWritableWithResponse) {
|
|
52
|
+
await device.writeCharacteristicWithResponseForService(CURRENT_TIME_SERVICE, CURRENT_TIME, value);
|
|
53
|
+
} else {
|
|
54
|
+
await device.writeCharacteristicWithoutResponseForService(CURRENT_TIME_SERVICE, CURRENT_TIME, value);
|
|
55
|
+
}
|
|
56
|
+
return time;
|
|
57
|
+
};
|
|
58
|
+
exports.writeCurrentTime = writeCurrentTime;
|
|
59
|
+
//# sourceMappingURL=bt-current-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_buffer","require","_clockSync","_sigUuid","CURRENT_TIME_SERVICE","sigUuid","CURRENT_TIME","SUNDAY","BYTE_MASK","BITS_PER_BYTE","NO_FRACTION","MANUAL_TIME_UPDATE","dayOfWeek","year","month","day","Date","UTC","getUTCDay","currentTimeBytes","parts","hours","minutes","seconds","isWritableCurrentTime","uuid","isWritableWithResponse","isWritableWithoutResponse","toLowerCase","writeCurrentTime","device","now","timezone","characteristics","characteristicsForService","catch","characteristic","find","undefined","time","value","Buffer","from","getClockParts","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-current-time.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,oBAAoB,GAAG,IAAAC,gBAAO,EAAC,MAAM,CAAC;AAC5C,MAAMC,YAAY,GAAG,IAAAD,gBAAO,EAAC,MAAM,CAAC;AAEpC,MAAME,MAAM,GAAG,CAAC;AAChB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,aAAa,GAAG,CAAC;AACvB,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,kBAAkB,GAAG,IAAI;AAI/B;AACA,MAAMC,SAAS,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAmB,CAAC,KACpD,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,CAACJ,IAAI,EAAEC,KAAK,GAAG,CAAC,EAAEC,GAAG,CAAC,CAAC,CAACG,SAAS,CAAC,CAAC,IAAIX,MAAM;;AAEhE;AACA,MAAMY,gBAAgB,GAAIC,KAAoB,IAAe,CAC3DA,KAAK,CAACP,IAAI,GAAGL,SAAS,EACtBY,KAAK,CAACP,IAAI,IAAIJ,aAAa,EAC3BW,KAAK,CAACN,KAAK,EACXM,KAAK,CAACL,GAAG,EACTK,KAAK,CAACC,KAAK,EACXD,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,OAAO,EACbX,SAAS,CAACQ,KAAK,CAAC,EAChBV,WAAW,EACXC,kBAAkB,CACnB;AAED,MAAMa,qBAAqB,GAAGA,CAAC;EAC7BC,IAAI;EACJC,sBAAsB;EACtBC;AACc,CAAC,KACfF,IAAI,CAACG,WAAW,CAAC,CAAC,KAAKtB,YAAY,KAAKoB,sBAAsB,IAAIC,yBAAyB,CAAC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAgB,GAAG,MAAAA,CACvBC,MAAc,EACd;EAAEC,GAAG;EAAEC;AAA2B,CAAC,KACL;EAC9B,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,yBAAyB,CAAC9B,oBAAoB,CAAC,CAAC+B,KAAK,CAAC,MAAM,EAAE,CAAC;EACpG,MAAMC,cAAc,GAAGH,eAAe,CAACI,IAAI,CAACb,qBAAqB,CAAC;EAElE,IAAI,CAACY,cAAc,EAAE;IACnB,OAAOE,SAAS;EAClB;EAEA,MAAMC,IAAI,GAAGR,GAAG,GAAG,CAAC,IAAI,IAAIf,IAAI,CAAC,CAAC;EAClC,MAAMwB,KAAK,GAAGC,cAAM,CAACC,IAAI,CAACvB,gBAAgB,CAAC,IAAAwB,wBAAa,EAACJ,IAAI,EAAEP,QAAQ,CAAC,CAAC,CAAC,CAACY,QAAQ,CAAC,QAAQ,CAAC;EAE7F,IAAIR,cAAc,CAACV,sBAAsB,EAAE;IACzC,MAAMI,MAAM,CAACe,yCAAyC,CAACzC,oBAAoB,EAAEE,YAAY,EAAEkC,KAAK,CAAC;EACnG,CAAC,MAAM;IACL,MAAMV,MAAM,CAACgB,4CAA4C,CAAC1C,oBAAoB,EAAEE,YAAY,EAAEkC,KAAK,CAAC;EACtG;EAEA,OAAOD,IAAI;AACb,CAAC;AAACQ,OAAA,CAAAlB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -7,50 +7,31 @@ exports.readDeviceInformation = void 0;
|
|
|
7
7
|
var _buffer = require("buffer");
|
|
8
8
|
var _sentryLogger = require("../../../helpers/utils/sentry-logger.js");
|
|
9
9
|
var _bluetoothError = require("../../types/bluetooth-error.js");
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const wait = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds));
|
|
17
|
-
const readDeviceInformation = async (device, onDeviceInfo) => {
|
|
10
|
+
var _btPairingRetry = require("./bt-pairing-retry.js");
|
|
11
|
+
const GENERIC_ACCESS_SERVICE = "00001800-0000-1000-8000-00805f9b34fb";
|
|
12
|
+
const DEVICE_INFORMATION_SERVICE = "0000180a-0000-1000-8000-00805f9b34fb";
|
|
13
|
+
const INFORMATION_CHARACTERISTICS = [["name", GENERIC_ACCESS_SERVICE, "00002a00-0000-1000-8000-00805f9b34fb"], ["manufacturerName", DEVICE_INFORMATION_SERVICE, "00002a29-0000-1000-8000-00805f9b34fb"], ["model", DEVICE_INFORMATION_SERVICE, "00002a24-0000-1000-8000-00805f9b34fb"], ["serialNumber", DEVICE_INFORMATION_SERVICE, "00002a25-0000-1000-8000-00805f9b34fb"]];
|
|
14
|
+
const textOf = base64 => _buffer.Buffer.from(base64, "base64").toString("utf8").replace(/\0+$/, "").trim();
|
|
15
|
+
const readDeviceInformation = async (device, onDeviceInfo, retryAfterPairing = _btPairingRetry.runOnce) => {
|
|
18
16
|
const read = device.readCharacteristicForService;
|
|
19
17
|
if (typeof read !== "function") {
|
|
20
18
|
return;
|
|
21
19
|
}
|
|
22
20
|
const info = {};
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const characteristic = await read.call(device, serviceUuid, characteristicUuid);
|
|
30
|
-
const value = characteristic?.value;
|
|
31
|
-
if (!value) {
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
const text = _buffer.Buffer.from(value, "base64").toString("utf8").replace(/\0+$/, "").trim();
|
|
35
|
-
if (text) {
|
|
36
|
-
info[key] = text;
|
|
37
|
-
}
|
|
38
|
-
} catch (error) {
|
|
39
|
-
// Optional GAP/Device Information characteristics are not present on every device.
|
|
40
|
-
(0, _sentryLogger.sentryLogger)("info", "DEVICE: Optional device information unavailable", {
|
|
41
|
-
characteristicUuid,
|
|
42
|
-
errorCode: (0, _bluetoothError.toBluetoothError)(error).code
|
|
43
|
-
});
|
|
44
|
-
if (attempt < MAX_PAIRING_RETRIES && isPairingAuthenticationError(error)) {
|
|
45
|
-
retry.push([key, serviceUuid, characteristicUuid]);
|
|
46
|
-
}
|
|
21
|
+
for (const [key, serviceUuid, characteristicUuid] of INFORMATION_CHARACTERISTICS) {
|
|
22
|
+
try {
|
|
23
|
+
const characteristic = await retryAfterPairing(() => read.call(device, serviceUuid, characteristicUuid));
|
|
24
|
+
const text = characteristic?.value ? textOf(characteristic.value) : "";
|
|
25
|
+
if (text) {
|
|
26
|
+
info[key] = text;
|
|
47
27
|
}
|
|
28
|
+
} catch (error) {
|
|
29
|
+
// Optional GAP/Device Information characteristics are not present on every device.
|
|
30
|
+
(0, _sentryLogger.sentryLogger)("info", "DEVICE: Optional device information unavailable", {
|
|
31
|
+
characteristicUuid,
|
|
32
|
+
errorCode: (0, _bluetoothError.toBluetoothError)(error).code
|
|
33
|
+
});
|
|
48
34
|
}
|
|
49
|
-
if (!retry.length) {
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
await wait(PAIRING_RETRY_DELAY_MS * (attempt + 1));
|
|
53
|
-
pending = retry;
|
|
54
35
|
}
|
|
55
36
|
if (Object.keys(info).length > 0) {
|
|
56
37
|
onDeviceInfo?.(info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_buffer","require","_sentryLogger","_bluetoothError","
|
|
1
|
+
{"version":3,"names":["_buffer","require","_sentryLogger","_bluetoothError","_btPairingRetry","GENERIC_ACCESS_SERVICE","DEVICE_INFORMATION_SERVICE","INFORMATION_CHARACTERISTICS","textOf","base64","Buffer","from","toString","replace","trim","readDeviceInformation","device","onDeviceInfo","retryAfterPairing","runOnce","read","readCharacteristicForService","info","key","serviceUuid","characteristicUuid","characteristic","call","text","value","error","sentryLogger","errorCode","toBluetoothError","code","Object","keys","length","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-device-information.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AASA,MAAMI,sBAAsB,GAAG,sCAAsC;AACrE,MAAMC,0BAA0B,GAAG,sCAAsC;AAEzE,MAAMC,2BAAmF,GAAG,CAC1F,CAAC,MAAM,EAAEF,sBAAsB,EAAE,sCAAsC,CAAC,EACxE,CAAC,kBAAkB,EAAEC,0BAA0B,EAAE,sCAAsC,CAAC,EACxF,CAAC,OAAO,EAAEA,0BAA0B,EAAE,sCAAsC,CAAC,EAC7E,CAAC,cAAc,EAAEA,0BAA0B,EAAE,sCAAsC,CAAC,CACrF;AAED,MAAME,MAAM,GAAIC,MAAc,IAC5BC,cAAM,CAACC,IAAI,CAACF,MAAM,EAAE,QAAQ,CAAC,CAACG,QAAQ,CAAC,MAAM,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;AAE3E,MAAMC,qBAAqB,GAAG,MAAAA,CAC5BC,MAAc,EACdC,YAAkD,EAClDC,iBAA+B,GAAGC,uBAAO,KACvB;EAClB,MAAMC,IAAI,GAAGJ,MAAM,CAACK,4BAA4B;EAEhD,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9B;EACF;EAEA,MAAME,IAAyB,GAAG,CAAC,CAAC;EAEpC,KAAK,MAAM,CAACC,GAAG,EAAEC,WAAW,EAAEC,kBAAkB,CAAC,IAAIlB,2BAA2B,EAAE;IAChF,IAAI;MACF,MAAMmB,cAAc,GAAG,MAAMR,iBAAiB,CAAC,MAC7CE,IAAI,CAACO,IAAI,CAACX,MAAM,EAAEQ,WAAW,EAAEC,kBAAkB,CACnD,CAAC;MAED,MAAMG,IAAI,GAAGF,cAAc,EAAEG,KAAK,GAAGrB,MAAM,CAACkB,cAAc,CAACG,KAAK,CAAC,GAAG,EAAE;MAEtE,IAAID,IAAI,EAAE;QACRN,IAAI,CAACC,GAAG,CAAC,GAAGK,IAAI;MAClB;IACF,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd;MACA,IAAAC,0BAAY,EAAC,MAAM,EAAE,iDAAiD,EAAE;QACtEN,kBAAkB;QAClBO,SAAS,EAAE,IAAAC,gCAAgB,EAACH,KAAK,CAAC,CAACI;MACrC,CAAC,CAAC;IACJ;EACF;EAEA,IAAIC,MAAM,CAACC,IAAI,CAACd,IAAI,CAAC,CAACe,MAAM,GAAG,CAAC,EAAE;IAChCpB,YAAY,GAAGK,IAAI,CAAC;EACtB;AACF,CAAC;AAACgB,OAAA,CAAAvB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -93,6 +93,13 @@ class BTManagedDevice {
|
|
|
93
93
|
/** Only declarations with an actual bonding flow should report this event. */
|
|
94
94
|
reportsBondedEvent = false;
|
|
95
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Writes the phone's time to the device's Current Time characteristic on connect, when it
|
|
98
|
+
* has a writable one. Only for a device whose clock has no protocol of its own, and never
|
|
99
|
+
* once the app turned clock synchronisation off.
|
|
100
|
+
*/
|
|
101
|
+
syncsCurrentTime = false;
|
|
102
|
+
|
|
96
103
|
/**
|
|
97
104
|
* Decides whether the buffer holds a parseable frame.
|
|
98
105
|
*
|
|
@@ -133,12 +140,14 @@ class BTManagedDevice {
|
|
|
133
140
|
onConnectionEvent: onConnectionEventCallback,
|
|
134
141
|
onDeviceDisconnected: onDeviceDisconnectedCallback,
|
|
135
142
|
oneReadingPerConnection,
|
|
136
|
-
resultPolicy
|
|
143
|
+
resultPolicy,
|
|
144
|
+
clockSync
|
|
137
145
|
}) {
|
|
138
146
|
this.device = device;
|
|
139
147
|
this.oneReadingPerConnection = oneReadingPerConnection === true;
|
|
140
148
|
this.resultPolicy = resultPolicy;
|
|
141
149
|
this.policyPicksDelivery = resultPolicy?.default !== undefined || resultPolicy?.byMeasurement !== undefined;
|
|
150
|
+
this.clockSyncOptions = clockSync;
|
|
142
151
|
(0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Creating BTManagedDevice");
|
|
143
152
|
this.deviceData = {
|
|
144
153
|
id: device.id,
|
|
@@ -296,6 +305,7 @@ class BTManagedDevice {
|
|
|
296
305
|
});
|
|
297
306
|
}
|
|
298
307
|
};
|
|
308
|
+
currentTimeSync = () => this.syncsCurrentTime && (0, _clockSync.isClockSyncEnabled)(this.clockSyncOptions) ? this.clockSyncOptions ?? {} : undefined;
|
|
299
309
|
connectInternal = async () => {
|
|
300
310
|
this.resultReportedThisConnection = false;
|
|
301
311
|
this.reportedMeasurementKinds.clear();
|
|
@@ -352,6 +362,7 @@ class BTManagedDevice {
|
|
|
352
362
|
},
|
|
353
363
|
onServicesDiscovered: uuids => sequencer.onServicesDiscovered?.(uuids),
|
|
354
364
|
initialCommands: () => sequencer.initialCommands(),
|
|
365
|
+
currentTimeSync: this.currentTimeSync(),
|
|
355
366
|
onCommandSent: () => {
|
|
356
367
|
this.dataProcessor?.armStuckTimeout();
|
|
357
368
|
this.dataProcessor?.armCommandTimeout();
|