@ovok/native 1.16.1-dev.2185 → 1.16.1-dev.2189
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 +13 -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 +7 -0
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +20 -1
- package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +4 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +21 -4
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.js +75 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.recorder.js +52 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.recorder.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.recording-watch.js +17 -15
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.recording-watch.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.waveform.js +27 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.waveform.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.js +13 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/device-waveform.js +6 -0
- package/lib/commonjs/modules/bt-management/types/device-waveform.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/i-16-from-hex.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js +27 -1
- package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/connections.js +32 -1
- package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/errors.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/runtime.js +21 -1
- package/lib/commonjs/modules/next/bluetooth/runtime.js.map +1 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +13 -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 +7 -0
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +20 -1
- package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +4 -0
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +21 -4
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.js +72 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.recorder.js +48 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.recorder.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.recording-watch.js +17 -15
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.recording-watch.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.waveform.js +22 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.waveform.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.js +14 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.js.map +1 -1
- package/lib/module/modules/bt-management/types/device-waveform.js +4 -0
- package/lib/module/modules/bt-management/types/device-waveform.js.map +1 -0
- package/lib/module/modules/bt-management/utils/i-16-from-hex.js.map +1 -1
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js +27 -1
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/connections.js +32 -1
- package/lib/module/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/errors.js.map +1 -1
- package/lib/module/modules/next/bluetooth/runtime.js +21 -1
- package/lib/module/modules/next/bluetooth/runtime.js.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/hooks/runtime-context.d.ts +3 -0
- 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 +4 -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/compile-custom-lepu.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/custom/custom.device.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.d.ts +42 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.recording-watch.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.recording-watch.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.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-lepu-spec.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-waveform.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-waveform.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/i-16-from-hex.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/i-16-from-hex.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts +10 -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 +13 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.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/runtime.d.ts +11 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +28 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.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/hooks/runtime-context.d.ts +3 -0
- 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 +4 -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/compile-custom-lepu.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/custom/custom.device.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.d.ts +42 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts +30 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recording-watch.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recording-watch.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.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-lepu-spec.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-waveform.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-waveform.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/i-16-from-hex.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/i-16-from-hex.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts +10 -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 +13 -0
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/errors.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/runtime.d.ts +11 -1
- package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +28 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import { ClockSyncOptions } from "../types/clock-sync";
|
|
|
5
5
|
import { DeviceConnectionEvent } from "../types/device-connection-event";
|
|
6
6
|
import { DeviceKeyOf } from "../types/device-key-of";
|
|
7
7
|
import { DeviceStatusChangeCallback } from "../types/device-status-change-callback";
|
|
8
|
+
import { DeviceWaveform } from "../types/device-waveform";
|
|
8
9
|
import { ErrorCallback } from "../types/error-callback";
|
|
9
10
|
import { OpenSeries } from "../types/measurement-series";
|
|
10
11
|
import { ResultCallback } from "../types/result-callback";
|
|
@@ -150,6 +151,8 @@ declare class BTManager<T extends readonly AcceptedDevice[]> {
|
|
|
150
151
|
onDeviceStatusChanged: (callback?: (data: DeviceStatusChangeCallback) => void) => void;
|
|
151
152
|
/** Sets the callback called for device connection events. */
|
|
152
153
|
onConnectionEvent: (callback?: (data: DeviceConnectionEvent) => void) => void;
|
|
154
|
+
/** Sets the callback called with the live ECG samples of recording devices; for display, never saved. */
|
|
155
|
+
onWaveform: (callback?: (waveform: DeviceWaveform) => void) => void;
|
|
153
156
|
/** Sets the callback called with each result; series that closed while nobody listened are delivered first. */
|
|
154
157
|
onResult: (callback?: (data: ResultCallback<DeviceKeyOf<T>>) => void) => void;
|
|
155
158
|
private onResultCallback?;
|
|
@@ -157,6 +160,7 @@ declare class BTManager<T extends readonly AcceptedDevice[]> {
|
|
|
157
160
|
private onDeviceFoundCallback?;
|
|
158
161
|
private onDeviceStatusChangedCallback?;
|
|
159
162
|
private onConnectionEventCallback?;
|
|
163
|
+
private onWaveformCallback?;
|
|
160
164
|
private onScanResult;
|
|
161
165
|
private queueAutoConnect;
|
|
162
166
|
/** Connecting without a timeout leaves the request with the system until the device is in range. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,MAAM,EAIP,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,+BAA+B;AAC/B,UAAU,gBAAgB;IAExB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAExC,wDAAwD;IACxD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE7D;;;OAGG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAE5C,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAEvC,sCAAsC;IACtC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,gFAAgF;IAChF,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,qFAAqF;IACrF,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE;QACtC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACtC,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACtD,KAAK,IAAI,CAAC;CACZ;AAED,yFAAyF;AACzF,KAAK,iBAAiB,GAAG,IAAI,CAC3B,eAAe,EACf,IAAI,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAC3C,CAAC;AAUF,uFAAuF;AACvF,cAAM,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAyB/C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA1B1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IACrE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,oBAAoB,CAAqB;IAEjD,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,qBAAqB,CAAsD;IACnF,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,WAAW,CAA6C;gBAG7C,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,EAClB,OAAO,GAAE,gBAAqB;IAOjD,uGAAuG;IAChG,cAAc,GACnB,kBAAkB,OAAO,GAAG;QAC1B,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,yBAAyB,CAAC,EAAE,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;KAC3E,EACD,UAAU,MAAM,EAChB,4BAA4B,gBAAgB,CAAC,2BAA2B,CAAC,KACxE,IAAI,CAwBL;IAEF,oEAAoE;IAC7D,OAAO,aAeZ;IAEF,mGAAmG;IAC5F,aAAa,QAAO,SAAS,UAAU,EAAE,CAA0B;IAE1E,0FAA0F;IACnF,mBAAmB,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAAoC;IAErG,sGAAsG;IAC/F,SAAS,aAoEd;IAEF,+EAA+E;IACxE,wBAAwB,GAAI,SAAS,OAAO,KAAG,IAAI,CAUxD;IAEF,wEAAwE;IACjE,QAAQ,aAyBb;IAEF;;;;;OAKG;IACI,SAAS,aAQd;IAEF;;;;;OAKG;IACI,UAAU,aAOf;IAEF,OAAO,CAAC,WAAW,CAQjB;IAEF,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,eAAe,CAUrB;IAEF,OAAO,CAAC,iBAAiB,CASvB;IAEF,OAAO,CAAC,yBAAyB,CAgB/B;IAEF,OAAO,CAAC,eAAe,CAgErB;IAEF,+FAA+F;IACxF,cAAc,GAAI,SAAS,SAAS,MAAM,EAAE,UAKjD;IAEF;;;;;;;OAOG;IACI,cAAc,GAAI,WAAW,SAAS,MAAM,EAAE,KAAG,IAAI,CAS1D;IAEF,iFAAiF;IAC1E,gBAAgB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;IAEF;;;;OAIG;IACI,aAAa,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;IAEF,2FAA2F;IACpF,MAAM,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAGrD;IAEF,kEAAkE;IAC3D,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEF,sDAAsD;IAC/C,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEF,0EAA0E;IACnE,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEF,6DAA6D;IACtD,iBAAiB,GACtB,WAAW,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,UAIhD;IAEF,yGAAyG;IAClG,UAAU,GAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,UAEhE;IAEF,+GAA+G;IACxG,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAOzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IACV,OAAO,CAAC,yBAAyB,CAAC,CAAwC;IAC1E,OAAO,CAAC,kBAAkB,CAAC,CAAqC;IAEhE,OAAO,CAAC,YAAY,CA0FlB;IAEF,OAAO,CAAC,gBAAgB,CAmDtB;IAEF,oGAAoG;IACpG,OAAO,CAAC,wBAAwB,CAyB9B;IAEF,OAAO,CAAC,qBAAqB,CAM3B;IAEF,OAAO,CAAC,8BAA8B,CAapC;CACH;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-custom-lepu.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-lepu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"compile-custom-lepu.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-lepu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAsP9D;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,MAAM,gBAAgB,EACtB,cAAc,SAAS,MAAM,EAAE,KAC9B,cAAc,GAAG,SA8GnB,CAAC"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { DeviceData } from "../../types/device-data";
|
|
|
8
8
|
import { DeviceKey } from "../../types/device-key";
|
|
9
9
|
import { MeasurementTypeForDevices } from "../../types/device-measurement-map";
|
|
10
10
|
import { DeviceStatus } from "../../types/device-status";
|
|
11
|
+
import { DeviceWaveform } from "../../types/device-waveform";
|
|
11
12
|
import { FrameReader } from "../../types/frame-reader";
|
|
12
13
|
import { IBTManagedDevice } from "../../types/i-bt-managed-device";
|
|
13
14
|
import { IMedicalDevice } from "../../types/i-medical-device";
|
|
@@ -118,13 +119,15 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
|
|
|
118
119
|
onDeviceDisconnected?: () => void;
|
|
119
120
|
/** Called for connection lifecycle events such as connected, bonded or history download. */
|
|
120
121
|
onConnectionEvent?: (data: DeviceConnectionEvent) => void;
|
|
122
|
+
/** Called with the ECG samples of each realtime answer while a recorder records; for display only. */
|
|
123
|
+
onWaveform?: (waveform: DeviceWaveform) => void;
|
|
121
124
|
/** How results of this kind are reported. */
|
|
122
125
|
protected policyFor: (measurementTypeKey: MeasurementTypeKey) => ResultPolicy;
|
|
123
126
|
/** Reports a sequencer's result; the cast to this device's result type lives here once. */
|
|
124
127
|
protected reportResult: (result: object) => void;
|
|
125
128
|
constructor(
|
|
126
129
|
/** The underlying BLE device. */
|
|
127
|
-
device: Device, { deviceName, onError: onErrorCallback, onDeviceStatusChanged: onDeviceStatusChangedCallback, onResult: onResultCallback, onSeriesValue: onSeriesValueCallback, onConnectionEvent: onConnectionEventCallback, onDeviceDisconnected: onDeviceDisconnectedCallback, oneReadingPerConnection, resultPolicy, clockSync, }: CreateDeviceParams<T>);
|
|
130
|
+
device: Device, { deviceName, onError: onErrorCallback, onDeviceStatusChanged: onDeviceStatusChangedCallback, onResult: onResultCallback, onSeriesValue: onSeriesValueCallback, onConnectionEvent: onConnectionEventCallback, onWaveform: onWaveformCallback, onDeviceDisconnected: onDeviceDisconnectedCallback, oneReadingPerConnection, resultPolicy, clockSync, }: CreateDeviceParams<T>);
|
|
128
131
|
/** Stops the connection and data processing and clears the callbacks. */
|
|
129
132
|
destroy: () => void;
|
|
130
133
|
/** Stops this device's subscriptions and closes its BLE connection. */
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAaxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,EAAsB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAU7E;;;GAGG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAC/E,YAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
|
|
|
29
29
|
private readonly sessionPolicy;
|
|
30
30
|
private readonly sessionAggregates;
|
|
31
31
|
private readonly lepuSession;
|
|
32
|
-
private
|
|
32
|
+
private recorder;
|
|
33
33
|
private requestedStop;
|
|
34
34
|
private sessionStartedAt;
|
|
35
35
|
constructor(device: Device, params: CreateDeviceParams<CustomDeviceId>, definition: CustomDeviceDefinition);
|
|
@@ -51,6 +51,7 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
|
|
|
51
51
|
stopRecording: () => Promise<void>;
|
|
52
52
|
/** ECG files are read again only on the poll answer that says a record was just saved. */
|
|
53
53
|
private watchRecording;
|
|
54
|
+
private reportSamples;
|
|
54
55
|
private takeStopRequest;
|
|
55
56
|
private reportRecording;
|
|
56
57
|
private reportViatomEcgFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAE9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAQvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAwBvD,KAAK,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACvE,KAAK,YAAY,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;AAQjE;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IACjD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkD;IAC7E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { MeasurementTypeKey } from "@ovok/core/next";
|
|
2
|
+
import { CaseType } from "../../../types/case-type";
|
|
3
|
+
import { Waveform } from "./lepu.waveform";
|
|
4
|
+
/** A stretch of a recording sent live, before the device's own file supersedes it. */
|
|
5
|
+
interface LiveEcgChunk {
|
|
6
|
+
measurementTypeKey: MeasurementTypeKey.ecg;
|
|
7
|
+
caseType: CaseType.RESULT;
|
|
8
|
+
/** The samples, in millivolts. */
|
|
9
|
+
diagramPoints: number[];
|
|
10
|
+
/** Seconds of samples it holds. */
|
|
11
|
+
duration: number;
|
|
12
|
+
/** When its first sample was taken. */
|
|
13
|
+
recordedAt: Date;
|
|
14
|
+
/** `<recording key>-live-<n>`, the key being the device's file name for the recording. */
|
|
15
|
+
recordingId: string;
|
|
16
|
+
/** Taken live, so the device's file for the same span supersedes it. */
|
|
17
|
+
live: true;
|
|
18
|
+
/** Samples received out of those expected for its span, 0 to 1; below 1 means gaps. */
|
|
19
|
+
coverage: number;
|
|
20
|
+
}
|
|
21
|
+
/** Collects one recording's live samples and hands them over in chunks of five minutes or less. */
|
|
22
|
+
declare class LiveEcgChunks {
|
|
23
|
+
private readonly waveform;
|
|
24
|
+
private readonly onChunk;
|
|
25
|
+
private counts;
|
|
26
|
+
private startedAt;
|
|
27
|
+
private lastAt;
|
|
28
|
+
private recordingKey;
|
|
29
|
+
private index;
|
|
30
|
+
constructor(waveform: Waveform, onChunk: (chunk: LiveEcgChunk) => void);
|
|
31
|
+
/** Adds the samples an answer at `at` carried, `recordedSeconds` into the recording. */
|
|
32
|
+
append: (samples: readonly number[], at: Date, recordedSeconds: number) => void;
|
|
33
|
+
/** Hands over what has been collected; the recording may continue into a further chunk. */
|
|
34
|
+
flush: () => void;
|
|
35
|
+
/** Hands over the rest and forgets the recording, so the next one starts its own chunks. */
|
|
36
|
+
endRecording: () => void;
|
|
37
|
+
private secondsOf;
|
|
38
|
+
private coverage;
|
|
39
|
+
}
|
|
40
|
+
export { LiveEcgChunks };
|
|
41
|
+
export type { LiveEcgChunk };
|
|
42
|
+
//# sourceMappingURL=lepu.live-ecg-chunks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lepu.live-ecg-chunks.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.live-ecg-chunks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAgB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQzD,sFAAsF;AACtF,UAAU,YAAY;IACpB,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;IAE1B,kCAAkC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,UAAU,EAAE,IAAI,CAAC;IAEjB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IAEpB,wEAAwE;IACxE,IAAI,EAAE,IAAI,CAAC;IAEX,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mGAAmG;AACnG,cAAM,aAAa;IAQf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,KAAK,CAAK;gBAGC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI;IAGzD,wFAAwF;IACjF,MAAM,GAAI,SAAS,SAAS,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE,iBAAiB,MAAM,KAAG,IAAI,CASnF;IAEF,2FAA2F;IACpF,KAAK,QAAO,IAAI,CAmBrB;IAEF,4FAA4F;IACrF,YAAY,QAAO,IAAI,CAI5B;IAEF,OAAO,CAAC,SAAS,CAAqE;IAEtF,OAAO,CAAC,QAAQ,CAKd;CACH;AASD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CustomLepuSpec } from "../../../types/custom-lepu-spec";
|
|
2
|
+
import { DeviceConnectionEvent } from "../../../types/device-connection-event";
|
|
3
|
+
import { LiveEcgChunk } from "./lepu.live-ecg-chunks";
|
|
4
|
+
type RecordingStatus = NonNullable<CustomLepuSpec["recordingStatus"]>;
|
|
5
|
+
interface LepuRecorderCallbacks {
|
|
6
|
+
onRecordingChanged: (recording: DeviceConnectionEvent["recording"]) => void;
|
|
7
|
+
/** The samples of one answer while recording, for display. */
|
|
8
|
+
onSamples: (samples: readonly number[], at: Date) => void;
|
|
9
|
+
/** A chunk of the recording, to be saved. */
|
|
10
|
+
onChunk: (chunk: LiveEcgChunk) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Follows a recorder's open recording through its poll answers: reports its state, feeds the live
|
|
14
|
+
* trace while it records, and hands its samples over in chunks.
|
|
15
|
+
*/
|
|
16
|
+
declare class LepuRecorder {
|
|
17
|
+
private readonly status;
|
|
18
|
+
private readonly callbacks;
|
|
19
|
+
private readonly watch;
|
|
20
|
+
private readonly chunks;
|
|
21
|
+
constructor(status: RecordingStatus, callbacks: LepuRecorderCallbacks);
|
|
22
|
+
/** Reads one poll answer; true when it is the first in the saved state, so the files are read. */
|
|
23
|
+
observe: (pollAnswer: readonly string[]) => boolean;
|
|
24
|
+
isOpen: () => boolean;
|
|
25
|
+
/** Hands over what is collected, for a connection that is ending. */
|
|
26
|
+
flush: () => void;
|
|
27
|
+
private record;
|
|
28
|
+
}
|
|
29
|
+
export { LepuRecorder };
|
|
30
|
+
//# sourceMappingURL=lepu.recorder.d.ts.map
|
package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.recorder.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lepu.recorder.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAiB,MAAM,wBAAwB,CAAC;AAIrE,KAAK,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEtE,UAAU,qBAAqB;IAC7B,kBAAkB,EAAE,CAAC,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAE5E,8DAA8D;IAC9D,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAE1D,6CAA6C;IAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,cAAM,YAAY;IAKd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;gBAGhC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,qBAAqB;IAMnD,kGAAkG;IAC3F,OAAO,GAAI,YAAY,SAAS,MAAM,EAAE,KAAG,OAAO,CAYvD;IAEK,MAAM,QAAO,OAAO,CAAwB;IAEnD,qEAAqE;IAC9D,KAAK,QAAO,IAAI,CAAyB;IAEhD,OAAO,CAAC,MAAM,CAcZ;CACH;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -7,6 +7,7 @@ declare class LepuRecordingWatch {
|
|
|
7
7
|
private readonly status;
|
|
8
8
|
private readonly onRecordingChanged;
|
|
9
9
|
private state;
|
|
10
|
+
private seconds;
|
|
10
11
|
private leadOffSince;
|
|
11
12
|
private reported;
|
|
12
13
|
constructor(status: RecordingStatus, onRecordingChanged: (recording: Recording | undefined) => void);
|
|
@@ -14,6 +15,10 @@ declare class LepuRecordingWatch {
|
|
|
14
15
|
observe: (pollAnswer: readonly string[]) => boolean;
|
|
15
16
|
/** Whether a recording is open, so that stopping it means something. */
|
|
16
17
|
isOpen: () => boolean;
|
|
18
|
+
/** Whether the electrodes have contact and samples are being recorded. */
|
|
19
|
+
isRecording: () => boolean;
|
|
20
|
+
/** Seconds recorded, as of the last answer. */
|
|
21
|
+
recordedSeconds: () => number;
|
|
17
22
|
private recordingIn;
|
|
18
23
|
private isLeadOff;
|
|
19
24
|
/** Reports a change in what the app would act on, not every tick of the seconds. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lepu.recording-watch.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.recording-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAO/E,KAAK,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEtE,KAAK,SAAS,GAAG,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjE,oEAAoE;AACpE,cAAM,kBAAkB;
|
|
1
|
+
{"version":3,"file":"lepu.recording-watch.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.recording-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAO/E,KAAK,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEtE,KAAK,SAAS,GAAG,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjE,oEAAoE;AACpE,cAAM,kBAAkB;IAOpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAPrC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAqB;gBAGlB,MAAM,EAAE,eAAe,EACvB,kBAAkB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI;IAGjF,kGAAkG;IAC3F,OAAO,GAAI,YAAY,SAAS,MAAM,EAAE,KAAG,OAAO,CASvD;IAEF,wEAAwE;IACjE,MAAM,QAAO,OAAO,CAA2C;IAEtE,0EAA0E;IACnE,WAAW,QAAO,OAAO,CAA8C;IAE9E,+CAA+C;IACxC,eAAe,QAAO,MAAM,CAAiB;IAEpD,OAAO,CAAC,WAAW,CAOH;IAEhB,OAAO,CAAC,SAAS,CAA0D;IAE3E,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAYZ;CACH;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CustomLepuSpec } from "../../../types/custom-lepu-spec";
|
|
2
|
+
type Waveform = NonNullable<NonNullable<CustomLepuSpec["recordingStatus"]>["waveform"]>;
|
|
3
|
+
/** The raw sample counts a poll answer carries, never more than the frame holds. */
|
|
4
|
+
declare const waveformSamples: (pollAnswer: readonly string[], waveform: Waveform) => number[];
|
|
5
|
+
/** One count in millivolts; the no-signal marker reads as 0. */
|
|
6
|
+
declare const millivoltsOf: (count: number, waveform: Waveform) => number;
|
|
7
|
+
export { millivoltsOf, waveformSamples };
|
|
8
|
+
export type { Waveform };
|
|
9
|
+
//# sourceMappingURL=lepu.waveform.d.ts.map
|
package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.waveform.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lepu.waveform.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,KAAK,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAMxF,oFAAoF;AACpF,QAAA,MAAM,eAAe,GAAI,YAAY,SAAS,MAAM,EAAE,EAAE,UAAU,QAAQ,KAAG,MAAM,EAOlF,CAAC;AAEF,gEAAgE;AAChE,QAAA,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,UAAU,QAAQ,KAAG,MACkB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;AACzC,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viatom.ecg-recording-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"viatom.ecg-recording-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.ecg-recording-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,gEAAgE;AAChE,QAAA,MAAM,eAAe,KAAK,CAAC;AAC3B,QAAA,MAAM,eAAe,IAAI,CAAC;AAoB1B,4EAA4E;AAC5E,QAAA,MAAM,qBAAqB,GACzB,gBAAgB,MAAM,KACrB,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAgB9C,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { DeviceConnectionEvent } from "./device-connection-event";
|
|
|
6
6
|
import { DeviceData } from "./device-data";
|
|
7
7
|
import { DeviceKey } from "./device-key";
|
|
8
8
|
import { DeviceStatusChangeCallback } from "./device-status-change-callback";
|
|
9
|
+
import { DeviceWaveform } from "./device-waveform";
|
|
9
10
|
import { ErrorCallback } from "./error-callback";
|
|
10
11
|
import { ResultCallback } from "./result-callback";
|
|
11
12
|
import { DeviceResultPolicy } from "./result-policy";
|
|
@@ -22,6 +23,8 @@ export interface CreateDeviceParams<T extends DeviceKey> {
|
|
|
22
23
|
onSeriesValue?: (deviceData: DeviceData, reading: Measurement) => boolean;
|
|
23
24
|
hasResultReceiver?: () => boolean;
|
|
24
25
|
onConnectionEvent?: (data: DeviceConnectionEvent) => void;
|
|
26
|
+
/** Called with the ECG samples of each realtime answer while a recorder records; for display only. */
|
|
27
|
+
onWaveform?: (waveform: DeviceWaveform) => void;
|
|
25
28
|
onDeviceDisconnected?: () => void;
|
|
26
29
|
oneReadingPerConnection?: boolean;
|
|
27
30
|
deliveredEcgFileNames?: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-device-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/create-device-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"create-device-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/create-device-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAE1D,sGAAsG;IACtG,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,sHAAsH;IACtH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAE5C,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
|
|
@@ -83,6 +83,17 @@ export interface CustomLepuSpec {
|
|
|
83
83
|
minimumStoredSeconds: number;
|
|
84
84
|
/** The opcode that stops the recording, storing it when it is long enough. */
|
|
85
85
|
stopCommand: number;
|
|
86
|
+
/** Where a poll answer carries the ECG samples taken since the last one, for live display and chunks. */
|
|
87
|
+
waveform?: {
|
|
88
|
+
/** Index of the u16 little-endian sample count, header included; int16 samples follow it. */
|
|
89
|
+
countByteIndex: number;
|
|
90
|
+
/** Samples per second. */
|
|
91
|
+
sampleRateHz: number;
|
|
92
|
+
/** Millivolts per sample count. */
|
|
93
|
+
millivoltsPerCount: number;
|
|
94
|
+
/** The count that means no signal, stored as 0 mV. */
|
|
95
|
+
noSignalCount?: number;
|
|
96
|
+
};
|
|
86
97
|
};
|
|
87
98
|
/** Sends the command through the write-without-response characteristic. */
|
|
88
99
|
writeWithoutResponse?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-lepu-spec.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-lepu-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAE7B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,GAAG,WAAW,CAAC;IAEnD;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qFAAqF;IACrF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,0FAA0F;IAC1F,KAAK,EAAE;QAEL,4DAA4D;QAC5D,WAAW,EAAE,MAAM,CAAC;QAEpB,0DAA0D;QAC1D,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF;;;;;;;OAOG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE;QAEhB,oGAAoG;QACpG,SAAS,EAAE,MAAM,CAAC;QAElB,mFAAmF;QACnF,gBAAgB,EAAE,MAAM,CAAC;QAEzB,wCAAwC;QACxC,cAAc,EAAE,MAAM,CAAC;QAEvB,0FAA0F;QAC1F,YAAY,EAAE,MAAM,CAAC;QAErB,2DAA2D;QAC3D,UAAU,EAAE,MAAM,CAAC;QAEnB,mEAAmE;QACnE,oBAAoB,EAAE,MAAM,CAAC;QAE7B,8EAA8E;QAC9E,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-lepu-spec.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-lepu-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAE7B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,GAAG,WAAW,CAAC;IAEnD;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qFAAqF;IACrF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,0FAA0F;IAC1F,KAAK,EAAE;QAEL,4DAA4D;QAC5D,WAAW,EAAE,MAAM,CAAC;QAEpB,0DAA0D;QAC1D,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF;;;;;;;OAOG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE;QAEhB,oGAAoG;QACpG,SAAS,EAAE,MAAM,CAAC;QAElB,mFAAmF;QACnF,gBAAgB,EAAE,MAAM,CAAC;QAEzB,wCAAwC;QACxC,cAAc,EAAE,MAAM,CAAC;QAEvB,0FAA0F;QAC1F,YAAY,EAAE,MAAM,CAAC;QAErB,2DAA2D;QAC3D,UAAU,EAAE,MAAM,CAAC;QAEnB,mEAAmE;QACnE,oBAAoB,EAAE,MAAM,CAAC;QAE7B,8EAA8E;QAC9E,WAAW,EAAE,MAAM,CAAC;QAEpB,yGAAyG;QACzG,QAAQ,CAAC,EAAE;YAET,6FAA6F;YAC7F,cAAc,EAAE,MAAM,CAAC;YAEvB,0BAA0B;YAC1B,YAAY,EAAE,MAAM,CAAC;YAErB,mCAAmC;YACnC,kBAAkB,EAAE,MAAM,CAAC;YAE3B,sDAAsD;YACtD,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;IAEF,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DeviceData } from "./device-data";
|
|
2
|
+
/** The ECG samples a recorder sent in one realtime answer, for drawing a live trace; never saved. */
|
|
3
|
+
export interface DeviceWaveform {
|
|
4
|
+
/** Device the samples came from. */
|
|
5
|
+
deviceData: DeviceData;
|
|
6
|
+
/** Raw sample counts, oldest first. */
|
|
7
|
+
samples: readonly number[];
|
|
8
|
+
/** Samples per second. */
|
|
9
|
+
sampleRateHz: number;
|
|
10
|
+
/** Millivolts per sample count. */
|
|
11
|
+
millivoltsPerCount: number;
|
|
12
|
+
/** When the answer carrying them arrived. */
|
|
13
|
+
at: Date;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=device-waveform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-waveform.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/device-waveform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAE7B,oCAAoC;IACpC,UAAU,EAAE,UAAU,CAAC;IAEvB,uCAAuC;IACvC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAE3B,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,6CAA6C;IAC7C,EAAE,EAAE,IAAI,CAAC;CACV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const i16FromHex: (hex: string[], i: number) => number;
|
|
1
|
+
export declare const i16FromHex: (hex: readonly string[], i: number) => number;
|
|
2
2
|
//# sourceMappingURL=i-16-from-hex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-16-from-hex.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/i-16-from-hex.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,EAAE,GAAG,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"i-16-from-hex.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/i-16-from-hex.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,MAAM,KAAG,MAI9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"legacy-driver.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/legacy-driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAe,MAAM,EAAiB,MAAM,WAAW,CAAC;AAW/D,4GAA4G;AAC5G,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,YAAY,SAAS,KAAG,MAyC9F,CAAC;AAEJ,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Driver } from "./driver";
|
|
2
2
|
import { ReadingLog } from "./readings";
|
|
3
3
|
import { ResultPolicy } from "./result-policy";
|
|
4
|
+
import { DeviceWaveform } from "./snapshot";
|
|
4
5
|
import { SnapshotStore } from "./store";
|
|
5
6
|
import { Peripheral } from "./transport";
|
|
6
7
|
/** One driver run per connected device, its events folded into the snapshot. */
|
|
@@ -9,12 +10,20 @@ declare class Connections {
|
|
|
9
10
|
private readonly readings;
|
|
10
11
|
private readonly policy;
|
|
11
12
|
private readonly onEnded;
|
|
13
|
+
private readonly onWaveform;
|
|
12
14
|
private readonly sessions;
|
|
13
|
-
|
|
15
|
+
private readonly recordingStops;
|
|
16
|
+
constructor(store: SnapshotStore, readings: ReadingLog, policy: ResultPolicy, onEnded: (id: string) => void, onWaveform: (waveform: DeviceWaveform) => void);
|
|
14
17
|
isActive(id: string): boolean;
|
|
15
18
|
/** Resolves once connected; joins a connection still opening or open, and waits out one being closed. */
|
|
16
19
|
connect(peripheral: Peripheral, driver: Driver): Promise<void>;
|
|
17
20
|
disconnect(id: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Stops the recording a connected device holds open.
|
|
23
|
+
*
|
|
24
|
+
* @throws BluetoothError `no-open-recording` when the device holds none.
|
|
25
|
+
*/
|
|
26
|
+
stopRecording(id: string): Promise<void>;
|
|
18
27
|
/** Disconnects every device; resolves once every connection has ended. */
|
|
19
28
|
disconnectAll(): Promise<void>;
|
|
20
29
|
private start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;IAKb,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;gBAGtD,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EAC7B,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI;IAG1D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,yGAAyG;IAC5F,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;;;OAIG;IACU,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,0EAA0E;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,OAAO,CAAC,KAAK;YAwCC,GAAG;IAMjB,OAAO,CAAC,KAAK;CAuBd;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Measurement } from "@ovok/core/next";
|
|
2
2
|
import { BluetoothError } from "./errors";
|
|
3
3
|
import { DeviceInformation, Link } from "./link";
|
|
4
|
+
import { DeviceRecording, DeviceWaveform } from "./snapshot";
|
|
4
5
|
import { Peripheral } from "./transport";
|
|
5
6
|
/** What a driver reports while it runs. */
|
|
6
7
|
type DeviceEvent = {
|
|
@@ -20,6 +21,18 @@ type DeviceEvent = {
|
|
|
20
21
|
id: string | null;
|
|
21
22
|
/** The decoded reading. */
|
|
22
23
|
reading: Measurement;
|
|
24
|
+
} | {
|
|
25
|
+
/** The recording the device holds open changed. */
|
|
26
|
+
kind: "recording";
|
|
27
|
+
/** The open recording, or `null` once it has closed. */
|
|
28
|
+
recording: DeviceRecording | null;
|
|
29
|
+
/** Stops the open recording. */
|
|
30
|
+
stop: () => Promise<void>;
|
|
31
|
+
} | {
|
|
32
|
+
/** The device sent live ECG samples while recording; for display only. */
|
|
33
|
+
kind: "waveform";
|
|
34
|
+
/** The samples, without the device, which the runtime adds. */
|
|
35
|
+
waveform: Omit<DeviceWaveform, "deviceId">;
|
|
23
36
|
} | {
|
|
24
37
|
/** The device or its protocol reported an error; the connection may continue. */
|
|
25
38
|
kind: "error";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2CAA2C;AAC3C,KAAK,WAAW,GACZ;IAEA,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACpD,GACC;IAEA,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC;IAEpB,wBAAwB;IACxB,WAAW,EAAE,iBAAiB,CAAC;CAChC,GACC;IAEA,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAEhB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAElB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB,GACC;IAEA,mDAAmD;IACnD,IAAI,EAAE,WAAW,CAAC;IAElB,wDAAwD;IACxD,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAElC,gCAAgC;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,GACC;IAEA,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAC;IAEjB,+DAA+D;IAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;CAC5C,GACC;IAEA,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,iGAAiG;AACjG,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1F,0EAA0E;AAC1E,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjE,8GAA8G;AAC9G,QAAA,MAAM,aAAa,GAAI,SAAS,WAAW,KAAG,OAI7C,CAAC;AAMF,yCAAyC;AACzC,QAAA,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,cAAc,KAAG,MAgBzD,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Why a Bluetooth operation failed. */
|
|
2
|
-
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "runtime-disposed" | "save-failed" | "unknown";
|
|
2
|
+
type BluetoothErrorCode = "permission-denied" | "powered-off" | "unsupported" | "scan-failed" | "connection-failed" | "pairing-required" | "discovery-failed" | "device-error" | "frame-invalid" | "measurement-failed" | "device-not-found" | "no-open-recording" | "runtime-disposed" | "save-failed" | "unknown";
|
|
3
3
|
/** Every failure the Bluetooth runtime reports; `cause` holds the underlying error, when any. */
|
|
4
4
|
declare class BluetoothError extends Error {
|
|
5
5
|
/** Why it failed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,KAAK,kBAAkB,GACnB,mBAAmB,GACnB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,SAAS,CAAC;AAEd,iGAAiG;AACjG,cAAM,cAAe,SAAQ,KAAK;IAM9B,qBAAqB;aACL,IAAI,EAAE,kBAAkB;IAN1C,iCAAiC;IACjC,SAAgB,IAAI,oBAAoB;;IAItC,qBAAqB;IACL,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO;CAIlB;AAED,oFAAoF;AACpF,QAAA,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,KAAG,cAGwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -11,7 +11,7 @@ export { BluetoothRuntime } from "./runtime";
|
|
|
11
11
|
export type { BluetoothRuntimeOptions } from "./runtime";
|
|
12
12
|
export { BluetoothError } from "./errors";
|
|
13
13
|
export type { BluetoothErrorCode } from "./errors";
|
|
14
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState } from "./snapshot";
|
|
14
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, DeviceWaveform, NearbyDevice, SaveState } from "./snapshot";
|
|
15
15
|
export type { AdapterState, Advertisement, BluetoothScanner, Peripheral } from "./transport";
|
|
16
16
|
export type { BluetoothPermission, BluetoothPermissions } from "./permissions";
|
|
17
17
|
export type { ReadingSink, SaveResult } from "./sink";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9I,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { DeviceSupport } from "./devices";
|
|
|
3
3
|
import { BluetoothPermission, BluetoothPermissions } from "./permissions";
|
|
4
4
|
import { ResultPolicy } from "./result-policy";
|
|
5
5
|
import { ReadingSink } from "./sink";
|
|
6
|
-
import { BluetoothSnapshot } from "./snapshot";
|
|
6
|
+
import { BluetoothSnapshot, DeviceWaveform } from "./snapshot";
|
|
7
7
|
import { BluetoothScanner } from "./transport";
|
|
8
8
|
/** What a `BluetoothRuntime` is built from. */
|
|
9
9
|
type BluetoothRuntimeOptions = {
|
|
@@ -31,6 +31,7 @@ declare class BluetoothRuntime {
|
|
|
31
31
|
private readonly held;
|
|
32
32
|
private readonly backoff;
|
|
33
33
|
private readonly retryTimers;
|
|
34
|
+
private readonly waveformListeners;
|
|
34
35
|
private readonly readings;
|
|
35
36
|
private readonly connections;
|
|
36
37
|
private readonly paired;
|
|
@@ -43,6 +44,8 @@ declare class BluetoothRuntime {
|
|
|
43
44
|
getSnapshot: () => BluetoothSnapshot;
|
|
44
45
|
/** Calls `listener` after every state change; returns the unsubscribe. */
|
|
45
46
|
subscribe: (listener: () => void) => (() => void);
|
|
47
|
+
/** Calls `listener` with the live ECG samples of recording devices, for display; returns the unsubscribe. */
|
|
48
|
+
subscribeWaveform: (listener: (waveform: DeviceWaveform) => void) => (() => void);
|
|
46
49
|
/** Reads the permission without prompting. */
|
|
47
50
|
checkPermission(): Promise<BluetoothPermission>;
|
|
48
51
|
/** Prompts for the permission when the OS still can. */
|
|
@@ -63,6 +66,13 @@ declare class BluetoothRuntime {
|
|
|
63
66
|
* @throws BluetoothError `device-not-found`, `connection-failed` or the driver's failure.
|
|
64
67
|
*/
|
|
65
68
|
connect(deviceId: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Stops the recording a connected recorder holds open, for instance once the user confirms it while
|
|
71
|
+
* its `recording.leadOffSince` is set. The stored recording then arrives as a reading.
|
|
72
|
+
*
|
|
73
|
+
* @throws BluetoothError `no-open-recording` when the device holds none; `runtime-disposed` after `dispose`.
|
|
74
|
+
*/
|
|
75
|
+
stopRecording(deviceId: string): Promise<void>;
|
|
66
76
|
/** Disconnects a device; a paired one stays disconnected until `connect` or `pair` is called again. */
|
|
67
77
|
disconnect(deviceId: string): Promise<void>;
|
|
68
78
|
/** Remembers a device, so it connects whenever the scan finds it, and connects to it now. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,33 @@ type NearbyDevice = {
|
|
|
19
19
|
error: BluetoothError | null;
|
|
20
20
|
/** What the device reported about itself on its last connection; absent until it has connected. */
|
|
21
21
|
information?: DeviceInformation;
|
|
22
|
+
/** The recording the device holds open, for recorders that report one; absent when none is open. */
|
|
23
|
+
recording?: DeviceRecording;
|
|
24
|
+
};
|
|
25
|
+
/** The ECG samples a recording device sent in one realtime answer, for drawing a live trace; never saved. */
|
|
26
|
+
type DeviceWaveform = {
|
|
27
|
+
/** Platform identifier of the device. */
|
|
28
|
+
deviceId: string;
|
|
29
|
+
/** Raw sample counts, oldest first. */
|
|
30
|
+
samples: readonly number[];
|
|
31
|
+
/** Samples per second. */
|
|
32
|
+
sampleRateHz: number;
|
|
33
|
+
/** Millivolts per sample count. */
|
|
34
|
+
millivoltsPerCount: number;
|
|
35
|
+
/** When the answer carrying them arrived. */
|
|
36
|
+
at: Date;
|
|
37
|
+
};
|
|
38
|
+
/** A recording a recorder holds open, as its last realtime answer reported it. */
|
|
39
|
+
type DeviceRecording = {
|
|
40
|
+
/** Seconds recorded so far, as of the last change. */
|
|
41
|
+
seconds: number;
|
|
42
|
+
/**
|
|
43
|
+
* When the electrodes lost contact, while they have none; the recording stays open until it is
|
|
44
|
+
* stopped. An app can offer `stopRecording` once this is old enough, as the vendor app does.
|
|
45
|
+
*/
|
|
46
|
+
leadOffSince?: Date;
|
|
47
|
+
/** Stopping now stores the recording; a shorter one is discarded by the device. */
|
|
48
|
+
storesOnStop: boolean;
|
|
22
49
|
};
|
|
23
50
|
/** Where saving a reading stands. */
|
|
24
51
|
type SaveState = {
|
|
@@ -68,5 +95,5 @@ type BluetoothSnapshot = {
|
|
|
68
95
|
/** Recent readings, oldest first. */
|
|
69
96
|
readings: readonly DeviceReading[];
|
|
70
97
|
};
|
|
71
|
-
export type { BluetoothSnapshot, ConnectionState, DeviceReading, NearbyDevice, SaveState };
|
|
98
|
+
export type { BluetoothSnapshot, ConnectionState, DeviceReading, DeviceRecording, DeviceWaveform, NearbyDevice, SaveState };
|
|
72
99
|
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0CAA0C;AAC1C,KAAK,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,CAAC;AAErG,6CAA6C;AAC7C,KAAK,YAAY,GAAG;IAElB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,eAAe,CAAC;IAE5B,yDAAyD;IACzD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAE7B,mGAAmG;IACnG,WAAW,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/snapshot.ts"],"names":[],"mappings":"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"}
|