@ovok/native 1.6.24 → 1.6.26

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 (208) hide show
  1. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js +1 -1
  2. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
  3. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +1 -1
  4. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +7 -0
  6. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +8 -3
  8. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +7 -1
  10. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +37 -0
  12. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +7 -1
  14. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +7 -2
  16. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js +2 -0
  18. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js +13 -4
  20. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +77 -0
  22. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -0
  23. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -1
  24. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +2 -2
  26. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js +3 -0
  28. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +8 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js +71 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js.map +1 -0
  33. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +31 -5
  34. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js +5 -0
  36. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-device.js +24 -3
  38. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-device.js.map +1 -1
  39. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-record.js +98 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-record.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js +215 -55
  42. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +16 -3
  44. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +1 -1
  46. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +8 -1
  48. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js +1 -0
  50. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
  51. package/lib/commonjs/modules/bt-management/types/clock-sync.js +1 -0
  52. package/lib/commonjs/modules/bt-management/types/clock-sync.js.map +1 -1
  53. package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-maxim.js +24 -0
  54. package/lib/commonjs/modules/bt-management/utils/calculate-crc-8-maxim.js.map +1 -0
  55. package/lib/commonjs/modules/bt-management/utils/convert-ecg-diagnostic-flag.js +19 -27
  56. package/lib/commonjs/modules/bt-management/utils/convert-ecg-diagnostic-flag.js.map +1 -1
  57. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js +2 -2
  58. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
  59. package/lib/module/modules/bt-device/constants/supported-devices.js +1 -1
  60. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  61. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +7 -0
  62. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +8 -3
  64. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  65. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +7 -1
  66. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  67. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +37 -0
  68. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  69. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +7 -1
  70. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  71. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +7 -2
  72. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  73. package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js +2 -0
  74. package/lib/module/modules/bt-management/services/devices/lepu/lepu.commands.js.map +1 -1
  75. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js +13 -3
  76. package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
  77. package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js +73 -0
  78. package/lib/module/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.js.map +1 -0
  79. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -1
  80. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  81. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +2 -2
  82. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  83. package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js +4 -1
  84. package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -1
  85. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +8 -0
  86. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  87. package/lib/module/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js +66 -0
  88. package/lib/module/modules/bt-management/services/devices/spo/pc60fw.frame-reader.js.map +1 -0
  89. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +31 -5
  90. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  91. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js +5 -0
  92. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  93. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-device.js +24 -3
  94. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-device.js.map +1 -1
  95. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-record.js +92 -0
  96. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-record.js.map +1 -0
  97. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js +211 -50
  98. package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js.map +1 -1
  99. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +16 -3
  100. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  101. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +1 -1
  102. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  103. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +8 -1
  104. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  105. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js +1 -0
  106. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
  107. package/lib/module/modules/bt-management/types/clock-sync.js +1 -0
  108. package/lib/module/modules/bt-management/types/clock-sync.js.map +1 -1
  109. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  110. package/lib/module/modules/bt-management/utils/calculate-crc-8-maxim.js +19 -0
  111. package/lib/module/modules/bt-management/utils/calculate-crc-8-maxim.js.map +1 -0
  112. package/lib/module/modules/bt-management/utils/convert-ecg-diagnostic-flag.js +19 -27
  113. package/lib/module/modules/bt-management/utils/convert-ecg-diagnostic-flag.js.map +1 -1
  114. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -0
  120. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +2 -0
  124. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +9 -3
  126. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +41 -0
  128. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +2 -0
  130. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
  132. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +8 -1
  135. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts +8 -0
  137. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts.map +1 -0
  138. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +5 -0
  139. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts +2 -1
  142. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts +41 -0
  144. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts +50 -18
  146. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +10 -0
  153. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
  155. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +4 -1
  157. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts +3 -0
  159. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/src/modules/bt-management/utils/convert-ecg-diagnostic-flag.d.ts.map +1 -1
  161. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
  162. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  163. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  164. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
  165. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  166. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -0
  167. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  168. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  169. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  170. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts +2 -0
  171. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.commands.d.ts.map +1 -1
  172. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +9 -3
  173. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
  174. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts +41 -0
  175. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.ecg-transfer.d.ts.map +1 -0
  176. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +2 -0
  177. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  178. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +2 -0
  179. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  180. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -1
  181. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +8 -1
  182. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  183. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts +8 -0
  184. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/pc60fw.frame-reader.d.ts.map +1 -0
  185. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts +5 -0
  186. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  187. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  188. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts +2 -1
  189. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts.map +1 -1
  190. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts +41 -0
  191. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts.map +1 -0
  192. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts +50 -18
  193. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts.map +1 -1
  194. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  195. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  196. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  197. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
  198. package/lib/typescript/module/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
  199. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +10 -0
  200. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  201. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
  202. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  203. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +4 -1
  204. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  205. package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts +3 -0
  206. package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-8-maxim.d.ts.map +1 -0
  207. package/lib/typescript/module/src/modules/bt-management/utils/convert-ecg-diagnostic-flag.d.ts.map +1 -1
  208. package/package.json +1 -1
@@ -24,6 +24,8 @@ const LepuCommand = exports.LepuCommand = {
24
24
  * addressing it with an opcode that means something else on the wrong hardware.
25
25
  */
26
26
  GET_INFO: 0xe1,
27
+ /** Sets the device's local wall clock before history is requested. */
28
+ SET_TIME: 0xec,
27
29
  GET_BATTERY: 0xe4,
28
30
  /** Enumerate the records stored on the device. */
29
31
  GET_FILE_LIST: 0xf1,
@@ -1 +1 @@
1
- {"version":3,"names":["LepuCommand","exports","ECHO","GET_INFO","GET_BATTERY","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.commands.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzB;EACAE,IAAI,EAAE,IAAI;EAEV;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE,IAAI;EAEdC,WAAW,EAAE,IAAI;EAEjB;EACAC,aAAa,EAAE,IAAI;EAEnB;EACAC,eAAe,EAAE,IAAI;EAErB;EACAC,cAAc,EAAE,IAAI;EAEpB;EACAC,aAAa,EAAE;AACjB,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["LepuCommand","exports","ECHO","GET_INFO","SET_TIME","GET_BATTERY","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.commands.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzB;EACAE,IAAI,EAAE,IAAI;EAEV;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE,IAAI;EAEd;EACAC,QAAQ,EAAE,IAAI;EAEdC,WAAW,EAAE,IAAI;EAEjB;EACAC,aAAa,EAAE,IAAI;EAEnB;EACAC,eAAe,EAAE,IAAI;EAErB;EACAC,cAAc,EAAE,IAAI;EAEpB;EACAC,aAAa,EAAE;AACjB,CAAU","ignoreList":[]}
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.LEPU_DEVICE_NAMES = void 0;
6
+ exports.LEPU_FIRST_WORD_DEVICE_NAMES = exports.LEPU_DEVICE_NAMES = exports.LEPU_CATALOG_EXCLUDED_DEVICE_NAMES = void 0;
7
+ /* eslint-disable max-lines */
8
+
7
9
  /**
8
10
  * The names the Lepu/Viatom family advertises, as its own SDK matches them.
9
11
  *
@@ -15,12 +17,19 @@ exports.LEPU_DEVICE_NAMES = void 0;
15
17
  *
16
18
  * It is that function's vocabulary, not a catalogue of everything the vendor sells: a few
17
19
  * products - the ER3 and the M12 among them - are identified elsewhere in that app and never
18
- * reach this list. `lepuNameMatch` accepts a name that is absent, and derives no exclusions
19
- * for it, which is correct exactly when no name here extends it.
20
+ * reach this list. The first-word names below are compared against the complete first token of
21
+ * the advertisement, not as an open-ended prefix: `O2` must not claim `O2Ring`, and `BabyO2`
22
+ * must not claim `BabyO2N`.
20
23
  *
21
24
  * They are held here as a flat vocabulary rather than an ordered cascade, because
22
25
  * `lepuNameMatch` derives the exclusions from the list itself. Adding a name automatically
23
26
  * narrows every name it extends, which an ordered list would leave to whoever inserted it.
24
27
  */
25
- const LEPU_DEVICE_NAMES = exports.LEPU_DEVICE_NAMES = ["AI-S100", "AITele", "AIView VS", "AP-20", "AP-20-WPS", "AirBP", "Aura_BP2", "BBSM BS1", "BBSM P1", "BBSM S1", "BBSM S2", "BBSM S3", "BM10", "BP2", "BP2A", "BP2A Nexus", "BP2B", "BP2T", "BP2V", "BP2W", "BP3", "BP3-B", "BP3-C1", "BP3-C2", "BP3A", "BP3B", "BP3C", "BP3D", "BP3E", "BP3F", "BP3G", "BP3H", "BP3K", "BP3L", "BP3Z", "BP4 Flex", "BPWATCH", "BUZUD-CML", "Band-WU", "Bioland-BGM", "CB1L-1", "CMB590611", "CMB590840", "CMB592254", "CMI_PC303", "CMRing", "CMTouch", "CPR Feedback", "CPR-01", "CPR-02", "CheckADV", "Checkme", "Checkme EX", "Checkme Pod", "Checkme Pod-WPS", "Checkme lite A", "CheckmeLE", "CheckmeLP", "DUAL-SPP", "EM-B", "EM-W", "ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "ER2", "ER2-S", "EZY-HB-01", "EZY-HBB-02", "GM_300SNT", "GM_300SNT-BLE", "Genial-T31", "HDM3D", "HDM3G", "HHM1", "HHM2", "HHM3", "HHM4", "JFK1001", "JFR1001", "KCA", "KCB", "KS-60FW", "KardiaBP", "KidsO2-WPS", "LBM-1", "LEPU AED", "LEPU ER1", "LEPU-ER2", "LP ER2", "LP-BP2W", "LPM311", "LPRE", "Le S5", "Le-F2 Pro", "Le-W", "LeRes", "Lepod", "LepodPro", "Lepu PO6", "Lescale F3", "Lescale F4L", "Lescale F4P", "Lescale P3", "M5", "MY-SS2501", "N9+BP2", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "OxyU", "OxyU SE", "Oxyfit", "Oxyfit-WPS", "PC-100", "PC-200", "PC-200-BLE", "PC-60B_SN", "PC-60F_SN", "PC-60NW", "PC-60NW-1_SN", "PC-60NW-WPS", "PC-60NW_BLE", "PC-60NW_SN", "PC-66B", "PC-68B", "PC66B-VE", "PC80B", "PC80B-BLE", "PC80B_BLE:", "PC_300SNT", "PC_300SNT-BLE", "PF-10", "PF-10AW", "PF-10AW-1", "PF-10AW1", "PF-10BW", "PF-10BW1", "PF-10BWS", "PF-20", "PF-20AW", "PF-20B", "PF10AW-ME", "PF10BW-VE", "PM10", "PO6B-WE", "POD-1W-WU", "POD-1_SN", "POD-2B_SN", "PoctorM3102", "QC-200", "R10", "R11", "R20", "R200", "R21", "S5W-VU", "S5W_SN", "S6W", "S6W1", "S7BW", "S7W", "S8-AW", "SA10AW-PU", "SHQFlex", "SHQO2Pro", "SI PO2", "SI PO4", "SI PO6", "SP-20", "SP-20-BLE", "SP-20-WPS", "T-201", "TMB-2288", "TMB_2088", "VCOMIN", "VTM AD5", "W12c", "WBP-02", "ZH-SG", "ZH-SG-A606", "aed_box", "iGate", "int-ER2", "le B1", "le S1"];
28
+ const LEPU_DEVICE_NAMES = exports.LEPU_DEVICE_NAMES = ["AI-S100", "AITele", "AIView VS", "AP-20", "AP-20-WPS", "AirBP", "Aura_BP2", "BBSM BS1", "BBSM P1", "BBSM S1", "BBSM S2", "BBSM S3", "BM10", "BP2", "BP2A", "BP2A Nexus", "BP2B", "BP2T", "BP2V", "BP2W", "BP3", "BP3-B", "BP3-C1", "BP3-C2", "BP3A", "BP3B", "BP3C", "BP3D", "BP3E", "BP3F", "BP3G", "BP3H", "BP3K", "BP3L", "BP3Z", "BP4 Flex", "BPWATCH", "BUZUD-CML", "Band-WU", "Bioland-BGM", "CB1L-1", "CMB590611", "CMB590840", "CMB592254", "CMI_PC303", "CMRing", "CMTouch", "CPR Feedback", "CPR-01", "CPR-02", "CheckADV", "Checkme", "Checkme EX", "Checkme Pod", "Checkme Pod-WPS", "Checkme lite A", "CheckmeLE", "CheckmeLP", "DUAL-SPP", "EM-B", "EM-W", "ER1", "ER1-H", "ER1-L", "ER1-S", "ER1-SP", "ER1-W", "ER1S", "ER2", "ER2-S", "EZY-HB-01", "EZY-HBB-02", "GM_300SNT", "GM_300SNT-BLE", "Genial-T31", "HDM3D", "HDM3G", "HHM1", "HHM2", "HHM3", "HHM4", "JFK1001", "JFR1001", "KCA", "KCB", "KS-60FW", "KardiaBP", "KidsO2-WPS", "LBM-1", "LEPU AED", "LEPU ER1", "LEPU-ER2", "LP ER2", "LP-BP2W", "LPM311", "LPRE", "Le S5", "Le-F2 Pro", "Le-W", "LeRes", "Lepod", "LepodPro", "Lepu PO6", "Lescale F3", "Lescale F4L", "Lescale F4P", "Lescale P3", "M5", "MY-SS2501", "N9+BP2", "O2 Intg", "O2M-WPS", "O2R WAVE", "O2RMed S", "O2Ring", "O2Ring S", "O2Ring SC", "O2Ring SF", "O2Ring SP", "O2Ring-RE", "O2RingF", "OxyU", "OxyU SE", "Oxyfit", "Oxyfit-WPS", "PC-100", "PC-200", "PC-200-BLE", "PC-60B_SN", "PC-60F_SN", "PC-60NW", "PC-60NW-1_SN", "PC-60NW-WPS", "PC-60NW_BLE", "PC-60NW_SN", "PC-66B", "PC-68B", "PC66B-VE", "PC80B", "PC80B-BLE", "PC80B_BLE:", "PC_300SNT", "PC_300SNT-BLE", "PF-10", "PF-10AW", "PF-10AW-1", "PF-10AW1", "PF-10BW", "PF-10BW1", "PF-10BWS", "PF-20", "PF-20AW", "PF-20B", "PF10AW-ME", "PF10BW-VE", "PM10", "PO6B-WE", "POD-1W-WU", "POD-1_SN", "POD-2B_SN", "PoctorM3102", "QC-200", "R10", "R11", "R20", "R200", "R21", "S5W-VU", "S5W_SN", "S6W", "S6W1", "S7BW", "S7W", "S8-AW", "SA10AW-PU", "SHQFlex", "SHQO2Pro", "SI PO2", "SI PO4", "SI PO6", "SP-20", "SP-20-BLE", "SP-20-WPS", "T-201", "TMB-2288", "TMB_2088", "VCOMIN", "VTM AD5", "W12c", "WBP-02", "ZH-SG", "ZH-SG-A606", "aed_box", "iGate", "int-ER2", "le B1", "le S1", "KidsO2", "O2BAND", "SleepU", "WearO2", "OxySmart", "FHR-666(BLE)", "SleepO2", "Station", "F4", "F5", "F8", "O2", "BTP", "ECN", "ER3", "LDT", "M12", "O2M", "O2S", "OMP", "BPW1", "LEM1", "O2MP", "DuoEK", "O2NCI", "VBeat", "VTM01", "OxyRing", "Oxylink", "LD-TECK", "BPM-188", "MY_SCALE", "BabyO2N", "Pulsebit", "Vetcorder", "BabyO2"];
29
+
30
+ /** Names the vendor matches by the complete first word of the advertisement. */
31
+ const LEPU_FIRST_WORD_DEVICE_NAMES = exports.LEPU_FIRST_WORD_DEVICE_NAMES = ["KidsO2", "O2BAND", "SleepU", "WearO2", "OxySmart", "FHR-666(BLE)", "SleepO2", "Station", "F4", "F5", "F8", "O2", "BTP", "ECN", "ER3", "LDT", "M12", "O2M", "O2S", "OMP", "BPW1", "LEM1", "O2MP", "DuoEK", "O2NCI", "VBeat", "VTM01", "OxyRing", "Oxylink", "LD-TECK", "BPM-188", "MY_SCALE", "BabyO2N", "Pulsebit", "Vetcorder", "BabyO2"];
32
+
33
+ /** Fetal-doppler and massager names from the vendor vocabulary, kept out of the SDK catalog. */
34
+ const LEPU_CATALOG_EXCLUDED_DEVICE_NAMES = exports.LEPU_CATALOG_EXCLUDED_DEVICE_NAMES = ["FHR-666(BLE)", "LEM1"];
26
35
  //# sourceMappingURL=lepu.device-names.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LEPU_DEVICE_NAMES","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAoC,GAAAC,OAAA,CAAAD,iBAAA,GAAG,CAClD,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,CACR","ignoreList":[]}
1
+ {"version":3,"names":["LEPU_DEVICE_NAMES","exports","LEPU_FIRST_WORD_DEVICE_NAMES","LEPU_CATALOG_EXCLUDED_DEVICE_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.device-names.ts"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,iBAAoC,GAAAC,OAAA,CAAAD,iBAAA,GAAG,CAC3C,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,CACT;;AAED;AACA,MAAME,4BAA+C,GAAAD,OAAA,CAAAC,4BAAA,GAAG,CACtD,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,CACT;;AAED;AACA,MAAMC,kCAAqD,GAAAF,OAAA,CAAAE,kCAAA,GAAG,CAC5D,cAAc,EACd,MAAM,CACP","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LepuEcgTransferSequencer = void 0;
7
+ var _clockSync = require("../../../types/clock-sync.js");
8
+ var _lepuCommands = require("./lepu.commands.js");
9
+ var _lepuFileTransfer = require("./lepu.file-transfer.js");
10
+ var _lepuFrame = require("./lepu.frame.js");
11
+ var _lepuIdentityGate = require("./lepu.identity-gate.js");
12
+ var _lepuResponseType = require("./lepu.response-type.js");
13
+ /** Identifies a recorder, sets its local clock, then downloads its stored files. */
14
+ class LepuEcgTransferSequencer {
15
+ phase = "identity";
16
+ constructor(params) {
17
+ this.params = params;
18
+ this.identity = new _lepuIdentityGate.LepuIdentityGate({
19
+ write: params.write,
20
+ builder: params.builder,
21
+ expectedDeviceTypes: params.expectedDeviceTypes,
22
+ onIdentified: params.onIdentified,
23
+ onRefused: params.onRefused,
24
+ onAdmitted: this.startClockOrTransfer
25
+ });
26
+ }
27
+ initialCommands = () => this.identity.initialCommands();
28
+ isHistoryTransfer = () => true;
29
+ nextCommand = frame => {
30
+ if (this.phase === "identity") {
31
+ return this.identity.nextCommand(frame);
32
+ }
33
+ if (this.phase === "clock") {
34
+ return this.finishClock(frame);
35
+ }
36
+ return this.transfer?.nextCommand(frame);
37
+ };
38
+ startClockOrTransfer = () => {
39
+ if ((0, _clockSync.isClockSyncEnabled)(this.params.clockSync)) {
40
+ this.phase = "clock";
41
+ return [{
42
+ ...this.params.write,
43
+ frame: this.params.builder.build(_lepuCommands.LepuCommand.SET_TIME, clockPayload(this.params.clockSync))
44
+ }];
45
+ }
46
+ return this.startTransfer();
47
+ };
48
+ finishClock = frame => {
49
+ if ((0, _lepuFrame.lepuCommandOf)(frame) !== _lepuCommands.LepuCommand.SET_TIME) {
50
+ return undefined;
51
+ }
52
+ if (!(0, _lepuResponseType.isLepuSuccess)(frame)) {
53
+ this.params.onError(`the device refused SET_TIME: ${(0, _lepuResponseType.describeLepuResponseType)(frame)}`);
54
+ }
55
+ return this.startTransfer();
56
+ };
57
+ startTransfer = () => {
58
+ this.phase = "files";
59
+ this.transfer = new _lepuFileTransfer.LepuFileTransfer({
60
+ write: this.params.write,
61
+ builder: this.params.builder,
62
+ onFile: this.params.onFile,
63
+ onError: this.params.onError,
64
+ skipFiles: this.params.skipFiles,
65
+ acceptFile: this.params.acceptFile,
66
+ afterTransfer: this.params.afterTransfer,
67
+ onProgress: this.params.onProgress
68
+ });
69
+ return this.transfer.initialCommands();
70
+ };
71
+ }
72
+ exports.LepuEcgTransferSequencer = LepuEcgTransferSequencer;
73
+ const clockPayload = clockSync => {
74
+ const parts = (0, _clockSync.getClockParts)(clockSync?.now?.() ?? new Date(), clockSync?.timezone);
75
+ return [parts.year & 0xff, parts.year >> 8 & 0xff, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds];
76
+ };
77
+ //# sourceMappingURL=lepu.ecg-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clockSync","require","_lepuCommands","_lepuFileTransfer","_lepuFrame","_lepuIdentityGate","_lepuResponseType","LepuEcgTransferSequencer","phase","constructor","params","identity","LepuIdentityGate","write","builder","expectedDeviceTypes","onIdentified","onRefused","onAdmitted","startClockOrTransfer","initialCommands","isHistoryTransfer","nextCommand","frame","finishClock","transfer","isClockSyncEnabled","clockSync","build","LepuCommand","SET_TIME","clockPayload","startTransfer","lepuCommandOf","undefined","isLepuSuccess","onError","describeLepuResponseType","LepuFileTransfer","onFile","skipFiles","acceptFile","afterTransfer","onProgress","exports","parts","getClockParts","now","Date","timezone","year","month","day","hours","minutes","seconds"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.ecg-transfer.ts"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ class LepuFileTransfer {
77
77
  };
78
78
  openNextFile = () => {
79
79
  let name = this.files[this.fileIndex];
80
- while (name !== undefined && this.params.skipFiles?.has(name)) {
80
+ while (name !== undefined && (this.params.skipFiles?.has(name) || this.params.acceptFile?.(name) === false)) {
81
81
  this.fileIndex++;
82
82
  name = this.files[this.fileIndex];
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_le32FromHex","require","_le32ToBytes","_lepuCommands","_lepuFileNames","_lepuFrame","_lepuResponseType","FILE_SIZE_OFFSET","MAX_FILE_BYTES","TRANSFER_COMMANDS","LepuCommand","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END","LepuFileTransfer","files","fileIndex","name","totalBytes","content","isSessionOpen","isDone","constructor","params","isHistoryTransfer","initialCommands","commandFor","nextCommand","frame","command","lepuCommandOf","afterTransfer","includes","undefined","isLepuSuccess","fail","describeLepuResponseType","lepuNamesFrom","lepuPayloadOf","openNextFile","openedFile","appendChunk","closedFile","skipFiles","has","lepuNameBytes","le32ToBytes","payload","le32FromHex","limit","maxFileBytes","closeFile","length","push","onProgress","receivedBytes","onFile","reason","onError","write","builder","build","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.file-transfer.ts"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAXA;;AAaA,MAAMM,gBAAgB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG,OAAO;AAE9B,MAAMC,iBAAoC,GAAG,CAC3CC,yBAAW,CAACC,aAAa,EACzBD,yBAAW,CAACE,eAAe,EAC3BF,yBAAW,CAACG,cAAc,EAC1BH,yBAAW,CAACI,aAAa,CAC1B;AAqCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,CAA6B;EACzCC,KAAK,GAAa,EAAE;EACpBC,SAAS,GAAG,CAAC;EACbC,IAAI,GAAG,EAAE;EACTC,UAAU,GAAG,CAAC;EACdC,OAAO,GAAa,EAAE;EACtBC,aAAa,GAAG,KAAK;EACrBC,MAAM,GAAG,KAAK;EAEfC,WAAWA,CAAkBC,MAA8B,EAAE;IAAA,KAAhCA,MAA8B,GAA9BA,MAA8B;EAAG;EAE9DC,iBAAiB,GAAGA,CAAA,KAAe,IAAI;EAEvCC,eAAe,GAAGA,CAAA,KAAgC,CACvD,IAAI,CAACC,UAAU,CAACjB,yBAAW,CAACC,aAAa,CAAC,CAC3C;EAEMiB,WAAW,GAChBC,KAAwB,IACiB;IACzC,MAAMC,OAAO,GAAG,IAAAC,wBAAa,EAACF,KAAK,CAAC;IAEpC,IAAI,IAAI,CAACP,MAAM,EAAE;MACf,OAAO,IAAI,CAACE,MAAM,CAACQ,aAAa,GAAG,CAAC;IACtC;IAEA,IAAI,CAACvB,iBAAiB,CAACwB,QAAQ,CAACH,OAAO,CAAC,EAAE;MACxC,OAAOI,SAAS;IAClB;IAEA,IAAI,CAAC,IAAAC,+BAAa,EAACN,KAAK,CAAC,EAAE;MACzB,OAAO,IAAI,CAACO,IAAI,CAAC,0BAA0B,IAAAC,0CAAwB,EAACR,KAAK,CAAC,EAAE,CAAC;IAC/E;IAEA,IAAIC,OAAO,KAAKpB,yBAAW,CAACC,aAAa,EAAE;MACzC,IAAI,CAACK,KAAK,GAAG,IAAAsB,4BAAa,EAAC,IAAAC,wBAAa,EAACV,KAAK,CAAC,CAAC;MAChD,IAAI,CAACZ,SAAS,GAAG,CAAC;MAElB,OAAO,IAAI,CAACuB,YAAY,CAAC,CAAC;IAC5B;IAEA,IAAIV,OAAO,KAAKpB,yBAAW,CAACE,eAAe,EAAE;MAC3C,OAAO,IAAI,CAAC6B,UAAU,CAAC,IAAAF,wBAAa,EAACV,KAAK,CAAC,CAAC;IAC9C;IAEA,IAAIC,OAAO,KAAKpB,yBAAW,CAACG,cAAc,EAAE;MAC1C,OAAO,IAAI,CAAC6B,WAAW,CAAC,IAAAH,wBAAa,EAACV,KAAK,CAAC,CAAC;IAC/C;IAEA,OAAO,IAAI,CAACc,UAAU,CAAC,CAAC;EAC1B,CAAC;EAEOH,YAAY,GAAGA,CAAA,KAA4C;IACjE,IAAItB,IAAI,GAAG,IAAI,CAACF,KAAK,CAAC,IAAI,CAACC,SAAS,CAAC;IAErC,OAAOC,IAAI,KAAKgB,SAAS,IAAI,IAAI,CAACV,MAAM,CAACoB,SAAS,EAAEC,GAAG,CAAC3B,IAAI,CAAC,EAAE;MAC7D,IAAI,CAACD,SAAS,EAAE;MAChBC,IAAI,GAAG,IAAI,CAACF,KAAK,CAAC,IAAI,CAACC,SAAS,CAAC;IACnC;IAEA,IAAIC,IAAI,KAAKgB,SAAS,EAAE;MACtB,IAAI,CAACZ,MAAM,GAAG,IAAI;MAElB,OAAO,IAAI,CAACE,MAAM,CAACQ,aAAa,GAAG,CAAC;IACtC;IAEA,IAAI,CAACd,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,OAAO,GAAG,EAAE;IAEjB,OAAO,CACL,IAAI,CAACO,UAAU,CAACjB,yBAAW,CAACE,eAAe,EAAE,CAC3C,GAAG,IAAAkC,4BAAa,EAAC5B,IAAI,CAAC,EACtB,GAAG,IAAA6B,wBAAW,EAAC,CAAC,CAAC,CAClB,CAAC,CACH;EACH,CAAC;;EAED;EACQN,UAAU,GAChBO,OAA0B,IACe;IACzC,IAAI,CAAC3B,aAAa,GAAG,IAAI;IACzB,IAAI,CAACF,UAAU,GAAG,IAAA8B,wBAAW,EAAC,CAAC,GAAGD,OAAO,CAAC,EAAEzC,gBAAgB,CAAC;IAE7D,MAAM2C,KAAK,GAAG,IAAI,CAAC1B,MAAM,CAAC2B,YAAY,IAAI3C,cAAc;IAExD,IAAI,IAAI,CAACW,UAAU,GAAG+B,KAAK,EAAE;MAC3B,OAAO,IAAI,CAACd,IAAI,CACd,IAAI,IAAI,CAAClB,IAAI,QAAQ,IAAI,CAACC,UAAU,yBAAyB+B,KAAK,0BACpE,CAAC;IACH;IAEA,IAAI,IAAI,CAAC/B,UAAU,KAAK,CAAC,EAAE;MACzB,OAAO,IAAI,CAACiC,SAAS,CAAC,CAAC;IACzB;IAEA,OAAO,CACL,IAAI,CAACzB,UAAU,CAACjB,yBAAW,CAACG,cAAc,EAAE,IAAAkC,wBAAW,EAAC,CAAC,CAAC,CAAC,CAC5D;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;EACUL,WAAW,GACjBM,OAA0B,IACe;IACzC,IAAIA,OAAO,CAACK,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAI,CAACjB,IAAI,CACd,IAAI,IAAI,CAAClB,IAAI,wBAAwB,IAAI,CAACE,OAAO,CAACiC,MAAM,OAAO,IAAI,CAAClC,UAAU,QAChF,CAAC;IACH;IAEA,IAAI,CAACC,OAAO,CAACkC,IAAI,CAAC,GAAGN,OAAO,CAAC;IAE7B,IAAI,CAACxB,MAAM,CAAC+B,UAAU,GAAG;MACvBrC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfsC,aAAa,EAAE,IAAI,CAACpC,OAAO,CAACiC,MAAM;MAClClC,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IAEF,IAAI,IAAI,CAACC,OAAO,CAACiC,MAAM,IAAI,IAAI,CAAClC,UAAU,EAAE;MAC1C,OAAO,IAAI,CAACiC,SAAS,CAAC,CAAC;IACzB;IAEA,OAAO,CACL,IAAI,CAACzB,UAAU,CACbjB,yBAAW,CAACG,cAAc,EAC1B,IAAAkC,wBAAW,EAAC,IAAI,CAAC3B,OAAO,CAACiC,MAAM,CACjC,CAAC,CACF;EACH,CAAC;EAEOV,UAAU,GAAGA,CAAA,KAA4C;IAC/D,IAAI,CAACtB,aAAa,GAAG,KAAK;IAE1B,IAAI,IAAI,CAACF,UAAU,GAAG,CAAC,IAAI,IAAI,CAACC,OAAO,CAACiC,MAAM,KAAK,IAAI,CAAClC,UAAU,EAAE;MAClE,OAAO,IAAI,CAACiB,IAAI,CACd,IAAI,IAAI,CAAClB,IAAI,cAAc,IAAI,CAACE,OAAO,CAACiC,MAAM,OAAO,IAAI,CAAClC,UAAU,QACtE,CAAC;IACH;IAEA,IAAI,IAAI,CAACA,UAAU,GAAG,CAAC,EAAE;MACvB,IAAI,CAACK,MAAM,CAACiC,MAAM,CAAC;QAAEvC,IAAI,EAAE,IAAI,CAACA,IAAI;QAAEE,OAAO,EAAE,IAAI,CAACA;MAAQ,CAAC,CAAC;IAChE;IAEA,IAAI,CAACH,SAAS,EAAE;IAEhB,OAAO,IAAI,CAACuB,YAAY,CAAC,CAAC;EAC5B,CAAC;EAEOY,SAAS,GAAGA,CAAA,KAAgC,CAClD,IAAI,CAACzB,UAAU,CAACjB,yBAAW,CAACI,aAAa,CAAC,CAC3C;;EAED;AACF;AACA;AACA;AACA;AACA;EACUsB,IAAI,GAAIsB,MAAc,IAA2C;IACvE,IAAI,CAAClC,MAAM,CAACmC,OAAO,CAACD,MAAM,CAAC;IAC3B,IAAI,CAACpC,MAAM,GAAG,IAAI;IAElB,IAAI,CAAC,IAAI,CAACD,aAAa,EAAE;MACvB,OAAO,IAAI,CAACG,MAAM,CAACQ,aAAa,GAAG,CAAC;IACtC;IAEA,IAAI,CAACX,aAAa,GAAG,KAAK;IAE1B,OAAO,IAAI,CAAC+B,SAAS,CAAC,CAAC;EACzB,CAAC;EAEOzB,UAAU,GAAGA,CACnBG,OAAe,EACfkB,OAA0B,GAAG,EAAE,MACZ;IACnB,GAAG,IAAI,CAACxB,MAAM,CAACoC,KAAK;IACpB/B,KAAK,EAAE,IAAI,CAACL,MAAM,CAACqC,OAAO,CAACC,KAAK,CAAChC,OAAO,EAAEkB,OAAO;EACnD,CAAC,CAAC;AACJ;AAACe,OAAA,CAAAhD,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_le32FromHex","require","_le32ToBytes","_lepuCommands","_lepuFileNames","_lepuFrame","_lepuResponseType","FILE_SIZE_OFFSET","MAX_FILE_BYTES","TRANSFER_COMMANDS","LepuCommand","GET_FILE_LIST","READ_FILE_START","READ_FILE_DATA","READ_FILE_END","LepuFileTransfer","files","fileIndex","name","totalBytes","content","isSessionOpen","isDone","constructor","params","isHistoryTransfer","initialCommands","commandFor","nextCommand","frame","command","lepuCommandOf","afterTransfer","includes","undefined","isLepuSuccess","fail","describeLepuResponseType","lepuNamesFrom","lepuPayloadOf","openNextFile","openedFile","appendChunk","closedFile","skipFiles","has","acceptFile","lepuNameBytes","le32ToBytes","payload","le32FromHex","limit","maxFileBytes","closeFile","length","push","onProgress","receivedBytes","onFile","reason","onError","write","builder","build","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.file-transfer.ts"],"mappings":"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","ignoreList":[]}
@@ -57,7 +57,7 @@ class LepuIdentityGate {
57
57
  return this.refuse("the device answered with a frame too short to hold its own model number");
58
58
  }
59
59
  this.params.onIdentified?.(info);
60
- if (this.params.pollCommand === undefined) {
60
+ if (this.params.pollCommand === undefined && this.params.onAdmitted === undefined) {
61
61
  return undefined;
62
62
  }
63
63
  const isNarrowed = this.params.expectedDeviceTypes.length > 0;
@@ -65,7 +65,7 @@ class LepuIdentityGate {
65
65
  return this.refuse(`the hardware reported model ${info.deviceType} (branch "${info.branchCode}"), which this declaration was not written for`);
66
66
  }
67
67
  this.isIdentified = true;
68
- return this.poll();
68
+ return this.params.onAdmitted?.() ?? this.poll();
69
69
  };
70
70
 
71
71
  /** Closes the gate for good. There is no state a refused device can be talked back from. */
@@ -1 +1 @@
1
- {"version":3,"names":["_clockSync","require","_hexToByte","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","command","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clockSync","require","_hexToByte","_lepuCommands","_lepuDeviceInfo","_lepuResponseType","COMMAND_INDEX","VIATOM_OXYGEN_INFO","LepuIdentityGate","isIdentified","isRefused","constructor","params","initialCommands","protocol","setClock","setClockBeforeInfo","isClockSyncEnabled","clockSync","command","commandFor","oxyClockPayload","pendingCommand","LepuCommand","GET_INFO","nextCommand","frame","nextViatomOxygenCommand","undefined","poll","admit","hexToByte","isLepuSuccess","refuse","describeLepuResponseType","info","parseLepuDeviceInfo","onIdentified","pollCommand","onAdmitted","isNarrowed","expectedDeviceTypes","length","includes","deviceType","branchCode","reason","onRefused","payload","delayBeforeWriteMs","write","builder","build","writeWithoutResponse","withoutResponse","status","toString","padStart","parseViatomOxygenDeviceInfo","exports","parts","getClockParts","now","Date","timezone","pad","value","String","JSON","stringify","SetTIME","year","month","day","hours","minutes","seconds","Array","from","TextEncoder","encode","text","slice","map","byte","fromCharCode","join","replace","parse","Number","Model","isInteger","protocolMaxLength","Branch","serialNumber","SN","SerialNumber"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.identity-gate.ts"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,9 @@ const escapeRegExp = value => value.replace(REGEXP_SPECIAL, "\\$&");
24
24
  * the model - `BP2 1234` - and the serial's shape varies across the family.
25
25
  */
26
26
  const lepuNameMatch = (name, vocabulary = _lepuDeviceNames.LEPU_DEVICE_NAMES) => {
27
+ if (_lepuDeviceNames.LEPU_FIRST_WORD_DEVICE_NAMES.includes(name)) {
28
+ return new RegExp(`^${escapeRegExp(name)}(?: |$)`);
29
+ }
27
30
  const extensions = vocabulary.filter(other => other !== name && other.startsWith(name)).map(other => escapeRegExp(other.slice(name.length)));
28
31
  const exclusion = extensions.length > 0 ? `(?!${extensions.join("|")})` : "";
29
32
  return new RegExp(`^${escapeRegExp(name)}${exclusion}`);
@@ -1 +1 @@
1
- {"version":3,"names":["_lepuDeviceNames","require","REGEXP_SPECIAL","escapeRegExp","value","replace","lepuNameMatch","name","vocabulary","LEPU_DEVICE_NAMES","extensions","filter","other","startsWith","map","slice","length","exclusion","join","RegExp","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.name-match.ts"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,MAAMC,cAAc,GAAG,qBAAqB;AAE5C,MAAMC,YAAY,GAAIC,KAAa,IACjCA,KAAK,CAACC,OAAO,CAACH,cAAc,EAAE,MAAM,CAAC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,aAAa,GAAGA,CAC3BC,IAAY,EACZC,UAA6B,GAAGC,kCAAiB,KACtC;EACX,MAAMC,UAAU,GAAGF,UAAU,CAC1BG,MAAM,CAAEC,KAAK,IAAKA,KAAK,KAAKL,IAAI,IAAIK,KAAK,CAACC,UAAU,CAACN,IAAI,CAAC,CAAC,CAC3DO,GAAG,CAAEF,KAAK,IAAKT,YAAY,CAACS,KAAK,CAACG,KAAK,CAACR,IAAI,CAACS,MAAM,CAAC,CAAC,CAAC;EAEzD,MAAMC,SAAS,GACbP,UAAU,CAACM,MAAM,GAAG,CAAC,GAAG,MAAMN,UAAU,CAACQ,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;EAE5D,OAAO,IAAIC,MAAM,CAAC,IAAIhB,YAAY,CAACI,IAAI,CAAC,GAAGU,SAAS,EAAE,CAAC;AACzD,CAAC;AAACG,OAAA,CAAAd,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["_lepuDeviceNames","require","REGEXP_SPECIAL","escapeRegExp","value","replace","lepuNameMatch","name","vocabulary","LEPU_DEVICE_NAMES","LEPU_FIRST_WORD_DEVICE_NAMES","includes","RegExp","extensions","filter","other","startsWith","map","slice","length","exclusion","join","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.name-match.ts"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAKA,MAAMC,cAAc,GAAG,qBAAqB;AAE5C,MAAMC,YAAY,GAAIC,KAAa,IACjCA,KAAK,CAACC,OAAO,CAACH,cAAc,EAAE,MAAM,CAAC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,aAAa,GAAGA,CAC3BC,IAAY,EACZC,UAA6B,GAAGC,kCAAiB,KACtC;EACX,IAAIC,6CAA4B,CAACC,QAAQ,CAACJ,IAAI,CAAC,EAAE;IAC/C,OAAO,IAAIK,MAAM,CAAC,IAAIT,YAAY,CAACI,IAAI,CAAC,SAAS,CAAC;EACpD;EAEA,MAAMM,UAAU,GAAGL,UAAU,CAC1BM,MAAM,CAAEC,KAAK,IAAKA,KAAK,KAAKR,IAAI,IAAIQ,KAAK,CAACC,UAAU,CAACT,IAAI,CAAC,CAAC,CAC3DU,GAAG,CAAEF,KAAK,IAAKZ,YAAY,CAACY,KAAK,CAACG,KAAK,CAACX,IAAI,CAACY,MAAM,CAAC,CAAC,CAAC;EAEzD,MAAMC,SAAS,GACbP,UAAU,CAACM,MAAM,GAAG,CAAC,GAAG,MAAMN,UAAU,CAACQ,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;EAE5D,OAAO,IAAIT,MAAM,CAAC,IAAIT,YAAY,CAACI,IAAI,CAAC,GAAGa,SAAS,EAAE,CAAC;AACzD,CAAC;AAACE,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -117,6 +117,9 @@ const lepuDevice = params => {
117
117
  matchByService: params.nameMatch === undefined,
118
118
  stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? DEFAULT_STUCK_TIMEOUT_MS,
119
119
  preferredMtu: transport.preferredMtu,
120
+ ...(params.clockSync === undefined ? {} : {
121
+ clockSync: params.clockSync
122
+ }),
120
123
  lepu: {
121
124
  protocol: params.protocol,
122
125
  startBytes: [viatomOxygen ? "55" : START_BYTE],
@@ -129,6 +132,9 @@ const lepuDevice = params => {
129
132
  ...(params.fileTransfer === undefined ? {} : {
130
133
  fileTransfer: params.fileTransfer
131
134
  }),
135
+ ...(params.ecgFileDecoder === undefined ? {} : {
136
+ ecgFileDecoder: params.ecgFileDecoder
137
+ }),
132
138
  ...(params.pollCommand === undefined ? {} : {
133
139
  pollCommand: params.pollCommand
134
140
  }),
@@ -150,6 +156,8 @@ const lepuDevice = params => {
150
156
  cases: params.cases
151
157
  }]
152
158
  }]
159
+ }, params.decorateReading === undefined ? {} : {
160
+ decorateReading: params.decorateReading
153
161
  });
154
162
  };
155
163
  exports.lepuDevice = lepuDevice;
@@ -1 +1 @@
1
- {"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","viatomOxygen","protocol","defineCustomDevice","id","nameMatch","matchByService","undefined","stuckDataTimeoutMs","lepu","startBytes","requestStartByte","write","characteristicUuid","expectedDeviceTypes","fileTransfer","pollCommand","writeWithoutResponse","setClockBeforeInfo","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_defineCustomDevice","require","STANDARD_SERVICE","STANDARD_WRITE","STANDARD_NOTIFY","AW1_SERVICE","AW1_WRITE","AW1_NOTIFY","DING_SERVICE","DING_WRITE","DING_NOTIFY","AI_TELE_SERVICE","AI_TELE_WRITE","AI_TELE_NOTIFY","PREFERRED_MTU","MINIMUM_MTU","DEFAULT_STUCK_TIMEOUT_MS","START_BYTE","lepuTransports","exports","standard","serviceUuid","notifyUuid","writeUuid","preferredMtu","standardSmallMtu","aw1","ding","aiTele","COMMAND_BYTE","lepuDevice","params","transport","viatomOxygen","protocol","defineCustomDevice","id","nameMatch","matchByService","undefined","stuckDataTimeoutMs","clockSync","lepu","startBytes","requestStartByte","write","characteristicUuid","expectedDeviceTypes","fileTransfer","ecgFileDecoder","pollCommand","writeWithoutResponse","setClockBeforeInfo","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","decorateReading"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.transports.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Pc60FwFrameReader = void 0;
7
+ var _frameReadStatus = require("../../../types/frame-read-status.js");
8
+ var _calculateCrc8Maxim = require("../../../utils/calculate-crc-8-maxim.js");
9
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
10
+ const HEADER = ["aa", "55"];
11
+ const LENGTH_INDEX = 3;
12
+ const HEADER_BYTES = 4;
13
+ const CHECKSUM_BYTES = 1;
14
+ const byteAt = (buffer, index) => (0, _hexToByte.hexToByte)(buffer[index] ?? "0");
15
+
16
+ /** Reads the length-prefixed, CRC-8/MAXIM frames used by PC-60FW. */
17
+ class Pc60FwFrameReader {
18
+ readFrame(buffer) {
19
+ const start = this.findHeader(buffer);
20
+ if (start === -1) {
21
+ return {
22
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
23
+ consumedBytes: Math.max(0, buffer.length - 1)
24
+ };
25
+ }
26
+ if (start + HEADER_BYTES > buffer.length) {
27
+ return {
28
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
29
+ consumedBytes: start
30
+ };
31
+ }
32
+ const payloadLength = byteAt(buffer, start + LENGTH_INDEX);
33
+ const frameLength = HEADER_BYTES + payloadLength;
34
+ if (payloadLength < CHECKSUM_BYTES) {
35
+ return {
36
+ status: _frameReadStatus.FrameReadStatus.CORRUPT,
37
+ consumedBytes: start + HEADER.length
38
+ };
39
+ }
40
+ if (start + frameLength > buffer.length) {
41
+ return {
42
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
43
+ consumedBytes: start
44
+ };
45
+ }
46
+ const frame = buffer.slice(start, start + frameLength);
47
+ const declared = byteAt(frame, frame.length - CHECKSUM_BYTES);
48
+ const actual = (0, _calculateCrc8Maxim.calculateCrc8Maxim)(frame, frame.length - CHECKSUM_BYTES);
49
+ if (declared !== actual) {
50
+ return {
51
+ status: _frameReadStatus.FrameReadStatus.CORRUPT,
52
+ consumedBytes: start + HEADER.length
53
+ };
54
+ }
55
+ return {
56
+ status: _frameReadStatus.FrameReadStatus.COMPLETE,
57
+ consumedBytes: start + frameLength,
58
+ frame
59
+ };
60
+ }
61
+ findHeader(buffer) {
62
+ for (let index = 0; index < buffer.length - 1; index++) {
63
+ if (buffer[index]?.toLowerCase() === HEADER[0] && buffer[index + 1]?.toLowerCase() === HEADER[1]) {
64
+ return index;
65
+ }
66
+ }
67
+ return -1;
68
+ }
69
+ }
70
+ exports.Pc60FwFrameReader = Pc60FwFrameReader;
71
+ //# sourceMappingURL=pc60fw.frame-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_frameReadStatus","require","_calculateCrc8Maxim","_hexToByte","HEADER","LENGTH_INDEX","HEADER_BYTES","CHECKSUM_BYTES","byteAt","buffer","index","hexToByte","Pc60FwFrameReader","readFrame","start","findHeader","status","FrameReadStatus","INCOMPLETE","consumedBytes","Math","max","length","payloadLength","frameLength","CORRUPT","frame","slice","declared","actual","calculateCrc8Maxim","COMPLETE","toLowerCase","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/pc60fw.frame-reader.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,MAAMG,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,YAAY,GAAG,CAAC;AACtB,MAAMC,cAAc,GAAG,CAAC;AAExB,MAAMC,MAAM,GAAGA,CAACC,MAAyB,EAAEC,KAAa,KACtD,IAAAC,oBAAS,EAACF,MAAM,CAACC,KAAK,CAAC,IAAI,GAAG,CAAC;;AAEjC;AACO,MAAME,iBAAiB,CAAwB;EAC7CC,SAASA,CAACJ,MAAyB,EAAmB;IAC3D,MAAMK,KAAK,GAAG,IAAI,CAACC,UAAU,CAACN,MAAM,CAAC;IAErC,IAAIK,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,OAAO;QACLE,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,MAAM,CAACa,MAAM,GAAG,CAAC;MAC9C,CAAC;IACH;IAEA,IAAIR,KAAK,GAAGR,YAAY,GAAGG,MAAM,CAACa,MAAM,EAAE;MACxC,OAAO;QAAEN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAAEC,aAAa,EAAEL;MAAM,CAAC;IACrE;IAEA,MAAMS,aAAa,GAAGf,MAAM,CAACC,MAAM,EAAEK,KAAK,GAAGT,YAAY,CAAC;IAC1D,MAAMmB,WAAW,GAAGlB,YAAY,GAAGiB,aAAa;IAEhD,IAAIA,aAAa,GAAGhB,cAAc,EAAE;MAClC,OAAO;QACLS,MAAM,EAAEC,gCAAe,CAACQ,OAAO;QAC/BN,aAAa,EAAEL,KAAK,GAAGV,MAAM,CAACkB;MAChC,CAAC;IACH;IAEA,IAAIR,KAAK,GAAGU,WAAW,GAAGf,MAAM,CAACa,MAAM,EAAE;MACvC,OAAO;QAAEN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAAEC,aAAa,EAAEL;MAAM,CAAC;IACrE;IAEA,MAAMY,KAAK,GAAGjB,MAAM,CAACkB,KAAK,CAACb,KAAK,EAAEA,KAAK,GAAGU,WAAW,CAAC;IACtD,MAAMI,QAAQ,GAAGpB,MAAM,CAACkB,KAAK,EAAEA,KAAK,CAACJ,MAAM,GAAGf,cAAc,CAAC;IAC7D,MAAMsB,MAAM,GAAG,IAAAC,sCAAkB,EAACJ,KAAK,EAAEA,KAAK,CAACJ,MAAM,GAAGf,cAAc,CAAC;IAEvE,IAAIqB,QAAQ,KAAKC,MAAM,EAAE;MACvB,OAAO;QACLb,MAAM,EAAEC,gCAAe,CAACQ,OAAO;QAC/BN,aAAa,EAAEL,KAAK,GAAGV,MAAM,CAACkB;MAChC,CAAC;IACH;IAEA,OAAO;MACLN,MAAM,EAAEC,gCAAe,CAACc,QAAQ;MAChCZ,aAAa,EAAEL,KAAK,GAAGU,WAAW;MAClCE;IACF,CAAC;EACH;EAEQX,UAAUA,CAACN,MAAyB,EAAU;IACpD,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGD,MAAM,CAACa,MAAM,GAAG,CAAC,EAAEZ,KAAK,EAAE,EAAE;MACtD,IACED,MAAM,CAACC,KAAK,CAAC,EAAEsB,WAAW,CAAC,CAAC,KAAK5B,MAAM,CAAC,CAAC,CAAC,IAC1CK,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC,EAAEsB,WAAW,CAAC,CAAC,KAAK5B,MAAM,CAAC,CAAC,CAAC,EAC9C;QACA,OAAOM,KAAK;MACd;IACF;IAEA,OAAO,CAAC,CAAC;EACX;AACF;AAACuB,OAAA,CAAArB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SPO2Device = void 0;
7
7
  var _caseType = require("../../../types/case-type.js");
8
8
  var _btManagedDevice = require("../bt-managed-device.js");
9
+ var _pc60fwFrameReader = require("./pc60fw.frame-reader.js");
9
10
  var _spo2MainServices = require("./spo2.main-services.js");
10
11
  class SPO2Device extends _btManagedDevice.BTManagedDevice {
11
12
  onStreamStart = () => {};
12
13
  mainServices = _spo2MainServices.spo2MainServices;
13
14
  stuckDataTimeout = 30_000;
15
+ frameReader = new _pc60fwFrameReader.Pc60FwFrameReader();
14
16
  validatePackage = pkg => {
15
17
  pkg = pkg.map(b => b.toLowerCase());
16
18
  let headIndex = -1;
@@ -41,14 +43,24 @@ class SPO2Device extends _btManagedDevice.BTManagedDevice {
41
43
  if (successResult.caseType === _caseType.CaseType.STREAM || successResult.caseType === _caseType.CaseType.OTHER) {
42
44
  return;
43
45
  }
44
- if ((collectedValues[9] ?? "0") !== "02") {
46
+ const status = Number.parseInt(collectedValues[9] ?? "0", 16);
47
+ if ((status & 0x02) === 0) {
48
+ if ((status & 0x04) === 0 && this.isValidParameterResult(successResult)) {
49
+ this.lastValidResult = this.withoutPerfusionMarker(successResult);
50
+ }
51
+ return true;
52
+ }
53
+ const lastValidResult = this.lastValidResult ?? (successResult.perfusionIndex === undefined ? successResult : undefined);
54
+ this.lastValidResult = undefined;
55
+ if (!lastValidResult) {
45
56
  return true;
46
57
  }
47
- if (!successResult.measurementTypeKey) {
48
- this.onError?.(new Error(`Measurement type is undefined for case ${successResult.caseType}`));
58
+ if (!lastValidResult.measurementTypeKey) {
59
+ this.onError?.(new Error(`Measurement type is undefined for case ${lastValidResult.caseType}`));
49
60
  return;
50
61
  }
51
- this.handlePulseOximeterResult(successResult);
62
+ this.handlePulseOximeterResult(lastValidResult);
63
+ return;
52
64
  }
53
65
  handlePulseOximeterResult(successResult) {
54
66
  const error = this.checkIfHasError(successResult);
@@ -59,11 +71,25 @@ class SPO2Device extends _btManagedDevice.BTManagedDevice {
59
71
  this.onResult?.(successResult);
60
72
  }
61
73
  checkIfHasError(successResult) {
62
- if (!successResult.bloodOxygen) {
74
+ if (!this.isValidParameterResult(successResult)) {
63
75
  return "feedback-messages.measurement.disturb-detected-error";
64
76
  }
65
77
  return undefined;
66
78
  }
79
+ isValidParameterResult(successResult) {
80
+ const bloodOxygen = successResult.bloodOxygen;
81
+ const pulseRate = successResult.pulseRate;
82
+ return typeof bloodOxygen === "number" && bloodOxygen >= 50 && bloodOxygen <= 100 && ![0, 127, 255].includes(bloodOxygen) && typeof pulseRate === "number" && pulseRate >= 20 && pulseRate <= 300 && ![0, 255, 511, 65535].includes(pulseRate);
83
+ }
84
+ withoutPerfusionMarker(successResult) {
85
+ if (successResult.perfusionIndex !== 0 && successResult.perfusionIndex !== 255) {
86
+ return successResult;
87
+ }
88
+ return {
89
+ ...successResult,
90
+ perfusionIndex: undefined
91
+ };
92
+ }
67
93
  }
68
94
  exports.SPO2Device = SPO2Device;
69
95
  //# sourceMappingURL=spo2.device.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_caseType","require","_btManagedDevice","_spo2MainServices","SPO2Device","BTManagedDevice","onStreamStart","mainServices","spo2MainServices","stuckDataTimeout","validatePackage","pkg","map","b","toLowerCase","headIndex","i","length","slice","toNum","hex","parseInt","lengthByte","totalLen","handleSuccessResult","successResult","collectedValues","caseType","CaseType","STREAM","OTHER","measurementTypeKey","onError","Error","handlePulseOximeterResult","error","checkIfHasError","onResult","bloodOxygen","undefined","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.device.ts"],"mappings":";;;;;;AAEA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,SAASC,gCAAe,CAA2B;EAC9DC,aAAa,GAAeA,CAAA,KAAM,CAAC,CAAC;EAEpCC,YAAY,GAAeC,kCAAgB;EAC3CC,gBAAgB,GAAG,MAAM;EAEzBC,eAAe,GAAgCC,GAAG,IAAK;IAC/DA,GAAG,GAAGA,GAAG,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAErC,IAAIC,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;MACvC,IAAIL,GAAG,CAACK,CAAC,CAAC,KAAK,IAAI,IAAIL,GAAG,CAACK,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QAC1CD,SAAS,GAAGC,CAAC;QACb;MACF;IACF;IAEA,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjBJ,GAAG,GAAGA,GAAG,CAACO,KAAK,CAACH,SAAS,CAAC;IAC5B;IAEA,IAAIJ,GAAG,CAACM,MAAM,GAAG,CAAC,EAAE;MAClB,OAAO,KAAK;IACd;IAEA,MAAME,KAAK,GAAIC,GAAY,IAAKC,QAAQ,CAACD,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;IAE7D,MAAME,UAAU,GAAGH,KAAK,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAMY,QAAQ,GAAG,CAAC,GAAGD,UAAU;IAE/B,IAAIX,GAAG,CAACM,MAAM,GAAGM,QAAQ,EAAE;MACzB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC;EAESC,mBAAmBA,CAC3BC,aAEC,EACDC,eAAyB,EACT;IAChB,IACED,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACC,MAAM,IAC1CJ,aAAa,CAACE,QAAQ,KAAKC,kBAAQ,CAACE,KAAK,EACzC;MACA;IACF;IAEA,IAAI,CAACJ,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,EAAE;MACxC,OAAO,IAAI;IACb;IAEA,IAAI,CAACD,aAAa,CAACM,kBAAkB,EAAE;MACrC,IAAI,CAACC,OAAO,GACV,IAAIC,KAAK,CACP,0CAA0CR,aAAa,CAACE,QAAQ,EAClE,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACO,yBAAyB,CAACT,aAAa,CAAC;EAC/C;EAEQS,yBAAyBA,CAC/BT,aAAgE,EAC1D;IACN,MAAMU,KAAK,GAAG,IAAI,CAACC,eAAe,CAACX,aAAa,CAAC;IAEjD,IAAIU,KAAK,EAAE;MACT,IAAI,CAACH,OAAO,GAAGG,KAAK,CAAC;MAErB;IACF;IAEA,IAAI,CAACE,QAAQ,GAAGZ,aAAa,CAAC;EAChC;EAEQW,eAAeA,CACrBX,aAAgE,EAC5C;IACpB,IAAI,CAACA,aAAa,CAACa,WAAW,EAAE;MAC9B,OAAO,sDAAsD;IAC/D;IAEA,OAAOC,SAAS;EAClB;AACF;AAACC,OAAA,CAAApC,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["_caseType","require","_btManagedDevice","_pc60fwFrameReader","_spo2MainServices","SPO2Device","BTManagedDevice","onStreamStart","mainServices","spo2MainServices","stuckDataTimeout","frameReader","Pc60FwFrameReader","validatePackage","pkg","map","b","toLowerCase","headIndex","i","length","slice","toNum","hex","parseInt","lengthByte","totalLen","handleSuccessResult","successResult","collectedValues","caseType","CaseType","STREAM","OTHER","status","Number","isValidParameterResult","lastValidResult","withoutPerfusionMarker","perfusionIndex","undefined","measurementTypeKey","onError","Error","handlePulseOximeterResult","error","checkIfHasError","onResult","bloodOxygen","pulseRate","includes","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.device.ts"],"mappings":"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","ignoreList":[]}
@@ -43,6 +43,11 @@ const spo2MainServices = exports.spo2MainServices = [{
43
43
  parseType: "number",
44
44
  byteIndexes: [7, 6],
45
45
  parseReference: 16
46
+ }, {
47
+ name: "perfusionIndex",
48
+ parseType: "number",
49
+ byteIndexes: [8],
50
+ customParserDefinition: value => parseInt(value, 16) / 10
46
51
  }]
47
52
  }]
48
53
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","spo2MainServices","exports","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","caseType","CaseType","STREAM","caseValue","parseDefinitions","description","RESULT","name","parseType","byteIndexes","parseReference"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.main-services.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAGO,MAAME,gBAA4B,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CAC1C;EACEE,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC/BC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACER,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACER,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE;MACpB,CAAC,EAED;QACEP,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACK,MAAM;QACzBH,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,CAChB;UACEG,IAAI,EAAE,aAAa;UACnBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBC,cAAc,EAAE;QAClB,CAAC,EACD;UACEH,IAAI,EAAE,WAAW;UACjBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,cAAc,EAAE;QAClB,CAAC;MAEL,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","spo2MainServices","exports","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","MeasurementTypeKey","bloodOxygenPulseRate","caseType","CaseType","STREAM","caseValue","parseDefinitions","description","RESULT","name","parseType","byteIndexes","parseReference","customParserDefinition","value","parseInt"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.main-services.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAGO,MAAME,gBAA4B,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CAC1C;EACEE,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC/BC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACER,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACER,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACC,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE;MACpB,CAAC,EAED;QACEP,kBAAkB,EAAEC,wBAAkB,CAACC,oBAAoB;QAC3DC,QAAQ,EAAEC,kBAAQ,CAACK,MAAM;QACzBH,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,CAChB;UACEG,IAAI,EAAE,aAAa;UACnBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBC,cAAc,EAAE;QAClB,CAAC,EACD;UACEH,IAAI,EAAE,WAAW;UACjBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,cAAc,EAAE;QAClB,CAAC,EACD;UACEH,IAAI,EAAE,gBAAgB;UACtBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBE,sBAAsB,EAAGC,KAAa,IACpCC,QAAQ,CAACD,KAAK,EAAE,EAAE,CAAC,GAAG;QAC1B,CAAC;MAEL,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.VerovalEcgDevice = void 0;
7
7
  var _core = require("@ovok/core");
8
8
  var _caseType = require("../../../types/case-type.js");
9
9
  var _btManagedDevice = require("../bt-managed-device.js");
10
+ var _verovalEcgRecord = require("./veroval.ecg-record.js");
10
11
  var _verovalEcgSamples = require("./veroval.ecg-samples.js");
11
12
  var _verovalEcgTransfer = require("./veroval.ecg-transfer.js");
12
13
  const SERVICE = "0000a000-0000-1000-8000-00805f9b34fb";
@@ -64,18 +65,33 @@ class VerovalEcgDevice extends _btManagedDevice.BTManagedDevice {
64
65
  serviceUuid: SERVICE,
65
66
  characteristicUuid: CONTROL_POINT
66
67
  },
67
- onRecording: this.reportRecording
68
+ onRecord: this.reportRecord,
69
+ clockSync: this.clockSync
68
70
  });
69
71
  constructor(device, params) {
70
72
  super(device, params);
73
+ this.clockSync = params.clockSync;
71
74
  }
72
75
 
73
76
  /** Nothing is reported per packet; the transfer reports the recording when it is whole. */
74
77
  handleSuccessResult() {
75
78
  return;
76
79
  }
77
- reportRecording = bytes => {
78
- const diagramPoints = (0, _verovalEcgSamples.decodeVerovalEcgSamples)(bytes);
80
+ reportRecord = record => {
81
+ if (!record.header.isEcg) {
82
+ const bloodPressure = (0, _verovalEcgRecord.parseVerovalBloodPressureRecord)(record.header);
83
+ if (bloodPressure) {
84
+ this.onResult?.({
85
+ caseType: _caseType.CaseType.RESULT,
86
+ ...bloodPressure
87
+ });
88
+ }
89
+ return;
90
+ }
91
+ if (!record.raw || record.header.heartRate === 0) {
92
+ return;
93
+ }
94
+ const diagramPoints = (0, _verovalEcgSamples.decodeVerovalEcgSamples)(record.raw, record.header.calibration);
79
95
  if (diagramPoints.length === 0) {
80
96
  this.onError?.(new Error("Veroval ECG: the recording held no samples."));
81
97
  return;
@@ -83,6 +99,11 @@ class VerovalEcgDevice extends _btManagedDevice.BTManagedDevice {
83
99
  this.onResult?.({
84
100
  measurementTypeKey: _core.MeasurementTypeKey.ecg,
85
101
  caseType: _caseType.CaseType.RESULT,
102
+ id: `veroval-${record.header.memorySlot}-${record.header.sequence}-${record.header.recordedAt?.getTime() ?? "unknown"}`,
103
+ memorySlot: record.header.memorySlot,
104
+ recordedAt: record.header.recordedAt,
105
+ heartRate: record.header.heartRate,
106
+ diagnosticResult: record.header.diagnosticResult,
86
107
  diagramPoints,
87
108
  duration: diagramPoints.length / _verovalEcgSamples.VEROVAL_ECG_SAMPLE_RATE_HZ
88
109
  });