@ovok/native 0.4.5 → 0.4.7

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 (380) hide show
  1. package/lib/commonjs/modules/bt-management/index.js +176 -0
  2. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js +49 -0
  4. package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js.map +1 -0
  5. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +47 -41
  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/compile-custom-frame.js +48 -2
  8. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +98 -0
  10. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -0
  11. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +24 -1
  12. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/device-creator.js +15 -8
  14. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +85 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.frame-reader.js +8 -74
  18. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.frame-reader.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +141 -0
  20. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -0
  21. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +16 -50
  22. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +17 -6
  24. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +21 -14
  26. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +36 -0
  28. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -0
  29. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +81 -14
  30. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js +48 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -0
  33. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js +37 -0
  34. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -0
  35. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-info.js +83 -0
  36. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-info.js.map +1 -0
  37. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js +26 -0
  38. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -0
  39. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-names.js +36 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-names.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +155 -0
  42. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -0
  43. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame-reader.js +98 -0
  44. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame-reader.js.map +1 -0
  45. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame.js +29 -0
  46. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.frame.js.map +1 -0
  47. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +103 -0
  48. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -0
  49. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js +32 -0
  50. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -0
  51. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.response-type.js +64 -0
  52. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.response-type.js.map +1 -0
  53. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +143 -0
  54. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -0
  55. package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js +38 -0
  56. package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -0
  57. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +156 -0
  58. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +124 -0
  60. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -0
  61. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +113 -0
  62. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -0
  63. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js +117 -0
  64. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -0
  65. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +82 -0
  66. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -0
  67. package/lib/commonjs/modules/bt-management/types/command-sequencer.js +6 -0
  68. package/lib/commonjs/modules/bt-management/types/command-sequencer.js.map +1 -0
  69. package/lib/commonjs/modules/bt-management/types/custom-checksum-algorithm.js +2 -0
  70. package/lib/commonjs/modules/bt-management/types/custom-checksum-algorithm.js.map +1 -0
  71. package/lib/commonjs/modules/bt-management/types/custom-checksum-spec.js +6 -0
  72. package/lib/commonjs/modules/bt-management/types/custom-checksum-spec.js.map +1 -0
  73. package/lib/commonjs/modules/bt-management/types/custom-lepu-spec.js +2 -0
  74. package/lib/commonjs/modules/bt-management/types/custom-lepu-spec.js.map +1 -0
  75. package/lib/commonjs/modules/bt-management/types/custom-measurement-spec.js +6 -0
  76. package/lib/commonjs/modules/bt-management/types/custom-measurement-spec.js.map +1 -0
  77. package/lib/commonjs/modules/bt-management/types/device-command.js +2 -0
  78. package/lib/commonjs/modules/bt-management/types/device-command.js.map +1 -0
  79. package/lib/commonjs/modules/bt-management/types/measurement-group.js +6 -0
  80. package/lib/commonjs/modules/bt-management/types/measurement-group.js.map +1 -0
  81. package/lib/commonjs/modules/bt-management/utils/calculate-checksum.js +49 -0
  82. package/lib/commonjs/modules/bt-management/utils/calculate-checksum.js.map +1 -0
  83. package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js +9 -0
  84. package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js.map +1 -1
  85. package/lib/commonjs/modules/bt-management/utils/hex-to-bytes.js +19 -0
  86. package/lib/commonjs/modules/bt-management/utils/hex-to-bytes.js.map +1 -0
  87. package/lib/commonjs/modules/bt-management/utils/le-32-to-bytes.js +13 -0
  88. package/lib/commonjs/modules/bt-management/utils/le-32-to-bytes.js.map +1 -0
  89. package/lib/commonjs/modules/bt-management/utils/summarise-measurement-for-log.js +22 -0
  90. package/lib/commonjs/modules/bt-management/utils/summarise-measurement-for-log.js.map +1 -0
  91. package/lib/commonjs/modules/bt-management/utils/supported-measurement-type-keys.js +18 -0
  92. package/lib/commonjs/modules/bt-management/utils/supported-measurement-type-keys.js.map +1 -0
  93. package/lib/module/modules/bt-management/index.js +16 -0
  94. package/lib/module/modules/bt-management/index.js.map +1 -1
  95. package/lib/module/modules/bt-management/services/custom/compile-case-fields.js +44 -0
  96. package/lib/module/modules/bt-management/services/custom/compile-case-fields.js.map +1 -0
  97. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +47 -41
  98. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  99. package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js +48 -2
  100. package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -1
  101. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +93 -0
  102. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -0
  103. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +24 -1
  104. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  105. package/lib/module/modules/bt-management/services/device-creator.js +16 -8
  106. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  107. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +81 -0
  108. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -0
  109. package/lib/module/modules/bt-management/services/devices/bp2/bp2.frame-reader.js +8 -73
  110. package/lib/module/modules/bt-management/services/devices/bp2/bp2.frame-reader.js.map +1 -1
  111. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +136 -0
  112. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -0
  113. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +16 -50
  114. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  115. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +17 -6
  116. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  117. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +21 -14
  118. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  119. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +32 -0
  120. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -0
  121. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +81 -14
  122. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  123. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js +43 -0
  124. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -0
  125. package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js +33 -0
  126. package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -0
  127. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-info.js +79 -0
  128. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-info.js.map +1 -0
  129. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js +22 -0
  130. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -0
  131. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-names.js +32 -0
  132. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-names.js.map +1 -0
  133. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +150 -0
  134. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -0
  135. package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame-reader.js +93 -0
  136. package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame-reader.js.map +1 -0
  137. package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame.js +24 -0
  138. package/lib/module/modules/bt-management/services/devices/lepu/lepu.frame.js.map +1 -0
  139. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +98 -0
  140. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -0
  141. package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js +27 -0
  142. package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -0
  143. package/lib/module/modules/bt-management/services/devices/lepu/lepu.response-type.js +59 -0
  144. package/lib/module/modules/bt-management/services/devices/lepu/lepu.response-type.js.map +1 -0
  145. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +140 -0
  146. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -0
  147. package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js +34 -0
  148. package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -0
  149. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +149 -0
  150. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -0
  151. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +118 -0
  152. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -0
  153. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +108 -0
  154. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -0
  155. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js +114 -0
  156. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -0
  157. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +79 -0
  158. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -0
  159. package/lib/module/modules/bt-management/types/command-sequencer.js +4 -0
  160. package/lib/module/modules/bt-management/types/command-sequencer.js.map +1 -0
  161. package/lib/module/modules/bt-management/types/custom-checksum-algorithm.js +2 -0
  162. package/lib/module/modules/bt-management/types/custom-checksum-algorithm.js.map +1 -0
  163. package/lib/module/modules/bt-management/types/custom-checksum-spec.js +4 -0
  164. package/lib/module/modules/bt-management/types/custom-checksum-spec.js.map +1 -0
  165. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  166. package/lib/module/modules/bt-management/types/custom-lepu-spec.js +2 -0
  167. package/lib/module/modules/bt-management/types/custom-lepu-spec.js.map +1 -0
  168. package/lib/module/modules/bt-management/types/custom-measurement-spec.js +4 -0
  169. package/lib/module/modules/bt-management/types/custom-measurement-spec.js.map +1 -0
  170. package/lib/module/modules/bt-management/types/device-command.js +2 -0
  171. package/lib/module/modules/bt-management/types/device-command.js.map +1 -0
  172. package/lib/module/modules/bt-management/types/measurement-group.js +4 -0
  173. package/lib/module/modules/bt-management/types/measurement-group.js.map +1 -0
  174. package/lib/module/modules/bt-management/utils/calculate-checksum.js +44 -0
  175. package/lib/module/modules/bt-management/utils/calculate-checksum.js.map +1 -0
  176. package/lib/module/modules/bt-management/utils/create-frame-validator.js +9 -0
  177. package/lib/module/modules/bt-management/utils/create-frame-validator.js.map +1 -1
  178. package/lib/module/modules/bt-management/utils/hex-to-bytes.js +14 -0
  179. package/lib/module/modules/bt-management/utils/hex-to-bytes.js.map +1 -0
  180. package/lib/module/modules/bt-management/utils/le-32-to-bytes.js +8 -0
  181. package/lib/module/modules/bt-management/utils/le-32-to-bytes.js.map +1 -0
  182. package/lib/module/modules/bt-management/utils/summarise-measurement-for-log.js +17 -0
  183. package/lib/module/modules/bt-management/utils/summarise-measurement-for-log.js.map +1 -0
  184. package/lib/module/modules/bt-management/utils/supported-measurement-type-keys.js +13 -0
  185. package/lib/module/modules/bt-management/utils/supported-measurement-type-keys.js.map +1 -0
  186. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +16 -0
  187. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-case-fields.d.ts +13 -0
  189. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts +11 -0
  193. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -0
  194. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts +24 -0
  197. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts +5 -8
  199. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +67 -0
  201. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -4
  203. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +20 -1
  205. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -1
  207. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +21 -0
  209. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +33 -0
  211. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +24 -0
  213. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +32 -0
  215. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts +27 -0
  217. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts.map +1 -0
  218. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +20 -0
  219. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -0
  220. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts +14 -0
  221. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts.map +1 -0
  222. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +75 -0
  223. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts +28 -0
  225. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts.map +1 -0
  226. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts +12 -0
  227. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +81 -0
  229. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts +17 -0
  231. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts +33 -0
  233. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +85 -0
  235. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +27 -0
  237. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +44 -0
  239. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +44 -0
  241. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +32 -0
  243. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +25 -0
  245. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -0
  246. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +39 -0
  247. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -0
  248. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +26 -0
  249. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts +13 -0
  251. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-algorithm.d.ts +10 -0
  253. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-algorithm.d.ts.map +1 -0
  254. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-spec.d.ts +23 -0
  255. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-checksum-spec.d.ts.map +1 -0
  256. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +5 -0
  257. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
  259. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts +8 -0
  261. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +44 -0
  263. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -0
  264. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement-spec.d.ts +9 -0
  265. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement-spec.d.ts.map +1 -0
  266. package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts +18 -0
  267. package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts.map +1 -0
  268. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-group.d.ts +14 -0
  269. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-group.d.ts.map +1 -0
  270. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +9 -0
  271. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-checksum.d.ts +13 -0
  273. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-checksum.d.ts.map +1 -0
  274. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/src/modules/bt-management/utils/hex-to-bytes.d.ts +10 -0
  276. package/lib/typescript/commonjs/src/modules/bt-management/utils/hex-to-bytes.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/src/modules/bt-management/utils/le-32-to-bytes.d.ts +3 -0
  278. package/lib/typescript/commonjs/src/modules/bt-management/utils/le-32-to-bytes.d.ts.map +1 -0
  279. package/lib/typescript/commonjs/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts +9 -0
  280. package/lib/typescript/commonjs/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts +10 -0
  282. package/lib/typescript/commonjs/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts.map +1 -0
  283. package/lib/typescript/module/src/modules/bt-management/index.d.ts +16 -0
  284. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  285. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-case-fields.d.ts +13 -0
  286. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -0
  287. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  288. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -1
  289. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts +11 -0
  290. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -0
  291. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  292. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  293. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts +24 -0
  294. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -0
  295. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts +5 -8
  296. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.frame-reader.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +67 -0
  298. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -0
  299. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -4
  300. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  301. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +20 -1
  302. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +12 -1
  304. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  305. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts +21 -0
  306. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -0
  307. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +33 -0
  308. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  309. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +24 -0
  310. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -0
  311. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +32 -0
  312. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -0
  313. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts +27 -0
  314. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-info.d.ts.map +1 -0
  315. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +20 -0
  316. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -0
  317. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts +14 -0
  318. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-names.d.ts.map +1 -0
  319. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +75 -0
  320. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -0
  321. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts +28 -0
  322. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame-reader.d.ts.map +1 -0
  323. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts +12 -0
  324. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.frame.d.ts.map +1 -0
  325. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +81 -0
  326. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -0
  327. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts +17 -0
  328. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -0
  329. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts +33 -0
  330. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.response-type.d.ts.map +1 -0
  331. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +85 -0
  332. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -0
  333. package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +27 -0
  334. package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -0
  335. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +44 -0
  336. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -0
  337. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +44 -0
  338. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -0
  339. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +32 -0
  340. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -0
  341. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +25 -0
  342. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -0
  343. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +39 -0
  344. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -0
  345. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +26 -0
  346. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -0
  347. package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts +13 -0
  348. package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -1
  349. package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-algorithm.d.ts +10 -0
  350. package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-algorithm.d.ts.map +1 -0
  351. package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-spec.d.ts +23 -0
  352. package/lib/typescript/module/src/modules/bt-management/types/custom-checksum-spec.d.ts.map +1 -0
  353. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +5 -0
  354. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  355. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
  356. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  357. package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts +8 -0
  358. package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -1
  359. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +44 -0
  360. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -0
  361. package/lib/typescript/module/src/modules/bt-management/types/custom-measurement-spec.d.ts +9 -0
  362. package/lib/typescript/module/src/modules/bt-management/types/custom-measurement-spec.d.ts.map +1 -0
  363. package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts +18 -0
  364. package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts.map +1 -0
  365. package/lib/typescript/module/src/modules/bt-management/types/measurement-group.d.ts +14 -0
  366. package/lib/typescript/module/src/modules/bt-management/types/measurement-group.d.ts.map +1 -0
  367. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +9 -0
  368. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  369. package/lib/typescript/module/src/modules/bt-management/utils/calculate-checksum.d.ts +13 -0
  370. package/lib/typescript/module/src/modules/bt-management/utils/calculate-checksum.d.ts.map +1 -0
  371. package/lib/typescript/module/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -1
  372. package/lib/typescript/module/src/modules/bt-management/utils/hex-to-bytes.d.ts +10 -0
  373. package/lib/typescript/module/src/modules/bt-management/utils/hex-to-bytes.d.ts.map +1 -0
  374. package/lib/typescript/module/src/modules/bt-management/utils/le-32-to-bytes.d.ts +3 -0
  375. package/lib/typescript/module/src/modules/bt-management/utils/le-32-to-bytes.d.ts.map +1 -0
  376. package/lib/typescript/module/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts +9 -0
  377. package/lib/typescript/module/src/modules/bt-management/utils/summarise-measurement-for-log.d.ts.map +1 -0
  378. package/lib/typescript/module/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts +10 -0
  379. package/lib/typescript/module/src/modules/bt-management/utils/supported-measurement-type-keys.d.ts.map +1 -0
  380. package/package.json +12 -1
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.er3Recorder = exports.er2Recorder = exports.er1Recorder = exports.ER2_MODEL_NAMES = exports.ER1_MODEL_NAMES = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _lepuNameMatch = require("../lepu/lepu.name-match.js");
9
+ var _lepuTransports = require("../lepu/lepu.transports.js");
10
+ /**
11
+ * The Viatom ECG recorders - ER1, ER2 and ER3.
12
+ *
13
+ * **What a declaration gets from these is the heart rate, not the waveform.** The ECG itself
14
+ * arrives as a stream of samples assembled across many notifications and belongs to a device
15
+ * class; the recorders also report a heart rate in the same realtime frame, at a fixed
16
+ * offset, and that is a reading a declaration can carry on its own.
17
+ *
18
+ * Their stored recordings are a separate matter and are reachable: these devices use the
19
+ * family's generic file opcodes, so `LepuFileTransfer` downloads their records unchanged.
20
+ * Turning a downloaded recording into a measurement still needs a device class.
21
+ *
22
+ * ## A note on the opcodes
23
+ *
24
+ * This range numbers its commands low, in the space where the family's meanings diverge
25
+ * most, so the poll is chosen deliberately rather than taken from whatever the vendor's SDK
26
+ * calls first:
27
+ *
28
+ * - `RT_PARAM` is `0x02` here and **`CALIBRATION_SLOPE` on a BP2**, a factory command that
29
+ * silently biases every subsequent blood-pressure reading. It is never sent, even though
30
+ * it would be the cheaper poll - it returns the parameters without the waveform.
31
+ * - `START_ECG` is `0x08` on a Lepod and `RT_DATA` on a BP2. It is never sent either.
32
+ *
33
+ * `RT_DATA` is a read on every one of them, which is why it is the poll here. The advertised
34
+ * name is what keeps these opcodes pointed at the right hardware, so a matcher for one of
35
+ * these devices should be narrowed, never widened.
36
+ */
37
+
38
+ /** Reads the realtime parameters and waveform. A read on every device in this range. */
39
+ const RT_DATA = 0x03;
40
+
41
+ /** The ER3 answers its realtime data on a different opcode from the rest of the range. */
42
+ const ER3_RT_DATA = 0x06;
43
+ const HEART_RATE_UNIT = "bpm";
44
+ /** ER1, ER2 and ER3 share one parameter block: the heart rate opens it. */
45
+ const ER_HEART_RATE_BYTES = [7, 8];
46
+ /**
47
+ * Declares one recorder, reporting the heart rate from its realtime frame.
48
+ *
49
+ * A recorder that is not against the skin reports a rate outside what a heart can beat at,
50
+ * so it is discarded rather than reported. The device marks that condition in bits of a
51
+ * status byte, which a declaration cannot select on, so a recorder left connected and unworn
52
+ * reports a decoding failure on each poll. Reading those bits quietly needs a device class.
53
+ */
54
+ const declareRecorder = (advertisedName, profile, params) => (0, _lepuTransports.lepuDevice)({
55
+ id: params.id,
56
+ nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
57
+ transport: profile.transport,
58
+ pollCommand: profile.pollCommand,
59
+ minLengthBytes: profile.heartRateBytes[1] + 1,
60
+ caseSelectorBytes: [1],
61
+ cases: [{
62
+ selector: profile.pollCommand.toString(16).padStart(2, "0"),
63
+ kind: "result",
64
+ measurementTypeKey: _core.MeasurementTypeKey.heartRate,
65
+ description: "Realtime parameters and waveform",
66
+ fields: [{
67
+ name: "heartRate",
68
+ byteIndexes: [...profile.heartRateBytes],
69
+ byteOrder: "little",
70
+ encoding: "uint",
71
+ unit: HEART_RATE_UNIT
72
+ }]
73
+ }],
74
+ ...(params.expectedDeviceTypes ? {
75
+ expectedDeviceTypes: params.expectedDeviceTypes
76
+ } : {})
77
+ });
78
+
79
+ /** The ER1, and the handheld recorders sold under other names on the same protocol. */
80
+ const er1Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
81
+ pollCommand: RT_DATA,
82
+ heartRateBytes: ER_HEART_RATE_BYTES,
83
+ transport: "standard"
84
+ }, params);
85
+
86
+ /**
87
+ * The ER2, which reads the same block but over a link that grants nothing beyond the
88
+ * minimum. Asking it for the MTU the rest of the family grants is what the vendor's own SDK
89
+ * declines to do, and a command longer than the link carries is truncated rather than
90
+ * refused.
91
+ */
92
+ exports.er1Recorder = er1Recorder;
93
+ const er2Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
94
+ pollCommand: RT_DATA,
95
+ heartRateBytes: ER_HEART_RATE_BYTES,
96
+ transport: "standardSmallMtu"
97
+ }, params);
98
+
99
+ /** The ER3, which reads the same parameter block from a different opcode. */
100
+ exports.er2Recorder = er2Recorder;
101
+ const er3Recorder = (advertisedName, params) => declareRecorder(advertisedName, {
102
+ pollCommand: ER3_RT_DATA,
103
+ heartRateBytes: ER_HEART_RATE_BYTES,
104
+ transport: "standard"
105
+ }, params);
106
+
107
+ /** The names the ER1 recorders advertise. */
108
+ exports.er3Recorder = er3Recorder;
109
+ const ER1_MODEL_NAMES = exports.ER1_MODEL_NAMES = ["ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "HHM1"];
110
+
111
+ /** The names the ER2 recorders advertise, all of them on the small-MTU link. */
112
+ const ER2_MODEL_NAMES = exports.ER2_MODEL_NAMES = ["ER2", "ER2-S", "HHM2", "HHM3", "LP ER2"];
113
+ //# sourceMappingURL=viatom.ecg-recorders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","ER3_RT_DATA","HEART_RATE_UNIT","ER_HEART_RATE_BYTES","declareRecorder","advertisedName","profile","params","lepuDevice","id","nameMatch","lepuNameMatch","transport","pollCommand","minLengthBytes","heartRateBytes","caseSelectorBytes","cases","selector","toString","padStart","kind","measurementTypeKey","MeasurementTypeKey","heartRate","description","fields","name","byteIndexes","byteOrder","encoding","unit","expectedDeviceTypes","er1Recorder","exports","er2Recorder","er3Recorder","ER1_MODEL_NAMES","ER2_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.ecg-recorders.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.lepodMonitor = exports.LEPOD_MODEL_NAMES = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _lepuNameMatch = require("../lepu/lepu.name-match.js");
9
+ var _lepuTransports = require("../lepu/lepu.transports.js");
10
+ /**
11
+ * The Lepod, a multi-parameter patient monitor.
12
+ *
13
+ * One realtime frame carries a heart rate, an oxygen saturation with its pulse rate, a
14
+ * respiration rate and a body temperature. They are four measurements taken by four
15
+ * instruments that happen to share a frame, so they are declared and reported separately: a
16
+ * temperature probe that is not attached is no reason to withhold the heart rate beside it.
17
+ *
18
+ * The ECG waveform in the same frame is not declared. It is a sample stream assembled across
19
+ * notifications and needs a device class; the recordings the device stores are reachable
20
+ * through the family's generic file opcodes.
21
+ */
22
+
23
+ /**
24
+ * Reads the realtime frame. A read - unlike `START_ECG`, which is `0x08` here and `RT_DATA`
25
+ * on a BP2, and `RT_PARAM`, which is `0x02` here and `CALIBRATION_SLOPE` on a BP2.
26
+ */
27
+ const RT_DATA = 0x03;
28
+
29
+ /** Header plus the parameter block through the temperature, which ends it. */
30
+ const MIN_LENGTH_BYTES = 46;
31
+
32
+ /** Frame offsets: the vendor's parameter block starts at the seven-byte header. */
33
+ const HEART_RATE = [31, 32];
34
+ const RESPIRATION_RATE = 34;
35
+ const BLOOD_OXYGEN = 36;
36
+ const PULSE_RATE = [37, 38];
37
+ const PERFUSION_INDEX = 39;
38
+ const TEMPERATURE = [44, 45];
39
+
40
+ /** The device counts perfusion in tenths of a percent and temperature in hundredths. */
41
+ const PERFUSION_SCALE = 0.1;
42
+ const TEMPERATURE_SCALE = 0.01;
43
+ const littleEndian = (name, byteIndexes, unit) => ({
44
+ name,
45
+ byteIndexes,
46
+ byteOrder: "little",
47
+ encoding: "uint",
48
+ unit
49
+ });
50
+ const LEPOD_MEASUREMENTS = [{
51
+ measurementTypeKey: _core.MeasurementTypeKey.bloodOxygenPulseRate,
52
+ fields: [{
53
+ name: "bloodOxygen",
54
+ byteIndexes: [BLOOD_OXYGEN],
55
+ encoding: "uint",
56
+ unit: "%"
57
+ }, littleEndian("pulseRate", PULSE_RATE, "bpm"), {
58
+ name: "perfusionIndex",
59
+ byteIndexes: [PERFUSION_INDEX],
60
+ encoding: "uint",
61
+ unit: "%",
62
+ scale: PERFUSION_SCALE,
63
+ decimals: 1
64
+ }]
65
+ }, {
66
+ measurementTypeKey: _core.MeasurementTypeKey.respiratoryRate,
67
+ fields: [{
68
+ name: "respiratoryRate",
69
+ byteIndexes: [RESPIRATION_RATE],
70
+ encoding: "uint",
71
+ unit: "/min"
72
+ }]
73
+ }, {
74
+ measurementTypeKey: _core.MeasurementTypeKey.temperature,
75
+ fields: [{
76
+ name: "bodyTemp",
77
+ byteIndexes: TEMPERATURE,
78
+ byteOrder: "little",
79
+ encoding: "uint",
80
+ unit: "Cel",
81
+ scale: TEMPERATURE_SCALE,
82
+ decimals: 2
83
+ }]
84
+ }];
85
+ /**
86
+ * Declares a Lepod, reporting every reading its realtime frame carries.
87
+ *
88
+ * An instrument that is not attached reports a value outside the physiological range for
89
+ * what it measures, so that reading is discarded and reported while the others in the same
90
+ * frame are still delivered. The device also marks those conditions in bits of a lead-off
91
+ * byte, which a declaration cannot select on - reading them quietly needs a device class.
92
+ */
93
+ const lepodMonitor = (advertisedName, params) => (0, _lepuTransports.lepuDevice)({
94
+ id: params.id,
95
+ nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
96
+ pollCommand: RT_DATA,
97
+ minLengthBytes: MIN_LENGTH_BYTES,
98
+ caseSelectorBytes: [1],
99
+ cases: [{
100
+ selector: "03",
101
+ kind: "result",
102
+ measurementTypeKey: _core.MeasurementTypeKey.heartRate,
103
+ description: "Realtime parameters, waveform and lead state",
104
+ fields: [littleEndian("heartRate", HEART_RATE, "bpm")],
105
+ additionalMeasurements: LEPOD_MEASUREMENTS.map(each => ({
106
+ ...each
107
+ }))
108
+ }],
109
+ ...(params.expectedDeviceTypes ? {
110
+ expectedDeviceTypes: params.expectedDeviceTypes
111
+ } : {})
112
+ });
113
+
114
+ /** The names the Lepod range advertises. */
115
+ exports.lepodMonitor = lepodMonitor;
116
+ const LEPOD_MODEL_NAMES = exports.LEPOD_MODEL_NAMES = ["Lepod", "LepodPro"];
117
+ //# sourceMappingURL=viatom.lepod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","MIN_LENGTH_BYTES","HEART_RATE","RESPIRATION_RATE","BLOOD_OXYGEN","PULSE_RATE","PERFUSION_INDEX","TEMPERATURE","PERFUSION_SCALE","TEMPERATURE_SCALE","littleEndian","name","byteIndexes","unit","byteOrder","encoding","LEPOD_MEASUREMENTS","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","fields","scale","decimals","respiratoryRate","temperature","lepodMonitor","advertisedName","params","lepuDevice","id","nameMatch","lepuNameMatch","pollCommand","minLengthBytes","caseSelectorBytes","cases","selector","kind","heartRate","description","additionalMeasurements","map","each","expectedDeviceTypes","exports","LEPOD_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.lepod.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.viatomOximeter = exports.VIATOM_OXIMETER_NAMES = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _lepuNameMatch = require("../lepu/lepu.name-match.js");
9
+ var _lepuTransports = require("../lepu/lepu.transports.js");
10
+ /**
11
+ * The Viatom pulse oximeters - the O2Ring, Oxyfit, KidsO2 and BabyO2 ranges.
12
+ *
13
+ * They share the family's framing and characteristics but not its opcodes: this range
14
+ * numbers its own commands, so realtime parameters are `0x17` here rather than the `0x08`
15
+ * the blood-pressure monitors answer, and its stored files are read with `0x03`-`0x05`
16
+ * rather than the generic `0xF1`-`0xF4`. A file transfer written for the rest of the family
17
+ * does not apply to these.
18
+ */
19
+
20
+ /** Realtime parameters. A read: it reports what the sensor sees and starts nothing. */
21
+ const RT_PARAM = 0x17;
22
+
23
+ /** Only the command byte, because what makes a reading valid here is a bit, not a byte. */
24
+ const CASE_SELECTOR_BYTES = [1];
25
+
26
+ /** Header plus the realtime parameters through the pulse rate. */
27
+ const MIN_LENGTH_BYTES = 10;
28
+ const PAYLOAD = 7;
29
+ const SPOT_CHECK_TIMEOUT_MS = 60_000;
30
+ /**
31
+ * Declares one oximeter of the range.
32
+ *
33
+ * **A finger that is not in the sensor yields no reading, reported as an error.** The device
34
+ * answers every poll whether or not it is measuring, and marks an unusable reading in two
35
+ * bits of a status byte - which a declaration cannot read, because a case is selected by
36
+ * whole bytes. What it can do is refuse the number: an oxygen saturation measured off the
37
+ * finger falls outside the physiological range, so it is discarded rather than reported.
38
+ * The reading is therefore never wrong, but a device left connected with nobody wearing it
39
+ * reports a decoding failure on each poll. Reading those bits quietly needs a device class.
40
+ */
41
+ const viatomOximeter = (advertisedName, params) => (0, _lepuTransports.lepuDevice)({
42
+ id: params.id,
43
+ nameMatch: params.nameMatch ?? (0, _lepuNameMatch.lepuNameMatch)(advertisedName),
44
+ stuckDataTimeoutMs: SPOT_CHECK_TIMEOUT_MS,
45
+ pollCommand: RT_PARAM,
46
+ minLengthBytes: MIN_LENGTH_BYTES,
47
+ caseSelectorBytes: CASE_SELECTOR_BYTES,
48
+ cases: [{
49
+ selector: "17",
50
+ kind: "result",
51
+ measurementTypeKey: _core.MeasurementTypeKey.bloodOxygenPulseRate,
52
+ description: "Realtime parameters",
53
+ fields: [{
54
+ name: "bloodOxygen",
55
+ byteIndexes: [PAYLOAD],
56
+ encoding: "uint",
57
+ unit: "%"
58
+ }, {
59
+ name: "pulseRate",
60
+ byteIndexes: [PAYLOAD + 1, PAYLOAD + 2],
61
+ byteOrder: "little",
62
+ encoding: "uint",
63
+ unit: "bpm"
64
+ }]
65
+ }],
66
+ ...(params.expectedDeviceTypes ? {
67
+ expectedDeviceTypes: params.expectedDeviceTypes
68
+ } : {})
69
+ });
70
+
71
+ /**
72
+ * The names the oximeter range advertises.
73
+ *
74
+ * ```typescript
75
+ * const oximeters = VIATOM_OXIMETER_NAMES.map((name) =>
76
+ * viatomOximeter(name, { id: `viatom-${name.toLowerCase()}` }),
77
+ * );
78
+ * ```
79
+ */
80
+ exports.viatomOximeter = viatomOximeter;
81
+ const VIATOM_OXIMETER_NAMES = exports.VIATOM_OXIMETER_NAMES = ["BBSM S1", "BBSM S2", "CMRing", "KidsO2-WPS", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "Oxyfit", "Oxyfit-WPS", "OxyU", "OxyU SE", "SI PO2"];
82
+ //# sourceMappingURL=viatom.oximeters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_PARAM","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","PAYLOAD","SPOT_CHECK_TIMEOUT_MS","viatomOximeter","advertisedName","params","lepuDevice","id","nameMatch","lepuNameMatch","stuckDataTimeoutMs","pollCommand","minLengthBytes","caseSelectorBytes","cases","selector","kind","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","description","fields","name","byteIndexes","encoding","unit","byteOrder","expectedDeviceTypes","exports","VIATOM_OXIMETER_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.oximeters.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMG,QAAQ,GAAG,IAAI;;AAErB;AACA,MAAMC,mBAAmB,GAAG,CAAC,CAAC,CAAC;;AAE/B;AACA,MAAMC,gBAAgB,GAAG,EAAE;AAE3B,MAAMC,OAAO,GAAG,CAAC;AAEjB,MAAMC,qBAAqB,GAAG,MAAM;AAoBpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAGA,CACrBC,cAAsB,EACtBC,MAA4B,KAE5B,IAAAC,0BAAU,EAAC;EACTC,EAAE,EAAEF,MAAM,CAACE,EAAE;EACbC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAI,IAAAC,4BAAa,EAACL,cAAc,CAAC;EAC5DM,kBAAkB,EAAER,qBAAqB;EACzCS,WAAW,EAAEb,QAAQ;EACrBc,cAAc,EAAEZ,gBAAgB;EAChCa,iBAAiB,EAAEd,mBAAmB;EACtCe,KAAK,EAAE,CACL;IACEC,QAAQ,EAAE,IAAI;IACdC,IAAI,EAAE,QAAQ;IACdC,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;IAC3DC,WAAW,EAAE,qBAAqB;IAClCC,MAAM,EAAE,CACN;MACEC,IAAI,EAAE,aAAa;MACnBC,WAAW,EAAE,CAACtB,OAAO,CAAC;MACtBuB,QAAQ,EAAE,MAAM;MAChBC,IAAI,EAAE;IACR,CAAC,EACD;MACEH,IAAI,EAAE,WAAW;MACjBC,WAAW,EAAE,CAACtB,OAAO,GAAG,CAAC,EAAEA,OAAO,GAAG,CAAC,CAAC;MACvCyB,SAAS,EAAE,QAAQ;MACnBF,QAAQ,EAAE,MAAM;MAChBC,IAAI,EAAE;IACR,CAAC;EAEL,CAAC,CACF;EACD,IAAIpB,MAAM,CAACsB,mBAAmB,GAC1B;IAAEA,mBAAmB,EAAEtB,MAAM,CAACsB;EAAoB,CAAC,GACnD,CAAC,CAAC;AACR,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAC,OAAA,CAAAzB,cAAA,GAAAA,cAAA;AASA,MAAM0B,qBAAwC,GAAAD,OAAA,CAAAC,qBAAA,GAAG,CAC/C,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,SAAS,EACT,QAAQ,CACT","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=command-sequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/command-sequencer.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-checksum-algorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-checksum-algorithm.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=custom-checksum-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-checksum-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-lepu-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-lepu-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=custom-measurement-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-measurement-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=device-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-command.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=measurement-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/measurement-group.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isChecksumAlgorithm = exports.hasValidChecksum = void 0;
7
+ var _calculateCrc = require("./calculate-crc-8.js");
8
+ var _hexToByte = require("./hex-to-byte.js");
9
+ const BYTE_MASK = 0xff;
10
+ const foldBytes = (covered, combine) => covered.reduce((total, byte) => combine(total, (0, _hexToByte.hexToByte)(byte || "0")) & BYTE_MASK, 0);
11
+
12
+ /**
13
+ * One implementation per algorithm, looked up by name.
14
+ *
15
+ * A map rather than a switch, so adding an algorithm is adding an entry, and so a
16
+ * declaration naming one that does not exist is rejected at registration instead of falling
17
+ * through to a default that would accept every frame.
18
+ */
19
+ const ALGORITHMS = {
20
+ crc8: covered => (0, _calculateCrc.calculateCrc8)(covered, covered.length),
21
+ xor: covered => foldBytes(covered, (total, byte) => total ^ byte),
22
+ sum: covered => foldBytes(covered, (total, byte) => total + byte)
23
+ };
24
+ const isChecksumAlgorithm = candidate => typeof candidate === "string" && candidate in ALGORITHMS;
25
+
26
+ /** The bytes a checksum covers, defaulting to everything between `from` and the checksum. */
27
+ exports.isChecksumAlgorithm = isChecksumAlgorithm;
28
+ const coveredBytes = (pkg, checksum) => {
29
+ const from = checksum.from ?? 0;
30
+ const byteCount = checksum.byteCount ?? checksum.index - from;
31
+ return pkg.slice(from, from + byteCount);
32
+ };
33
+
34
+ /**
35
+ * Whether a buffer's checksum byte matches the bytes it covers.
36
+ *
37
+ * A buffer too short to hold the checksum byte fails rather than reading it as zero: an
38
+ * absent byte is not a matching byte, and treating it as one would let a truncated
39
+ * notification through as a valid reading.
40
+ */
41
+ const hasValidChecksum = (pkg, checksum) => {
42
+ const declared = pkg[checksum.index];
43
+ if (declared === undefined) {
44
+ return false;
45
+ }
46
+ return ALGORITHMS[checksum.algorithm](coveredBytes(pkg, checksum)) === (0, _hexToByte.hexToByte)(declared);
47
+ };
48
+ exports.hasValidChecksum = hasValidChecksum;
49
+ //# sourceMappingURL=calculate-checksum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_calculateCrc","require","_hexToByte","BYTE_MASK","foldBytes","covered","combine","reduce","total","byte","hexToByte","ALGORITHMS","crc8","calculateCrc8","length","xor","sum","isChecksumAlgorithm","candidate","exports","coveredBytes","pkg","checksum","from","byteCount","index","slice","hasValidChecksum","declared","undefined","algorithm"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/calculate-checksum.ts"],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,MAAME,SAAS,GAAG,IAAI;AAEtB,MAAMC,SAAS,GAAGA,CAChBC,OAAiB,EACjBC,OAAgD,KAEhDD,OAAO,CAACE,MAAM,CACZ,CAACC,KAAK,EAAEC,IAAI,KAAKH,OAAO,CAACE,KAAK,EAAE,IAAAE,oBAAS,EAACD,IAAI,IAAI,GAAG,CAAC,CAAC,GAAGN,SAAS,EACnE,CACF,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,UAGL,GAAG;EACFC,IAAI,EAAGP,OAAO,IAAK,IAAAQ,2BAAa,EAACR,OAAO,EAAEA,OAAO,CAACS,MAAM,CAAC;EACzDC,GAAG,EAAGV,OAAO,IAAKD,SAAS,CAACC,OAAO,EAAE,CAACG,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAGC,IAAI,CAAC;EACnEO,GAAG,EAAGX,OAAO,IAAKD,SAAS,CAACC,OAAO,EAAE,CAACG,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAGC,IAAI;AACpE,CAAC;AAED,MAAMQ,mBAAmB,GACvBC,SAAkB,IAElB,OAAOA,SAAS,KAAK,QAAQ,IAAIA,SAAS,IAAIP,UAAU;;AAE1D;AAAAQ,OAAA,CAAAF,mBAAA,GAAAA,mBAAA;AACA,MAAMG,YAAY,GAAGA,CAACC,GAAa,EAAEC,QAA4B,KAAe;EAC9E,MAAMC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAI,CAAC;EAC/B,MAAMC,SAAS,GAAGF,QAAQ,CAACE,SAAS,IAAIF,QAAQ,CAACG,KAAK,GAAGF,IAAI;EAE7D,OAAOF,GAAG,CAACK,KAAK,CAACH,IAAI,EAAEA,IAAI,GAAGC,SAAS,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAGA,CACvBN,GAAa,EACbC,QAA4B,KAChB;EACZ,MAAMM,QAAQ,GAAGP,GAAG,CAACC,QAAQ,CAACG,KAAK,CAAC;EAEpC,IAAIG,QAAQ,KAAKC,SAAS,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,OACElB,UAAU,CAACW,QAAQ,CAACQ,SAAS,CAAC,CAACV,YAAY,CAACC,GAAG,EAAEC,QAAQ,CAAC,CAAC,KAC3D,IAAAZ,oBAAS,EAACkB,QAAQ,CAAC;AAEvB,CAAC;AAACT,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createFrameValidator = void 0;
7
+ var _calculateChecksum = require("./calculate-checksum.js");
7
8
  const byteAt = (pkg, index) => parseInt(pkg[index] ?? "0", 16);
8
9
  const announcedLength = (pkg, length) => {
9
10
  const bytes = [];
@@ -31,6 +32,14 @@ const createFrameValidator = frame => pkg => {
31
32
  return false;
32
33
  }
33
34
  }
35
+
36
+ /**
37
+ * Checked before the length, because a corrupted buffer can carry a plausible length.
38
+ * A frame that fails here is discarded rather than decoded at a wrong value.
39
+ */
40
+ if (frame.checksum && !(0, _calculateChecksum.hasValidChecksum)(pkg, frame.checksum)) {
41
+ return false;
42
+ }
34
43
  if (!frame.length) {
35
44
  return true;
36
45
  }
@@ -1 +1 @@
1
- {"version":3,"names":["byteAt","pkg","index","parseInt","announcedLength","length","bytes","i","widthBytes","push","ordered","byteOrder","reverse","reduce","total","byte","createFrameValidator","frame","minLengthBytes","header","toLowerCase","overheadBytes","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-frame-validator.ts"],"mappings":";;;;;;AAEA,MAAMA,MAAM,GAAGA,CAACC,GAAa,EAAEC,KAAa,KAC1CC,QAAQ,CAACF,GAAG,CAACC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;AAEjC,MAAME,eAAe,GAAGA,CACtBH,GAAa,EACbI,MAA8C,KACnC;EACX,MAAMC,KAAe,GAAG,EAAE;EAE1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,UAAU,EAAED,CAAC,EAAE,EAAE;IAC1CD,KAAK,CAACG,IAAI,CAACT,MAAM,CAACC,GAAG,EAAEI,MAAM,CAACH,KAAK,GAAGK,CAAC,CAAC,CAAC;EAC3C;EAEA,MAAMG,OAAO,GAAGL,MAAM,CAACM,SAAS,KAAK,QAAQ,GAAGL,KAAK,CAACM,OAAO,CAAC,CAAC,GAAGN,KAAK;EAEvE,OAAOI,OAAO,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAG,GAAG,GAAGC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAC9BC,KAAsB,IACtBhB,GAAa,IAAc;EAC1B,IAAIA,GAAG,CAACI,MAAM,GAAGY,KAAK,CAACC,cAAc,EAAE;IACrC,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAM,IAAI,EAAE;EAEjC,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,MAAM,CAACd,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAI,CAACN,GAAG,CAACM,CAAC,CAAC,IAAI,EAAE,EAAEa,WAAW,CAAC,CAAC,KAAKD,MAAM,CAACZ,CAAC,CAAC,EAAE;MAC9C,OAAO,KAAK;IACd;EACF;EAEA,IAAI,CAACU,KAAK,CAACZ,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,OACEJ,GAAG,CAACI,MAAM,IACVY,KAAK,CAACZ,MAAM,CAACgB,aAAa,GAAGjB,eAAe,CAACH,GAAG,EAAEgB,KAAK,CAACZ,MAAM,CAAC;AAEnE,CAAC;AAACiB,OAAA,CAAAN,oBAAA,GAAAA,oBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_calculateChecksum","require","byteAt","pkg","index","parseInt","announcedLength","length","bytes","i","widthBytes","push","ordered","byteOrder","reverse","reduce","total","byte","createFrameValidator","frame","minLengthBytes","header","toLowerCase","checksum","hasValidChecksum","overheadBytes","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-frame-validator.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAGA,CAACC,GAAa,EAAEC,KAAa,KAC1CC,QAAQ,CAACF,GAAG,CAACC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;AAEjC,MAAME,eAAe,GAAGA,CACtBH,GAAa,EACbI,MAA8C,KACnC;EACX,MAAMC,KAAe,GAAG,EAAE;EAE1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,UAAU,EAAED,CAAC,EAAE,EAAE;IAC1CD,KAAK,CAACG,IAAI,CAACT,MAAM,CAACC,GAAG,EAAEI,MAAM,CAACH,KAAK,GAAGK,CAAC,CAAC,CAAC;EAC3C;EAEA,MAAMG,OAAO,GAAGL,MAAM,CAACM,SAAS,KAAK,QAAQ,GAAGL,KAAK,CAACM,OAAO,CAAC,CAAC,GAAGN,KAAK;EAEvE,OAAOI,OAAO,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAG,GAAG,GAAGC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAC9BC,KAAsB,IACtBhB,GAAa,IAAc;EAC1B,IAAIA,GAAG,CAACI,MAAM,GAAGY,KAAK,CAACC,cAAc,EAAE;IACrC,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAM,IAAI,EAAE;EAEjC,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,MAAM,CAACd,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAI,CAACN,GAAG,CAACM,CAAC,CAAC,IAAI,EAAE,EAAEa,WAAW,CAAC,CAAC,KAAKD,MAAM,CAACZ,CAAC,CAAC,EAAE;MAC9C,OAAO,KAAK;IACd;EACF;;EAEA;AACJ;AACA;AACA;EACI,IAAIU,KAAK,CAACI,QAAQ,IAAI,CAAC,IAAAC,mCAAgB,EAACrB,GAAG,EAAEgB,KAAK,CAACI,QAAQ,CAAC,EAAE;IAC5D,OAAO,KAAK;EACd;EAEA,IAAI,CAACJ,KAAK,CAACZ,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,OACEJ,GAAG,CAACI,MAAM,IACVY,KAAK,CAACZ,MAAM,CAACkB,aAAa,GAAGnB,eAAe,CAACH,GAAG,EAAEgB,KAAK,CAACZ,MAAM,CAAC;AAEnE,CAAC;AAACmB,OAAA,CAAAR,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hexToBytes = void 0;
7
+ const HEX_BYTE = /[0-9a-f]{2}/g;
8
+
9
+ /**
10
+ * Splits a hex string into the bytes it spells: "a508f7" -> ["a5","08","f7"].
11
+ *
12
+ * Anything that is not a pair of hex digits is dropped, so a malformed string yields a
13
+ * shorter command rather than a byte that is half a value. Both callers hand it hex that
14
+ * was already validated - a declaration checks it at registration, and a built frame is
15
+ * assembled a byte at a time - so the dropping is a floor, not a path anything relies on.
16
+ */
17
+ const hexToBytes = hex => hex.toLowerCase().match(HEX_BYTE) ?? [];
18
+ exports.hexToBytes = hexToBytes;
19
+ //# sourceMappingURL=hex-to-bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HEX_BYTE","hexToBytes","hex","toLowerCase","match","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/hex-to-bytes.ts"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAG,cAAc;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,GAAW,IACpCA,GAAG,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAACJ,QAAQ,CAAC,IAAI,EAAE;AAACK,OAAA,CAAAJ,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.le32ToBytes = void 0;
7
+ const BYTE_MASK = 0xff;
8
+ const BYTE_BITS = 8;
9
+
10
+ /** Little-endian unsigned 32-bit: 0x0000000A -> [0x0a, 0x00, 0x00, 0x00]. */
11
+ const le32ToBytes = value => [value & BYTE_MASK, value >> BYTE_BITS & BYTE_MASK, value >> BYTE_BITS * 2 & BYTE_MASK, value >> BYTE_BITS * 3 & BYTE_MASK];
12
+ exports.le32ToBytes = le32ToBytes;
13
+ //# sourceMappingURL=le-32-to-bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BYTE_MASK","BYTE_BITS","le32ToBytes","value","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/le-32-to-bytes.ts"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,IAAI;AACtB,MAAMC,SAAS,GAAG,CAAC;;AAEnB;AACO,MAAMC,WAAW,GAAIC,KAAa,IAAe,CACtDA,KAAK,GAAGH,SAAS,EAChBG,KAAK,IAAIF,SAAS,GAAID,SAAS,EAC/BG,KAAK,IAAKF,SAAS,GAAG,CAAE,GAAID,SAAS,EACrCG,KAAK,IAAKF,SAAS,GAAG,CAAE,GAAID,SAAS,CACvC;AAACI,OAAA,CAAAF,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.summariseMeasurementForLog = void 0;
7
+ /**
8
+ * Shapes a measurement for a log line.
9
+ *
10
+ * An ECG carries thousands of waveform points. Logging them costs more than the reading
11
+ * they describe and buries it, so the count stands in for them - which is the only thing
12
+ * the log is being asked: whether the waveform arrived, not what was in it.
13
+ */
14
+ const summariseMeasurementForLog = data => {
15
+ const points = data.diagramPoints;
16
+ return {
17
+ ...data,
18
+ diagramPoints: Array.isArray(points) ? points.length : undefined
19
+ };
20
+ };
21
+ exports.summariseMeasurementForLog = summariseMeasurementForLog;
22
+ //# sourceMappingURL=summarise-measurement-for-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["summariseMeasurementForLog","data","points","diagramPoints","Array","isArray","length","undefined","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/summarise-measurement-for-log.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,0BAA0B,GACrCC,IAAO,IACqB;EAC5B,MAAMC,MAAM,GAAID,IAAI,CAAiCE,aAAa;EAElE,OAAO;IACL,GAAGF,IAAI;IACPE,aAAa,EAAEC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,CAACI,MAAM,GAAGC;EACzD,CAAC;AACH,CAAC;AAACC,OAAA,CAAAR,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.supportedMeasurementTypeKeys = void 0;
7
+ /**
8
+ * The measurement types a device's declared services can produce.
9
+ *
10
+ * Read from the parsing cases rather than stated separately, so a device cannot advertise a
11
+ * measurement it has no case to decode, or omit one it does.
12
+ */
13
+ const supportedMeasurementTypeKeys = services => {
14
+ const declared = services.flatMap(service => service.monitorUuids.flatMap(monitor => monitor.parsingModel.cases.map(c => c.measurementTypeKey) || [])).filter(type => type !== undefined);
15
+ return [...new Set(declared.flat())];
16
+ };
17
+ exports.supportedMeasurementTypeKeys = supportedMeasurementTypeKeys;
18
+ //# sourceMappingURL=supported-measurement-type-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["supportedMeasurementTypeKeys","services","declared","flatMap","service","monitorUuids","monitor","parsingModel","cases","map","c","measurementTypeKey","filter","type","undefined","Set","flat","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/supported-measurement-type-keys.ts"],"mappings":";;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,4BAA4B,GACvCC,QAAuC,IACd;EACzB,MAAMC,QAAQ,GAAGD,QAAQ,CACtBE,OAAO,CAAEC,OAAO,IACfA,OAAO,CAACC,YAAY,CAACF,OAAO,CACzBG,OAAO,IACNA,OAAO,CAACC,YAAY,CAACC,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,kBAAkB,CAAC,IAAI,EACnE,CACF,CAAC,CACAC,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKC,SAAS,CAAC;EAEvC,OAAO,CAAC,GAAG,IAAIC,GAAG,CAACb,QAAQ,CAACc,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAACC,OAAA,CAAAjB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -12,9 +12,12 @@ export * from "./types/custom-device-spec.js";
12
12
  export * from "./types/custom-field-encoding.js";
13
13
  export * from "./types/custom-field-spec.js";
14
14
  export * from "./types/custom-frame-spec.js";
15
+ export * from "./types/custom-lepu-spec.js";
15
16
  export * from "./types/custom-measurement.js";
16
17
  export * from "./types/custom-monitor-spec.js";
17
18
  export * from "./types/custom-service-spec.js";
19
+ export * from "./types/command-sequencer.js";
20
+ export * from "./types/device-command.js";
18
21
  export * from "./types/device-key.js";
19
22
  export * from "./types/device-key-of.js";
20
23
  export * from "./types/device-data.js";
@@ -32,6 +35,19 @@ export * from "./services/devices/bt-managed-device.js";
32
35
  export * from "./services/devices/custom/custom.device.js";
33
36
  export * from "./services/bt-manager.js";
34
37
  export * from "./services/custom/define-custom-device.js";
38
+ export * from "./services/devices/standard-gatt/standard-gatt.devices.js";
39
+ export * from "./services/devices/lepu/lepu.transports.js";
40
+ export * from "./services/devices/aoj/aoj.thermometers.js";
41
+ export * from "./services/devices/viatom/viatom.bp-monitors.js";
42
+ export * from "./services/devices/viatom/viatom.oximeters.js";
43
+ export * from "./services/devices/viatom/viatom.ecg-recorders.js";
44
+ export * from "./services/devices/viatom/viatom.lepod.js";
45
+ export * from "./services/devices/lepu/lepu.device-names.js";
46
+ export * from "./services/devices/lepu/lepu.name-match.js";
47
+ export * from "./services/devices/lepu/lepu.commands.js";
48
+ export * from "./services/devices/lepu/lepu.device-info.js";
49
+ export * from "./services/devices/lepu/lepu.file-transfer.js";
50
+ export * from "./services/devices/lepu/lepu.response-type.js";
35
51
  export * from "./constants/measurement-field-catalog.js";
36
52
  export * from "./components/bt-provider.js";
37
53
  export * from "./components/default-permission-fallback.js";