@ovok/native 1.3.0 → 1.4.0

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 (308) hide show
  1. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.js +9 -3
  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 +8 -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 +22 -22
  6. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  7. package/lib/commonjs/modules/bt-device/constants/device-list-items.js +36 -0
  8. package/lib/commonjs/modules/bt-device/constants/device-list-items.js.map +1 -1
  9. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +36 -0
  10. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -0
  11. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js +45 -0
  12. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -0
  13. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +198 -42
  14. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js +88 -0
  16. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +15 -8
  18. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +1 -1
  20. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/index.js +55 -0
  22. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +10 -4
  24. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/bt-manager.js +43 -5
  26. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +6 -2
  28. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/device-creator.js +19 -8
  30. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js +1 -1
  32. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js +50 -0
  34. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -0
  35. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +78 -127
  36. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +2 -0
  38. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  39. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.frame-reader.js +60 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.frame-reader.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +74 -0
  42. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -0
  43. package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js +1 -1
  44. package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +3 -0
  46. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +1 -1
  48. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +37 -4
  50. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  51. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  52. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +4 -1
  53. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  54. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +2 -1
  55. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  56. package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +1 -1
  57. package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -1
  58. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js +1 -1
  59. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js.map +1 -1
  60. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +1 -1
  61. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  62. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +35 -0
  63. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -0
  64. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +3 -2
  65. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  66. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js +2 -1
  67. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
  68. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js +1 -1
  69. package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  70. package/lib/commonjs/modules/bt-management/types/device-measurement-map.js.map +1 -1
  71. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +11 -2
  72. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  73. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +3 -1
  74. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  75. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -1
  76. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  77. package/lib/commonjs/modules/data-sync/utils/health-units.js +22 -0
  78. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -0
  79. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.js +9 -3
  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 +8 -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 +1 -1
  84. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  85. package/lib/module/modules/bt-device/constants/device-list-items.js +36 -0
  86. package/lib/module/modules/bt-device/constants/device-list-items.js.map +1 -1
  87. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +33 -0
  88. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -0
  89. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js +41 -0
  90. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -0
  91. package/lib/module/modules/bt-device/constants/supported-devices.js +188 -32
  92. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  93. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js +83 -0
  94. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js.map +1 -0
  95. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +15 -8
  96. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  97. package/lib/module/modules/bt-management/constants/integrated-devices-map.js +1 -1
  98. package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  99. package/lib/module/modules/bt-management/index.js +5 -0
  100. package/lib/module/modules/bt-management/index.js.map +1 -1
  101. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +10 -4
  102. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  103. package/lib/module/modules/bt-management/services/bt-manager.js +45 -6
  104. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  105. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +6 -2
  106. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  107. package/lib/module/modules/bt-management/services/device-creator.js +19 -8
  108. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  109. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js +1 -1
  110. package/lib/module/modules/bt-management/services/devices/aoj/aoj.thermometers.js.map +1 -1
  111. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js +40 -0
  112. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -0
  113. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +59 -109
  114. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
  115. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +2 -0
  116. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  117. package/lib/module/modules/bt-management/services/devices/bc01/bc01.frame-reader.js +56 -0
  118. package/lib/module/modules/bt-management/services/devices/bc01/bc01.frame-reader.js.map +1 -0
  119. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +69 -0
  120. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -0
  121. package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js +1 -1
  122. package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -1
  123. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +3 -0
  124. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  125. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +1 -1
  126. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  127. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +36 -4
  128. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  129. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +2 -1
  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.transports.js +4 -1
  132. package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
  133. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +2 -1
  134. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  135. package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +1 -1
  136. package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -1
  137. package/lib/module/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js +1 -1
  138. package/lib/module/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js.map +1 -1
  139. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +1 -1
  140. package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
  141. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js +31 -0
  142. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-files.js.map +1 -0
  143. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js +3 -2
  144. package/lib/module/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.js.map +1 -1
  145. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js +2 -1
  146. package/lib/module/modules/bt-management/services/devices/viatom/viatom.lepod.js.map +1 -1
  147. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js +1 -1
  148. package/lib/module/modules/bt-management/services/devices/viatom/viatom.oximeters.js.map +1 -1
  149. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  150. package/lib/module/modules/data-sync/services/managers/data-processor.js +11 -2
  151. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  152. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +3 -1
  153. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  154. package/lib/module/modules/data-sync/utils/get-total-samples-count.js +3 -1
  155. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  156. package/lib/module/modules/data-sync/utils/health-units.js +17 -0
  157. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -0
  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 +1 -1
  161. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +31 -0
  164. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts +3 -0
  166. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +36 -22
  168. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts +11 -0
  170. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +5 -0
  173. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +5 -1
  175. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +19 -2
  177. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts +1 -1
  180. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts +2 -2
  182. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +31 -0
  184. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +6 -5
  186. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +2 -0
  188. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.frame-reader.d.ts +16 -0
  190. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.frame-reader.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +19 -0
  192. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts +1 -1
  194. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +1 -0
  197. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +3 -2
  199. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +3 -2
  201. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -2
  203. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts +1 -1
  205. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts +1 -1
  207. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +1 -1
  209. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +9 -0
  211. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -0
  212. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +1 -1
  213. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +1 -1
  215. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
  216. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +1 -1
  217. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  218. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +1 -0
  219. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  220. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts +6 -4
  221. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
  223. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts +5 -0
  225. package/lib/typescript/commonjs/src/modules/bt-management/types/device-command.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +4 -4
  227. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +3 -0
  232. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -0
  233. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login-button.d.ts.map +1 -1
  234. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login-button.d.ts.map +1 -1
  235. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts +1 -1
  236. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  237. package/lib/typescript/module/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  238. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +31 -0
  239. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -0
  240. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts +3 -0
  241. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -0
  242. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +36 -22
  243. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  244. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts +11 -0
  245. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -0
  246. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  247. package/lib/typescript/module/src/modules/bt-management/index.d.ts +5 -0
  248. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  249. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +5 -1
  250. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  251. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +19 -2
  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/define-custom-device.d.ts.map +1 -1
  254. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts +1 -1
  255. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  256. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts +2 -2
  257. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj.thermometers.d.ts.map +1 -1
  258. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +31 -0
  259. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -0
  260. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +6 -5
  261. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
  262. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +2 -0
  263. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  264. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.frame-reader.d.ts +16 -0
  265. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.frame-reader.d.ts.map +1 -0
  266. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +19 -0
  267. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -0
  268. package/lib/typescript/module/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts +1 -1
  269. package/lib/typescript/module/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -1
  270. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  271. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +1 -0
  272. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  273. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +3 -2
  274. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  275. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +3 -2
  276. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
  277. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -2
  278. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  279. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts +1 -1
  280. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -1
  281. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts +1 -1
  282. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts.map +1 -1
  283. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts +1 -1
  284. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
  285. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts +9 -0
  286. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-files.d.ts.map +1 -0
  287. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts +1 -1
  288. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.ecg-recorders.d.ts.map +1 -1
  289. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts +1 -1
  290. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.lepod.d.ts.map +1 -1
  291. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts +1 -1
  292. package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.oximeters.d.ts.map +1 -1
  293. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +1 -0
  294. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  295. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts +6 -4
  296. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts +2 -0
  298. package/lib/typescript/module/src/modules/bt-management/types/custom-lepu-spec.d.ts.map +1 -1
  299. package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts +5 -0
  300. package/lib/typescript/module/src/modules/bt-management/types/device-command.d.ts.map +1 -1
  301. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +4 -4
  302. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  304. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  305. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  306. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +3 -0
  307. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -0
  308. package/package.json +5 -3
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildSetTimeCommand = exports.buildResetCommand = exports.buildRequestVersionCommand = exports.buildDeleteCommand = exports.buildCommand = exports.bc401Checksum = exports.asHex = exports.RX = exports.RETRY_RECORD_GROUP = exports.RESET_DELAY_MS = exports.REQUEST_NEXT_RECORD_GROUP = exports.REQUEST_ALL = exports.RECORD_LAST_OF_SET_BIT = exports.RECORD_FLAGS_INDEX = exports.OP_REQUEST_RECORDS = exports.OP_REQUEST_QUANTITATIVE_RECORDS = exports.OP_REQUEST_COUNT = exports.FINAL_RECORD_DELAY_MS = exports.ACK_LAST_OF_SET = void 0;
7
+ /** Wire constants and frame builders shared by the BC401 command sequencer. */
8
+ const OP_RESET = 0x80;
9
+ const OP_REQUEST_VERSION = 0x82;
10
+ const OP_SET_TIME = 0x83;
11
+ const OP_REQUEST_COUNT = exports.OP_REQUEST_COUNT = 0x90;
12
+ const OP_REQUEST_RECORDS = exports.OP_REQUEST_RECORDS = 0x92;
13
+ const OP_REQUEST_QUANTITATIVE_RECORDS = exports.OP_REQUEST_QUANTITATIVE_RECORDS = 0x95;
14
+ const ACK_LAST_OF_SET = exports.ACK_LAST_OF_SET = 0x7e;
15
+ const REQUEST_ALL = exports.REQUEST_ALL = 0x00;
16
+ const REQUEST_NEXT_RECORD_GROUP = exports.REQUEST_NEXT_RECORD_GROUP = 0x01;
17
+ const RETRY_RECORD_GROUP = exports.RETRY_RECORD_GROUP = 0x02;
18
+ const FINAL_RECORD_DELAY_MS = exports.FINAL_RECORD_DELAY_MS = 200;
19
+ const RESET_DELAY_MS = exports.RESET_DELAY_MS = 100;
20
+ const RX = exports.RX = {
21
+ ACK: 0xf0,
22
+ VERSION_REPLY: 0xf2,
23
+ TIME_SYNC_ACK: 0xf3,
24
+ COUNT_REPLY: 0xe0,
25
+ STORED_RECORD_URS: 0xe1,
26
+ STORED_RECORD_PAGED: 0xe2,
27
+ FINISH: 0xe3,
28
+ STORED_QUANTITATIVE: 0xe4,
29
+ STORED_QUANTITATIVE_PAGED: 0xe5
30
+ };
31
+ const RECORD_FLAGS_INDEX = exports.RECORD_FLAGS_INDEX = 1;
32
+ const RECORD_LAST_OF_SET_BIT = exports.RECORD_LAST_OF_SET_BIT = 0x40;
33
+ const asHex = byte => (byte & 0xff).toString(16).padStart(2, "0");
34
+ exports.asHex = asHex;
35
+ const bc401Checksum = bytes => bytes.reduce((acc, byte) => acc + (byte & 0x7f), 0) & 0x7f;
36
+ exports.bc401Checksum = bc401Checksum;
37
+ const buildCommand = (opcode, arg) => [opcode, arg, bc401Checksum([opcode, arg])];
38
+ exports.buildCommand = buildCommand;
39
+ const buildResetCommand = () => [OP_RESET, 0x00];
40
+ exports.buildResetCommand = buildResetCommand;
41
+ const buildRequestVersionCommand = () => [OP_REQUEST_VERSION, bc401Checksum([OP_REQUEST_VERSION])];
42
+ exports.buildRequestVersionCommand = buildRequestVersionCommand;
43
+ const buildSetTimeCommand = now => {
44
+ const payload = [OP_SET_TIME, now.getFullYear() - 2000, now.getMonth() + 1, now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds(), now.getMilliseconds() & 0xff, now.getMilliseconds() >> 8 & 0xff];
45
+ return [...payload, bc401Checksum(payload)];
46
+ };
47
+ exports.buildSetTimeCommand = buildSetTimeCommand;
48
+ const buildDeleteCommand = () => [0x93, 0x13];
49
+ exports.buildDeleteCommand = buildDeleteCommand;
50
+ //# sourceMappingURL=bc01-command-builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OP_RESET","OP_REQUEST_VERSION","OP_SET_TIME","OP_REQUEST_COUNT","exports","OP_REQUEST_RECORDS","OP_REQUEST_QUANTITATIVE_RECORDS","ACK_LAST_OF_SET","REQUEST_ALL","REQUEST_NEXT_RECORD_GROUP","RETRY_RECORD_GROUP","FINAL_RECORD_DELAY_MS","RESET_DELAY_MS","RX","ACK","VERSION_REPLY","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","STORED_RECORD_PAGED","FINISH","STORED_QUANTITATIVE","STORED_QUANTITATIVE_PAGED","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","asHex","byte","toString","padStart","bc401Checksum","bytes","reduce","acc","buildCommand","opcode","arg","buildResetCommand","buildRequestVersionCommand","buildSetTimeCommand","now","payload","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","buildDeleteCommand"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-builders.ts"],"mappings":"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","ignoreList":[]}
@@ -5,102 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.bc01CommandSequencerInternals = exports.Bc01CommandSequencer = void 0;
7
7
  var _hexToByte = require("../../../utils/hex-to-byte.js");
8
- /**
9
- * The FF01/FF02 opcodes the BC401 firmware speaks, as reverse-engineered from
10
- * PHMS 3.0.03 (`I1/b.java` for the switch, `B3/B5.java` for the builders and
11
- * checksum, `L1/f.java` for the reset write).
12
- */
13
- const OP_RESET = 0x80;
14
- const OP_REQUEST_VERSION = 0x82;
15
- const OP_SET_TIME = 0x83;
16
- const OP_REQUEST_COUNT = 0x90;
17
- const OP_REQUEST_RECORDS = 0x92;
18
-
19
- /** Payload byte for `OP_REQUEST_RECORDS` that acknowledges the last record of the set. */
20
- const ACK_LAST_OF_SET = 0x7e;
21
-
22
- /** Payload byte for `OP_REQUEST_COUNT` and the initial `OP_REQUEST_RECORDS`. */
23
- const REQUEST_ALL = 0x00;
24
-
25
- /**
26
- * Device-to-host frame prefixes the FSM keys on. Values are decimal opcodes as
27
- * they appear in the decompiled Java (`switch(bArr[0])`), rendered here as
28
- * their real hex opcodes.
29
- */
30
- const RX = {
31
- ACK: 0xf0,
32
- VERSION_REPLY: 0xf2,
33
- TIME_SYNC_ACK: 0xf3,
34
- COUNT_REPLY: 0xe0,
35
- STORED_RECORD_URS: 0xe1,
36
- STORED_RECORD_PAGED: 0xe2,
37
- FINISH: 0xe3
38
- };
39
-
40
- /** Position in a 16-byte URS record where the flags byte sits; bit 0x40 marks the last of a set. */
41
- const RECORD_FLAGS_INDEX = 1;
42
- const RECORD_LAST_OF_SET_BIT = 0x40;
43
- /**
44
- * Formats one byte as a two-digit lowercase hex string, matching the way the
45
- * SDK's transport already spells raw bytes.
46
- */
47
- const asHex = byte => (byte & 0xff).toString(16).padStart(2, "0");
48
-
49
- /**
50
- * BC401 checksum: sum of the low 7 bits of every byte, folded back into 7 bits.
51
- * Matches `B5.a` in the decompiled Java exactly.
52
- */
53
- const bc401Checksum = bytes => bytes.reduce((acc, byte) => acc + (byte & 0x7f), 0) & 0x7f;
54
-
55
- /**
56
- * Builds a "one payload byte plus checksum" command frame. This is the shape
57
- * of every BC401 host-to-device command that carries an argument: opcode,
58
- * argument, checksum-over-both.
59
- */
60
- const buildCommand = (opcode, arg) => {
61
- const chk = bc401Checksum([opcode, arg]);
62
- return [opcode, arg, chk];
63
- };
64
-
65
- /**
66
- * Builds the two-byte reset frame. It is the one command that does not carry
67
- * an argument or a checksum — PHMS writes it as `[0x80, 0x00]` verbatim
68
- * (`L1/f.java:694`).
69
- */
70
- const buildResetCommand = () => [OP_RESET, 0x00];
71
-
72
- /**
73
- * Builds the request-version reply. The Java sends it as `[0x82, 0x02]` where
74
- * `0x02` doubles as the checksum of `0x82` under the BC401 rule
75
- * (`0x82 & 0x7f = 0x02`), so the same formula that guards every other command
76
- * produces the right byte here.
77
- */
78
- const buildRequestVersionCommand = () => {
79
- const chk = bc401Checksum([OP_REQUEST_VERSION]);
80
- return [OP_REQUEST_VERSION, chk];
81
- };
82
-
83
- /**
84
- * Builds the `SET_TIME` frame for the moment the sequencer receives it. The
85
- * device does not run its own clock across power cycles, so timestamps on
86
- * stored records only make sense once the app tells it what "now" is.
87
- * Millisecond field is written little-endian, matching `I1/b.java`.
88
- */
89
- const buildSetTimeCommand = now => {
90
- const yy = now.getFullYear() - 2000;
91
- const mo = now.getMonth() + 1;
92
- const dd = now.getDate();
93
- const hh = now.getHours();
94
- const mi = now.getMinutes();
95
- const ss = now.getSeconds();
96
- const ms = now.getMilliseconds();
97
- const msLo = ms & 0xff;
98
- const msHi = ms >> 8 & 0xff;
99
- const payload = [OP_SET_TIME, yy, mo, dd, hh, mi, ss, msLo, msHi];
100
- const chk = bc401Checksum(payload);
101
- return [...payload, chk];
102
- };
103
-
8
+ var _bc01CommandBuilders = require("./bc01-command-builders.js");
104
9
  /**
105
10
  * Walks the BC401 through its post-reset handshake and pulls every stored
106
11
  * record.
@@ -121,64 +26,110 @@ const buildSetTimeCommand = now => {
121
26
  class Bc01CommandSequencer {
122
27
  isDone = false;
123
28
 
29
+ /** Ten standard pages per request group; 10 means a new group. */
30
+ standardPage = 10;
31
+
32
+ /** Five quantitative pages per request group; 5 means a new group. */
33
+ quantitativePage = 5;
34
+
124
35
  /** Injectable for tests; production reads `Date.now()`. */
125
36
 
126
37
  constructor(params, clock = () => new Date()) {
127
38
  this.params = params;
128
39
  this.clock = clock;
129
40
  }
130
- initialCommands = () => [this.commandFor(buildResetCommand())];
41
+ initialCommands = () => [this.commandFor((0, _bc01CommandBuilders.buildResetCommand)(), _bc01CommandBuilders.RESET_DELAY_MS)];
131
42
  nextCommand = frame => {
132
43
  if (this.isDone || frame.length === 0) {
133
44
  return undefined;
134
45
  }
135
46
  const opcode = (0, _hexToByte.hexToByte)(frame[0] ?? "0");
136
47
  switch (opcode) {
137
- case RX.ACK:
138
- return [this.commandFor(buildRequestVersionCommand())];
139
- case RX.VERSION_REPLY:
140
- return [this.commandFor(buildSetTimeCommand(this.clock()))];
141
- case RX.TIME_SYNC_ACK:
142
- return [this.commandFor(buildCommand(OP_REQUEST_COUNT, REQUEST_ALL))];
143
- case RX.COUNT_REPLY:
144
- return [this.commandFor(buildCommand(OP_REQUEST_RECORDS, REQUEST_ALL))];
145
- case RX.STORED_RECORD_URS:
146
- case RX.STORED_RECORD_PAGED:
147
- return this.answerStoredRecord(frame);
148
- case RX.FINISH:
48
+ case _bc01CommandBuilders.RX.ACK:
49
+ return [this.commandFor((0, _bc01CommandBuilders.buildRequestVersionCommand)())];
50
+ case _bc01CommandBuilders.RX.VERSION_REPLY:
51
+ return [this.commandFor((0, _bc01CommandBuilders.buildSetTimeCommand)(this.clock()))];
52
+ case _bc01CommandBuilders.RX.TIME_SYNC_ACK:
53
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_COUNT, _bc01CommandBuilders.REQUEST_ALL))];
54
+ case _bc01CommandBuilders.RX.COUNT_REPLY:
55
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_RECORDS, _bc01CommandBuilders.REQUEST_ALL))];
56
+ case _bc01CommandBuilders.RX.STORED_RECORD_URS:
57
+ case _bc01CommandBuilders.RX.STORED_RECORD_PAGED:
58
+ return this.answerStoredRecord(opcode, frame);
59
+ case _bc01CommandBuilders.RX.STORED_QUANTITATIVE:
60
+ case _bc01CommandBuilders.RX.STORED_QUANTITATIVE_PAGED:
61
+ return this.answerQuantitativeRecord(opcode, frame);
62
+ case _bc01CommandBuilders.RX.FINISH:
149
63
  this.isDone = true;
150
64
  return undefined;
151
65
  default:
152
66
  return undefined;
153
67
  }
154
68
  };
155
-
156
- /**
157
- * The device pages every record it holds, one 16-byte frame at a time. Only
158
- * the frame whose flags byte carries `0x40` needs an acknowledgement; every
159
- * other page is a status update we let ride while the transfer continues.
160
- */
161
- answerStoredRecord = frame => {
162
- const flags = (0, _hexToByte.hexToByte)(frame[RECORD_FLAGS_INDEX] ?? "0");
163
- if ((flags & RECORD_LAST_OF_SET_BIT) === 0) {
69
+ answerStoredRecord = (opcode, frame) => {
70
+ const flags = (0, _hexToByte.hexToByte)(frame[_bc01CommandBuilders.RECORD_FLAGS_INDEX] ?? "0");
71
+ if (opcode === _bc01CommandBuilders.RX.STORED_RECORD_URS) {
72
+ return this.finishStoredRecords(_bc01CommandBuilders.OP_REQUEST_RECORDS);
73
+ }
74
+ const page = flags & 0x0f;
75
+ if (this.standardPage === 10) {
76
+ this.standardPage = 0;
77
+ }
78
+ if (page !== this.standardPage) {
79
+ this.standardPage = 10;
80
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_RECORDS, _bc01CommandBuilders.RETRY_RECORD_GROUP))];
81
+ }
82
+ this.standardPage += 1;
83
+ if (this.standardPage === 10 && (flags & _bc01CommandBuilders.RECORD_LAST_OF_SET_BIT) === 0) {
84
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_RECORDS, _bc01CommandBuilders.REQUEST_NEXT_RECORD_GROUP))];
85
+ }
86
+ if ((flags & _bc01CommandBuilders.RECORD_LAST_OF_SET_BIT) === 0) {
164
87
  return undefined;
165
88
  }
166
- return [this.commandFor(buildCommand(OP_REQUEST_RECORDS, ACK_LAST_OF_SET))];
89
+ this.standardPage = 10;
90
+ return this.finishStoredRecords(_bc01CommandBuilders.OP_REQUEST_RECORDS);
91
+ };
92
+ answerQuantitativeRecord = (opcode, frame) => {
93
+ const flags = (0, _hexToByte.hexToByte)(frame[_bc01CommandBuilders.RECORD_FLAGS_INDEX] ?? "0");
94
+ if (opcode === _bc01CommandBuilders.RX.STORED_QUANTITATIVE) {
95
+ return this.finishStoredRecords(_bc01CommandBuilders.OP_REQUEST_QUANTITATIVE_RECORDS);
96
+ }
97
+ const page = flags & 0x0f;
98
+ if (this.quantitativePage === 5) {
99
+ this.quantitativePage = 0;
100
+ }
101
+ if (page !== this.quantitativePage) {
102
+ this.quantitativePage = 5;
103
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_QUANTITATIVE_RECORDS, _bc01CommandBuilders.RETRY_RECORD_GROUP))];
104
+ }
105
+ this.quantitativePage += 1;
106
+ if (this.quantitativePage === 5 && (flags & _bc01CommandBuilders.RECORD_LAST_OF_SET_BIT) === 0) {
107
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(_bc01CommandBuilders.OP_REQUEST_QUANTITATIVE_RECORDS, _bc01CommandBuilders.REQUEST_NEXT_RECORD_GROUP))];
108
+ }
109
+ if ((flags & _bc01CommandBuilders.RECORD_LAST_OF_SET_BIT) === 0) {
110
+ return undefined;
111
+ }
112
+ this.quantitativePage = 5;
113
+ return this.finishStoredRecords(_bc01CommandBuilders.OP_REQUEST_QUANTITATIVE_RECORDS);
114
+ };
115
+ finishStoredRecords = opcode => {
116
+ this.isDone = true;
117
+ return [this.commandFor((0, _bc01CommandBuilders.buildCommand)(opcode, _bc01CommandBuilders.ACK_LAST_OF_SET)), this.commandFor((0, _bc01CommandBuilders.buildDeleteCommand)(), _bc01CommandBuilders.FINAL_RECORD_DELAY_MS)];
167
118
  };
168
- commandFor = bytes => ({
119
+ commandFor = (bytes, delayBeforeWriteMs = 0) => ({
169
120
  ...this.params.write,
170
- frame: bytes.map(asHex),
171
- withoutResponse: true
121
+ frame: bytes.map(_bc01CommandBuilders.asHex),
122
+ delayBeforeWriteMs
172
123
  });
173
124
  }
174
125
 
175
126
  // eslint-disable-next-line import/group-exports
176
127
  exports.Bc01CommandSequencer = Bc01CommandSequencer;
177
128
  const bc01CommandSequencerInternals = exports.bc01CommandSequencerInternals = {
178
- bc401Checksum,
179
- buildCommand,
180
- buildResetCommand,
181
- buildRequestVersionCommand,
182
- buildSetTimeCommand
129
+ bc401Checksum: _bc01CommandBuilders.bc401Checksum,
130
+ buildCommand: _bc01CommandBuilders.buildCommand,
131
+ buildResetCommand: _bc01CommandBuilders.buildResetCommand,
132
+ buildRequestVersionCommand: _bc01CommandBuilders.buildRequestVersionCommand,
133
+ buildSetTimeCommand: _bc01CommandBuilders.buildSetTimeCommand
183
134
  };
184
135
  //# sourceMappingURL=bc01-command-sequencer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_hexToByte","require","OP_RESET","OP_REQUEST_VERSION","OP_SET_TIME","OP_REQUEST_COUNT","OP_REQUEST_RECORDS","ACK_LAST_OF_SET","REQUEST_ALL","RX","ACK","VERSION_REPLY","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","STORED_RECORD_PAGED","FINISH","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","asHex","byte","toString","padStart","bc401Checksum","bytes","reduce","acc","buildCommand","opcode","arg","chk","buildResetCommand","buildRequestVersionCommand","buildSetTimeCommand","now","yy","getFullYear","mo","getMonth","dd","getDate","hh","getHours","mi","getMinutes","ss","getSeconds","ms","getMilliseconds","msLo","msHi","payload","Bc01CommandSequencer","isDone","constructor","params","clock","Date","initialCommands","commandFor","nextCommand","frame","length","undefined","hexToByte","answerStoredRecord","flags","write","map","withoutResponse","exports","bc01CommandSequencerInternals"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-sequencer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_hexToByte","require","_bc01CommandBuilders","Bc01CommandSequencer","isDone","standardPage","quantitativePage","constructor","params","clock","Date","initialCommands","commandFor","buildResetCommand","RESET_DELAY_MS","nextCommand","frame","length","undefined","opcode","hexToByte","RX","ACK","buildRequestVersionCommand","VERSION_REPLY","buildSetTimeCommand","TIME_SYNC_ACK","buildCommand","OP_REQUEST_COUNT","REQUEST_ALL","COUNT_REPLY","OP_REQUEST_RECORDS","STORED_RECORD_URS","STORED_RECORD_PAGED","answerStoredRecord","STORED_QUANTITATIVE","STORED_QUANTITATIVE_PAGED","answerQuantitativeRecord","FINISH","flags","RECORD_FLAGS_INDEX","finishStoredRecords","page","RETRY_RECORD_GROUP","RECORD_LAST_OF_SET_BIT","REQUEST_NEXT_RECORD_GROUP","OP_REQUEST_QUANTITATIVE_RECORDS","ACK_LAST_OF_SET","buildDeleteCommand","FINAL_RECORD_DELAY_MS","bytes","delayBeforeWriteMs","write","map","asHex","exports","bc01CommandSequencerInternals","bc401Checksum"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ var _hexToByte = require("../../../utils/hex-to-byte.js");
10
10
  var _btManagedDevice = require("../bt-managed-device.js");
11
11
  var _bc01CommandSequencer = require("./bc01-command-sequencer.js");
12
12
  var _bc01FrameParser = require("./bc01-frame-parser.js");
13
+ var _bc01FrameReader = require("./bc01.frame-reader.js");
13
14
  var _bc01MainServices = require("./bc01.main-services.js");
14
15
  /** Minimum bytes a complete frame carries, keyed by its opening opcode. */
15
16
  const BC01_FRAME_MIN_LENGTH = {
@@ -45,6 +46,7 @@ const BC01_FRAME_MIN_LENGTH = {
45
46
  class BC01Device extends _btManagedDevice.BTManagedDevice {
46
47
  onStreamStart = () => {};
47
48
  mainServices = _bc01MainServices.bc01MainServices;
49
+ frameReader = new _bc01FrameReader.Bc01FrameReader();
48
50
 
49
51
  /**
50
52
  * 90 s covers the maximum firmware-side reagent-pad settle time on a URS-7
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","_hexToByte","_btManagedDevice","_bc01CommandSequencer","_bc01FrameParser","_bc01MainServices","BC01_FRAME_MIN_LENGTH","BC01Device","BTManagedDevice","onStreamStart","mainServices","bc01MainServices","stuckDataTimeout","constructor","device","params","createCommandSequencer","Bc01CommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onRefused","reason","onError","Error","validatePackage","pkg","length","opcode","hexToByte","minLength","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","CaseType","OTHER","handleSuccessResult","parsed","parseBc01Record","measuredValues","BC01_ANALYTE_ORDER","reduce","acc","analyte","value","values","Object","keys","reading","RESULT","measurementTypeKey","MeasurementTypeKey","uricAcid","urineValues","recordedAt","timestamp","onResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","_hexToByte","_btManagedDevice","_bc01CommandSequencer","_bc01FrameParser","_bc01FrameReader","_bc01MainServices","BC01_FRAME_MIN_LENGTH","BC01Device","BTManagedDevice","onStreamStart","mainServices","bc01MainServices","frameReader","Bc01FrameReader","stuckDataTimeout","constructor","device","params","createCommandSequencer","Bc01CommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onRefused","reason","onError","Error","validatePackage","pkg","length","opcode","hexToByte","minLength","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","CaseType","OTHER","handleSuccessResult","parsed","parseBc01Record","measuredValues","BC01_ANALYTE_ORDER","reduce","acc","analyte","value","values","Object","keys","reading","RESULT","measurementTypeKey","MeasurementTypeKey","uricAcid","urineValues","recordedAt","timestamp","onResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAQA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AAEA;AACA,MAAMQ,qBAA6C,GAAG;EACpD,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,EAAE,CAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,SAASC,gCAAe,CAAyB;EAC5DC,aAAa,GAAeA,CAAA,KAAM,CAAC,CAAC;EAEpCC,YAAY,GAAeC,kCAAgB;EAC3CC,WAAW,GAAoB,IAAIC,gCAAe,CAAC,CAAC;;EAE9D;AACF;AACA;AACA;AACA;AACA;EACYC,gBAAgB,GAAG,MAAM;EAEnCC,WAAWA,CAACC,MAAc,EAAEC,MAAkD,EAAE;IAC9E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;;IAErB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIC,0CAAoB,CAAC;MACvBC,KAAK,EAAE;QACLC,WAAW,EAAEV,kCAAgB,CAAC,CAAC,CAAC,CAAEW,IAAI;QACtCC,kBAAkB,EAAEZ,kCAAgB,CAAC,CAAC,CAAC,CAAEa,SAAS,CAAEF;MACtD,CAAC;MACDG,SAAS,EAAGC,MAAM,IAChB,IAAI,CAACC,OAAO,GAAG,IAAIC,KAAK,CAAC,oBAAoBF,MAAM,EAAE,CAAC;IAC1D,CAAC,CAAC;EACN;;EAEA;AACF;AACA;AACA;AACA;AACA;EACYG,eAAe,GAAgCC,GAAG,IAAK;IAC/D,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EAACH,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAMI,SAAS,GAAG5B,qBAAqB,CAAC0B,MAAM,CAAC;IAE/C,IAAIE,SAAS,KAAKC,SAAS,EAAE;MAC3B,OAAO,KAAK;IACd;IAEA,OAAOL,GAAG,CAACC,MAAM,IAAIG,SAAS;EAChC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYE,qBAAqB,GAC7BC,IAEC,IAGE;IACH,IAAIA,IAAI,CAACC,KAAK,EAAE;MACd,IAAI,CAACC,eAAe,CAACF,IAAI,CAACC,KAAK,CAAC;IAClC;IAEA,OAAO;MACL,GAAGD,IAAI;MACPG,WAAW,EAAE;QAAE,GAAGH,IAAI,CAACG,WAAW;QAAEC,QAAQ,EAAEC,kBAAQ,CAACC;MAAM;IAC/D,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;EACYC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;EAEQL,eAAeA,CAACD,KAAwB,EAAQ;IACtD,MAAMO,MAAM,GAAG,IAAAC,gCAAe,EAACR,KAAK,CAAC;IAErC,IAAI,CAACO,MAAM,EAAE;MACX;IACF;IAEA,MAAME,cAAc,GAAGC,mCAAkB,CAACC,MAAM,CAE9C,CAACC,GAAG,EAAEC,OAAO,KAAK;MAClB,MAAMC,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAACF,OAAO,CAAC;MAEpC,IAAIC,KAAK,KAAKjB,SAAS,EAAE;QACvBe,GAAG,CAACC,OAAO,CAAC,GAAGC,KAAK;MACtB;MAEA,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAII,MAAM,CAACC,IAAI,CAACR,cAAc,CAAC,CAAChB,MAAM,KAAK,CAAC,EAAE;MAC5C,IAAI,CAACJ,OAAO,GAAG,sDAAsD,CAAC;MAEtE;IACF;IAEA,MAAM6B,OAAO,GAAG;MACdf,QAAQ,EAAEC,kBAAQ,CAACe,MAAM;MACzBC,kBAAkB,EAAEC,wBAAkB,CAACC,QAAQ;MAC/CC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAEjB,MAAM,CAACkB,SAAS;MAC5B,GAAGhB;IACL,CAEC;IAED,IAAI,CAACiB,QAAQ,GAAGR,OAAO,CAAC;EAC1B;AACF;AAACS,OAAA,CAAA1D,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bc01FrameLengths = exports.Bc01FrameReader = void 0;
7
+ var _frameReadStatus = require("../../../types/frame-read-status.js");
8
+ /** Fixed BC401 reply lengths, keyed by the first byte of each PHMS frame. */
9
+ const BC01_FRAME_LENGTHS = exports.bc01FrameLengths = {
10
+ f0: 2,
11
+ f2: 8,
12
+ f3: 3,
13
+ e0: 7,
14
+ e1: 16,
15
+ e2: 16,
16
+ e3: 3,
17
+ e4: 36,
18
+ e5: 36
19
+ };
20
+ const lower = byte => (byte ?? "").toLowerCase();
21
+
22
+ /**
23
+ * Isolates the fixed-length frames used by Contec BC401BT.
24
+ *
25
+ * PHMS keeps a byte queue and repeatedly consumes complete replies. BLE notifications are
26
+ * not frame boundaries, so the SDK must retain partial replies and drain multiple replies
27
+ * when Android combines them into one notification.
28
+ */
29
+ class Bc01FrameReader {
30
+ readFrame(buffer) {
31
+ const start = buffer.findIndex(byte => Object.prototype.hasOwnProperty.call(BC01_FRAME_LENGTHS, lower(byte)));
32
+ if (start === -1) {
33
+ return {
34
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
35
+ consumedBytes: buffer.length
36
+ };
37
+ }
38
+ const opcode = lower(buffer[start]);
39
+ const length = BC01_FRAME_LENGTHS[opcode];
40
+ if (length === undefined) {
41
+ return {
42
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
43
+ consumedBytes: start + 1
44
+ };
45
+ }
46
+ if (start + length > buffer.length) {
47
+ return {
48
+ status: _frameReadStatus.FrameReadStatus.INCOMPLETE,
49
+ consumedBytes: start
50
+ };
51
+ }
52
+ return {
53
+ status: _frameReadStatus.FrameReadStatus.COMPLETE,
54
+ consumedBytes: start + length,
55
+ frame: buffer.slice(start, start + length)
56
+ };
57
+ }
58
+ }
59
+ exports.Bc01FrameReader = Bc01FrameReader;
60
+ //# sourceMappingURL=bc01.frame-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_frameReadStatus","require","BC01_FRAME_LENGTHS","exports","bc01FrameLengths","f0","f2","f3","e0","e1","e2","e3","e4","e5","lower","byte","toLowerCase","Bc01FrameReader","readFrame","buffer","start","findIndex","Object","prototype","hasOwnProperty","call","status","FrameReadStatus","INCOMPLETE","consumedBytes","length","opcode","undefined","COMPLETE","frame","slice"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.frame-reader.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAGA;AACA,MAAMC,kBAAoD,GAAAC,OAAA,CAAAC,gBAAA,GAAG;EAC3DC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,KAAK,GAAIC,IAAwB,IAAa,CAACA,IAAI,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,CAAwB;EACpCC,SAASA,CAACC,MAAyB,EAAmB;IAC3D,MAAMC,KAAK,GAAGD,MAAM,CAACE,SAAS,CAAEN,IAAI,IAClCO,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACvB,kBAAkB,EAAEY,KAAK,CAACC,IAAI,CAAC,CACtE,CAAC;IAED,IAAIK,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,OAAO;QACLM,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAEV,MAAM,CAACW;MACxB,CAAC;IACH;IAEA,MAAMC,MAAM,GAAGjB,KAAK,CAACK,MAAM,CAACC,KAAK,CAAC,CAAC;IACnC,MAAMU,MAAM,GAAG5B,kBAAkB,CAAC6B,MAAM,CAAC;IAEzC,IAAID,MAAM,KAAKE,SAAS,EAAE;MACxB,OAAO;QACLN,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAET,KAAK,GAAG;MACzB,CAAC;IACH;IAEA,IAAIA,KAAK,GAAGU,MAAM,GAAGX,MAAM,CAACW,MAAM,EAAE;MAClC,OAAO;QACLJ,MAAM,EAAEC,gCAAe,CAACC,UAAU;QAClCC,aAAa,EAAET;MACjB,CAAC;IACH;IAEA,OAAO;MACLM,MAAM,EAAEC,gCAAe,CAACM,QAAQ;MAChCJ,aAAa,EAAET,KAAK,GAAGU,MAAM;MAC7BI,KAAK,EAAEf,MAAM,CAACgB,KAAK,CAACf,KAAK,EAAEA,KAAK,GAAGU,MAAM;IAC3C,CAAC;EACH;AACF;AAAC3B,OAAA,CAAAc,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BloodGlucoseDevice = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _caseType = require("../../../types/case-type.js");
9
+ var _integratedDevices = require("../../../types/integrated-devices.js");
10
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
11
+ var _btManagedDevice = require("../bt-managed-device.js");
12
+ const LEGACY_SERVICE = "00001523-1212-efde-1523-785feabcd123";
13
+ const LEGACY_CHARACTERISTIC = "00001524-1212-efde-1523-785feabcd123";
14
+ const BGM_SERVICE = "0003cdd0-0000-1000-8000-00805f9b0131";
15
+ const BGM_CHARACTERISTIC = "0003cdd1-0000-1000-8000-00805f9b0131";
16
+ const GLUCOSE_REQUEST = "512600000000a31a";
17
+ const servicesFor = device => {
18
+ const isBgm = device === _integratedDevices.IntegratedDevices.BGM;
19
+ return [{
20
+ uuid: isBgm ? BGM_SERVICE : LEGACY_SERVICE,
21
+ monitorUuids: [{
22
+ uuid: isBgm ? BGM_CHARACTERISTIC : LEGACY_CHARACTERISTIC,
23
+ parsingModel: {
24
+ caseValuePosition: [isBgm ? 9 : 1],
25
+ cases: [...(isBgm ? ["00", "0b", "10", "11", "18", "22", "33", "55"] : ["46", ...(device === _integratedDevices.IntegratedDevices.GLUCOCHECK ? ["50"] : [])]).map(caseValue => ({
26
+ caseType: _caseType.CaseType.OTHER,
27
+ caseValue,
28
+ parseDefinitions: []
29
+ })), {
30
+ measurementTypeKey: _core.MeasurementTypeKey.bloodGlucose,
31
+ caseType: _caseType.CaseType.RESULT,
32
+ caseValue: isBgm ? "44" : "26",
33
+ parseDefinitions: [{
34
+ name: "bloodGlucose",
35
+ parseType: "custom",
36
+ byteIndexes: isBgm ? [10, 11] : [3, 2],
37
+ parseReference: 16,
38
+ customParserDefinition: value => {
39
+ if (isBgm) {
40
+ return (0, _hexToByte.hexToByte)(value.slice(0, 2)) * 100 + (0, _hexToByte.hexToByte)(value.slice(2, 4));
41
+ }
42
+ const raw = parseInt(value, 16);
43
+ return device === _integratedDevices.IntegratedDevices.TAIDOC_GLUCOSE ? Number((raw * 18).toFixed(2)) : raw;
44
+ }
45
+ }]
46
+ }]
47
+ }
48
+ }],
49
+ ...(isBgm ? {} : {
50
+ writeUuid: {
51
+ uuid: LEGACY_CHARACTERISTIC,
52
+ mainCommandUuid: GLUCOSE_REQUEST
53
+ }
54
+ })
55
+ }];
56
+ };
57
+
58
+ /** Decodes the legacy TaiDoc, GlucoCheck Gold and TeleBGM glucose protocols. */
59
+ class BloodGlucoseDevice extends _btManagedDevice.BTManagedDevice {
60
+ stuckDataTimeout = 60_000;
61
+ constructor(device, params) {
62
+ super(device, params);
63
+ this.mainServices = servicesFor(params.deviceName);
64
+ }
65
+ validatePackage = pkg => pkg.length >= (this.deviceData.name === _integratedDevices.IntegratedDevices.BGM ? 12 : 8);
66
+ handleSuccessResult(result) {
67
+ if (result.caseType !== _caseType.CaseType.RESULT || result.bloodGlucose === 0) {
68
+ return;
69
+ }
70
+ this.onResult?.(result);
71
+ }
72
+ }
73
+ exports.BloodGlucoseDevice = BloodGlucoseDevice;
74
+ //# sourceMappingURL=blood-glucose.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_caseType","_integratedDevices","_hexToByte","_btManagedDevice","LEGACY_SERVICE","LEGACY_CHARACTERISTIC","BGM_SERVICE","BGM_CHARACTERISTIC","GLUCOSE_REQUEST","servicesFor","device","isBgm","IntegratedDevices","BGM","uuid","monitorUuids","parsingModel","caseValuePosition","cases","GLUCOCHECK","map","caseValue","caseType","CaseType","OTHER","parseDefinitions","measurementTypeKey","MeasurementTypeKey","bloodGlucose","RESULT","name","parseType","byteIndexes","parseReference","customParserDefinition","value","hexToByte","slice","raw","parseInt","TAIDOC_GLUCOSE","Number","toFixed","writeUuid","mainCommandUuid","BloodGlucoseDevice","BTManagedDevice","stuckDataTimeout","constructor","params","mainServices","deviceName","validatePackage","pkg","length","deviceData","handleSuccessResult","result","onResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/blood-glucose/blood-glucose.device.ts"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ const BOSO_MEDICUS_NAME_MATCH = exports.BOSO_MEDICUS_NAME_MATCH = /^boso medicus
19
19
  * the profile's user/status bytes without inventing a boso-specific wire format.
20
20
  */
21
21
  const bosoMedicusMonitor = params => (0, _standardGattDevices.standardBloodPressureDevice)({
22
- id: params.id,
22
+ id: params.id ?? "boso-medicus-system",
23
23
  nameMatch: params.nameMatch ?? BOSO_MEDICUS_NAME_MATCH,
24
24
  ...(params.stuckDataTimeoutMs === undefined ? {} : {
25
25
  stuckDataTimeoutMs: params.stuckDataTimeoutMs
@@ -1 +1 @@
1
- {"version":3,"names":["_standardGattDevices","require","BOSO_MEDICUS_NAME_MATCH","exports","bosoMedicusMonitor","params","standardBloodPressureDevice","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/boso/boso.medicus.ts"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,6BAA6B;AAc7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,kBAAkB,GACtBC,MAAyB,IAEzB,IAAAC,gDAA2B,EAAC;EAC1BC,EAAE,EAAEF,MAAM,CAACE,EAAE;EACbC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAIN,uBAAuB;EACtD,IAAIG,MAAM,CAACI,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEJ,MAAM,CAACI;EAAmB,CAAC;AACvD,CAAC,CAAC;AAACN,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_standardGattDevices","require","BOSO_MEDICUS_NAME_MATCH","exports","bosoMedicusMonitor","params","standardBloodPressureDevice","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/boso/boso.medicus.ts"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,6BAA6B;AAc7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,kBAAkB,GACtBC,MAAyB,IAEzB,IAAAC,gDAA2B,EAAC;EAC1BC,EAAE,EAAEF,MAAM,CAACE,EAAE,IAAI,qBAAqB;EACtCC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAIN,uBAAuB;EACtD,IAAIG,MAAM,CAACI,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEJ,MAAM,CAACI;EAAmB,CAAC;AACvD,CAAC,CAAC;AAACN,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -83,6 +83,9 @@ class BTCommandWriter {
83
83
  * for - worse than sending nothing, because it would be answered.
84
84
  */
85
85
  writeCommand = async command => {
86
+ if (command.delayBeforeWriteMs && command.delayBeforeWriteMs > 0) {
87
+ await new Promise(resolve => setTimeout(resolve, command.delayBeforeWriteMs));
88
+ }
86
89
  for (const chunk of this.chunksOf(command.frame)) {
87
90
  const written = await this.writeChunk(command, chunk);
88
91
  if (!written) {
@@ -1 +1 @@
1
- {"version":3,"names":["_sLog","require","_sentryLogger","_hexToBase","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","hexToBase64","join","sentryLogger","Error","message","deviceName","name","slog","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sLog","require","_sentryLogger","_hexToBase","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","hexToBase64","join","sentryLogger","Error","message","deviceName","name","slog","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ class BTConnectionHandler {
24
24
  this.callbacks.onStatusChanged?.(_deviceStatus.DeviceStatus.CONNECTED);
25
25
  await this.device.discoverAllServicesAndCharacteristics();
26
26
  this.onDisconnectSubscription = this.device.onDisconnected(this.onDeviceDisconnected);
27
- this.subscribeToAllCharacteristics();
27
+ await this.subscribeToAllCharacteristics();
28
28
  } catch (error) {
29
29
  (0, _sentryLogger.sentryLogger)("error", "BT_MANAGER: Error connecting to device", {
30
30
  error: error instanceof Error ? error.message : error,