@ovok/native 1.16.1-rc.5 → 1.16.1-rc.6

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 (244) hide show
  1. package/lib/commonjs/modules/auth/google-return-page/index.js +24 -0
  2. package/lib/commonjs/modules/auth/google-return-page/index.js.map +1 -0
  3. package/lib/commonjs/modules/auth/hooks/use-social-sign-in.web.js +15 -0
  4. package/lib/commonjs/modules/auth/hooks/use-social-sign-in.web.js.map +1 -0
  5. package/lib/commonjs/modules/auth/index.js +21 -10
  6. package/lib/commonjs/modules/auth/index.js.map +1 -1
  7. package/lib/commonjs/modules/auth/session/logout-session.js +1 -1
  8. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.web.js +73 -0
  9. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.web.js.map +1 -0
  10. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login.js +1 -1
  11. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.web.js +73 -0
  12. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.web.js.map +1 -0
  13. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login.js +1 -1
  14. package/lib/commonjs/modules/auth/sign-in/index.js +24 -0
  15. package/lib/commonjs/modules/auth/sign-in/index.js.map +1 -1
  16. package/lib/commonjs/modules/auth/sign-in/utils/apple-web-sign-in.js +90 -0
  17. package/lib/commonjs/modules/auth/sign-in/utils/apple-web-sign-in.js.map +1 -0
  18. package/lib/commonjs/modules/auth/sign-in/utils/google-redirect-sign-in.js +89 -0
  19. package/lib/commonjs/modules/auth/sign-in/utils/google-redirect-sign-in.js.map +1 -0
  20. package/lib/commonjs/modules/auth/sign-in/utils/jwt-claims.js +21 -0
  21. package/lib/commonjs/modules/auth/sign-in/utils/jwt-claims.js.map +1 -0
  22. package/lib/commonjs/modules/auth/utils/sign-out-google.web.js +10 -0
  23. package/lib/commonjs/modules/auth/utils/sign-out-google.web.js.map +1 -0
  24. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js +3 -2
  25. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  26. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +64 -44
  27. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.js +98 -0
  29. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.js.map +1 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.js +127 -0
  31. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.js.map +1 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +12 -7
  33. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  34. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +16 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  36. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +10 -2
  37. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  38. package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.records.js +2 -7
  39. package/lib/commonjs/modules/bt-management/services/devices/cofoe/cofoe.records.js.map +1 -1
  40. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +2 -2
  41. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  42. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +74 -17
  44. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +4 -4
  46. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.js +3 -7
  48. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/utils/calculate-crc-16-modbus.js +23 -0
  50. package/lib/commonjs/modules/bt-management/utils/calculate-crc-16-modbus.js.map +1 -0
  51. package/lib/commonjs/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.js +13 -0
  52. package/lib/commonjs/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.js.map +1 -0
  53. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +7 -7
  54. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  55. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +8 -3
  56. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  57. package/lib/commonjs/modules/data-sync/utils/default-health-coding.js +47 -0
  58. package/lib/commonjs/modules/data-sync/utils/default-health-coding.js.map +1 -0
  59. package/lib/commonjs/modules/data-sync/utils/health-units.js +6 -1
  60. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  61. package/lib/module/modules/auth/google-return-page/index.js +21 -0
  62. package/lib/module/modules/auth/google-return-page/index.js.map +1 -0
  63. package/lib/module/modules/auth/hooks/use-social-sign-in.web.js +10 -0
  64. package/lib/module/modules/auth/hooks/use-social-sign-in.web.js.map +1 -0
  65. package/lib/module/modules/auth/index.js +2 -1
  66. package/lib/module/modules/auth/index.js.map +1 -1
  67. package/lib/module/modules/auth/session/logout-session.js +1 -1
  68. package/lib/module/modules/auth/session/logout-session.js.map +1 -1
  69. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.web.js +67 -0
  70. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.web.js.map +1 -0
  71. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login.js +1 -1
  72. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login.js.map +1 -1
  73. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.web.js +68 -0
  74. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.web.js.map +1 -0
  75. package/lib/module/modules/auth/sign-in/components/social-logins/google-login.js +1 -1
  76. package/lib/module/modules/auth/sign-in/components/social-logins/google-login.js.map +1 -1
  77. package/lib/module/modules/auth/sign-in/index.js +2 -0
  78. package/lib/module/modules/auth/sign-in/index.js.map +1 -1
  79. package/lib/module/modules/auth/sign-in/utils/apple-web-sign-in.js +84 -0
  80. package/lib/module/modules/auth/sign-in/utils/apple-web-sign-in.js.map +1 -0
  81. package/lib/module/modules/auth/sign-in/utils/google-redirect-sign-in.js +84 -0
  82. package/lib/module/modules/auth/sign-in/utils/google-redirect-sign-in.js.map +1 -0
  83. package/lib/module/modules/auth/sign-in/utils/jwt-claims.js +17 -0
  84. package/lib/module/modules/auth/sign-in/utils/jwt-claims.js.map +1 -0
  85. package/lib/module/modules/auth/utils/sign-out-google.web.js +5 -0
  86. package/lib/module/modules/auth/utils/sign-out-google.web.js.map +1 -0
  87. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js +3 -2
  88. package/lib/module/modules/bt-management/services/custom/compile-custom-lepu.js.map +1 -1
  89. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +64 -44
  90. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
  91. package/lib/module/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.js +91 -0
  92. package/lib/module/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.js.map +1 -0
  93. package/lib/module/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.js +123 -0
  94. package/lib/module/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.js.map +1 -0
  95. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +12 -7
  96. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  97. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +16 -1
  98. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  99. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +10 -2
  100. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  101. package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.records.js +2 -7
  102. package/lib/module/modules/bt-management/services/devices/cofoe/cofoe.records.js.map +1 -1
  103. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +2 -2
  104. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  105. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  106. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +74 -17
  107. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -1
  108. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +4 -4
  109. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  110. package/lib/module/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.js +3 -7
  111. package/lib/module/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.js.map +1 -1
  112. package/lib/module/modules/bt-management/utils/calculate-crc-16-modbus.js +18 -0
  113. package/lib/module/modules/bt-management/utils/calculate-crc-16-modbus.js.map +1 -0
  114. package/lib/module/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.js +8 -0
  115. package/lib/module/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.js.map +1 -0
  116. package/lib/module/modules/data-sync/services/managers/data-processor.js +7 -7
  117. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  118. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +8 -3
  119. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  120. package/lib/module/modules/data-sync/utils/default-health-coding.js +44 -0
  121. package/lib/module/modules/data-sync/utils/default-health-coding.js.map +1 -0
  122. package/lib/module/modules/data-sync/utils/health-units.js +6 -1
  123. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  124. package/lib/typescript/commonjs/src/modules/auth/google-return-page/index.d.ts +8 -0
  125. package/lib/typescript/commonjs/src/modules/auth/google-return-page/index.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/src/modules/auth/hooks/use-social-sign-in.web.d.ts +7 -0
  127. package/lib/typescript/commonjs/src/modules/auth/hooks/use-social-sign-in.web.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/src/modules/auth/index.d.ts +1 -0
  129. package/lib/typescript/commonjs/src/modules/auth/index.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/src/modules/auth/register/components/register.d.ts +2 -2
  131. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/sign-in.d.ts +2 -2
  132. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/apple-login-button.web.d.ts +5 -0
  133. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/apple-login-button.web.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/apple-login.d.ts +1 -1
  135. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/google-login-button.web.d.ts +5 -0
  136. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/google-login-button.web.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/google-login.d.ts +1 -1
  138. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/social-logins.d.ts +2 -2
  139. package/lib/typescript/commonjs/src/modules/auth/sign-in/index.d.ts +2 -0
  140. package/lib/typescript/commonjs/src/modules/auth/sign-in/index.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/apple-login-props.d.ts +13 -0
  142. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/apple-login-props.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/google-login-props.d.ts +13 -0
  144. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/google-login-props.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/apple-web-sign-in.d.ts +17 -0
  146. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/apple-web-sign-in.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/google-redirect-sign-in.d.ts +14 -0
  148. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/google-redirect-sign-in.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/jwt-claims.d.ts +9 -0
  150. package/lib/typescript/commonjs/src/modules/auth/sign-in/utils/jwt-claims.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/src/modules/auth/utils/sign-out-google.web.d.ts +3 -0
  152. package/lib/typescript/commonjs/src/modules/auth/utils/sign-out-google.web.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.d.ts +34 -0
  156. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.d.ts +32 -0
  158. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +7 -1
  161. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  163. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  167. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  168. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +9 -3
  169. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +5 -2
  172. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-16-modbus.d.ts +3 -0
  174. package/lib/typescript/commonjs/src/modules/bt-management/utils/calculate-crc-16-modbus.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/src/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.d.ts +3 -0
  176. package/lib/typescript/commonjs/src/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +1 -1
  179. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/modules/data-sync/utils/default-health-coding.d.ts +10 -0
  182. package/lib/typescript/commonjs/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  184. package/lib/typescript/module/src/modules/auth/google-return-page/index.d.ts +8 -0
  185. package/lib/typescript/module/src/modules/auth/google-return-page/index.d.ts.map +1 -0
  186. package/lib/typescript/module/src/modules/auth/hooks/use-social-sign-in.web.d.ts +7 -0
  187. package/lib/typescript/module/src/modules/auth/hooks/use-social-sign-in.web.d.ts.map +1 -0
  188. package/lib/typescript/module/src/modules/auth/index.d.ts +1 -0
  189. package/lib/typescript/module/src/modules/auth/index.d.ts.map +1 -1
  190. package/lib/typescript/module/src/modules/auth/register/components/register.d.ts +2 -2
  191. package/lib/typescript/module/src/modules/auth/sign-in/components/sign-in.d.ts +2 -2
  192. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login-button.web.d.ts +5 -0
  193. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login-button.web.d.ts.map +1 -0
  194. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login.d.ts +1 -1
  195. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login-button.web.d.ts +5 -0
  196. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login-button.web.d.ts.map +1 -0
  197. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login.d.ts +1 -1
  198. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/social-logins.d.ts +2 -2
  199. package/lib/typescript/module/src/modules/auth/sign-in/index.d.ts +2 -0
  200. package/lib/typescript/module/src/modules/auth/sign-in/index.d.ts.map +1 -1
  201. package/lib/typescript/module/src/modules/auth/sign-in/types/apple-login-props.d.ts +13 -0
  202. package/lib/typescript/module/src/modules/auth/sign-in/types/apple-login-props.d.ts.map +1 -1
  203. package/lib/typescript/module/src/modules/auth/sign-in/types/google-login-props.d.ts +13 -0
  204. package/lib/typescript/module/src/modules/auth/sign-in/types/google-login-props.d.ts.map +1 -1
  205. package/lib/typescript/module/src/modules/auth/sign-in/utils/apple-web-sign-in.d.ts +17 -0
  206. package/lib/typescript/module/src/modules/auth/sign-in/utils/apple-web-sign-in.d.ts.map +1 -0
  207. package/lib/typescript/module/src/modules/auth/sign-in/utils/google-redirect-sign-in.d.ts +14 -0
  208. package/lib/typescript/module/src/modules/auth/sign-in/utils/google-redirect-sign-in.d.ts.map +1 -0
  209. package/lib/typescript/module/src/modules/auth/sign-in/utils/jwt-claims.d.ts +9 -0
  210. package/lib/typescript/module/src/modules/auth/sign-in/utils/jwt-claims.d.ts.map +1 -0
  211. package/lib/typescript/module/src/modules/auth/utils/sign-out-google.web.d.ts +3 -0
  212. package/lib/typescript/module/src/modules/auth/utils/sign-out-google.web.d.ts.map +1 -0
  213. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-lepu.d.ts.map +1 -1
  214. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
  215. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.d.ts +34 -0
  216. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/telebgm.protocol.d.ts.map +1 -0
  217. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.d.ts +32 -0
  218. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.d.ts.map +1 -0
  219. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  220. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +7 -1
  221. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  222. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +2 -0
  223. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  224. package/lib/typescript/module/src/modules/bt-management/services/devices/cofoe/cofoe.records.d.ts.map +1 -1
  225. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  226. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +2 -1
  227. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  228. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +9 -3
  229. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -1
  230. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.wbp02.protocol.d.ts.map +1 -1
  231. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +5 -2
  232. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  233. package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-16-modbus.d.ts +3 -0
  234. package/lib/typescript/module/src/modules/bt-management/utils/calculate-crc-16-modbus.d.ts.map +1 -0
  235. package/lib/typescript/module/src/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.d.ts +3 -0
  236. package/lib/typescript/module/src/modules/bt-management/utils/tenths-mmol-to-mg-per-dl.d.ts.map +1 -0
  237. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  238. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +1 -1
  239. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  240. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  241. package/lib/typescript/module/src/modules/data-sync/utils/default-health-coding.d.ts +10 -0
  242. package/lib/typescript/module/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -0
  243. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  244. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/group-exports */
4
+
5
+ import { bytesToHex } from "../../../utils/bytes-to-hex.js";
6
+ import { calculateCrc16Modbus } from "../../../utils/calculate-crc-16-modbus.js";
7
+ import { frameBytes } from "../../../utils/frame-bytes.js";
8
+ import { complete, corrupt, incomplete } from "../../../utils/frame-read-results.js";
9
+ export const TELEBGM_SERVICE = "0003cdd0-0000-1000-8000-00805f9b0131";
10
+ export const TELEBGM_NOTIFY = "0003cdd1-0000-1000-8000-00805f9b0131";
11
+ export const TELEBGM_WRITE = "0003cdd2-0000-1000-8000-00805f9b0131";
12
+
13
+ /** Command byte of a frame; the meter answers a request with the same byte. */
14
+ export const TELEBGM_COMMAND = {
15
+ testStatus: 0x12,
16
+ setTime: 0x44,
17
+ softwareVersion: 0x66,
18
+ serial: 0x77,
19
+ units: 0xaa,
20
+ historyEnd: 0xd1,
21
+ history: 0xdd,
22
+ transferEnd: 0xf2
23
+ };
24
+
25
+ /** Parameter byte of a request, a clock write and an acknowledgement. */
26
+ export const TELEBGM_PARAMETER = {
27
+ request: 0x55,
28
+ write: 0x66,
29
+ ack: 0x99
30
+ };
31
+ const START = 0x7b;
32
+ const END = 0x7d;
33
+ const APP_ADDRESS = [0x01, 0x10, 0x01, 0x20];
34
+ const COMMAND_INDEX = 5;
35
+ const LENGTH_INDEX = 7;
36
+ const HEADER_BYTES = 9;
37
+
38
+ /** Four CRC nibbles, then the end byte. */
39
+ const TRAILER_BYTES = 5;
40
+
41
+ /** Longer than any reply; a corrupted length would otherwise hold the buffer for ever. */
42
+ const MAX_PAYLOAD_BYTES = 64;
43
+
44
+ /** The CRC of everything between the start byte and the CRC, as four nibbles. */
45
+ const crcNibbles = body => {
46
+ const crc = calculateCrc16Modbus(body);
47
+ return [crc & 0xff, crc >> 8].flatMap(byte => [byte >> 4, byte & 0x0f]);
48
+ };
49
+
50
+ /** `7B 01 10 01 20 <command> <parameter> <length, 2 bytes> <payload> <CRC nibbles> 7D`. */
51
+ export const telebgmFrame = (command, parameter, payload = []) => {
52
+ const body = [...APP_ADDRESS, command, parameter, payload.length >> 8, payload.length & 0xff, ...payload];
53
+ return bytesToHex([START, ...body, ...crcNibbles(body), END]);
54
+ };
55
+
56
+ /** A frame's command byte and payload. */
57
+ export const unframe = frame => {
58
+ const bytes = frameBytes(frame);
59
+ return {
60
+ command: bytes[COMMAND_INDEX],
61
+ payload: bytes.slice(HEADER_BYTES, -TRAILER_BYTES)
62
+ };
63
+ };
64
+ const isIntact = frame => {
65
+ const crcAt = frame.length - TRAILER_BYTES;
66
+ return frame[frame.length - 1] === END && crcNibbles(frame.slice(1, crcAt)).every((nibble, index) => frame[crcAt + index] === nibble);
67
+ };
68
+
69
+ /** Reads frames by their length field, a record being longer than one notification, and checks their CRC. */
70
+ export class TeleBgmFrameReader {
71
+ readFrame(buffer) {
72
+ const values = frameBytes(buffer);
73
+ const start = values.indexOf(START);
74
+ if (start === -1) {
75
+ return incomplete(values.length);
76
+ }
77
+ if (start + HEADER_BYTES > values.length) {
78
+ return incomplete(start);
79
+ }
80
+ const payloadBytes = (values[start + LENGTH_INDEX] ?? 0) << 8 | (values[start + LENGTH_INDEX + 1] ?? 0);
81
+ const total = HEADER_BYTES + payloadBytes + TRAILER_BYTES;
82
+ if (payloadBytes > MAX_PAYLOAD_BYTES) {
83
+ return corrupt(start + 1);
84
+ }
85
+ if (start + total > values.length) {
86
+ return incomplete(start);
87
+ }
88
+ return isIntact(values.slice(start, start + total)) ? complete(buffer.slice(start, start + total), start + total) : corrupt(start + 1);
89
+ }
90
+ }
91
+ //# sourceMappingURL=telebgm.protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bytesToHex","calculateCrc16Modbus","frameBytes","complete","corrupt","incomplete","TELEBGM_SERVICE","TELEBGM_NOTIFY","TELEBGM_WRITE","TELEBGM_COMMAND","testStatus","setTime","softwareVersion","serial","units","historyEnd","history","transferEnd","TELEBGM_PARAMETER","request","write","ack","START","END","APP_ADDRESS","COMMAND_INDEX","LENGTH_INDEX","HEADER_BYTES","TRAILER_BYTES","MAX_PAYLOAD_BYTES","crcNibbles","body","crc","flatMap","byte","telebgmFrame","command","parameter","payload","length","unframe","frame","bytes","slice","isIntact","crcAt","every","nibble","index","TeleBgmFrameReader","readFrame","buffer","values","start","indexOf","payloadBytes","total"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/blood-glucose/telebgm.protocol.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ import { MeasurementTypeKey } from "@ovok/core/next";
4
+ import { CaseType } from "../../../types/case-type.js";
5
+ import { getClockParts, isClockSyncEnabled } from "../../../types/clock-sync.js";
6
+ import { tenthsMmolToMgPerDl } from "../../../utils/tenths-mmol-to-mg-per-dl.js";
7
+ import { TELEBGM_COMMAND, TELEBGM_PARAMETER, TELEBGM_SERVICE, TELEBGM_WRITE, telebgmFrame, unframe } from "./telebgm.protocol.js";
8
+
9
+ /** Units reply of a meter showing mg/dL; any other shows mmol/L and reports tenths of a mmol/L. */
10
+ const MG_PER_DL_UNITS = 0x11;
11
+
12
+ /** Result type of a control-solution test, which is not the patient's glucose. */
13
+ const CONTROL_SOLUTION = 0x22;
14
+
15
+ /** `YY MM DD hh mm`, the value as hundreds and units, meal flag, result type. */
16
+ const RECORD_BYTES = 9;
17
+ const RESULT_TYPE_INDEX = 8;
18
+ /** A record's wall-clock time, or undefined when a field is out of range. */
19
+ const recordTime = ([year, month, day, hours, minutes], timezone = "local") => {
20
+ const fields = [2000 + (year ?? 0), (month ?? 0) - 1, day ?? 0, hours ?? 0, minutes ?? 0];
21
+ const time = timezone === "utc" ? new Date(Date.UTC(...fields)) : new Date(...fields);
22
+ const parts = getClockParts(time, timezone);
23
+ return parts.month === month && parts.day === day && parts.hours === hours && parts.minutes === minutes ? time : undefined;
24
+ };
25
+ const readRecord = (payload, reportsMmol, timezone) => {
26
+ if (payload.length < RECORD_BYTES || payload[RESULT_TYPE_INDEX] === CONTROL_SOLUTION) {
27
+ return undefined;
28
+ }
29
+ const value = (payload[5] ?? 0) * 100 + (payload[6] ?? 0);
30
+ const recordedAt = recordTime(payload, timezone);
31
+ return recordedAt && value > 0 ? {
32
+ bloodGlucose: reportsMmol ? tenthsMmolToMgPerDl(value) : value,
33
+ recordedAt
34
+ } : undefined;
35
+ };
36
+
37
+ /**
38
+ * TeleBGM Gen1: reads the serial, version and units, sets the clock, then downloads the stored
39
+ * readings. The meter sends a reading only when asked for its history, and expects every
40
+ * test-status frame and the end of a transfer to be acknowledged.
41
+ */
42
+ export class TeleBgmSequencer {
43
+ withoutResponse = false;
44
+ reportsMmol = false;
45
+ finished = false;
46
+ constructor(params) {
47
+ this.params = params;
48
+ }
49
+ initialCommands = async () => {
50
+ this.withoutResponse = await this.params.writesWithoutResponse();
51
+ return [this.request(TELEBGM_COMMAND.serial)];
52
+ };
53
+ isHistoryTransfer = () => true;
54
+ isNormalDisconnect = () => this.finished;
55
+ nextCommand = frame => {
56
+ const {
57
+ command,
58
+ payload
59
+ } = unframe(frame);
60
+ switch (command) {
61
+ case TELEBGM_COMMAND.testStatus:
62
+ return [this.acknowledge(command)];
63
+ case TELEBGM_COMMAND.serial:
64
+ return [this.request(TELEBGM_COMMAND.softwareVersion)];
65
+ case TELEBGM_COMMAND.softwareVersion:
66
+ return [this.request(TELEBGM_COMMAND.units)];
67
+ case TELEBGM_COMMAND.units:
68
+ this.reportsMmol = payload[0] !== MG_PER_DL_UNITS;
69
+ return [this.setClock() ?? this.request(TELEBGM_COMMAND.history)];
70
+ case TELEBGM_COMMAND.setTime:
71
+ return [this.request(TELEBGM_COMMAND.history)];
72
+ case TELEBGM_COMMAND.history:
73
+ this.report(payload);
74
+ return undefined;
75
+ case TELEBGM_COMMAND.transferEnd:
76
+ this.finished = true;
77
+ return [this.acknowledge(command)];
78
+ case TELEBGM_COMMAND.historyEnd:
79
+ this.finished = true;
80
+ return undefined;
81
+ default:
82
+ return undefined;
83
+ }
84
+ };
85
+ report = payload => {
86
+ const reading = readRecord(payload, this.reportsMmol, this.params.clockSync?.timezone);
87
+ if (reading) {
88
+ this.params.onResult({
89
+ caseType: CaseType.RESULT,
90
+ measurementTypeKey: MeasurementTypeKey.bloodGlucose,
91
+ ...reading
92
+ });
93
+ }
94
+ };
95
+ setClock = () => {
96
+ const {
97
+ clockSync
98
+ } = this.params;
99
+ if (!isClockSyncEnabled(clockSync)) {
100
+ return undefined;
101
+ }
102
+ const {
103
+ year,
104
+ month,
105
+ day,
106
+ hours,
107
+ minutes,
108
+ seconds
109
+ } = getClockParts(clockSync?.now?.() ?? new Date(), clockSync?.timezone);
110
+ return this.command(telebgmFrame(TELEBGM_COMMAND.setTime, TELEBGM_PARAMETER.write, [year % 100, month, day, hours, minutes, seconds]));
111
+ };
112
+ request = command => this.command(telebgmFrame(command, TELEBGM_PARAMETER.request));
113
+ acknowledge = command => this.command(telebgmFrame(command, TELEBGM_PARAMETER.ack));
114
+ command = frame => ({
115
+ serviceUuid: TELEBGM_SERVICE,
116
+ characteristicUuid: TELEBGM_WRITE,
117
+ frame,
118
+ ...(this.withoutResponse ? {
119
+ withoutResponse: true
120
+ } : {})
121
+ });
122
+ }
123
+ //# sourceMappingURL=telebgm.sequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","getClockParts","isClockSyncEnabled","tenthsMmolToMgPerDl","TELEBGM_COMMAND","TELEBGM_PARAMETER","TELEBGM_SERVICE","TELEBGM_WRITE","telebgmFrame","unframe","MG_PER_DL_UNITS","CONTROL_SOLUTION","RECORD_BYTES","RESULT_TYPE_INDEX","recordTime","year","month","day","hours","minutes","timezone","fields","time","Date","UTC","parts","undefined","readRecord","payload","reportsMmol","length","value","recordedAt","bloodGlucose","TeleBgmSequencer","withoutResponse","finished","constructor","params","initialCommands","writesWithoutResponse","request","serial","isHistoryTransfer","isNormalDisconnect","nextCommand","frame","command","testStatus","acknowledge","softwareVersion","units","setClock","history","setTime","report","transferEnd","historyEnd","reading","clockSync","onResult","caseType","RESULT","measurementTypeKey","seconds","now","write","ack","serviceUuid","characteristicUuid"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/blood-glucose/telebgm.sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -26,8 +26,12 @@ import { bp2MainServices } from "./bp2.main-services.js";
26
26
  */
27
27
  /** BP2 ECG waveform resolution from the device protocol. */
28
28
  const BP2_ECG_MILLIVOLTS_PER_COUNT = 0.003098;
29
- const BP2_ECG_SAMPLES_PER_SECOND = 250;
30
- const BP2_ECG_SAMPLE_TOLERANCE = BP2_ECG_SAMPLES_PER_SECOND;
29
+
30
+ /** The realtime ECG stream's rate. */
31
+ const BP2_LIVE_ECG_SAMPLES_PER_SECOND = 250;
32
+
33
+ /** Stored ECG files hold the waveform at half the realtime rate. */
34
+ const BP2_FILE_ECG_SAMPLES_PER_SECOND = 125;
31
35
  const BP2_ECG_NO_VALUE = 0x7fff;
32
36
  const BP2_BP_NO_VALUE = 0xffff;
33
37
  const BP2_PULSE_NO_VALUES = new Set([0xff, 0x1ff, BP2_BP_NO_VALUE]);
@@ -98,7 +102,7 @@ class BP2Device extends BTManagedDevice {
98
102
  successResult.diagramPoints = this.diagramPoints;
99
103
  successResult.duration = this.duration;
100
104
  this.addDeviceTimestamp(successResult);
101
- const error = this.checkIfHasErrorForEcg(successResult);
105
+ const error = this.checkIfHasErrorForEcg(successResult, BP2_LIVE_ECG_SAMPLES_PER_SECOND);
102
106
  if (error) {
103
107
  this.onError?.(error);
104
108
  return;
@@ -216,7 +220,7 @@ class BP2Device extends BTManagedDevice {
216
220
  ...decoded,
217
221
  caseType: CaseType.RESULT
218
222
  };
219
- const error = result.measurementTypeKey === MeasurementTypeKey.bloodPressure ? this.checkIfHasErrorForBloodPressure(result) : this.checkIfHasErrorForEcg(result);
223
+ const error = result.measurementTypeKey === MeasurementTypeKey.bloodPressure ? this.checkIfHasErrorForBloodPressure(result) : this.checkIfHasErrorForEcg(result, BP2_FILE_ECG_SAMPLES_PER_SECOND);
220
224
  if (error) {
221
225
  this.onError?.(error);
222
226
  return;
@@ -244,7 +248,7 @@ class BP2Device extends BTManagedDevice {
244
248
  this.pendingResults.forEach(result => this.onResult?.(result));
245
249
  this.pendingResults.clear();
246
250
  };
247
- checkIfHasErrorForEcg(successResult) {
251
+ checkIfHasErrorForEcg(successResult, samplesPerSecond) {
248
252
  const ecgMeasurement = successResult;
249
253
  if (ecgMeasurement.diagnosticResult === EcgDiagnosticFlag.POOR_WAVEFORM) {
250
254
  return MeasurementFeedbackKey.POOR_WAVEFORM;
@@ -269,8 +273,9 @@ class BP2Device extends BTManagedDevice {
269
273
  return MeasurementFeedbackKey.INSUFFICIENT_DATA_LENGTH;
270
274
  }
271
275
  if (ecgMeasurement.duration > 0) {
272
- const expectedSamples = ecgMeasurement.duration * BP2_ECG_SAMPLES_PER_SECOND;
273
- if (ecgMeasurement.diagramPoints.length < expectedSamples - BP2_ECG_SAMPLE_TOLERANCE || ecgMeasurement.diagramPoints.length > expectedSamples + BP2_ECG_SAMPLE_TOLERANCE) {
276
+ const expectedSamples = ecgMeasurement.duration * samplesPerSecond;
277
+ const toleranceSamples = samplesPerSecond;
278
+ if (ecgMeasurement.diagramPoints.length < expectedSamples - toleranceSamples || ecgMeasurement.diagramPoints.length > expectedSamples + toleranceSamples) {
274
279
  return MeasurementFeedbackKey.INSUFFICIENT_DATA_LENGTH;
275
280
  }
276
281
  } else if (ecgMeasurement.diagramPoints.length < 3500) {
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","EcgDiagnosticFlag","sentryLogger","bloodPressureTranslatedExceptionMap","MeasurementFeedbackKey","PREFERRED_MTU","BloodPressureStates","CaseType","DeviceStatus","hexToByte","i16FromHex","le16FromHex","le32FromHex","BTManagedDevice","decodeBP2File","recordedAtFromLocalSeconds","BP2FrameReader","BP2HistorySequencer","bp2MainServices","BP2_ECG_MILLIVOLTS_PER_COUNT","BP2_ECG_SAMPLES_PER_SECOND","BP2_ECG_SAMPLE_TOLERANCE","BP2_ECG_NO_VALUE","BP2_BP_NO_VALUE","BP2_PULSE_NO_VALUES","Set","BP2Device","collectedValues","diagramPoints","duration","historyMode","historyRequested","pendingResults","Map","reportedFileNames","mainServices","stuckDataTimeout","constructor","device","params","clockSync","deliveredFileNames","deliveredEcgFileNames","onStreamStart","lastLiveResultSignature","undefined","createCommandSequencer","clear","service","write","writeUuid","serviceUuid","uuid","characteristicUuid","onFile","handleHistoryFile","onError","handleHistoryError","onTransferFinished","reportPendingResults","shouldStartTransfer","onTransferRequested","onOrphanStreamEnd","skipFiles","frameReader","preferredMtu","handleSuccessResult","successResult","measurementTypeKey","caseType","Error","ecg","handleEcgResult","bloodPressure","handleBloodPressureResult","RESULT","addDeviceTimestamp","error","checkIfHasErrorForEcg","queueHistoryResult","onResult","handleEcgStream","lenL","lenH","dataLen","dataStart","dataEnd","data","slice","onDeviceStatusChanged","MEASURING","samplingNum","samplesStart","i","byteIndexInData","sampleVal","push","checkIfHasErrorForBloodPressure","result","recordedAt","length","bpMeasurement","status","diastolic","systolic","heartRate","DEVICE_ERROR","REGULAR","errorString","get","DEVICE_INTERRUPTED","has","signature","signatureFor","set","join","diagnosticResult","file","name","decoded","content","pending","add","matchesPendingResult","delete","pendingBloodPressure","decodedBloodPressure","pendingEcg","decodedEcg","reason","forEach","ecgMeasurement","POOR_WAVEFORM","LEAD_OFF","INSUFFICIENT_DATA_LENGTH","expectedSamples"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","EcgDiagnosticFlag","sentryLogger","bloodPressureTranslatedExceptionMap","MeasurementFeedbackKey","PREFERRED_MTU","BloodPressureStates","CaseType","DeviceStatus","hexToByte","i16FromHex","le16FromHex","le32FromHex","BTManagedDevice","decodeBP2File","recordedAtFromLocalSeconds","BP2FrameReader","BP2HistorySequencer","bp2MainServices","BP2_ECG_MILLIVOLTS_PER_COUNT","BP2_LIVE_ECG_SAMPLES_PER_SECOND","BP2_FILE_ECG_SAMPLES_PER_SECOND","BP2_ECG_NO_VALUE","BP2_BP_NO_VALUE","BP2_PULSE_NO_VALUES","Set","BP2Device","collectedValues","diagramPoints","duration","historyMode","historyRequested","pendingResults","Map","reportedFileNames","mainServices","stuckDataTimeout","constructor","device","params","clockSync","deliveredFileNames","deliveredEcgFileNames","onStreamStart","lastLiveResultSignature","undefined","createCommandSequencer","clear","service","write","writeUuid","serviceUuid","uuid","characteristicUuid","onFile","handleHistoryFile","onError","handleHistoryError","onTransferFinished","reportPendingResults","shouldStartTransfer","onTransferRequested","onOrphanStreamEnd","skipFiles","frameReader","preferredMtu","handleSuccessResult","successResult","measurementTypeKey","caseType","Error","ecg","handleEcgResult","bloodPressure","handleBloodPressureResult","RESULT","addDeviceTimestamp","error","checkIfHasErrorForEcg","queueHistoryResult","onResult","handleEcgStream","lenL","lenH","dataLen","dataStart","dataEnd","data","slice","onDeviceStatusChanged","MEASURING","samplingNum","samplesStart","i","byteIndexInData","sampleVal","push","checkIfHasErrorForBloodPressure","result","recordedAt","length","bpMeasurement","status","diastolic","systolic","heartRate","DEVICE_ERROR","REGULAR","errorString","get","DEVICE_INTERRUPTED","has","signature","signatureFor","set","join","diagnosticResult","file","name","decoded","content","pending","add","matchesPendingResult","delete","pendingBloodPressure","decodedBloodPressure","pendingEcg","decodedEcg","reason","forEach","samplesPerSecond","ecgMeasurement","POOR_WAVEFORM","LEAD_OFF","INSUFFICIENT_DATA_LENGTH","expectedSamples","toleranceSamples"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.device.ts"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,12 @@ const BP2_REALTIME_COMMAND = 0x08;
13
13
  const BP2_RESULT_STATES = new Set(["05", "07", "11"]);
14
14
  const BP2_ECG_STATE = "06";
15
15
  const BP2_IDLE_STATES = new Set(["00", "01", "03"]);
16
- const BP2_POLL_INTERVAL_MS = 200;
16
+
17
+ /** The pace of Viatom's own BP2 client, which the device keeps up with while it measures. */
18
+ const BP2_POLL_INTERVAL_MS = 500;
19
+
20
+ /** How long a queued realtime poll may go unanswered before it is sent again. */
21
+ const BP2_POLL_ANSWER_TIMEOUT_MS = BP2_POLL_INTERVAL_MS + 1_000;
17
22
  /** Reads unseen BP2 history on connect and after each realtime result. */
18
23
  class BP2HistorySequencer {
19
24
  builder = new LepuCommandBuilder();
@@ -34,6 +39,15 @@ class BP2HistorySequencer {
34
39
  return this.startTransfer();
35
40
  };
36
41
  isHistoryTransfer = () => true;
42
+ commandTimeoutMs = () => this.isPolling() ? BP2_POLL_ANSWER_TIMEOUT_MS : undefined;
43
+
44
+ /** The BP2 can drop a poll while it starts measuring, so a missing answer is asked for again. */
45
+ onCommandTimeout = () => this.isPolling() ? {
46
+ commands: [this.pollCommand()]
47
+ } : {};
48
+
49
+ /** Only the realtime answer settles a poll; any other frame leaves its timeout running. */
50
+ commandProgress = frame => this.isPolling() && lepuCommandOf(frame) !== BP2_REALTIME_COMMAND ? "ignored" : "complete";
37
51
  nextCommand = frame => {
38
52
  if (this.phase === "clock") {
39
53
  if (lepuCommandOf(frame) !== LepuCommand.SET_TIME) {
@@ -81,6 +95,7 @@ class BP2HistorySequencer {
81
95
  this.params.onTransferFinished();
82
96
  return [this.pollCommand()];
83
97
  };
98
+ isPolling = () => this.phase === "files" && this.transfer === undefined;
84
99
  pollCommand = () => ({
85
100
  ...this.params.write,
86
101
  frame: this.builder.build(BP2_REALTIME_COMMAND),
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","isClockSyncEnabled","hexToByte","LepuCommandBuilder","LepuCommand","clockPayload","LepuFileTransfer","lepuCommandOf","isLepuSuccess","describeLepuResponseType","BP2_REALTIME_COMMAND","BP2_RESULT_STATES","Set","BP2_ECG_STATE","BP2_IDLE_STATES","BP2_POLL_INTERVAL_MS","BP2HistorySequencer","builder","lastRunStatusFrameCount","realtimeEcgActive","phase","constructor","params","initialCommands","clockSync","write","frame","build","SET_TIME","startTransfer","isHistoryTransfer","nextCommand","undefined","onError","transfer","logRunStatus","isResult","isResultFrame","endedWithoutResult","isIdleFrame","onOrphanStreamEnd","shouldStartTransfer","onTransferRequested","pollCommand","delayBeforeWriteMs","onFile","skipFiles","afterTransfer","finishTransfer","onTransferFinished","has","toLowerCase","runStatus","lastRunStatus"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","isClockSyncEnabled","hexToByte","LepuCommandBuilder","LepuCommand","clockPayload","LepuFileTransfer","lepuCommandOf","isLepuSuccess","describeLepuResponseType","BP2_REALTIME_COMMAND","BP2_RESULT_STATES","Set","BP2_ECG_STATE","BP2_IDLE_STATES","BP2_POLL_INTERVAL_MS","BP2_POLL_ANSWER_TIMEOUT_MS","BP2HistorySequencer","builder","lastRunStatusFrameCount","realtimeEcgActive","phase","constructor","params","initialCommands","clockSync","write","frame","build","SET_TIME","startTransfer","isHistoryTransfer","commandTimeoutMs","isPolling","undefined","onCommandTimeout","commands","pollCommand","commandProgress","nextCommand","onError","transfer","logRunStatus","isResult","isResultFrame","endedWithoutResult","isIdleFrame","onOrphanStreamEnd","shouldStartTransfer","onTransferRequested","delayBeforeWriteMs","onFile","skipFiles","afterTransfer","finishTransfer","onTransferFinished","has","toLowerCase","runStatus","lastRunStatus"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bp2/bp2.history-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -175,7 +175,7 @@ export class BTDataProcessor {
175
175
  message: "Device is stuck"
176
176
  }
177
177
  }));
178
- this.device.cancelConnection?.();
178
+ this.cancelConnection(MeasurementFeedbackKey.STUCK);
179
179
  }, this.stuckDataTimeoutDuration);
180
180
  };
181
181
  startCommandTimeout = () => {
@@ -194,9 +194,17 @@ export class BTDataProcessor {
194
194
  }
195
195
  if (result?.terminal) {
196
196
  this.callbacks.onError?.(new Error(MeasurementFeedbackKey.COMMAND_TIMEOUT));
197
- void this.device.cancelConnection?.();
197
+ this.cancelConnection(MeasurementFeedbackKey.COMMAND_TIMEOUT);
198
198
  }
199
199
  }, duration);
200
200
  };
201
+
202
+ /** Ends the link from this side, logged so it is never mistaken for the device hanging up. */
203
+ cancelConnection = reason => {
204
+ sentryLogger("warning", "BT_MANAGER: Cancelling the connection", {
205
+ reason
206
+ });
207
+ void this.device.cancelConnection?.();
208
+ };
201
209
  }
202
210
  //# sourceMappingURL=bt-data-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","MeasurementFeedbackKey","CaseType","FrameReadStatus","FrameParser","MeasurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","measurementState","onStatusChanged","onStreamStart","onMeasurementEnd","onResult","currentUuid","destroy","clear","reset","clearTimeout","stuckDataTimeout","undefined","commandTimeout","processData","uuid","hexValue","String","toLowerCase","buffer","get","push","set","startStuckTimeout","readFramesFromBuffer","readWholeBuffer","armStuckTimeout","armCommandTimeout","startCommandTimeout","reader","length","result","readFrame","hasProgressed","consumedBytes","splice","status","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","frameLength","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","MeasurementFeedbackKey","CaseType","FrameReadStatus","FrameParser","MeasurementStateMachine","BTDataProcessor","buffers","Map","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","frameReader","frameParser","measurementState","onStatusChanged","onStreamStart","onMeasurementEnd","onResult","currentUuid","destroy","clear","reset","clearTimeout","stuckDataTimeout","undefined","commandTimeout","processData","uuid","hexValue","String","toLowerCase","buffer","get","push","set","startStuckTimeout","readFramesFromBuffer","readWholeBuffer","armStuckTimeout","armCommandTimeout","startCommandTimeout","reader","length","result","readFrame","hasProgressed","consumedBytes","splice","status","COMPLETE","handleFrame","frame","answerFrame","CORRUPT","reportCorruptFrame","validatePackage","progress","commandProgress","commands","nextCommand","sendCommands","data","parse","frameLength","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","isMeasuring","measuring","advance","onError","Error","CORRUPT_FRAME","cause","message","setTimeout","STUCK","cancelConnection","duration","commandTimeoutMs","onCommandTimeout","terminal","COMMAND_TIMEOUT","reason"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":";;AAAA;;AAIA,SAASA,YAAY,QAAQ,yCAAsC;AACnE,SAASC,sBAAsB,QAAQ,yCAAsC;AAC7E,SAASC,QAAQ,QAAQ,0BAAuB;AAKhD,SAASC,eAAe,QAAQ,kCAA+B;AAK/D,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,SAASC,uBAAuB,QAAQ,gCAA6B;AA0CrE,OAAO,MAAMC,eAAe,CAAwB;EAClD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACUC,OAAO,GAAG,IAAIC,GAAG,CAAmB,CAAC;EAK7CC,WAAWA,CACQC,MAAc,EAC/BC,YAA2C,EAC1BC,wBAAgC,EAChCC,SAAoC,EACpCC,WAAyB,EAC1C;IAAA,KALiBJ,MAAc,GAAdA,MAAc;IAAA,KAEdE,wBAAgC,GAAhCA,wBAAgC;IAAA,KAChCC,SAAoC,GAApCA,SAAoC;IAAA,KACpCC,WAAyB,GAAzBA,WAAyB;IAE1C,IAAI,CAACC,WAAW,GAAG,IAAIX,WAAW,CAACO,YAAY,CAAC;IAChD,IAAI,CAACK,gBAAgB,GAAG,IAAIX,uBAAuB,CAAC;MAClDY,eAAe,EAAEJ,SAAS,CAACI,eAAe;MAC1CC,aAAa,EAAEL,SAAS,CAACK,aAAa;MACtCC,gBAAgB,EAAEN,SAAS,CAACM,gBAAgB;MAC5CC,QAAQ,EAAEP,SAAS,CAACO;IACtB,CAAC,CAAC;EACJ;EAEQC,WAAW,GAAW,EAAE;EAEzBC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAI,CAACf,OAAO,CAACgB,KAAK,CAAC,CAAC;IACpB,IAAI,CAACT,WAAW,EAAEU,KAAK,GAAG,CAAC;IAC3B,IAAI,CAACH,WAAW,GAAG,EAAE;IACrB,IAAI,CAACL,gBAAgB,CAACQ,KAAK,CAAC,CAAC;IAC7BC,YAAY,CAAC,IAAI,CAACC,gBAAgB,CAAC;IACnC,IAAI,CAACA,gBAAgB,GAAGC,SAAS;IACjCF,YAAY,CAAC,IAAI,CAACG,cAAc,CAAC;IACjC,IAAI,CAACA,cAAc,GAAGD,SAAS;EACjC,CAAC;EAEME,WAAW,GAAGA,CAACC,IAAY,EAAEC,QAAkB,KAAK;IACzD,IAAI,CAACV,WAAW,GAAGW,MAAM,CAACF,IAAI,IAAI,EAAE,CAAC,CAACG,WAAW,CAAC,CAAC;IAEnD,MAAMC,MAAM,GAAG,IAAI,CAAC3B,OAAO,CAAC4B,GAAG,CAAC,IAAI,CAACd,WAAW,CAAC,IAAI,EAAE;IAEvDa,MAAM,CAACE,IAAI,CAAC,GAAGL,QAAQ,CAAC;IACxB,IAAI,CAACxB,OAAO,CAAC8B,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAEa,MAAM,CAAC;IAC1C,IAAI,CAACI,iBAAiB,CAAC,CAAC;IAExB,IAAI,IAAI,CAACxB,WAAW,EAAE;MACpB,IAAI,CAACyB,oBAAoB,CAAC,IAAI,CAACzB,WAAW,EAAEgB,IAAI,EAAEI,MAAM,CAAC;MAEzD;IACF;IAEA,IAAI,CAACM,eAAe,CAACV,IAAI,EAAEI,MAAM,CAAC;EACpC,CAAC;;EAED;EACOO,eAAe,GAAGA,CAAA,KAAM;IAC7B,IAAI,CAACH,iBAAiB,CAAC,CAAC;EAC1B,CAAC;;EAED;EACOI,iBAAiB,GAAGA,CAAA,KAAM;IAC/B,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACUJ,oBAAoB,GAAGA,CAC7BK,MAAmB,EACnBd,IAAY,EACZI,MAAgB,KACb;IACH,OAAOA,MAAM,CAACW,MAAM,GAAG,CAAC,EAAE;MACxB,MAAMC,MAAM,GAAGF,MAAM,CAACG,SAAS,CAACb,MAAM,EAAEJ,IAAI,CAAC;MAC7C,MAAMkB,aAAa,GAAGF,MAAM,CAACG,aAAa,GAAG,CAAC;MAE9Cf,MAAM,CAACgB,MAAM,CAAC,CAAC,EAAEJ,MAAM,CAACG,aAAa,CAAC;MAEtC,IAAIH,MAAM,CAACK,MAAM,KAAKhD,eAAe,CAACiD,QAAQ,EAAE;QAC9C,IAAI,CAACC,WAAW,CAACvB,IAAI,EAAEgB,MAAM,CAACQ,KAAK,CAAC;QACpC,IAAI,CAACC,WAAW,CAACT,MAAM,CAACQ,KAAK,EAAExB,IAAI,CAAC;QAEpC;MACF;MAEA,IAAIgB,MAAM,CAACK,MAAM,KAAKhD,eAAe,CAACqD,OAAO,EAAE;QAC7C,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAC3B;MAEA,IAAI,CAACT,aAAa,EAAE;QAClB;MACF;IACF;EACF,CAAC;;EAED;AACF;AACA;EACUR,eAAe,GAAGA,CAACV,IAAY,EAAEI,MAAgB,KAAK;IAC5D,IAAI,CAAC,IAAI,CAACrB,SAAS,CAAC6C,eAAe,CAACxB,MAAM,EAAEJ,IAAI,CAAC,EAAE;MACjD;IACF;IAEA,IAAI,CAACuB,WAAW,CAACvB,IAAI,EAAEI,MAAM,CAAC;IAC9B,IAAI,CAAC3B,OAAO,CAAC8B,GAAG,CAAC,IAAI,CAAChB,WAAW,EAAE,EAAE,CAAC;IACtC,IAAI,CAACkC,WAAW,CAACrB,MAAM,EAAEJ,IAAI,CAAC;EAChC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACUyB,WAAW,GAAGA,CAACD,KAAwB,EAAExB,IAAY,KAAK;IAChE,MAAM6B,QAAQ,GAAG,IAAI,CAAC9C,SAAS,CAAC+C,eAAe,GAAGN,KAAK,CAAC,IAAI,UAAU;IACtE,MAAMO,QAAQ,GAAG,IAAI,CAAChD,SAAS,CAACiD,WAAW,GAAGR,KAAK,EAAExB,IAAI,CAAC;IAE1D,IAAI6B,QAAQ,KAAK,UAAU,EAAE;MAC3BlC,YAAY,CAAC,IAAI,CAACG,cAAc,CAAC;MACjC,IAAI,CAACA,cAAc,GAAGD,SAAS;IACjC,CAAC,MAAM,IAAIgC,QAAQ,KAAK,SAAS,EAAE;MACjC,IAAI,CAAChB,mBAAmB,CAAC,CAAC;IAC5B;IAEA,IAAIkB,QAAQ,IAAIA,QAAQ,CAAChB,MAAM,GAAG,CAAC,EAAE;MACnC,IAAI,CAAChC,SAAS,CAACkD,YAAY,GAAGF,QAAQ,CAAC;MACvC,IAAI,CAAClB,mBAAmB,CAAC,CAAC;IAC5B;EACF,CAAC;EAEOU,WAAW,GAAGA,CAACvB,IAAY,EAAEwB,KAAe,KAAK;IACvD,MAAMU,IAAI,GAAG,IAAI,CAACjD,WAAW,CAACkD,KAAK,CAACnC,IAAI,EAAEwB,KAAK,CAAC;IAEhD,IAAI,CAACU,IAAI,EAAE;MACThE,YAAY,CAAC,MAAM,EAAE,4CAA4C,EAAE;QACjE8B,IAAI;QACJoC,WAAW,EAAEZ,KAAK,CAACT;MACrB,CAAC,CAAC;MAEF;IACF;;IAEA;AACJ;AACA;AACA;IACI,IAAIsB,aAAa,GAAG,IAAI;IAExB,IAAIH,IAAI,CAACI,WAAW,CAACC,QAAQ,KAAKnE,QAAQ,CAACoE,SAAS,EAAE;MACpDH,aAAa,GAAG,IAAI,CAACtD,SAAS,CAAC0D,qBAAqB,GAAG;QACrD,GAAGP,IAAI;QACPQ,WAAW,EAAE,IAAI,CAACxD,gBAAgB,CAACyD;MACrC,CAAC,CAAC;IACJ;IAEA,IAAI,CAACzD,gBAAgB,CAAC0D,OAAO,CAACP,aAAa,IAAIH,IAAI,EAAEV,KAAK,CAAC;EAC7D,CAAC;EAEOG,kBAAkB,GAAGA,CAAA,KAAM;IACjC,IAAI,CAAC5C,SAAS,CAAC8D,OAAO,GACpB,IAAIC,KAAK,CAAC3E,sBAAsB,CAAC4E,aAAa,EAAE;MAC9CC,KAAK,EAAE;QACLC,OAAO,EAAE;MACX;IACF,CAAC,CACH,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACUzC,iBAAiB,GAAGA,CAAA,KAAM;IAChC,IAAI,IAAI,CAACZ,gBAAgB,EAAE;MACzBD,YAAY,CAAC,IAAI,CAACC,gBAAgB,CAAC;IACrC;IAEA,IAAI,CAACA,gBAAgB,GAAGsD,UAAU,CAAC,MAAM;MACvC,IAAI,CAACnE,SAAS,CAAC8D,OAAO,GACpB,IAAIC,KAAK,CAAC3E,sBAAsB,CAACgF,KAAK,EAAE;QACtCH,KAAK,EAAE;UACLC,OAAO,EAAE;QACX;MACF,CAAC,CACH,CAAC;MACD,IAAI,CAACG,gBAAgB,CAACjF,sBAAsB,CAACgF,KAAK,CAAC;IACrD,CAAC,EAAE,IAAI,CAACrE,wBAAwB,CAAC;EACnC,CAAC;EAEO+B,mBAAmB,GAAGA,CAAA,KAAM;IAClC,MAAMwC,QAAQ,GAAG,IAAI,CAACtE,SAAS,CAACuE,gBAAgB,GAAG,CAAC;IAEpD,IAAI,CAACD,QAAQ,IAAIA,QAAQ,IAAI,CAAC,EAAE;MAC9B;IACF;IAEA1D,YAAY,CAAC,IAAI,CAACG,cAAc,CAAC;IACjC,IAAI,CAACA,cAAc,GAAGoD,UAAU,CAAC,MAAM;MACrC,IAAI,CAACpD,cAAc,GAAGD,SAAS;MAE/B,MAAMmB,MAAM,GAAG,IAAI,CAACjC,SAAS,CAACwE,gBAAgB,GAAG,CAAC;MAElD,IAAIvC,MAAM,EAAEe,QAAQ,IAAIf,MAAM,CAACe,QAAQ,CAAChB,MAAM,GAAG,CAAC,EAAE;QAClD,IAAI,CAAChC,SAAS,CAACkD,YAAY,GAAGjB,MAAM,CAACe,QAAQ,CAAC;QAC9C,IAAI,CAAClB,mBAAmB,CAAC,CAAC;QAE1B;MACF;MAEA,IAAIG,MAAM,EAAEwC,QAAQ,EAAE;QACpB,IAAI,CAACzE,SAAS,CAAC8D,OAAO,GACpB,IAAIC,KAAK,CAAC3E,sBAAsB,CAACsF,eAAe,CAClD,CAAC;QACD,IAAI,CAACL,gBAAgB,CAACjF,sBAAsB,CAACsF,eAAe,CAAC;MAC/D;IACF,CAAC,EAAEJ,QAAQ,CAAC;EACd,CAAC;;EAED;EACQD,gBAAgB,GAAIM,MAA8B,IAAK;IAC7DxF,YAAY,CAAC,SAAS,EAAE,uCAAuC,EAAE;MAAEwF;IAAO,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC9E,MAAM,CAACwE,gBAAgB,GAAG,CAAC;EACvC,CAAC;AACH","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  /* eslint-disable import/group-exports */
4
4
 
5
5
  import { frameBytes } from "../../../utils/frame-bytes.js";
6
+ import { tenthsMmolToMgPerDl } from "../../../utils/tenths-mmol-to-mg-per-dl.js";
6
7
 
7
8
  /**
8
9
  * Cofoe record decoders. Times are local wall-clock with no zone; a field out of range drops
@@ -45,14 +46,8 @@ export const readBpRecord = body => {
45
46
  recordedAt
46
47
  };
47
48
  };
48
-
49
- /** One mmol/L of glucose (180.16 g/mol) is 18.016 mg/dL, as in the SIG glucose profile. */
50
- const MG_PER_DL_PER_MMOL_PER_L = 18.016;
51
-
52
- /** Tenths of a mmol/L, rounded to whole mg/dL. */
53
- const mgPerDl = tenthsMmol => Math.round(tenthsMmol / 10 * MG_PER_DL_PER_MMOL_PER_L);
54
49
  const glucose = (tenthsMmol, recordedAt) => recordedAt && tenthsMmol > 0 && tenthsMmol < 0xffff ? {
55
- bloodGlucose: mgPerDl(tenthsMmol),
50
+ bloodGlucose: tenthsMmolToMgPerDl(tenthsMmol),
56
51
  recordedAt
57
52
  } : undefined;
58
53
  const KFB06_GLUCOSE_TYPE = 9;
@@ -1 +1 @@
1
- {"version":3,"names":["frameBytes","fromBcd","value","undefined","localTime","fields","some","field","year","month","day","hour","minute","second","map","index","time","Date","getMonth","getDate","getHours","getMinutes","getSeconds","readPressures","bytes","length","heartRate","systolic","diastolic","flag","irregularHeartbeat","readBpResult","body","readBpRecord","recordedAt","slice","pressures","MG_PER_DL_PER_MMOL_PER_L","mgPerDl","tenthsMmol","Math","round","glucose","bloodGlucose","KFB06_GLUCOSE_TYPE","readKfb06Glucose","readCgh25Glucose","THERMOMETER_TEXT","readThermometerText","frame","text","exec","String","fromCharCode","type","test","hundredths","Number","parseInt"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/cofoe/cofoe.records.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["frameBytes","tenthsMmolToMgPerDl","fromBcd","value","undefined","localTime","fields","some","field","year","month","day","hour","minute","second","map","index","time","Date","getMonth","getDate","getHours","getMinutes","getSeconds","readPressures","bytes","length","heartRate","systolic","diastolic","flag","irregularHeartbeat","readBpResult","body","readBpRecord","recordedAt","slice","pressures","glucose","tenthsMmol","bloodGlucose","KFB06_GLUCOSE_TYPE","readKfb06Glucose","readCgh25Glucose","THERMOMETER_TEXT","readThermometerText","frame","text","exec","String","fromCharCode","type","test","hundredths","Number","parseInt"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/cofoe/cofoe.records.ts"],"mappings":"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","ignoreList":[]}
@@ -111,7 +111,7 @@ export class CustomDevice extends BTManagedDevice {
111
111
  onRefused: this.onIdentityRefused,
112
112
  onFile: lepu.fileTransfer === "ecg" ? this.reportViatomEcgFile : lepu.fileTransfer === "bp2" ? this.reportViatomBp2File : this.reportViatomBp3File,
113
113
  skipFiles: lepu.fileTransfer === "bp3" ? undefined : this.deliveredFileNames,
114
- acceptFile: lepu.fileTransfer === "ecg" ? name => lepu.ecgFileDecoder === "raw-int16" && /^R/i.test(name) : lepu.fileTransfer === "bp3" ? name => /^bp\.list$/i.test(name) : undefined,
114
+ acceptFile: lepu.fileTransfer === "ecg" ? name => lepu.ecgFileDecoder !== undefined && /^R/i.test(name) : lepu.fileTransfer === "bp3" ? name => /^bp\.list$/i.test(name) : undefined,
115
115
  pollCommand: lepu.fileTransfer === "ecg" ? undefined : lepu.pollCommand,
116
116
  pollIntervalMs: lepu.fileTransfer === "ecg" ? undefined : lepu.pollIntervalMs,
117
117
  afterTransfer: lepu.fileTransfer === "ecg" && lepu.pollCommand ? () => [{
@@ -139,7 +139,7 @@ export class CustomDevice extends BTManagedDevice {
139
139
  reportViatomEcgFile = file => {
140
140
  const decoded = decodeViatomEcgRecording(file.content);
141
141
  if (decoded.samples.length === 0) {
142
- this.onError?.(new Error(`Viatom ECG: file "${file.name}" had no samples.`));
142
+ this.onError?.(new Error(`Viatom ECG: file "${file.name}" does not decode to its recorded length.`));
143
143
  return;
144
144
  }
145
145
  this.onResult?.({