@ovok/native 1.6.37 → 1.6.39

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.
Files changed (88) hide show
  1. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +8 -1
  2. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +13 -3
  4. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +18 -1
  6. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +6 -0
  8. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +26 -1
  10. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +7 -2
  12. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.monitor.js +88 -0
  14. package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.monitor.js.map +1 -0
  15. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js +80 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js +64 -0
  18. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js.map +1 -0
  19. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +26 -66
  20. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  21. package/lib/module/modules/bt-device/constants/supported-devices.js +8 -1
  22. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  23. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +13 -3
  24. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  25. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +18 -1
  26. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  27. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +6 -0
  28. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  29. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +26 -1
  30. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  31. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +7 -2
  32. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  33. package/lib/module/modules/bt-management/services/devices/spo/pc60fw.monitor.js +84 -0
  34. package/lib/module/modules/bt-management/services/devices/spo/pc60fw.monitor.js.map +1 -0
  35. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js +75 -0
  36. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js.map +1 -0
  37. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js +61 -0
  38. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js.map +1 -0
  39. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +26 -66
  40. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  41. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts +3 -3
  44. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +4 -1
  47. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -1
  49. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  51. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.monitor.d.ts +10 -0
  53. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.monitor.d.ts.map +1 -0
  54. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts +4 -0
  55. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts.map +1 -0
  56. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts +7 -0
  57. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts +2 -1
  60. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +16 -1
  62. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +2 -0
  64. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  65. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  66. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts +3 -3
  67. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  68. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  69. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +4 -1
  70. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  71. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -1
  72. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  73. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  74. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  75. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.monitor.d.ts +10 -0
  76. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.monitor.d.ts.map +1 -0
  77. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts +4 -0
  78. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts.map +1 -0
  79. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts +7 -0
  80. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts.map +1 -0
  81. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  82. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts +2 -1
  83. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -1
  84. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +16 -1
  85. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  86. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +2 -0
  87. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  88. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["CUSTOM_DEVICE_BRAND"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-device-definition.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,qCAAkC;;AAkBtE;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["CUSTOM_DEVICE_BRAND"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-device-definition.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,qCAAkC;;AA+BtE;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAgFhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AAsVhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUzD,CAAC;AAEF,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAoFhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AA4VhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUzD,CAAC;AAEF,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
@@ -4,9 +4,9 @@ import { MeasurementTypeKey } from "@ovok/core";
4
4
  * canonical unit of every property, and the physiological envelope outside which a decoded
5
5
  * value is treated as a decoding fault rather than a reading.
6
6
  *
7
- * A measurement type absent from this catalog cannot be declared. ECG, urine analysis and
8
- * the cosinuss multi-parameter stream are absent on purpose: they are assembled across
9
- * several notifications and need a device class, not a declaration.
7
+ * A measurement type absent from this catalog cannot be declared. ECG's waveform is still
8
+ * assembled by a device frame handler, but its scalar heart rate can be declared alongside
9
+ * another reading in a combined frame.
10
10
  *
11
11
  * The property names mirror the measurement types in @ovok/core. A typo would otherwise
12
12
  * produce an object the backend silently drops, so it is rejected at registration instead.
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-field-catalog.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/measurement-field-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CA8B5E,CAAC"}
1
+ {"version":3,"file":"measurement-field-catalog.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/measurement-field-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAiC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile-custom-case.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-case.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAgGvD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,UAAU,cAAc,EACxB,gBAAgB,MAAM,EACtB,QAAQ,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACvC,WA4GF,CAAC"}
1
+ {"version":3,"file":"compile-custom-case.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-case.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAiGvD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,UAAU,cAAc,EACxB,gBAAgB,MAAM,EACtB,QAAQ,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACvC,WAsIF,CAAC"}
@@ -1,5 +1,6 @@
1
- import { CustomDeviceDefinition, CustomReadingDecorator } from "../../types/custom-device-definition";
1
+ import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator } from "../../types/custom-device-definition";
2
2
  import { CustomDeviceSpec } from "../../types/custom-device-spec";
3
+ import { FrameReader } from "../../types/frame-reader";
3
4
  /**
4
5
  * Validates a declaration and compiles it into a runnable device.
5
6
  *
@@ -10,5 +11,7 @@ import { CustomDeviceSpec } from "../../types/custom-device-spec";
10
11
  */
11
12
  export declare const defineCustomDevice: (spec: CustomDeviceSpec, options?: {
12
13
  decorateReading?: CustomReadingDecorator;
14
+ createFrameHandler?: CustomFrameHandlerFactory;
15
+ frameReader?: FrameReader;
13
16
  }) => CustomDeviceDefinition;
14
17
  //# sourceMappingURL=define-custom-device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAyKlE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IAAE,eAAe,CAAC,EAAE,sBAAsB,CAAA;CAAO,KACzD,sBAwFF,CAAC"}
1
+ {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwKvD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAC;CACtB,KACL,sBA8FF,CAAC"}
@@ -23,6 +23,7 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
23
23
  protected stuckDataTimeout: number;
24
24
  protected onStreamStart?: (() => void) | undefined;
25
25
  private readonly definition;
26
+ private readonly frameHandler;
26
27
  private readonly deliveredFileNames;
27
28
  private reportedHistoryIds;
28
29
  private readonly validators;
@@ -56,7 +57,8 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
56
57
  * Stream frames reach this while the device is measuring. They carry no fields, and the
57
58
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
58
59
  */
59
- protected handleSuccessResult(): void | boolean;
60
+ protected handleSuccessResult(successResult: CustomResult, collectedValues: string[]): void | boolean;
61
+ private handleFrame;
60
62
  /** Emits a completed session before the state machine returns to CONNECTED. */
61
63
  protected handleMeasurementEnd(): void;
62
64
  private sessionAverage;
@@ -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;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,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;AAkBvD,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;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IACzD,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,gBAAgB,CAAmB;gBAGzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAuCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B,OAAO,CAAC,mBAAmB,CAmBzB;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CA6BlD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C,+EAA+E;IAC/E,SAAS,CAAC,oBAAoB,IAAI,IAAI;IA2CtC,OAAO,CAAC,cAAc;IActB,kFAAkF;IAClF,OAAO,CAAC,oBAAoB;IAqC5B,mFAAmF;IACnF,SAAS,CAAC,eAAe,GACvB,SAAS,YAAY,EACrB,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM,KACpB,YAAY,CAGa;IAE5B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,oBAAoB;CAe7B"}
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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"}
@@ -1,6 +1,6 @@
1
1
  import { ClockSyncCapability } from "../../../types/clock-sync";
2
2
  import { CustomCaseSpec } from "../../../types/custom-case-spec";
3
- import { CustomDeviceDefinition, CustomReadingDecorator } from "../../../types/custom-device-definition";
3
+ import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator } from "../../../types/custom-device-definition";
4
4
  import { CustomSessionPolicy } from "../../../types/custom-session-policy";
5
5
  /**
6
6
  * The characteristics each group of products exposes, read from the vendor's own managers.
@@ -48,6 +48,7 @@ interface LepuDeviceParams {
48
48
  /** Clock payload format used before INFO, when clock synchronization is enabled. */
49
49
  clockSyncProtocol?: "bp2" | "bp3";
50
50
  decorateReading?: CustomReadingDecorator;
51
+ createFrameHandler?: CustomFrameHandlerFactory;
51
52
  /** Aggregate valid live samples when the protocol describes a session. */
52
53
  sessionPolicy?: CustomSessionPolicy;
53
54
  /** Reported back as deviceData.name, and must not collide with a built-in device. */
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.transports.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.transports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAyE3E;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;IAQlB,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;CA4B9B,CAAC;AAEnD,KAAK,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AACrD,UAAU,gBAAgB;IAExB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,oFAAoF;IACpF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAE9B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,iFAAiF;IACjF,EAAE,CAAC,EAAE;QACH,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IAEF,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC,oFAAoF;IACpF,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,QAAA,MAAM,UAAU,GAAI,QAAQ,gBAAgB,KAAG,sBAkH9C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"lepu.transports.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.transports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAyE3E;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;IAQlB,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;CA4B9B,CAAC;AAEnD,KAAK,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AACrD,UAAU,gBAAgB;IAExB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAE/C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,oFAAoF;IACpF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAE9B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,iFAAiF;IACjF,EAAE,CAAC,EAAE;QACH,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IAEF,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC,oFAAoF;IACpF,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,QAAA,MAAM,UAAU,GAAI,QAAQ,gBAAgB,KAAG,sBAuH9C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { CustomDeviceDefinition } from "../../../types/custom-device-definition";
2
+ interface Pc60FwMonitorParams {
3
+ id?: string;
4
+ nameMatch?: string | RegExp;
5
+ }
6
+ declare const PC60FW_MODEL_NAMES: readonly ["PC-66B", "PC-60F_SN", "POD-1_SN", "POD-1W-WU", "S5W_SN", "S5W-VU", "PO6B-WE", "PC-60NW_SN", "PC-60NW_BLE", "POD-2B_SN", "PC-60NW-1_SN", "PF-10", "PF-10AW", "PF-10AW1", "PF-10BW", "PF-10BW1", "S6W", "S6W1", "PF-20", "PF-20AW", "PF-20B", "S7W", "S7BW", "PC-60NW", "PC66B-VE", "KS-60FW"];
7
+ /** Declares one PC-60FW-family model on the verified ViHealth decoder. */
8
+ declare const pc60FwMonitor: (advertisedName: string, params?: Pc60FwMonitorParams) => CustomDeviceDefinition;
9
+ export { PC60FW_MODEL_NAMES, pc60FwMonitor };
10
+ //# sourceMappingURL=pc60fw.monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pc60fw.monitor.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/spo/pc60fw.monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AAyEjD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,QAAA,MAAM,kBAAkB,ySA2Bd,CAAC;AAEX,0EAA0E;AAC1E,QAAA,MAAM,aAAa,GACjB,gBAAgB,MAAM,EACtB,SAAQ,mBAAwB,KAC/B,sBA0CA,CAAC;AAEJ,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { CustomFrameHandlerFactory } from "../../../types/custom-device-definition";
2
+ /** Decodes the live ECG frames shared by BP2W, BP3F and HDM3G. */
3
+ export declare const createViatomFrameHandler: CustomFrameHandlerFactory;
4
+ //# sourceMappingURL=viatom.bp-ecg-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viatom.bp-ecg-handler.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAiBpF,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,EAAE,yBA4FtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CustomCaseSpec } from "../../../types/custom-case-spec";
2
+ declare const BP2_CASES: CustomCaseSpec[];
3
+ declare const BP2_ECG_CASES: CustomCaseSpec[];
4
+ declare const BP3_CASES: CustomCaseSpec[];
5
+ declare const BP3_ECG_CASES: CustomCaseSpec[];
6
+ export { BP2_CASES, BP2_ECG_CASES, BP3_CASES, BP3_ECG_CASES };
7
+ //# sourceMappingURL=viatom.bp-monitor-cases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viatom.bp-monitor-cases.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAwDjE,QAAA,MAAM,SAAS,EAAE,cAAc,EAW9B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,cAAc,EAGlC,CAAC;AAEF,QAAA,MAAM,SAAS,EAAE,cAAc,EAW9B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,cAAc,EAMlC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"viatom.bp-monitors.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AAqHjD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GACnB,gBAAgB,MAAM,EACtB,QAAQ,cAAc,KACrB,sBAqBC,CAAC;AAEL,gDAAgD;AAChD,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,EAAE,SAAS,MAAM,EAkBrC,CAAC;AAEF,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"viatom.bp-monitors.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AA8DjD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GACnB,gBAAgB,MAAM,EACtB,QAAQ,cAAc,KACrB,sBAkCF,CAAC;AAEF,gDAAgD;AAChD,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,EAAE,SAAS,MAAM,EAkBrC,CAAC;AAEF,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,GAChB,CAAC"}
@@ -4,9 +4,10 @@
4
4
  * - "result" a completed reading; its fields are decoded, bounds-checked and reported
5
5
  * - "stream" the device is mid-measurement; moves the device into MEASURING
6
6
  * - "idle" anything else the device emits (heartbeats, menu state); moves it back to CONNECTED
7
+ * - "event" a stateful frame handled by the device declaration; it carries no declarative reading
7
8
  *
8
9
  * The stateful roles the built-in device classes use (dependent, sn, error) are deliberately
9
10
  * not available to declarations - they require a device class.
10
11
  */
11
- export type CustomCaseKind = "result" | "stream" | "idle";
12
+ export type CustomCaseKind = "result" | "stream" | "idle" | "event";
12
13
  //# sourceMappingURL=custom-case-kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-case-kind.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-case-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"custom-case-kind.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-case-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC"}
@@ -7,9 +7,20 @@ import { CustomDeviceSpec } from "./custom-device-spec";
7
7
  import { CustomFrameSpec } from "./custom-frame-spec";
8
8
  import { CustomLepuSpec } from "./custom-lepu-spec";
9
9
  import { CustomSessionPolicy } from "./custom-session-policy";
10
+ import { FrameReader } from "./frame-reader";
10
11
  import { MeasurementWithCaseType } from "./measurement-with-case-type";
12
+ import { ParsingCase } from "./parsing-case";
11
13
  import { IService } from "./service.type";
12
14
  type CustomReadingDecorator = (reading: MeasurementWithCaseType<Measurement>, frame?: readonly string[], recordOffset?: number) => MeasurementWithCaseType<Measurement>;
15
+ interface CustomFrameHandlerParams {
16
+ parsedData: MeasurementWithCaseType<Measurement>;
17
+ parsingCase?: ParsingCase;
18
+ frame: readonly string[];
19
+ isMeasuring: boolean;
20
+ emit: (reading: Measurement) => void;
21
+ }
22
+ type CustomFrameHandler = (params: CustomFrameHandlerParams) => void;
23
+ type CustomFrameHandlerFactory = () => CustomFrameHandler;
13
24
  /**
14
25
  * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
15
26
  */
@@ -30,12 +41,16 @@ interface CustomDeviceDefinition {
30
41
  readonly fields: ReadonlyMap<string, CompiledCustomField>;
31
42
  /** Frame declaration of every monitor characteristic, keyed by its 128-bit UUID. */
32
43
  readonly frames: ReadonlyMap<string, CustomFrameSpec>;
44
+ /** Optional protocol frame reader for declarations whose notifications may be batched. */
45
+ readonly frameReader?: FrameReader;
33
46
  /** MTU to request once connected, when the declaration asked for one. */
34
47
  readonly preferredMtu?: number;
35
48
  /** Validated Lepu protocol declaration, with its UUIDs normalised. */
36
49
  readonly lepu?: CustomLepuSpec;
37
50
  /** Adds protocol metadata that is not a numeric measurement field. */
38
51
  readonly decorateReading?: CustomReadingDecorator;
52
+ /** Creates per-device state for frames that need a protocol-specific decoder. */
53
+ readonly createFrameHandler?: CustomFrameHandlerFactory;
39
54
  }
40
- export type { CustomDeviceDefinition, CustomReadingDecorator };
55
+ export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, };
41
56
  //# sourceMappingURL=custom-device-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,KAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAC7C,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,KAClB,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAE1C;;GAEG;AACH,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAErC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAE5B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAE7C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IAExC,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAEtC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IAElC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE1D,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEtD,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAE/B,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CACnD;AAED,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface ParsingCase {
10
10
  caseValue: string;
11
11
  minLengthBytes?: number;
12
12
  description?: string;
13
+ /** A stateful declaration hook owns this frame instead of the numeric decoder. */
14
+ handlerOnly?: boolean;
13
15
  /**
14
16
  * The readings this frame carries, in declaration order.
15
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"parsing-case.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/parsing-case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAElC;;;OAGG;IACH,eAAe,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
1
+ {"version":3,"file":"parsing-case.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/parsing-case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAElC;;;OAGG;IACH,eAAe,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAgFhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AAsVhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUzD,CAAC;AAEF,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAoFhF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA+MkC,CAAC;AA4VhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAUzD,CAAC;AAEF,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
@@ -4,9 +4,9 @@ import { MeasurementTypeKey } from "@ovok/core";
4
4
  * canonical unit of every property, and the physiological envelope outside which a decoded
5
5
  * value is treated as a decoding fault rather than a reading.
6
6
  *
7
- * A measurement type absent from this catalog cannot be declared. ECG, urine analysis and
8
- * the cosinuss multi-parameter stream are absent on purpose: they are assembled across
9
- * several notifications and need a device class, not a declaration.
7
+ * A measurement type absent from this catalog cannot be declared. ECG's waveform is still
8
+ * assembled by a device frame handler, but its scalar heart rate can be declared alongside
9
+ * another reading in a combined frame.
10
10
  *
11
11
  * The property names mirror the measurement types in @ovok/core. A typo would otherwise
12
12
  * produce an object the backend silently drops, so it is rejected at registration instead.
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-field-catalog.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/measurement-field-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CA8B5E,CAAC"}
1
+ {"version":3,"file":"measurement-field-catalog.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/measurement-field-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAiC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile-custom-case.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-case.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAgGvD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,UAAU,cAAc,EACxB,gBAAgB,MAAM,EACtB,QAAQ,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACvC,WA4GF,CAAC"}
1
+ {"version":3,"file":"compile-custom-case.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/compile-custom-case.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAiGvD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,EACV,MAAM,MAAM,EACZ,UAAU,cAAc,EACxB,gBAAgB,MAAM,EACtB,QAAQ,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KACvC,WAsIF,CAAC"}
@@ -1,5 +1,6 @@
1
- import { CustomDeviceDefinition, CustomReadingDecorator } from "../../types/custom-device-definition";
1
+ import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator } from "../../types/custom-device-definition";
2
2
  import { CustomDeviceSpec } from "../../types/custom-device-spec";
3
+ import { FrameReader } from "../../types/frame-reader";
3
4
  /**
4
5
  * Validates a declaration and compiles it into a runnable device.
5
6
  *
@@ -10,5 +11,7 @@ import { CustomDeviceSpec } from "../../types/custom-device-spec";
10
11
  */
11
12
  export declare const defineCustomDevice: (spec: CustomDeviceSpec, options?: {
12
13
  decorateReading?: CustomReadingDecorator;
14
+ createFrameHandler?: CustomFrameHandlerFactory;
15
+ frameReader?: FrameReader;
13
16
  }) => CustomDeviceDefinition;
14
17
  //# sourceMappingURL=define-custom-device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAyKlE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IAAE,eAAe,CAAC,EAAE,sBAAsB,CAAA;CAAO,KACzD,sBAwFF,CAAC"}
1
+ {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwKvD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAC;CACtB,KACL,sBA8FF,CAAC"}
@@ -23,6 +23,7 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
23
23
  protected stuckDataTimeout: number;
24
24
  protected onStreamStart?: (() => void) | undefined;
25
25
  private readonly definition;
26
+ private readonly frameHandler;
26
27
  private readonly deliveredFileNames;
27
28
  private reportedHistoryIds;
28
29
  private readonly validators;
@@ -56,7 +57,8 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
56
57
  * Stream frames reach this while the device is measuring. They carry no fields, and the
57
58
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
58
59
  */
59
- protected handleSuccessResult(): void | boolean;
60
+ protected handleSuccessResult(successResult: CustomResult, collectedValues: string[]): void | boolean;
61
+ private handleFrame;
60
62
  /** Emits a completed session before the state machine returns to CONNECTED. */
61
63
  protected handleMeasurementEnd(): void;
62
64
  private sessionAverage;
@@ -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;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,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;AAkBvD,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;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IACzD,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,gBAAgB,CAAmB;gBAGzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAuCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B,OAAO,CAAC,mBAAmB,CAmBzB;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CA6BlD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C,+EAA+E;IAC/E,SAAS,CAAC,oBAAoB,IAAI,IAAI;IA2CtC,OAAO,CAAC,cAAc;IActB,kFAAkF;IAClF,OAAO,CAAC,oBAAoB;IAqC5B,mFAAmF;IACnF,SAAS,CAAC,eAAe,GACvB,SAAS,YAAY,EACrB,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM,KACpB,YAAY,CAGa;IAE5B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,oBAAoB;CAe7B"}
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;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,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;AAkBvD,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;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IACzD,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,gBAAgB,CAAmB;gBAGzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAyCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B,OAAO,CAAC,mBAAmB,CAmBzB;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CA2ClD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAC3B,aAAa,EAAE,YAAY,EAC3B,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,GAAG,OAAO;IAMjB,OAAO,CAAC,WAAW;IAmBnB,+EAA+E;IAC/E,SAAS,CAAC,oBAAoB,IAAI,IAAI;IA2CtC,OAAO,CAAC,cAAc;IActB,kFAAkF;IAClF,OAAO,CAAC,oBAAoB;IAqC5B,mFAAmF;IACnF,SAAS,CAAC,eAAe,GACvB,SAAS,YAAY,EACrB,QAAQ,SAAS,MAAM,EAAE,EACzB,eAAe,MAAM,KACpB,YAAY,CAGa;IAE5B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,oBAAoB;CAe7B"}
@@ -1,6 +1,6 @@
1
1
  import { ClockSyncCapability } from "../../../types/clock-sync";
2
2
  import { CustomCaseSpec } from "../../../types/custom-case-spec";
3
- import { CustomDeviceDefinition, CustomReadingDecorator } from "../../../types/custom-device-definition";
3
+ import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator } from "../../../types/custom-device-definition";
4
4
  import { CustomSessionPolicy } from "../../../types/custom-session-policy";
5
5
  /**
6
6
  * The characteristics each group of products exposes, read from the vendor's own managers.
@@ -48,6 +48,7 @@ interface LepuDeviceParams {
48
48
  /** Clock payload format used before INFO, when clock synchronization is enabled. */
49
49
  clockSyncProtocol?: "bp2" | "bp3";
50
50
  decorateReading?: CustomReadingDecorator;
51
+ createFrameHandler?: CustomFrameHandlerFactory;
51
52
  /** Aggregate valid live samples when the protocol describes a session. */
52
53
  sessionPolicy?: CustomSessionPolicy;
53
54
  /** Reported back as deviceData.name, and must not collide with a built-in device. */
@@ -1 +1 @@
1
- {"version":3,"file":"lepu.transports.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.transports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAyE3E;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;IAQlB,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;CA4B9B,CAAC;AAEnD,KAAK,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AACrD,UAAU,gBAAgB;IAExB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,oFAAoF;IACpF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAE9B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,iFAAiF;IACjF,EAAE,CAAC,EAAE;QACH,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IAEF,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC,oFAAoF;IACpF,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,QAAA,MAAM,UAAU,GAAI,QAAQ,gBAAgB,KAAG,sBAkH9C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"lepu.transports.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/lepu/lepu.transports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAyE3E;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;IAQlB,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;CA4B9B,CAAC;AAEnD,KAAK,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC;AACrD,UAAU,gBAAgB;IAExB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAElC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAE/C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,oFAAoF;IACpF,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAE9B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;IAElC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,eAAe,CAAC;IAE3C,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC,iFAAiF;IACjF,EAAE,CAAC,EAAE;QACH,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IAEF,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAErC,oFAAoF;IACpF,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,QAAA,MAAM,UAAU,GAAI,QAAQ,gBAAgB,KAAG,sBAuH9C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { CustomDeviceDefinition } from "../../../types/custom-device-definition";
2
+ interface Pc60FwMonitorParams {
3
+ id?: string;
4
+ nameMatch?: string | RegExp;
5
+ }
6
+ declare const PC60FW_MODEL_NAMES: readonly ["PC-66B", "PC-60F_SN", "POD-1_SN", "POD-1W-WU", "S5W_SN", "S5W-VU", "PO6B-WE", "PC-60NW_SN", "PC-60NW_BLE", "POD-2B_SN", "PC-60NW-1_SN", "PF-10", "PF-10AW", "PF-10AW1", "PF-10BW", "PF-10BW1", "S6W", "S6W1", "PF-20", "PF-20AW", "PF-20B", "S7W", "S7BW", "PC-60NW", "PC66B-VE", "KS-60FW"];
7
+ /** Declares one PC-60FW-family model on the verified ViHealth decoder. */
8
+ declare const pc60FwMonitor: (advertisedName: string, params?: Pc60FwMonitorParams) => CustomDeviceDefinition;
9
+ export { PC60FW_MODEL_NAMES, pc60FwMonitor };
10
+ //# sourceMappingURL=pc60fw.monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pc60fw.monitor.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/spo/pc60fw.monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AAyEjD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,QAAA,MAAM,kBAAkB,ySA2Bd,CAAC;AAEX,0EAA0E;AAC1E,QAAA,MAAM,aAAa,GACjB,gBAAgB,MAAM,EACtB,SAAQ,mBAAwB,KAC/B,sBA0CA,CAAC;AAEJ,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { CustomFrameHandlerFactory } from "../../../types/custom-device-definition";
2
+ /** Decodes the live ECG frames shared by BP2W, BP3F and HDM3G. */
3
+ export declare const createViatomFrameHandler: CustomFrameHandlerFactory;
4
+ //# sourceMappingURL=viatom.bp-ecg-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viatom.bp-ecg-handler.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAiBpF,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,EAAE,yBA4FtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CustomCaseSpec } from "../../../types/custom-case-spec";
2
+ declare const BP2_CASES: CustomCaseSpec[];
3
+ declare const BP2_ECG_CASES: CustomCaseSpec[];
4
+ declare const BP3_CASES: CustomCaseSpec[];
5
+ declare const BP3_ECG_CASES: CustomCaseSpec[];
6
+ export { BP2_CASES, BP2_ECG_CASES, BP3_CASES, BP3_ECG_CASES };
7
+ //# sourceMappingURL=viatom.bp-monitor-cases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viatom.bp-monitor-cases.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAwDjE,QAAA,MAAM,SAAS,EAAE,cAAc,EAW9B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,cAAc,EAGlC,CAAC;AAEF,QAAA,MAAM,SAAS,EAAE,cAAc,EAW9B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,cAAc,EAMlC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"viatom.bp-monitors.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AAqHjD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GACnB,gBAAgB,MAAM,EACtB,QAAQ,cAAc,KACrB,sBAqBC,CAAC;AAEL,gDAAgD;AAChD,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,EAAE,SAAS,MAAM,EAkBrC,CAAC;AAEF,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"viatom.bp-monitors.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AA8DjD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,GACnB,gBAAgB,MAAM,EACtB,QAAQ,cAAc,KACrB,sBAkCF,CAAC;AAEF,gDAAgD;AAChD,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC,kFAAkF;AAClF,QAAA,MAAM,WAAW,GAAI,QAAQ,cAAc,KAAG,sBACb,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe,EAAE,SAAS,MAAM,EAkBrC,CAAC;AAEF,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,GAChB,CAAC"}
@@ -4,9 +4,10 @@
4
4
  * - "result" a completed reading; its fields are decoded, bounds-checked and reported
5
5
  * - "stream" the device is mid-measurement; moves the device into MEASURING
6
6
  * - "idle" anything else the device emits (heartbeats, menu state); moves it back to CONNECTED
7
+ * - "event" a stateful frame handled by the device declaration; it carries no declarative reading
7
8
  *
8
9
  * The stateful roles the built-in device classes use (dependent, sn, error) are deliberately
9
10
  * not available to declarations - they require a device class.
10
11
  */
11
- export type CustomCaseKind = "result" | "stream" | "idle";
12
+ export type CustomCaseKind = "result" | "stream" | "idle" | "event";
12
13
  //# sourceMappingURL=custom-case-kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-case-kind.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-case-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"custom-case-kind.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-case-kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC"}
@@ -7,9 +7,20 @@ import { CustomDeviceSpec } from "./custom-device-spec";
7
7
  import { CustomFrameSpec } from "./custom-frame-spec";
8
8
  import { CustomLepuSpec } from "./custom-lepu-spec";
9
9
  import { CustomSessionPolicy } from "./custom-session-policy";
10
+ import { FrameReader } from "./frame-reader";
10
11
  import { MeasurementWithCaseType } from "./measurement-with-case-type";
12
+ import { ParsingCase } from "./parsing-case";
11
13
  import { IService } from "./service.type";
12
14
  type CustomReadingDecorator = (reading: MeasurementWithCaseType<Measurement>, frame?: readonly string[], recordOffset?: number) => MeasurementWithCaseType<Measurement>;
15
+ interface CustomFrameHandlerParams {
16
+ parsedData: MeasurementWithCaseType<Measurement>;
17
+ parsingCase?: ParsingCase;
18
+ frame: readonly string[];
19
+ isMeasuring: boolean;
20
+ emit: (reading: Measurement) => void;
21
+ }
22
+ type CustomFrameHandler = (params: CustomFrameHandlerParams) => void;
23
+ type CustomFrameHandlerFactory = () => CustomFrameHandler;
13
24
  /**
14
25
  * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
15
26
  */
@@ -30,12 +41,16 @@ interface CustomDeviceDefinition {
30
41
  readonly fields: ReadonlyMap<string, CompiledCustomField>;
31
42
  /** Frame declaration of every monitor characteristic, keyed by its 128-bit UUID. */
32
43
  readonly frames: ReadonlyMap<string, CustomFrameSpec>;
44
+ /** Optional protocol frame reader for declarations whose notifications may be batched. */
45
+ readonly frameReader?: FrameReader;
33
46
  /** MTU to request once connected, when the declaration asked for one. */
34
47
  readonly preferredMtu?: number;
35
48
  /** Validated Lepu protocol declaration, with its UUIDs normalised. */
36
49
  readonly lepu?: CustomLepuSpec;
37
50
  /** Adds protocol metadata that is not a numeric measurement field. */
38
51
  readonly decorateReading?: CustomReadingDecorator;
52
+ /** Creates per-device state for frames that need a protocol-specific decoder. */
53
+ readonly createFrameHandler?: CustomFrameHandlerFactory;
39
54
  }
40
- export type { CustomDeviceDefinition, CustomReadingDecorator };
55
+ export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, };
41
56
  //# sourceMappingURL=custom-device-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,KAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAC7C,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,KAClB,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAE1C;;GAEG;AACH,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAErC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAE5B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAE7C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IAExC,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAEtC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IAElC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE1D,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEtD,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAE/B,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;CACnD;AAED,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface ParsingCase {
10
10
  caseValue: string;
11
11
  minLengthBytes?: number;
12
12
  description?: string;
13
+ /** A stateful declaration hook owns this frame instead of the numeric decoder. */
14
+ handlerOnly?: boolean;
13
15
  /**
14
16
  * The readings this frame carries, in declaration order.
15
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"parsing-case.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/parsing-case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAElC;;;OAGG;IACH,eAAe,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
1
+ {"version":3,"file":"parsing-case.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/parsing-case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAElC;;;OAGG;IACH,eAAe,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovok/native",
3
- "version": "1.6.37",
3
+ "version": "1.6.39",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",