@ovok/native 1.4.0 → 1.5.1

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 (322) hide show
  1. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.js +2 -2
  2. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.js.map +1 -1
  3. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.js +2 -2
  4. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.js.map +1 -1
  5. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  6. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  7. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  8. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  9. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +55 -13
  10. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  11. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +13 -2
  12. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +1 -1
  14. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +88 -0
  16. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/services/bt-manager.js +2 -0
  18. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js +3 -1
  20. package/lib/commonjs/modules/bt-management/services/custom/compile-case-fields.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +2 -0
  22. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js +2 -1
  24. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +24 -0
  26. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js +8 -1
  28. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +4 -0
  30. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/device-creator.js +10 -2
  32. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +1 -1
  34. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +9 -3
  36. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +5 -0
  38. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  39. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +41 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +30 -2
  42. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +6 -1
  44. package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +20 -4
  46. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/devices/frame-parser.js +13 -1
  48. package/lib/commonjs/modules/bt-management/services/devices/frame-parser.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js +6 -3
  50. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -1
  51. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +12 -3
  52. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  53. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +84 -38
  54. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  55. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +11 -1
  56. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  57. package/lib/commonjs/modules/bt-management/services/devices/spo/oxyfit.device.js +18 -0
  58. package/lib/commonjs/modules/bt-management/services/devices/spo/oxyfit.device.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +67 -11
  60. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  61. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +4 -2
  62. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  63. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +78 -0
  64. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -0
  65. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.frame-reader.js +83 -0
  66. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.frame-reader.js.map +1 -0
  67. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.sequencer.js +60 -0
  68. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.sequencer.js.map +1 -0
  69. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +18 -1
  70. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  71. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +4 -1
  72. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  73. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +54 -39
  74. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  75. package/lib/commonjs/modules/bt-management/types/integrated-devices.js +1 -0
  76. package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
  77. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js +3 -0
  78. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js.map +1 -1
  79. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.js +2 -2
  80. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.js.map +1 -1
  81. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.js +2 -2
  82. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.js.map +1 -1
  83. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
  84. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  85. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  86. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  87. package/lib/module/modules/bt-device/constants/supported-devices.js +60 -18
  88. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  89. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +13 -2
  90. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  91. package/lib/module/modules/bt-management/constants/integrated-devices-map.js +1 -1
  92. package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  93. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +88 -0
  94. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  95. package/lib/module/modules/bt-management/services/bt-manager.js +2 -0
  96. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  97. package/lib/module/modules/bt-management/services/custom/compile-case-fields.js +3 -1
  98. package/lib/module/modules/bt-management/services/custom/compile-case-fields.js.map +1 -1
  99. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +2 -0
  100. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -1
  101. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js +2 -1
  102. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js.map +1 -1
  103. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +24 -0
  104. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  105. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js +8 -1
  106. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -1
  107. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +4 -0
  108. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  109. package/lib/module/modules/bt-management/services/device-creator.js +10 -2
  110. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  111. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +1 -1
  112. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  113. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +9 -3
  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 +5 -0
  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-device-information.js +37 -0
  118. package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -0
  119. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +30 -2
  120. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  121. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js +6 -1
  122. package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
  123. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +22 -6
  124. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  125. package/lib/module/modules/bt-management/services/devices/frame-parser.js +13 -1
  126. package/lib/module/modules/bt-management/services/devices/frame-parser.js.map +1 -1
  127. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js +6 -3
  128. package/lib/module/modules/bt-management/services/devices/lepu/lepu.command-builder.js.map +1 -1
  129. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +12 -3
  130. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  131. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js +84 -38
  132. package/lib/module/modules/bt-management/services/devices/lepu/lepu.identity-gate.js.map +1 -1
  133. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +11 -1
  134. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  135. package/lib/module/modules/bt-management/services/devices/spo/oxyfit.device.js +14 -0
  136. package/lib/module/modules/bt-management/services/devices/spo/oxyfit.device.js.map +1 -0
  137. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +67 -11
  138. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  139. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +4 -2
  140. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  141. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +73 -0
  142. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -0
  143. package/lib/module/modules/bt-management/services/devices/uebe/mysense.frame-reader.js +78 -0
  144. package/lib/module/modules/bt-management/services/devices/uebe/mysense.frame-reader.js.map +1 -0
  145. package/lib/module/modules/bt-management/services/devices/uebe/mysense.sequencer.js +55 -0
  146. package/lib/module/modules/bt-management/services/devices/uebe/mysense.sequencer.js.map +1 -0
  147. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +17 -1
  148. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  149. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +4 -1
  150. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  151. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +54 -39
  152. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  153. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  154. package/lib/module/modules/bt-management/types/integrated-devices.js +1 -0
  155. package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
  156. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js +3 -0
  157. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js.map +1 -1
  158. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/apple-login-button.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/google-login-button.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  162. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +10 -1
  164. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts +4 -0
  168. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +2 -0
  170. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -0
  179. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  181. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  182. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts +11 -0
  183. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +3 -1
  185. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -0
  188. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/frame-parser.d.ts +1 -0
  190. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/frame-parser.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +6 -1
  192. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +4 -0
  194. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +10 -51
  196. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  197. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +6 -0
  198. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  199. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts +9 -0
  200. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -3
  202. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +4 -0
  204. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +15 -0
  206. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts +8 -0
  208. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts +17 -0
  210. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +3 -1
  212. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +3 -1
  214. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +4 -7
  216. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  218. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  220. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +2 -0
  222. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +1 -0
  224. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts +2 -0
  226. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts +2 -1
  228. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +8 -0
  230. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +2 -0
  232. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +1 -0
  234. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +1 -0
  236. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts +1 -0
  238. package/lib/typescript/commonjs/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -1
  240. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login-button.d.ts.map +1 -1
  241. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login-button.d.ts.map +1 -1
  242. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  243. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  244. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  245. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +10 -1
  246. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  247. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  248. package/lib/typescript/module/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  249. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts +4 -0
  250. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  251. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +2 -0
  252. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  253. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-case-fields.d.ts.map +1 -1
  254. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -1
  255. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -1
  256. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  257. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -1
  258. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  259. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  260. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +6 -0
  261. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  262. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  263. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  264. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts +11 -0
  265. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -0
  266. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +3 -1
  267. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  268. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom-lepu-sequencer.d.ts.map +1 -1
  269. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -0
  270. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  271. package/lib/typescript/module/src/modules/bt-management/services/devices/frame-parser.d.ts +1 -0
  272. package/lib/typescript/module/src/modules/bt-management/services/devices/frame-parser.d.ts.map +1 -1
  273. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts +6 -1
  274. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.command-builder.d.ts.map +1 -1
  275. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +4 -0
  276. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  277. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts +10 -51
  278. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.identity-gate.d.ts.map +1 -1
  279. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +6 -0
  280. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  281. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts +9 -0
  282. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/oxyfit.device.d.ts.map +1 -0
  283. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -3
  284. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  285. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +4 -0
  286. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  287. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +15 -0
  288. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -0
  289. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts +8 -0
  290. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.frame-reader.d.ts.map +1 -0
  291. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts +17 -0
  292. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.sequencer.d.ts.map +1 -0
  293. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +3 -1
  294. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  295. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +3 -1
  296. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +4 -7
  298. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  299. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  300. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  301. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  302. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +2 -0
  304. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  305. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +1 -0
  306. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  307. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts +2 -0
  308. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  309. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts +2 -1
  310. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -1
  311. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +8 -0
  312. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  313. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +2 -0
  314. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  315. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +1 -0
  316. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  317. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +1 -0
  318. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  319. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts +1 -0
  320. package/lib/typescript/module/src/modules/bt-management/types/parsing-case.d.ts.map +1 -1
  321. package/lib/typescript/module/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -1
  322. package/package.json +2 -2
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readDeviceInformation = void 0;
7
+ var _sentryLogger = require("../../../helpers/utils/sentry-logger.js");
8
+ const readDeviceInformation = async (device, onDeviceInfo) => {
9
+ const read = device.readCharacteristicForService;
10
+ if (typeof read !== "function") {
11
+ return;
12
+ }
13
+ const info = {};
14
+ const values = [["name", "00001800-0000-1000-8000-00805f9b34fb", "00002a00-0000-1000-8000-00805f9b34fb"], ["manufacturerName", "0000180a-0000-1000-8000-00805f9b34fb", "00002a29-0000-1000-8000-00805f9b34fb"], ["model", "0000180a-0000-1000-8000-00805f9b34fb", "00002a24-0000-1000-8000-00805f9b34fb"], ["serialNumber", "0000180a-0000-1000-8000-00805f9b34fb", "00002a25-0000-1000-8000-00805f9b34fb"]];
15
+ for (const [key, serviceUuid, characteristicUuid] of values) {
16
+ try {
17
+ const characteristic = await read.call(device, serviceUuid, characteristicUuid);
18
+ const value = characteristic?.value;
19
+ if (!value) {
20
+ continue;
21
+ }
22
+ const text = Buffer.from(value, "base64").toString("utf8").replace(/\0+$/, "").trim();
23
+ if (text) {
24
+ info[key] = text;
25
+ }
26
+ } catch (error) {
27
+ // Optional GAP/Device Information characteristics are not present on every device.
28
+ (0, _sentryLogger.sentryLogger)("info", "DEVICE: Optional device information unavailable", {
29
+ deviceId: device.id,
30
+ deviceName: device.name,
31
+ characteristicUuid,
32
+ error: error instanceof Error ? error.message : String(error)
33
+ });
34
+ }
35
+ }
36
+ if (Object.keys(info).length > 0) {
37
+ onDeviceInfo?.(info);
38
+ }
39
+ };
40
+ exports.readDeviceInformation = readDeviceInformation;
41
+ //# sourceMappingURL=bt-device-information.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_sentryLogger","require","readDeviceInformation","device","onDeviceInfo","read","readCharacteristicForService","info","values","key","serviceUuid","characteristicUuid","characteristic","call","value","text","Buffer","from","toString","replace","trim","error","sentryLogger","deviceId","id","deviceName","name","Error","message","String","Object","keys","length","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-device-information.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AASA,MAAMC,qBAAqB,GAAG,MAAAA,CAC5BC,MAAc,EACdC,YAAkD,KAChC;EAClB,MAAMC,IAAI,GAAGF,MAAM,CAACG,4BAA4B;EAEhD,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9B;EACF;EAEA,MAAME,IAAyB,GAAG,CAAC,CAAC;EAEpC,MAAMC,MAA8D,GAAG,CACrE,CAAC,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,EACxF,CAAC,kBAAkB,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,EACpG,CAAC,OAAO,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,EACzF,CAAC,cAAc,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,CACjG;EAED,KAAK,MAAM,CAACC,GAAG,EAAEC,WAAW,EAAEC,kBAAkB,CAAC,IAAIH,MAAM,EAAE;IAC3D,IAAI;MACF,MAAMI,cAAc,GAAG,MAAMP,IAAI,CAACQ,IAAI,CACpCV,MAAM,EACNO,WAAW,EACXC,kBACF,CAAC;MAED,MAAMG,KAAK,GAAGF,cAAc,EAAEE,KAAK;MAEnC,IAAI,CAACA,KAAK,EAAE;QACV;MACF;MAEA,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACH,KAAK,EAAE,QAAQ,CAAC,CACtCI,QAAQ,CAAC,MAAM,CAAC,CAChBC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CACnBC,IAAI,CAAC,CAAC;MAET,IAAIL,IAAI,EAAE;QACRR,IAAI,CAACE,GAAG,CAAC,GAAGM,IAAI;MAClB;IACF,CAAC,CAAC,OAAOM,KAAK,EAAE;MACd;MACA,IAAAC,0BAAY,EAAC,MAAM,EAAE,iDAAiD,EAAE;QACtEC,QAAQ,EAAEpB,MAAM,CAACqB,EAAE;QACnBC,UAAU,EAAEtB,MAAM,CAACuB,IAAI;QACvBf,kBAAkB;QAClBU,KAAK,EAAEA,KAAK,YAAYM,KAAK,GAAGN,KAAK,CAACO,OAAO,GAAGC,MAAM,CAACR,KAAK;MAC9D,CAAC,CAAC;IACJ;EACF;EAEA,IAAIS,MAAM,CAACC,IAAI,CAACxB,IAAI,CAAC,CAACyB,MAAM,GAAG,CAAC,EAAE;IAChC5B,YAAY,GAAGG,IAAI,CAAC;EACtB;AACF,CAAC;AAAC0B,OAAA,CAAA/B,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -11,7 +11,11 @@ var _supportedMeasurementTypeKeys = require("../../utils/supported-measurement-t
11
11
  var _btConnectionHandler = require("./bt-connection-handler.js");
12
12
  var _btDataProcessor = require("./bt-data-processor.js");
13
13
  var _pollingCommandSequencer = require("./polling-command-sequencer.js");
14
+ /* eslint-disable max-lines */
15
+
14
16
  class BTManagedDevice {
17
+ resultReportedThisConnection = false;
18
+
15
19
  /**
16
20
  * The timeout in milliseconds for the stuck data.
17
21
  */
@@ -63,9 +67,11 @@ class BTManagedDevice {
63
67
  onError: onErrorCallback,
64
68
  onDeviceStatusChanged: onDeviceStatusChangedCallback,
65
69
  onResult: onResultCallback,
66
- onDeviceDisconnected: onDeviceDisconnectedCallback
70
+ onDeviceDisconnected: onDeviceDisconnectedCallback,
71
+ oneReadingPerConnection
67
72
  }) {
68
73
  this.device = device;
74
+ this.oneReadingPerConnection = oneReadingPerConnection === true;
69
75
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Creating BTManagedDevice", {
70
76
  deviceId: device.id,
71
77
  deviceName: deviceName
@@ -108,6 +114,10 @@ class BTManagedDevice {
108
114
  caseType: _,
109
115
  ...data
110
116
  }) => {
117
+ if (this.oneReadingPerConnection && this.resultReportedThisConnection) {
118
+ return;
119
+ }
120
+ this.resultReportedThisConnection = true;
111
121
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Calling onResult callback", {
112
122
  data: (0, _summariseMeasurementForLog.summariseMeasurementForLog)(data),
113
123
  deviceData: this.deviceData,
@@ -132,6 +142,8 @@ class BTManagedDevice {
132
142
  this.onResult = undefined;
133
143
  };
134
144
  connect = async () => {
145
+ this.resultReportedThisConnection = false;
146
+
135
147
  // To access the abstract property in the constructor, we need to set it here
136
148
  this.deviceData.measurementTypes = (0, _supportedMeasurementTypeKeys.supportedMeasurementTypeKeys)(this.mainServices);
137
149
  const sequencer = this.createCommandSequencer?.() ?? (0, _pollingCommandSequencer.pollingSequencerFor)(this.mainServices);
@@ -147,7 +159,23 @@ class BTManagedDevice {
147
159
  onDataReceived: (uuid, hexValue) => {
148
160
  this.dataProcessor?.processData(uuid, hexValue);
149
161
  },
150
- initialCommands: () => sequencer.initialCommands()
162
+ onDeviceInfo: info => {
163
+ if (info.name) {
164
+ this.deviceData.localName = info.name;
165
+ }
166
+ if (info.manufacturerName) {
167
+ this.deviceData.manufacturerName = info.manufacturerName;
168
+ }
169
+ if (info.model) {
170
+ this.deviceData.model = info.model;
171
+ }
172
+ if (info.serialNumber) {
173
+ this.deviceData.sn = info.serialNumber;
174
+ }
175
+ },
176
+ initialCommands: () => sequencer.initialCommands(),
177
+ onCommandSent: () => this.dataProcessor?.armStuckTimeout(),
178
+ isNormalDisconnect: () => sequencer.isNormalDisconnect?.() ?? false
151
179
  }, this.preferredMtu);
152
180
  this.dataProcessor = new _btDataProcessor.BTDataProcessor(this.device, this.mainServices, this.stuckDataTimeout, {
153
181
  onStatusChanged: this.onDeviceStatusChanged?.bind(this),
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_deviceStatus","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","summariseMeasurementForLog","destroy","connectionHandler","dataProcessor","undefined","connect","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","DISCONNECTED","onDataReceived","uuid","hexValue","processData","initialCommands","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_deviceStatus","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","resultReportedThisConnection","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","summariseMeasurementForLog","destroy","connectionHandler","dataProcessor","undefined","connect","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","DISCONNECTED","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","model","serialNumber","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,12 @@ const createLepuSequencer = (lepu, report) => new _lepuIdentityGate.LepuIdentity
43
43
  serviceUuid: lepu.write.serviceUuid,
44
44
  characteristicUuid: lepu.write.characteristicUuid
45
45
  },
46
- builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.startBytes[0] ?? DEFAULT_START_BYTE),
46
+ builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.requestStartByte ?? lepu.startBytes[0] ?? DEFAULT_START_BYTE, {
47
+ fixedSequence: lepu.protocol === "viatom-oxygen"
48
+ }),
49
+ protocol: lepu.protocol,
50
+ writeWithoutResponse: lepu.writeWithoutResponse,
51
+ setClockBeforeInfo: lepu.setClockBeforeInfo,
47
52
  expectedDeviceTypes: lepu.expectedDeviceTypes,
48
53
  ...(lepu.pollCommand === undefined ? {} : {
49
54
  pollCommand: lepu.pollCommand
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_lepuCommandBuilder","_lepuIdentityGate","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","startBytes","expectedDeviceTypes","pollCommand","undefined","onIdentified","onRefused"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA,MAAMG,kBAAkB,GAAG,IAAI;AAO/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CACzBC,UAAsB,EACtBC,IAAoB,KACX;EACTD,UAAU,CAACE,EAAE,GAAGD,IAAI,CAACE,YAAY;EAEjC,IAAAC,0BAAY,EAAC,MAAM,EAAE,sCAAsC,EAAE;IAC3DC,QAAQ,EAAEL,UAAU,CAACM,EAAE;IACvBC,UAAU,EAAEP,UAAU,CAACQ,IAAI;IAC3BC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3BC,iBAAiB,EAAEV,IAAI,CAACU;EAC1B,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAb,kBAAA,GAAAA,kBAAA;AAEF,MAAMc,mBAAmB,GAAGA,CAC1BC,IAAoB,EACpBC,MAAsB,KAEtB,IAAIC,kCAAgB,CAAC;EACnBC,KAAK,EAAE;IACLC,WAAW,EAAEJ,IAAI,CAACG,KAAK,CAACC,WAAW;IACnCC,kBAAkB,EAAEL,IAAI,CAACG,KAAK,CAACE;EACjC,CAAC;EACDC,OAAO,EAAE,IAAIC,sCAAkB,CAACP,IAAI,CAACQ,UAAU,CAAC,CAAC,CAAC,IAAIxB,kBAAkB,CAAC;EACzEyB,mBAAmB,EAAET,IAAI,CAACS,mBAAmB;EAC7C,IAAIT,IAAI,CAACU,WAAW,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;IAAED,WAAW,EAAEV,IAAI,CAACU;EAAY,CAAC,CAAC;EAC5EE,YAAY,EAAEX,MAAM,CAACW,YAAY;EACjCC,SAAS,EAAEZ,MAAM,CAACY;AACpB,CAAC,CAAC;AAACf,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_lepuCommandBuilder","_lepuIdentityGate","DEFAULT_START_BYTE","recordLepuIdentity","deviceData","info","sn","serialNumber","sentryLogger","deviceId","id","deviceName","name","deviceType","branchCode","protocolMaxLength","exports","createLepuSequencer","lepu","report","LepuIdentityGate","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","requestStartByte","startBytes","fixedSequence","protocol","writeWithoutResponse","setClockBeforeInfo","expectedDeviceTypes","pollCommand","undefined","onIdentified","onRefused"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom-lepu-sequencer.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA,MAAMG,kBAAkB,GAAG,IAAI;AAO/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CACzBC,UAAsB,EACtBC,IAAoB,KACX;EACTD,UAAU,CAACE,EAAE,GAAGD,IAAI,CAACE,YAAY;EAEjC,IAAAC,0BAAY,EAAC,MAAM,EAAE,sCAAsC,EAAE;IAC3DC,QAAQ,EAAEL,UAAU,CAACM,EAAE;IACvBC,UAAU,EAAEP,UAAU,CAACQ,IAAI;IAC3BC,UAAU,EAAER,IAAI,CAACQ,UAAU;IAC3BC,UAAU,EAAET,IAAI,CAACS,UAAU;IAC3BC,iBAAiB,EAAEV,IAAI,CAACU;EAC1B,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAb,kBAAA,GAAAA,kBAAA;AAEF,MAAMc,mBAAmB,GAAGA,CAC1BC,IAAoB,EACpBC,MAAsB,KAEtB,IAAIC,kCAAgB,CAAC;EACnBC,KAAK,EAAE;IACLC,WAAW,EAAEJ,IAAI,CAACG,KAAK,CAACC,WAAW;IACnCC,kBAAkB,EAAEL,IAAI,CAACG,KAAK,CAACE;EACjC,CAAC;EACDC,OAAO,EAAE,IAAIC,sCAAkB,CAACP,IAAI,CAACQ,gBAAgB,IAAIR,IAAI,CAACS,UAAU,CAAC,CAAC,CAAC,IAAIzB,kBAAkB,EAAE;IACjG0B,aAAa,EAAEV,IAAI,CAACW,QAAQ,KAAK;EACnC,CAAC,CAAC;EACFA,QAAQ,EAAEX,IAAI,CAACW,QAAQ;EACvBC,oBAAoB,EAAEZ,IAAI,CAACY,oBAAoB;EAC/CC,kBAAkB,EAAEb,IAAI,CAACa,kBAAkB;EAC3CC,mBAAmB,EAAEd,IAAI,CAACc,mBAAmB;EAC7C,IAAId,IAAI,CAACe,WAAW,KAAKC,SAAS,GAAG,CAAC,CAAC,GAAG;IAAED,WAAW,EAAEf,IAAI,CAACe;EAAY,CAAC,CAAC;EAC5EE,YAAY,EAAEhB,MAAM,CAACgB,YAAY;EACjCC,SAAS,EAAEjB,MAAM,CAACiB;AACpB,CAAC,CAAC;AAACpB,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -29,8 +29,12 @@ var _customLepuSequencer = require("./custom-lepu-sequencer.js");
29
29
  class CustomDevice extends _btManagedDevice.BTManagedDevice {
30
30
  validators = new Map();
31
31
  constructor(device, params, definition) {
32
- super(device, params);
32
+ super(device, {
33
+ ...params,
34
+ oneReadingPerConnection: params.oneReadingPerConnection ?? definition.oneReadingPerConnection
35
+ });
33
36
  this.definition = definition;
37
+ this.deliveredEcgFileNames = new Set(params.deliveredEcgFileNames ?? []);
34
38
  this.mainServices = definition.mainServices;
35
39
  this.stuckDataTimeout = definition.stuckDataTimeout;
36
40
  if (definition.preferredMtu !== undefined) {
@@ -64,6 +68,12 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
64
68
  },
65
69
  builder: new _lepuCommandBuilder.LepuCommandBuilder(lepu.startBytes[0] ?? "a5"),
66
70
  onFile: this.reportViatomEcgFile,
71
+ skipFiles: this.deliveredEcgFileNames,
72
+ afterTransfer: lepu.pollCommand ? () => [{
73
+ serviceUuid: lepu.write.serviceUuid,
74
+ characteristicUuid: lepu.write.characteristicUuid,
75
+ frame: new _lepuCommandBuilder.LepuCommandBuilder(lepu.startBytes[0] ?? "a5").build(lepu.pollCommand)
76
+ }] : undefined,
67
77
  onError: reason => this.onError?.(new Error(`Viatom ECG: ${reason}`))
68
78
  });
69
79
  }
@@ -82,9 +92,10 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
82
92
  this.onResult?.({
83
93
  measurementTypeKey: _core.MeasurementTypeKey.ecg,
84
94
  caseType: _caseType.CaseType.RESULT,
85
- diagnosticResult: _core.EcgDiagnosticFlag.REGULAR,
86
95
  diagramPoints: decoded.samples,
87
- duration: decoded.duration
96
+ duration: decoded.duration,
97
+ recordedAt: (0, _viatomEcgFiles.recordedAtFromViatomFileName)(file.name),
98
+ recordingId: file.name
88
99
  });
89
100
  };
90
101
  onIdentified = info => (0, _customLepuSequencer.recordLepuIdentity)(this.deviceData, info);
@@ -106,7 +117,9 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
106
117
  */
107
118
  handleDependentResult = data => {
108
119
  try {
109
- this.reportFrame(data);
120
+ if (this.shouldReportDependentResult(data)) {
121
+ this.reportFrame(data);
122
+ }
110
123
  } catch (error) {
111
124
  this.onError?.(error);
112
125
  }
@@ -119,6 +132,9 @@ class CustomDevice extends _btManagedDevice.BTManagedDevice {
119
132
  };
120
133
  };
121
134
 
135
+ /** Lets a stateful protocol suppress a duplicate result while still answering its frame. */
136
+ shouldReportDependentResult = _data => true;
137
+
122
138
  /**
123
139
  * Stream frames reach this while the device is measuring. They carry no fields, and the
124
140
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuFileTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuFileTransfer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","onFile","reportViatomEcgFile","onError","reason","Error","createLepuSequencer","onIdentified","onRefused","onIdentityRefused","file","decoded","decodeViatomEcgRecording","content","samples","length","name","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagnosticResult","EcgDiagnosticFlag","REGULAR","diagramPoints","duration","info","recordLepuIdentity","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","reportFrame","error","parsingCase","OTHER","handleSuccessResult","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","reading","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","_createFrameValidator","_parseMeasurement","_rejectCustomReading","_btManagedDevice","_lepuCommandBuilder","_lepuFileTransfer","_lepuFrameReader","_viatomEcgFiles","_customLepuSequencer","CustomDevice","BTManagedDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deliveredEcgFileNames","Set","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","createFrameValidator","lepu","frameReader","LepuFrameReader","startBytes","createCommandSequencer","fileTransfer","LepuFileTransfer","write","serviceUuid","characteristicUuid","builder","LepuCommandBuilder","onFile","reportViatomEcgFile","skipFiles","afterTransfer","pollCommand","build","onError","reason","Error","createLepuSequencer","onIdentified","onRefused","onIdentityRefused","file","decoded","decodeViatomEcgRecording","content","samples","length","name","onResult","measurementTypeKey","MeasurementTypeKey","ecg","caseType","CaseType","RESULT","diagramPoints","duration","recordedAt","recordedAtFromViatomFileName","recordingId","info","recordLepuIdentity","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","parseMeasurement","measurements","discard","measurement","reportMeasurement","discardedReadingError","reading","fieldNames","rejection","map","rejectCustomReading","fields","find","message","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,7 @@ class FrameParser {
23
23
  return;
24
24
  }
25
25
  const caseValue = this.readCaseValue(parsingModel, frame);
26
- const parsingCase = parsingModel.cases?.find(declared => declared.caseValue === caseValue);
26
+ const parsingCase = parsingModel.cases?.find(declared => frame.length >= (declared.minLengthBytes ?? 0) && (declared.caseValue === "*" || this.matchesSelector(declared.caseValue, caseValue)));
27
27
  if (!parsingCase) {
28
28
  return;
29
29
  }
@@ -47,6 +47,18 @@ class FrameParser {
47
47
  }
48
48
  return undefined;
49
49
  }
50
+ matchesSelector(pattern, value) {
51
+ if (pattern.length !== value.length) {
52
+ return false;
53
+ }
54
+ for (let index = 0; index < pattern.length; index++) {
55
+ const expected = pattern[index];
56
+ if (expected !== "?" && expected !== value[index]) {
57
+ return false;
58
+ }
59
+ }
60
+ return true;
61
+ }
50
62
  readCaseValue(parsingModel, frame) {
51
63
  return parsingModel.caseValuePosition?.map(index => frame[index]).join("") || "";
52
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_parseMeasurement","require","FrameParser","constructor","mainServices","parse","uuid","frame","parsingModel","findParsingModel","caseValue","readCaseValue","parsingCase","cases","find","declared","parsedData","parseMeasurement","measurementTypeKey","mainService","characteristic","monitorUuids","monitored","toLowerCase","undefined","caseValuePosition","map","index","join","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/frame-parser.ts"],"mappings":";;;;;;AAMA,IAAAA,iBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,CAAwB;EAC9CC,WAAWA,CAAkBC,YAA2C,EAAE;IAAA,KAA7CA,YAA2C,GAA3CA,YAA2C;EAAG;EAEpEC,KAAKA,CACVC,IAAY,EACZC,KAAe,EAC8B;IAC7C,MAAMC,YAAY,GAAG,IAAI,CAACC,gBAAgB,CAACH,IAAI,CAAC;IAEhD,IAAI,CAACE,YAAY,EAAE;MACjB;IACF;IAEA,MAAME,SAAS,GAAG,IAAI,CAACC,aAAa,CAACH,YAAY,EAAED,KAAK,CAAC;IAEzD,MAAMK,WAAW,GAAGJ,YAAY,CAACK,KAAK,EAAEC,IAAI,CACzCC,QAAQ,IAAKA,QAAQ,CAACL,SAAS,KAAKA,SACvC,CAAC;IAED,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMI,UAAU,GAAG,IAAAC,kCAAgB,EAACV,KAAK,EAAEK,WAAW,CAAC;IAEvD,IAAI,CAACI,UAAU,EAAE;MACf;IACF;IAEA,OAAO;MACLJ,WAAW;MACXM,kBAAkB,EAAEN,WAAW,CAACM,kBAAkB;MAClDF,UAAU,EAAEA,UAAwC;MACpDT;IACF,CAAC;EACH;EAEQE,gBAAgBA,CAACH,IAAY,EAA4B;IAC/D,KAAK,MAAMa,WAAW,IAAI,IAAI,CAACf,YAAY,EAAE;MAC3C,MAAMgB,cAAc,GAAGD,WAAW,CAACE,YAAY,CAACP,IAAI,CACjDQ,SAAS,IAAKA,SAAS,CAAChB,IAAI,CAACiB,WAAW,CAAC,CAAC,KAAKjB,IAAI,CAACiB,WAAW,CAAC,CACnE,CAAC;MAED,IAAIH,cAAc,EAAE;QAClB,OAAOA,cAAc,CAACZ,YAAY;MACpC;IACF;IAEA,OAAOgB,SAAS;EAClB;EAEQb,aAAaA,CAACH,YAA0B,EAAED,KAAe,EAAU;IACzE,OACEC,YAAY,CAACiB,iBAAiB,EAAEC,GAAG,CAAEC,KAAK,IAAKpB,KAAK,CAACoB,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,IACrE,EAAE;EAEN;AACF;AAACC,OAAA,CAAA3B,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_parseMeasurement","require","FrameParser","constructor","mainServices","parse","uuid","frame","parsingModel","findParsingModel","caseValue","readCaseValue","parsingCase","cases","find","declared","length","minLengthBytes","matchesSelector","parsedData","parseMeasurement","measurementTypeKey","mainService","characteristic","monitorUuids","monitored","toLowerCase","undefined","pattern","value","index","expected","caseValuePosition","map","join","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/frame-parser.ts"],"mappings":";;;;;;AAMA,IAAAA,iBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,CAAwB;EAC9CC,WAAWA,CAAkBC,YAA2C,EAAE;IAAA,KAA7CA,YAA2C,GAA3CA,YAA2C;EAAG;EAEpEC,KAAKA,CACVC,IAAY,EACZC,KAAe,EAC8B;IAC7C,MAAMC,YAAY,GAAG,IAAI,CAACC,gBAAgB,CAACH,IAAI,CAAC;IAEhD,IAAI,CAACE,YAAY,EAAE;MACjB;IACF;IAEA,MAAME,SAAS,GAAG,IAAI,CAACC,aAAa,CAACH,YAAY,EAAED,KAAK,CAAC;IAEzD,MAAMK,WAAW,GAAGJ,YAAY,CAACK,KAAK,EAAEC,IAAI,CACzCC,QAAQ,IACPR,KAAK,CAACS,MAAM,KAAKD,QAAQ,CAACE,cAAc,IAAI,CAAC,CAAC,KAC7CF,QAAQ,CAACL,SAAS,KAAK,GAAG,IACzB,IAAI,CAACQ,eAAe,CAACH,QAAQ,CAACL,SAAS,EAAEA,SAAS,CAAC,CACzD,CAAC;IAED,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMO,UAAU,GAAG,IAAAC,kCAAgB,EAACb,KAAK,EAAEK,WAAW,CAAC;IAEvD,IAAI,CAACO,UAAU,EAAE;MACf;IACF;IAEA,OAAO;MACLP,WAAW;MACXS,kBAAkB,EAAET,WAAW,CAACS,kBAAkB;MAClDF,UAAU,EAAEA,UAAwC;MACpDZ;IACF,CAAC;EACH;EAEQE,gBAAgBA,CAACH,IAAY,EAA4B;IAC/D,KAAK,MAAMgB,WAAW,IAAI,IAAI,CAAClB,YAAY,EAAE;MAC3C,MAAMmB,cAAc,GAAGD,WAAW,CAACE,YAAY,CAACV,IAAI,CACjDW,SAAS,IAAKA,SAAS,CAACnB,IAAI,CAACoB,WAAW,CAAC,CAAC,KAAKpB,IAAI,CAACoB,WAAW,CAAC,CACnE,CAAC;MAED,IAAIH,cAAc,EAAE;QAClB,OAAOA,cAAc,CAACf,YAAY;MACpC;IACF;IAEA,OAAOmB,SAAS;EAClB;EAEQT,eAAeA,CAACU,OAAe,EAAEC,KAAa,EAAW;IAC/D,IAAID,OAAO,CAACZ,MAAM,KAAKa,KAAK,CAACb,MAAM,EAAE;MACnC,OAAO,KAAK;IACd;IAEA,KAAK,IAAIc,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,OAAO,CAACZ,MAAM,EAAEc,KAAK,EAAE,EAAE;MACnD,MAAMC,QAAQ,GAAGH,OAAO,CAACE,KAAK,CAAC;MAE/B,IAAIC,QAAQ,KAAK,GAAG,IAAIA,QAAQ,KAAKF,KAAK,CAACC,KAAK,CAAC,EAAE;QACjD,OAAO,KAAK;MACd;IACF;IAEA,OAAO,IAAI;EACb;EAEQnB,aAAaA,CAACH,YAA0B,EAAED,KAAe,EAAU;IACzE,OACEC,YAAY,CAACwB,iBAAiB,EAAEC,GAAG,CAAEH,KAAK,IAAKvB,KAAK,CAACuB,KAAK,CAAC,CAAC,CAACI,IAAI,CAAC,EAAE,CAAC,IACrE,EAAE;EAEN;AACF;AAACC,OAAA,CAAAjC,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -31,13 +31,16 @@ const toHex = byte => (byte & BYTE_MASK).toString(16).padStart(2, "0");
31
31
  */
32
32
  class LepuCommandBuilder {
33
33
  sequenceNumber = 0;
34
- constructor(startByte = "a5") {
34
+ constructor(startByte = "a5", options = {}) {
35
35
  this.startByte = startByte;
36
+ this.options = options;
36
37
  }
37
38
  build(command, payload = []) {
38
- const header = [this.startByte, toHex(command), toHex(~command), toHex(REQUEST_TYPE), toHex(this.sequenceNumber), toHex(payload.length), toHex(Math.floor(payload.length / BYTE_VALUES))];
39
+ const header = [this.startByte, toHex(command), toHex(~command), toHex(REQUEST_TYPE), toHex(this.options.fixedSequence ? 0 : this.sequenceNumber), toHex(payload.length), toHex(Math.floor(payload.length / BYTE_VALUES))];
39
40
  const frame = [...header, ...payload.map(toHex)];
40
- this.advanceSequence();
41
+ if (!this.options.fixedSequence) {
42
+ this.advanceSequence();
43
+ }
41
44
  return [...frame, toHex((0, _calculateCrc.calculateCrc8)(frame, frame.length))];
42
45
  }
43
46
  advanceSequence() {
@@ -1 +1 @@
1
- {"version":3,"names":["_calculateCrc","require","REQUEST_TYPE","BYTE_MASK","BYTE_VALUES","MAX_SEQUENCE_NUMBER","toHex","byte","toString","padStart","LepuCommandBuilder","sequenceNumber","constructor","startByte","build","command","payload","header","length","Math","floor","frame","map","advanceSequence","calculateCrc8","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.command-builder.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAMC,YAAY,GAAG,IAAI;AACzB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,WAAW,GAAG,KAAK;;AAEzB;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAE/B,MAAMC,KAAK,GAAIC,IAAY,IACzB,CAACA,IAAI,GAAGJ,SAAS,EAAEK,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,CAAC;EACtBC,cAAc,GAAG,CAAC;EAEnBC,WAAWA,CAAkBC,SAAiB,GAAG,IAAI,EAAE;IAAA,KAA1BA,SAAiB,GAAjBA,SAAiB;EAAU;EAExDC,KAAKA,CAACC,OAAe,EAAEC,OAA0B,GAAG,EAAE,EAAY;IACvE,MAAMC,MAAM,GAAG,CACb,IAAI,CAACJ,SAAS,EACdP,KAAK,CAACS,OAAO,CAAC,EACdT,KAAK,CAAC,CAACS,OAAO,CAAC,EACfT,KAAK,CAACJ,YAAY,CAAC,EACnBI,KAAK,CAAC,IAAI,CAACK,cAAc,CAAC,EAC1BL,KAAK,CAACU,OAAO,CAACE,MAAM,CAAC,EACrBZ,KAAK,CAACa,IAAI,CAACC,KAAK,CAACJ,OAAO,CAACE,MAAM,GAAGd,WAAW,CAAC,CAAC,CAChD;IAED,MAAMiB,KAAK,GAAG,CAAC,GAAGJ,MAAM,EAAE,GAAGD,OAAO,CAACM,GAAG,CAAChB,KAAK,CAAC,CAAC;IAEhD,IAAI,CAACiB,eAAe,CAAC,CAAC;IAEtB,OAAO,CAAC,GAAGF,KAAK,EAAEf,KAAK,CAAC,IAAAkB,2BAAa,EAACH,KAAK,EAAEA,KAAK,CAACH,MAAM,CAAC,CAAC,CAAC;EAC9D;EAEQK,eAAeA,CAAA,EAAS;IAC9B,IAAI,CAACZ,cAAc,GACjB,IAAI,CAACA,cAAc,IAAIN,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAACM,cAAc,GAAG,CAAC;EAC5E;AACF;AAACc,OAAA,CAAAf,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_calculateCrc","require","REQUEST_TYPE","BYTE_MASK","BYTE_VALUES","MAX_SEQUENCE_NUMBER","toHex","byte","toString","padStart","LepuCommandBuilder","sequenceNumber","constructor","startByte","options","build","command","payload","header","fixedSequence","length","Math","floor","frame","map","advanceSequence","calculateCrc8","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/lepu/lepu.command-builder.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,MAAMC,YAAY,GAAG,IAAI;AACzB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,WAAW,GAAG,KAAK;;AAEzB;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAM/B,MAAMC,KAAK,GAAIC,IAAY,IACzB,CAACA,IAAI,GAAGJ,SAAS,EAAEK,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,CAAC;EACtBC,cAAc,GAAG,CAAC;EAEnBC,WAAWA,CACCC,SAAiB,GAAG,IAAI,EACxBC,OAAkC,GAAG,CAAC,CAAC,EACxD;IAAA,KAFiBD,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,OAAkC,GAAlCA,OAAkC;EAClD;EAEIC,KAAKA,CAACC,OAAe,EAAEC,OAA0B,GAAG,EAAE,EAAY;IACvE,MAAMC,MAAM,GAAG,CACb,IAAI,CAACL,SAAS,EACdP,KAAK,CAACU,OAAO,CAAC,EACdV,KAAK,CAAC,CAACU,OAAO,CAAC,EACfV,KAAK,CAACJ,YAAY,CAAC,EACnBI,KAAK,CAAC,IAAI,CAACQ,OAAO,CAACK,aAAa,GAAG,CAAC,GAAG,IAAI,CAACR,cAAc,CAAC,EAC3DL,KAAK,CAACW,OAAO,CAACG,MAAM,CAAC,EACrBd,KAAK,CAACe,IAAI,CAACC,KAAK,CAACL,OAAO,CAACG,MAAM,GAAGhB,WAAW,CAAC,CAAC,CAChD;IAED,MAAMmB,KAAK,GAAG,CAAC,GAAGL,MAAM,EAAE,GAAGD,OAAO,CAACO,GAAG,CAAClB,KAAK,CAAC,CAAC;IAEhD,IAAI,CAAC,IAAI,CAACQ,OAAO,CAACK,aAAa,EAAE;MAC/B,IAAI,CAACM,eAAe,CAAC,CAAC;IACxB;IAEA,OAAO,CAAC,GAAGF,KAAK,EAAEjB,KAAK,CAAC,IAAAoB,2BAAa,EAACH,KAAK,EAAEA,KAAK,CAACH,MAAM,CAAC,CAAC,CAAC;EAC9D;EAEQK,eAAeA,CAAA,EAAS;IAC9B,IAAI,CAACd,cAAc,GACjB,IAAI,CAACA,cAAc,IAAIN,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAACM,cAAc,GAAG,CAAC;EAC5E;AACF;AAACgB,OAAA,CAAAjB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -10,6 +10,8 @@ var _lepuCommands = require("./lepu.commands.js");
10
10
  var _lepuFileNames = require("./lepu.file-names.js");
11
11
  var _lepuFrame = require("./lepu.frame.js");
12
12
  var _lepuResponseType = require("./lepu.response-type.js");
13
+ /* eslint-disable max-lines */
14
+
13
15
  const FILE_SIZE_OFFSET = 0;
14
16
 
15
17
  /**
@@ -50,7 +52,10 @@ class LepuFileTransfer {
50
52
  initialCommands = () => [this.commandFor(_lepuCommands.LepuCommand.GET_FILE_LIST)];
51
53
  nextCommand = frame => {
52
54
  const command = (0, _lepuFrame.lepuCommandOf)(frame);
53
- if (this.isDone || !TRANSFER_COMMANDS.includes(command)) {
55
+ if (this.isDone) {
56
+ return this.params.afterTransfer?.();
57
+ }
58
+ if (!TRANSFER_COMMANDS.includes(command)) {
54
59
  return undefined;
55
60
  }
56
61
  if (!(0, _lepuResponseType.isLepuSuccess)(frame)) {
@@ -70,10 +75,14 @@ class LepuFileTransfer {
70
75
  return this.closedFile();
71
76
  };
72
77
  openNextFile = () => {
73
- const name = this.files[this.fileIndex];
78
+ let name = this.files[this.fileIndex];
79
+ while (name !== undefined && this.params.skipFiles?.has(name)) {
80
+ this.fileIndex++;
81
+ name = this.files[this.fileIndex];
82
+ }
74
83
  if (name === undefined) {
75
84
  this.isDone = true;
76
- return undefined;
85
+ return this.params.afterTransfer?.();
77
86
  }
78
87
  this.name = name;
79
88
  this.totalBytes = 0;
@@ -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","initialCommands","commandFor","nextCommand","frame","command","lepuCommandOf","includes","undefined","isLepuSuccess","fail","describeLepuResponseType","lepuNamesFrom","lepuPayloadOf","openNextFile","openedFile","appendChunk","closedFile","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":[]}
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","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,eAAe,GAAGA,CAAA,KAAgC,CACvD,IAAI,CAACC,UAAU,CAAChB,yBAAW,CAACC,aAAa,CAAC,CAC3C;EAEMgB,WAAW,GAChBC,KAAwB,IACiB;IACzC,MAAMC,OAAO,GAAG,IAAAC,wBAAa,EAACF,KAAK,CAAC;IAEpC,IAAI,IAAI,CAACN,MAAM,EAAE;MACf,OAAO,IAAI,CAACE,MAAM,CAACO,aAAa,GAAG,CAAC;IACtC;IAEA,IAAI,CAACtB,iBAAiB,CAACuB,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,KAAKnB,yBAAW,CAACC,aAAa,EAAE;MACzC,IAAI,CAACK,KAAK,GAAG,IAAAqB,4BAAa,EAAC,IAAAC,wBAAa,EAACV,KAAK,CAAC,CAAC;MAChD,IAAI,CAACX,SAAS,GAAG,CAAC;MAElB,OAAO,IAAI,CAACsB,YAAY,CAAC,CAAC;IAC5B;IAEA,IAAIV,OAAO,KAAKnB,yBAAW,CAACE,eAAe,EAAE;MAC3C,OAAO,IAAI,CAAC4B,UAAU,CAAC,IAAAF,wBAAa,EAACV,KAAK,CAAC,CAAC;IAC9C;IAEA,IAAIC,OAAO,KAAKnB,yBAAW,CAACG,cAAc,EAAE;MAC1C,OAAO,IAAI,CAAC4B,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,IAAIrB,IAAI,GAAG,IAAI,CAACF,KAAK,CAAC,IAAI,CAACC,SAAS,CAAC;IAErC,OAAOC,IAAI,KAAKe,SAAS,IAAI,IAAI,CAACT,MAAM,CAACmB,SAAS,EAAEC,GAAG,CAAC1B,IAAI,CAAC,EAAE;MAC7D,IAAI,CAACD,SAAS,EAAE;MAChBC,IAAI,GAAG,IAAI,CAACF,KAAK,CAAC,IAAI,CAACC,SAAS,CAAC;IACnC;IAEA,IAAIC,IAAI,KAAKe,SAAS,EAAE;MACtB,IAAI,CAACX,MAAM,GAAG,IAAI;MAElB,OAAO,IAAI,CAACE,MAAM,CAACO,aAAa,GAAG,CAAC;IACtC;IAEA,IAAI,CAACb,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,OAAO,GAAG,EAAE;IAEjB,OAAO,CACL,IAAI,CAACM,UAAU,CAAChB,yBAAW,CAACE,eAAe,EAAE,CAC3C,GAAG,IAAAiC,4BAAa,EAAC3B,IAAI,CAAC,EACtB,GAAG,IAAA4B,wBAAW,EAAC,CAAC,CAAC,CAClB,CAAC,CACH;EACH,CAAC;;EAED;EACQN,UAAU,GAChBO,OAA0B,IACe;IACzC,IAAI,CAAC1B,aAAa,GAAG,IAAI;IACzB,IAAI,CAACF,UAAU,GAAG,IAAA6B,wBAAW,EAAC,CAAC,GAAGD,OAAO,CAAC,EAAExC,gBAAgB,CAAC;IAE7D,MAAM0C,KAAK,GAAG,IAAI,CAACzB,MAAM,CAAC0B,YAAY,IAAI1C,cAAc;IAExD,IAAI,IAAI,CAACW,UAAU,GAAG8B,KAAK,EAAE;MAC3B,OAAO,IAAI,CAACd,IAAI,CACd,IAAI,IAAI,CAACjB,IAAI,QAAQ,IAAI,CAACC,UAAU,yBAAyB8B,KAAK,0BACpE,CAAC;IACH;IAEA,IAAI,IAAI,CAAC9B,UAAU,KAAK,CAAC,EAAE;MACzB,OAAO,IAAI,CAACgC,SAAS,CAAC,CAAC;IACzB;IAEA,OAAO,CACL,IAAI,CAACzB,UAAU,CAAChB,yBAAW,CAACG,cAAc,EAAE,IAAAiC,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,CAACjB,IAAI,wBAAwB,IAAI,CAACE,OAAO,CAACgC,MAAM,OAAO,IAAI,CAACjC,UAAU,QAChF,CAAC;IACH;IAEA,IAAI,CAACC,OAAO,CAACiC,IAAI,CAAC,GAAGN,OAAO,CAAC;IAE7B,IAAI,CAACvB,MAAM,CAAC8B,UAAU,GAAG;MACvBpC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfqC,aAAa,EAAE,IAAI,CAACnC,OAAO,CAACgC,MAAM;MAClCjC,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IAEF,IAAI,IAAI,CAACC,OAAO,CAACgC,MAAM,IAAI,IAAI,CAACjC,UAAU,EAAE;MAC1C,OAAO,IAAI,CAACgC,SAAS,CAAC,CAAC;IACzB;IAEA,OAAO,CACL,IAAI,CAACzB,UAAU,CACbhB,yBAAW,CAACG,cAAc,EAC1B,IAAAiC,wBAAW,EAAC,IAAI,CAAC1B,OAAO,CAACgC,MAAM,CACjC,CAAC,CACF;EACH,CAAC;EAEOV,UAAU,GAAGA,CAAA,KAA4C;IAC/D,IAAI,CAACrB,aAAa,GAAG,KAAK;IAE1B,IAAI,IAAI,CAACF,UAAU,GAAG,CAAC,IAAI,IAAI,CAACC,OAAO,CAACgC,MAAM,KAAK,IAAI,CAACjC,UAAU,EAAE;MAClE,OAAO,IAAI,CAACgB,IAAI,CACd,IAAI,IAAI,CAACjB,IAAI,cAAc,IAAI,CAACE,OAAO,CAACgC,MAAM,OAAO,IAAI,CAACjC,UAAU,QACtE,CAAC;IACH;IAEA,IAAI,IAAI,CAACA,UAAU,GAAG,CAAC,EAAE;MACvB,IAAI,CAACK,MAAM,CAACgC,MAAM,CAAC;QAAEtC,IAAI,EAAE,IAAI,CAACA,IAAI;QAAEE,OAAO,EAAE,IAAI,CAACA;MAAQ,CAAC,CAAC;IAChE;IAEA,IAAI,CAACH,SAAS,EAAE;IAEhB,OAAO,IAAI,CAACsB,YAAY,CAAC,CAAC;EAC5B,CAAC;EAEOY,SAAS,GAAGA,CAAA,KAAgC,CAClD,IAAI,CAACzB,UAAU,CAAChB,yBAAW,CAACI,aAAa,CAAC,CAC3C;;EAED;AACF;AACA;AACA;AACA;AACA;EACUqB,IAAI,GAAIsB,MAAc,IAA2C;IACvE,IAAI,CAACjC,MAAM,CAACkC,OAAO,CAACD,MAAM,CAAC;IAC3B,IAAI,CAACnC,MAAM,GAAG,IAAI;IAElB,IAAI,CAAC,IAAI,CAACD,aAAa,EAAE;MACvB,OAAOY,SAAS;IAClB;IAEA,IAAI,CAACZ,aAAa,GAAG,KAAK;IAE1B,OAAO,IAAI,CAAC8B,SAAS,CAAC,CAAC;EACzB,CAAC;EAEOzB,UAAU,GAAGA,CACnBG,OAAe,EACfkB,OAA0B,GAAG,EAAE,MACZ;IACnB,GAAG,IAAI,CAACvB,MAAM,CAACmC,KAAK;IACpB/B,KAAK,EAAE,IAAI,CAACJ,MAAM,CAACoC,OAAO,CAACC,KAAK,CAAChC,OAAO,EAAEkB,OAAO;EACnD,CAAC,CAAC;AACJ;AAACe,OAAA,CAAA/C,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -9,40 +9,28 @@ var _lepuCommands = require("./lepu.commands.js");
9
9
  var _lepuDeviceInfo = require("./lepu.device-info.js");
10
10
  var _lepuResponseType = require("./lepu.response-type.js");
11
11
  const COMMAND_INDEX = 1;
12
+ const VIATOM_OXYGEN_INFO = 0x14;
12
13
 
13
- /**
14
- * Asks a Lepu device what it is before sending it anything that acts.
15
- *
16
- * The family shares one frame format, one checksum and one opcode space, but not one
17
- * meaning: `0x08` polls realtime data on a BP2, starts a blood-pressure measurement on an
18
- * AirBp and starts an ECG on a Lepod. A frame built for the wrong device is therefore
19
- * perfectly well-formed - the CRC is computed the same way on every one of them - so
20
- * nothing in the protocol catches a driver bound to the wrong hardware. What comes back is
21
- * a cuff inflating on someone's arm because a name matched during a scan.
22
- *
23
- * `GET_INFO` is the one command that cannot cause that: it is generic, inert, and answered
24
- * identically family-wide. So it goes first, and everything else waits on its reply.
25
- *
26
- * A declaration that names the models it was written for is refused permanently when the
27
- * device answers with a different one. A declaration that names none is identified by the
28
- * advertised name it already matched, which is the basis the vendor's own SDK binds every
29
- * one of its products on; it is asked what it is anyway, and the answer reported, because
30
- * that is the only place these model numbers exist - the vendor never reads the field back,
31
- * so there is no table of them to copy.
32
- *
33
- * A reply that never arrives leaves the gate closed and nothing sent, which the data
34
- * processor's stuck-data timeout reports and disconnects on. That is the watchdog for this
35
- * too - the protocol has no retry of its own, so a dropped reply is recovered by
36
- * reconnecting rather than by asking again.
37
- */
14
+ /** Identifies a device before sending it a model-specific command. */
38
15
  class LepuIdentityGate {
39
16
  isIdentified = false;
40
17
  isRefused = false;
41
18
  constructor(params) {
42
19
  this.params = params;
43
20
  }
44
- initialCommands = () => [this.commandFor(_lepuCommands.LepuCommand.GET_INFO)];
21
+ initialCommands = () => {
22
+ if (this.params.protocol === "viatom-oxygen") {
23
+ const command = this.params.setClockBeforeInfo ? this.commandFor(0x16, oxyClockPayload()) : this.commandFor(VIATOM_OXYGEN_INFO);
24
+ this.pendingCommand = this.params.setClockBeforeInfo ? 0x16 : VIATOM_OXYGEN_INFO;
25
+ return [command];
26
+ }
27
+ this.pendingCommand = _lepuCommands.LepuCommand.GET_INFO;
28
+ return [this.commandFor(_lepuCommands.LepuCommand.GET_INFO)];
29
+ };
45
30
  nextCommand = frame => {
31
+ if (this.params.protocol === "viatom-oxygen") {
32
+ return this.nextViatomOxygenCommand(frame);
33
+ }
46
34
  if (this.isRefused) {
47
35
  return undefined;
48
36
  }
@@ -52,16 +40,7 @@ class LepuIdentityGate {
52
40
  return this.admit(frame);
53
41
  };
54
42
 
55
- /**
56
- * Decides on the reply to `GET_INFO`.
57
- *
58
- * A frame that is not that reply leaves the gate as it was rather than provoking another
59
- * command, because the only command outstanding is the one still being waited on.
60
- *
61
- * A reply that is that command but carries an error type is refused rather than parsed.
62
- * The payload of an error is the reason for it, so reading a model number out of it would
63
- * identify the hardware from an error code.
64
- */
43
+ /** Decides on the reply to the generic `GET_INFO` command. */
65
44
  admit = frame => {
66
45
  if ((0, _hexToByte.hexToByte)(frame[COMMAND_INDEX] ?? "0") !== _lepuCommands.LepuCommand.GET_INFO) {
67
46
  return undefined;
@@ -94,10 +73,77 @@ class LepuIdentityGate {
94
73
 
95
74
  /** Nothing, for a declaration that asks what the device is and stops there. */
96
75
  poll = () => this.params.pollCommand === undefined ? undefined : [this.commandFor(this.params.pollCommand)];
97
- commandFor = command => ({
76
+ commandFor = (command, payload = [], delayBeforeWriteMs) => ({
98
77
  ...this.params.write,
99
- frame: this.params.builder.build(command)
78
+ frame: this.params.builder.build(command, payload),
79
+ ...(this.params.writeWithoutResponse ? {
80
+ withoutResponse: true
81
+ } : {}),
82
+ ...(delayBeforeWriteMs === undefined ? {} : {
83
+ delayBeforeWriteMs
84
+ })
100
85
  });
86
+ nextViatomOxygenCommand = frame => {
87
+ if (this.isRefused || this.pendingCommand === undefined) {
88
+ return undefined;
89
+ }
90
+ const status = (0, _hexToByte.hexToByte)(frame[1] ?? "ff");
91
+ if (status !== 0) {
92
+ if (this.pendingCommand === 0x17 && this.isIdentified) {
93
+ return [this.commandFor(0x17, [], 3_000)];
94
+ }
95
+ return this.refuse(`the device rejected command 0x${this.pendingCommand.toString(16).padStart(2, "0")} with status 0x${status.toString(16).padStart(2, "0")}`);
96
+ }
97
+ switch (this.pendingCommand) {
98
+ case 0x16:
99
+ this.pendingCommand = VIATOM_OXYGEN_INFO;
100
+ return [this.commandFor(VIATOM_OXYGEN_INFO)];
101
+ case VIATOM_OXYGEN_INFO:
102
+ {
103
+ const info = parseViatomOxygenDeviceInfo(frame);
104
+ if (!info) {
105
+ return this.refuse("the device answered INFO without a JSON model number");
106
+ }
107
+ this.params.onIdentified?.(info);
108
+ if (this.params.expectedDeviceTypes.length > 0 && !this.params.expectedDeviceTypes.includes(info.deviceType)) {
109
+ return this.refuse(`the hardware reported model ${info.deviceType}, which this declaration was not written for`);
110
+ }
111
+ this.isIdentified = true;
112
+ this.pendingCommand = 0x17;
113
+ return [this.commandFor(0x17, [], 1_000)];
114
+ }
115
+ case 0x17:
116
+ return [this.commandFor(0x17, [], 1_000)];
117
+ default:
118
+ return undefined;
119
+ }
120
+ };
101
121
  }
102
122
  exports.LepuIdentityGate = LepuIdentityGate;
123
+ const oxyClockPayload = () => {
124
+ const now = new Date();
125
+ const pad = value => String(value).padStart(2, "0");
126
+ const payload = JSON.stringify({
127
+ SetTIME: `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())},${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`
128
+ });
129
+ return Array.from(new TextEncoder().encode(payload));
130
+ };
131
+ const parseViatomOxygenDeviceInfo = frame => {
132
+ try {
133
+ const text = frame.slice(7, -1).map(byte => String.fromCharCode((0, _hexToByte.hexToByte)(byte))).join("").replace(/\0+$/, "");
134
+ const info = JSON.parse(text);
135
+ const deviceType = Number(info.Model);
136
+ if (!Number.isInteger(deviceType)) {
137
+ return undefined;
138
+ }
139
+ return {
140
+ deviceType,
141
+ protocolMaxLength: 0,
142
+ branchCode: String(info.Branch ?? ""),
143
+ serialNumber: String(info.SN ?? info.SerialNumber ?? "")
144
+ };
145
+ } catch {
146
+ return undefined;
147
+ }
148
+ };
103
149
  //# sourceMappingURL=lepu.identity-gate.js.map