@ovok/native 1.6.36 → 1.6.38

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 (82) hide show
  1. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +34 -4
  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 +3 -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 +25 -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/viatom/viatom.bp-ecg-handler.js +80 -0
  14. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js.map +1 -0
  15. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js +64 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +28 -68
  18. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  19. package/lib/module/modules/bt-device/constants/supported-devices.js +35 -5
  20. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  21. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +13 -3
  22. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  23. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +18 -1
  24. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  25. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +3 -0
  26. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  27. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +25 -1
  28. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  29. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +7 -2
  30. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  31. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js +75 -0
  32. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.js.map +1 -0
  33. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js +61 -0
  34. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.js.map +1 -0
  35. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +28 -68
  36. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  37. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  38. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts +3 -3
  40. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  43. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -1
  45. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  47. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts +4 -0
  49. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts.map +1 -0
  50. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts +7 -0
  51. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts.map +1 -0
  52. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +1 -1
  53. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts +2 -1
  55. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +13 -1
  57. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +2 -0
  59. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  60. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  61. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts +3 -3
  62. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  63. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  64. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  65. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  66. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -1
  67. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  68. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  69. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  70. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts +4 -0
  71. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-ecg-handler.d.ts.map +1 -0
  72. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts +7 -0
  73. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitor-cases.d.ts.map +1 -0
  74. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +1 -1
  75. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  76. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts +2 -1
  77. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -1
  78. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +13 -1
  79. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  80. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +2 -0
  81. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  82. package/package.json +1 -1
@@ -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,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"}
@@ -29,7 +29,7 @@ declare const bp2wMonitor: (params: ViatomBpParams) => CustomDeviceDefinition;
29
29
  /**
30
30
  * The names the BP3 range advertises.
31
31
  *
32
- * Fifteen products differing in cuff and casing rather than in protocol, so declaring the
32
+ * Seventeen products differing in cuff, casing, or display rather than in protocol, so declaring the
33
33
  * range is one line per name:
34
34
  *
35
35
  * ```typescript
@@ -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,EAgBrC,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"}
@@ -8,8 +8,18 @@ import { CustomFrameSpec } from "./custom-frame-spec";
8
8
  import { CustomLepuSpec } from "./custom-lepu-spec";
9
9
  import { CustomSessionPolicy } from "./custom-session-policy";
10
10
  import { MeasurementWithCaseType } from "./measurement-with-case-type";
11
+ import { ParsingCase } from "./parsing-case";
11
12
  import { IService } from "./service.type";
12
13
  type CustomReadingDecorator = (reading: MeasurementWithCaseType<Measurement>, frame?: readonly string[], recordOffset?: number) => MeasurementWithCaseType<Measurement>;
14
+ interface CustomFrameHandlerParams {
15
+ parsedData: MeasurementWithCaseType<Measurement>;
16
+ parsingCase?: ParsingCase;
17
+ frame: readonly string[];
18
+ isMeasuring: boolean;
19
+ emit: (reading: Measurement) => void;
20
+ }
21
+ type CustomFrameHandler = (params: CustomFrameHandlerParams) => void;
22
+ type CustomFrameHandlerFactory = () => CustomFrameHandler;
13
23
  /**
14
24
  * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
15
25
  */
@@ -36,6 +46,8 @@ interface CustomDeviceDefinition {
36
46
  readonly lepu?: CustomLepuSpec;
37
47
  /** Adds protocol metadata that is not a numeric measurement field. */
38
48
  readonly decorateReading?: CustomReadingDecorator;
49
+ /** Creates per-device state for frames that need a protocol-specific decoder. */
50
+ readonly createFrameHandler?: CustomFrameHandlerFactory;
39
51
  }
40
- export type { CustomDeviceDefinition, CustomReadingDecorator };
52
+ export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, };
41
53
  //# 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":"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,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,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,UAAU,wBAAwB;IAChC,UAAU,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC;AAED,KAAK,kBAAkB,GAAG,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;AACrE,KAAK,yBAAyB,GAAG,MAAM,kBAAkB,CAAC;AAE1D;;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;IAElD,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GACvB,CAAC"}
@@ -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;AA6EhF,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;AAmShD,+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;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"}
@@ -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,4 +1,4 @@
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
3
  /**
4
4
  * Validates a declaration and compiles it into a runnable device.
@@ -10,5 +10,6 @@ import { CustomDeviceSpec } from "../../types/custom-device-spec";
10
10
  */
11
11
  export declare const defineCustomDevice: (spec: CustomDeviceSpec, options?: {
12
12
  decorateReading?: CustomReadingDecorator;
13
+ createFrameHandler?: CustomFrameHandlerFactory;
13
14
  }) => CustomDeviceDefinition;
14
15
  //# 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;AAyKlE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAC3C,KACL,sBA2FF,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;IAwCpC;;;;;;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,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"}
@@ -29,7 +29,7 @@ declare const bp2wMonitor: (params: ViatomBpParams) => CustomDeviceDefinition;
29
29
  /**
30
30
  * The names the BP3 range advertises.
31
31
  *
32
- * Fifteen products differing in cuff and casing rather than in protocol, so declaring the
32
+ * Seventeen products differing in cuff, casing, or display rather than in protocol, so declaring the
33
33
  * range is one line per name:
34
34
  *
35
35
  * ```typescript
@@ -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,EAgBrC,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"}
@@ -8,8 +8,18 @@ import { CustomFrameSpec } from "./custom-frame-spec";
8
8
  import { CustomLepuSpec } from "./custom-lepu-spec";
9
9
  import { CustomSessionPolicy } from "./custom-session-policy";
10
10
  import { MeasurementWithCaseType } from "./measurement-with-case-type";
11
+ import { ParsingCase } from "./parsing-case";
11
12
  import { IService } from "./service.type";
12
13
  type CustomReadingDecorator = (reading: MeasurementWithCaseType<Measurement>, frame?: readonly string[], recordOffset?: number) => MeasurementWithCaseType<Measurement>;
14
+ interface CustomFrameHandlerParams {
15
+ parsedData: MeasurementWithCaseType<Measurement>;
16
+ parsingCase?: ParsingCase;
17
+ frame: readonly string[];
18
+ isMeasuring: boolean;
19
+ emit: (reading: Measurement) => void;
20
+ }
21
+ type CustomFrameHandler = (params: CustomFrameHandlerParams) => void;
22
+ type CustomFrameHandlerFactory = () => CustomFrameHandler;
13
23
  /**
14
24
  * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
15
25
  */
@@ -36,6 +46,8 @@ interface CustomDeviceDefinition {
36
46
  readonly lepu?: CustomLepuSpec;
37
47
  /** Adds protocol metadata that is not a numeric measurement field. */
38
48
  readonly decorateReading?: CustomReadingDecorator;
49
+ /** Creates per-device state for frames that need a protocol-specific decoder. */
50
+ readonly createFrameHandler?: CustomFrameHandlerFactory;
39
51
  }
40
- export type { CustomDeviceDefinition, CustomReadingDecorator };
52
+ export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, };
41
53
  //# 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":"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,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,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,UAAU,wBAAwB;IAChC,UAAU,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC;AAED,KAAK,kBAAkB,GAAG,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;AACrE,KAAK,yBAAyB,GAAG,MAAM,kBAAkB,CAAC;AAE1D;;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;IAElD,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CACzD;AAED,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GACvB,CAAC"}
@@ -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.36",
3
+ "version": "1.6.38",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",