@ovok/native 1.10.9 → 1.10.10

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 (450) hide show
  1. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +16 -1
  2. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  3. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-aoj-variants.js +137 -0
  4. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-aoj-variants.js.map +1 -0
  5. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +15 -1
  6. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  7. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js +3 -2
  8. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
  9. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js +227 -0
  10. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js.map +1 -0
  11. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-joytech-variants.js +95 -0
  12. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-joytech-variants.js.map +1 -0
  13. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-jumper-variants.js +149 -0
  14. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-jumper-variants.js.map +1 -0
  15. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-standard-variants.js +1001 -0
  16. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-standard-variants.js.map +1 -0
  17. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-transtek-variants.js +1093 -0
  18. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-transtek-variants.js.map +1 -0
  19. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-variants.js +312 -0
  20. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
  21. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +75 -9
  22. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +2 -1
  24. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/constants/aoj-device-variants.js +112 -0
  26. package/lib/commonjs/modules/bt-management/constants/aoj-device-variants.js.map +1 -0
  27. package/lib/commonjs/modules/bt-management/constants/device-variants.js +252 -0
  28. package/lib/commonjs/modules/bt-management/constants/device-variants.js.map +1 -0
  29. package/lib/commonjs/modules/bt-management/constants/famidoc-device-variants.js +190 -0
  30. package/lib/commonjs/modules/bt-management/constants/famidoc-device-variants.js.map +1 -0
  31. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +9 -1
  32. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/constants/joytech-device-variants.js +80 -0
  34. package/lib/commonjs/modules/bt-management/constants/joytech-device-variants.js.map +1 -0
  35. package/lib/commonjs/modules/bt-management/constants/jumper-device-variants.js +115 -0
  36. package/lib/commonjs/modules/bt-management/constants/jumper-device-variants.js.map +1 -0
  37. package/lib/commonjs/modules/bt-management/constants/standard-device-variants.js +802 -0
  38. package/lib/commonjs/modules/bt-management/constants/standard-device-variants.js.map +1 -0
  39. package/lib/commonjs/modules/bt-management/constants/transtek-device-variants.js +890 -0
  40. package/lib/commonjs/modules/bt-management/constants/transtek-device-variants.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/index.js +20 -0
  42. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +15 -0
  44. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +7 -1
  46. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/device-classes.js +22 -1
  48. package/lib/commonjs/modules/bt-management/services/device-classes.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/services/device-secrets.js +68 -0
  50. package/lib/commonjs/modules/bt-management/services/device-secrets.js.map +1 -0
  51. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-70b.device.js +41 -0
  52. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-70b.device.js.map +1 -0
  53. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.device.js +45 -0
  54. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.device.js.map +1 -0
  55. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js +140 -0
  56. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js.map +1 -0
  57. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js +138 -0
  58. package/lib/commonjs/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +24 -1
  60. package/lib/commonjs/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
  61. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +27 -1
  62. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  63. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +4 -4
  64. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  65. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +12 -1
  66. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  67. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +12 -4
  68. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  69. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.device.js +49 -0
  70. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.device.js.map +1 -0
  71. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.protocol.js +163 -0
  72. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.protocol.js.map +1 -0
  73. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js +95 -0
  74. package/lib/commonjs/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js.map +1 -0
  75. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.device.js +40 -0
  76. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.device.js.map +1 -0
  77. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.protocol.js +162 -0
  78. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.protocol.js.map +1 -0
  79. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.sequencer.js +63 -0
  80. package/lib/commonjs/modules/bt-management/services/devices/joytech/joytech.sequencer.js.map +1 -0
  81. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.device.js +56 -0
  82. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.device.js.map +1 -0
  83. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.protocol.js +67 -0
  84. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.protocol.js.map +1 -0
  85. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.sequencer.js +60 -0
  86. package/lib/commonjs/modules/bt-management/services/devices/jumper/jumper.sequencer.js.map +1 -0
  87. package/lib/commonjs/modules/bt-management/services/devices/live-oximeter.sequencer.js +85 -0
  88. package/lib/commonjs/modules/bt-management/services/devices/live-oximeter.sequencer.js.map +1 -0
  89. package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js +22 -8
  90. package/lib/commonjs/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -1
  91. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +13 -2
  92. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  93. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +153 -0
  94. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -0
  95. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.device.js +71 -0
  96. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.device.js.map +1 -0
  97. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.protocol.js +112 -0
  98. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.protocol.js.map +1 -0
  99. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.records.js +132 -0
  100. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.records.js.map +1 -0
  101. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js +145 -0
  102. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js.map +1 -0
  103. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.session.js +91 -0
  104. package/lib/commonjs/modules/bt-management/services/devices/transtek/transtek-command.session.js.map +1 -0
  105. package/lib/commonjs/modules/bt-management/types/integrated-devices.js +15 -0
  106. package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
  107. package/lib/commonjs/modules/bt-management/utils/device-title.js +5 -1
  108. package/lib/commonjs/modules/bt-management/utils/device-title.js.map +1 -1
  109. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +16 -1
  110. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  111. package/lib/module/modules/bt-device/constants/supported-device-catalog-aoj-variants.js +135 -0
  112. package/lib/module/modules/bt-device/constants/supported-device-catalog-aoj-variants.js.map +1 -0
  113. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +15 -1
  114. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  115. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js +3 -2
  116. package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
  117. package/lib/module/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js +225 -0
  118. package/lib/module/modules/bt-device/constants/supported-device-catalog-famidoc-variants.js.map +1 -0
  119. package/lib/module/modules/bt-device/constants/supported-device-catalog-joytech-variants.js +93 -0
  120. package/lib/module/modules/bt-device/constants/supported-device-catalog-joytech-variants.js.map +1 -0
  121. package/lib/module/modules/bt-device/constants/supported-device-catalog-jumper-variants.js +147 -0
  122. package/lib/module/modules/bt-device/constants/supported-device-catalog-jumper-variants.js.map +1 -0
  123. package/lib/module/modules/bt-device/constants/supported-device-catalog-standard-variants.js +999 -0
  124. package/lib/module/modules/bt-device/constants/supported-device-catalog-standard-variants.js.map +1 -0
  125. package/lib/module/modules/bt-device/constants/supported-device-catalog-transtek-variants.js +1091 -0
  126. package/lib/module/modules/bt-device/constants/supported-device-catalog-transtek-variants.js.map +1 -0
  127. package/lib/module/modules/bt-device/constants/supported-device-catalog-variants.js +309 -0
  128. package/lib/module/modules/bt-device/constants/supported-device-catalog-variants.js.map +1 -0
  129. package/lib/module/modules/bt-device/constants/supported-devices.js +76 -10
  130. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  131. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +2 -1
  132. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  133. package/lib/module/modules/bt-management/constants/aoj-device-variants.js +110 -0
  134. package/lib/module/modules/bt-management/constants/aoj-device-variants.js.map +1 -0
  135. package/lib/module/modules/bt-management/constants/device-variants.js +249 -0
  136. package/lib/module/modules/bt-management/constants/device-variants.js.map +1 -0
  137. package/lib/module/modules/bt-management/constants/famidoc-device-variants.js +188 -0
  138. package/lib/module/modules/bt-management/constants/famidoc-device-variants.js.map +1 -0
  139. package/lib/module/modules/bt-management/constants/integrated-devices-map.js +9 -1
  140. package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  141. package/lib/module/modules/bt-management/constants/joytech-device-variants.js +78 -0
  142. package/lib/module/modules/bt-management/constants/joytech-device-variants.js.map +1 -0
  143. package/lib/module/modules/bt-management/constants/jumper-device-variants.js +113 -0
  144. package/lib/module/modules/bt-management/constants/jumper-device-variants.js.map +1 -0
  145. package/lib/module/modules/bt-management/constants/standard-device-variants.js +799 -0
  146. package/lib/module/modules/bt-management/constants/standard-device-variants.js.map +1 -0
  147. package/lib/module/modules/bt-management/constants/transtek-device-variants.js +888 -0
  148. package/lib/module/modules/bt-management/constants/transtek-device-variants.js.map +1 -0
  149. package/lib/module/modules/bt-management/index.js +2 -0
  150. package/lib/module/modules/bt-management/index.js.map +1 -1
  151. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +15 -0
  152. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  153. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +7 -1
  154. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  155. package/lib/module/modules/bt-management/services/device-classes.js +22 -1
  156. package/lib/module/modules/bt-management/services/device-classes.js.map +1 -1
  157. package/lib/module/modules/bt-management/services/device-secrets.js +59 -0
  158. package/lib/module/modules/bt-management/services/device-secrets.js.map +1 -0
  159. package/lib/module/modules/bt-management/services/devices/aoj/aoj-70b.device.js +37 -0
  160. package/lib/module/modules/bt-management/services/devices/aoj/aoj-70b.device.js.map +1 -0
  161. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.device.js +41 -0
  162. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.device.js.map +1 -0
  163. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js +123 -0
  164. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.protocol.js.map +1 -0
  165. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js +134 -0
  166. package/lib/module/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.js.map +1 -0
  167. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js +24 -1
  168. package/lib/module/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.js.map +1 -1
  169. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +27 -1
  170. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  171. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +4 -4
  172. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  173. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +12 -1
  174. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  175. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +12 -4
  176. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  177. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.device.js +45 -0
  178. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.device.js.map +1 -0
  179. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.protocol.js +149 -0
  180. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.protocol.js.map +1 -0
  181. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js +91 -0
  182. package/lib/module/modules/bt-management/services/devices/famidoc/famidoc.sequencer.js.map +1 -0
  183. package/lib/module/modules/bt-management/services/devices/joytech/joytech.device.js +36 -0
  184. package/lib/module/modules/bt-management/services/devices/joytech/joytech.device.js.map +1 -0
  185. package/lib/module/modules/bt-management/services/devices/joytech/joytech.protocol.js +150 -0
  186. package/lib/module/modules/bt-management/services/devices/joytech/joytech.protocol.js.map +1 -0
  187. package/lib/module/modules/bt-management/services/devices/joytech/joytech.sequencer.js +60 -0
  188. package/lib/module/modules/bt-management/services/devices/joytech/joytech.sequencer.js.map +1 -0
  189. package/lib/module/modules/bt-management/services/devices/jumper/jumper.device.js +52 -0
  190. package/lib/module/modules/bt-management/services/devices/jumper/jumper.device.js.map +1 -0
  191. package/lib/module/modules/bt-management/services/devices/jumper/jumper.protocol.js +62 -0
  192. package/lib/module/modules/bt-management/services/devices/jumper/jumper.protocol.js.map +1 -0
  193. package/lib/module/modules/bt-management/services/devices/jumper/jumper.sequencer.js +57 -0
  194. package/lib/module/modules/bt-management/services/devices/jumper/jumper.sequencer.js.map +1 -0
  195. package/lib/module/modules/bt-management/services/devices/live-oximeter.sequencer.js +79 -0
  196. package/lib/module/modules/bt-management/services/devices/live-oximeter.sequencer.js.map +1 -0
  197. package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js +22 -8
  198. package/lib/module/modules/bt-management/services/devices/polling-command-sequencer.js.map +1 -1
  199. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +6 -2
  200. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  201. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +149 -0
  202. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -0
  203. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.device.js +67 -0
  204. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.device.js.map +1 -0
  205. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.protocol.js +94 -0
  206. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.protocol.js.map +1 -0
  207. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js +125 -0
  208. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.records.js.map +1 -0
  209. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js +142 -0
  210. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.sequencer.js.map +1 -0
  211. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js +85 -0
  212. package/lib/module/modules/bt-management/services/devices/transtek/transtek-command.session.js.map +1 -0
  213. package/lib/module/modules/bt-management/types/custom-device-definition.js +2 -0
  214. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  215. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  216. package/lib/module/modules/bt-management/types/integrated-devices.js +15 -0
  217. package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
  218. package/lib/module/modules/bt-management/utils/device-title.js +5 -1
  219. package/lib/module/modules/bt-management/utils/device-title.js.map +1 -1
  220. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts +5 -0
  222. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +15 -1
  224. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts +5 -0
  227. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts +5 -0
  229. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts +5 -0
  231. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts +9 -0
  233. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts +5 -0
  235. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts +15 -0
  237. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +8 -0
  239. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/modules/bt-management/constants/aoj-device-variants.d.ts +5 -0
  242. package/lib/typescript/commonjs/src/modules/bt-management/constants/aoj-device-variants.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/src/modules/bt-management/constants/device-variants.d.ts +23 -0
  244. package/lib/typescript/commonjs/src/modules/bt-management/constants/device-variants.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/src/modules/bt-management/constants/famidoc-device-variants.d.ts +5 -0
  246. package/lib/typescript/commonjs/src/modules/bt-management/constants/famidoc-device-variants.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/src/modules/bt-management/constants/joytech-device-variants.d.ts +5 -0
  249. package/lib/typescript/commonjs/src/modules/bt-management/constants/joytech-device-variants.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/src/modules/bt-management/constants/jumper-device-variants.d.ts +5 -0
  251. package/lib/typescript/commonjs/src/modules/bt-management/constants/jumper-device-variants.d.ts.map +1 -0
  252. package/lib/typescript/commonjs/src/modules/bt-management/constants/standard-device-variants.d.ts +10 -0
  253. package/lib/typescript/commonjs/src/modules/bt-management/constants/standard-device-variants.d.ts.map +1 -0
  254. package/lib/typescript/commonjs/src/modules/bt-management/constants/transtek-device-variants.d.ts +10 -0
  255. package/lib/typescript/commonjs/src/modules/bt-management/constants/transtek-device-variants.d.ts.map +1 -0
  256. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +3 -0
  257. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts +21 -0
  261. package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/modules/bt-management/services/device-secrets.d.ts +22 -0
  263. package/lib/typescript/commonjs/src/modules/bt-management/services/device-secrets.d.ts.map +1 -0
  264. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts +17 -0
  265. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts.map +1 -0
  266. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts +16 -0
  267. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts.map +1 -0
  268. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts +54 -0
  269. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts.map +1 -0
  270. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts +36 -0
  271. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts.map +1 -0
  272. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +1 -1
  273. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +3 -0
  275. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +1 -1
  277. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -2
  280. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts +16 -0
  282. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts +56 -0
  284. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts +34 -0
  286. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts +16 -0
  288. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts.map +1 -0
  289. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts +43 -0
  290. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts +23 -0
  292. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts +18 -0
  294. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts +32 -0
  296. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts.map +1 -0
  297. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts +22 -0
  298. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts.map +1 -0
  299. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts +33 -0
  300. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts.map +1 -0
  301. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +4 -2
  302. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -1
  304. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts +7 -0
  306. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -0
  307. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts +21 -0
  308. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts.map +1 -0
  309. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts +51 -0
  310. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts.map +1 -0
  311. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts +33 -0
  312. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts.map +1 -0
  313. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts +49 -0
  314. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts.map +1 -0
  315. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts +39 -0
  316. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts.map +1 -0
  317. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +4 -2
  318. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +2 -1
  320. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-service-spec.d.ts +6 -0
  322. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +5 -0
  324. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +15 -0
  326. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +16 -1
  328. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/bt-management/types/service.type.d.ts +6 -0
  330. package/lib/typescript/commonjs/src/modules/bt-management/types/service.type.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/bt-management/types/write-characteristic.d.ts +2 -0
  332. package/lib/typescript/commonjs/src/modules/bt-management/types/write-characteristic.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts +2 -1
  334. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts.map +1 -1
  335. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  336. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts +5 -0
  337. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-aoj-variants.d.ts.map +1 -0
  338. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +15 -1
  339. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  340. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
  341. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts +5 -0
  342. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-famidoc-variants.d.ts.map +1 -0
  343. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts +5 -0
  344. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-joytech-variants.d.ts.map +1 -0
  345. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts +5 -0
  346. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-jumper-variants.d.ts.map +1 -0
  347. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts +9 -0
  348. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-standard-variants.d.ts.map +1 -0
  349. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts +5 -0
  350. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-transtek-variants.d.ts.map +1 -0
  351. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts +15 -0
  352. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-variants.d.ts.map +1 -0
  353. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +8 -0
  354. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  355. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  356. package/lib/typescript/module/src/modules/bt-management/constants/aoj-device-variants.d.ts +5 -0
  357. package/lib/typescript/module/src/modules/bt-management/constants/aoj-device-variants.d.ts.map +1 -0
  358. package/lib/typescript/module/src/modules/bt-management/constants/device-variants.d.ts +23 -0
  359. package/lib/typescript/module/src/modules/bt-management/constants/device-variants.d.ts.map +1 -0
  360. package/lib/typescript/module/src/modules/bt-management/constants/famidoc-device-variants.d.ts +5 -0
  361. package/lib/typescript/module/src/modules/bt-management/constants/famidoc-device-variants.d.ts.map +1 -0
  362. package/lib/typescript/module/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  363. package/lib/typescript/module/src/modules/bt-management/constants/joytech-device-variants.d.ts +5 -0
  364. package/lib/typescript/module/src/modules/bt-management/constants/joytech-device-variants.d.ts.map +1 -0
  365. package/lib/typescript/module/src/modules/bt-management/constants/jumper-device-variants.d.ts +5 -0
  366. package/lib/typescript/module/src/modules/bt-management/constants/jumper-device-variants.d.ts.map +1 -0
  367. package/lib/typescript/module/src/modules/bt-management/constants/standard-device-variants.d.ts +10 -0
  368. package/lib/typescript/module/src/modules/bt-management/constants/standard-device-variants.d.ts.map +1 -0
  369. package/lib/typescript/module/src/modules/bt-management/constants/transtek-device-variants.d.ts +10 -0
  370. package/lib/typescript/module/src/modules/bt-management/constants/transtek-device-variants.d.ts.map +1 -0
  371. package/lib/typescript/module/src/modules/bt-management/index.d.ts +3 -0
  372. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  373. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  374. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  375. package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts +21 -0
  376. package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
  377. package/lib/typescript/module/src/modules/bt-management/services/device-secrets.d.ts +22 -0
  378. package/lib/typescript/module/src/modules/bt-management/services/device-secrets.d.ts.map +1 -0
  379. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts +17 -0
  380. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-70b.device.d.ts.map +1 -0
  381. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts +16 -0
  382. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.device.d.ts.map +1 -0
  383. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts +54 -0
  384. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.protocol.d.ts.map +1 -0
  385. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts +36 -0
  386. package/lib/typescript/module/src/modules/bt-management/services/devices/aoj/aoj-bp.sequencer.d.ts.map +1 -0
  387. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts +1 -1
  388. package/lib/typescript/module/src/modules/bt-management/services/devices/blood-glucose/blood-glucose.device.d.ts.map +1 -1
  389. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +3 -0
  390. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  391. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +1 -1
  392. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  393. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  394. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +3 -2
  395. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  396. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts +16 -0
  397. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.device.d.ts.map +1 -0
  398. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts +56 -0
  399. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.protocol.d.ts.map +1 -0
  400. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts +34 -0
  401. package/lib/typescript/module/src/modules/bt-management/services/devices/famidoc/famidoc.sequencer.d.ts.map +1 -0
  402. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts +16 -0
  403. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.device.d.ts.map +1 -0
  404. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts +43 -0
  405. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.protocol.d.ts.map +1 -0
  406. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts +23 -0
  407. package/lib/typescript/module/src/modules/bt-management/services/devices/joytech/joytech.sequencer.d.ts.map +1 -0
  408. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts +18 -0
  409. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.device.d.ts.map +1 -0
  410. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts +32 -0
  411. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.protocol.d.ts.map +1 -0
  412. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts +22 -0
  413. package/lib/typescript/module/src/modules/bt-management/services/devices/jumper/jumper.sequencer.d.ts.map +1 -0
  414. package/lib/typescript/module/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts +33 -0
  415. package/lib/typescript/module/src/modules/bt-management/services/devices/live-oximeter.sequencer.d.ts.map +1 -0
  416. package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts +4 -2
  417. package/lib/typescript/module/src/modules/bt-management/services/devices/polling-command-sequencer.d.ts.map +1 -1
  418. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +2 -1
  419. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  420. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts +7 -0
  421. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -0
  422. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts +21 -0
  423. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.device.d.ts.map +1 -0
  424. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts +51 -0
  425. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.protocol.d.ts.map +1 -0
  426. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts +33 -0
  427. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.records.d.ts.map +1 -0
  428. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts +49 -0
  429. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.sequencer.d.ts.map +1 -0
  430. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts +39 -0
  431. package/lib/typescript/module/src/modules/bt-management/services/devices/transtek/transtek-command.session.d.ts.map +1 -0
  432. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +4 -2
  433. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  434. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +2 -1
  435. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  436. package/lib/typescript/module/src/modules/bt-management/types/custom-service-spec.d.ts +6 -0
  437. package/lib/typescript/module/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -1
  438. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +5 -0
  439. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  440. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +15 -0
  441. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  442. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +16 -1
  443. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  444. package/lib/typescript/module/src/modules/bt-management/types/service.type.d.ts +6 -0
  445. package/lib/typescript/module/src/modules/bt-management/types/service.type.d.ts.map +1 -1
  446. package/lib/typescript/module/src/modules/bt-management/types/write-characteristic.d.ts +2 -0
  447. package/lib/typescript/module/src/modules/bt-management/types/write-characteristic.d.ts.map +1 -1
  448. package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts +2 -1
  449. package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts.map +1 -1
  450. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_standardGattProfile","pulseAfterMeanPressure","fields","littleEndian","minLengthBytes","pulseAfterTimestamp","standardBloodPressureDevice","params","declareProfile","decorateReading","reading","frame","recordOffset","decorated","decorateBloodPressureReading","service","characteristic","measurementTypeKey","MeasurementTypeKey","bloodPressure","selectors","optionalFields","exports","standardThermometerDevice","temperature","fieldsBySelector","scale","offset","decimals","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","Array","from","length","_","flags","toString","padStart","Object","fromEntries","selector","standardPulseOximeterDevice","bloodOxygenPulseRate","standardHeartRateDevice","heartRate","filter","map","name","byteIndexes","encoding","unit","byteOrder"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_standardGattGlucose","_standardGattProfile","pulseAfterMeanPressure","fields","littleEndian","minLengthBytes","pulseAfterTimestamp","standardBloodPressureDevice","params","declareProfile","decorateReading","reading","frame","recordOffset","decorated","decorateBloodPressureReading","service","characteristic","measurementTypeKey","MeasurementTypeKey","bloodPressure","selectors","optionalFields","exports","standardThermometerDevice","temperature","fieldsBySelector","scale","offset","decimals","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","Array","from","length","_","flags","toString","padStart","Object","fromEntries","selector","standardPulseOximeterDevice","bloodOxygenPulseRate","standardHeartRateDevice","heartRate","filter","map","name","byteIndexes","encoding","unit","byteOrder"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.standardGlucoseDevice = exports.recordedAtFromGlucoseFrame = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _defineCustomDevice = require("../../custom/define-custom-device.js");
9
+ var _standardGattProfile = require("./standard-gatt.profile.js");
10
+ /**
11
+ * Glucose Service 0x1808: Glucose Measurement 0x2A18 and the Record Access Control Point
12
+ * 0x2A52.
13
+ *
14
+ * A glucose meter does not push its readings. The collector enables indications on the
15
+ * control point, writes "report all stored records" (`01 01`) once, and the meter answers
16
+ * with one Glucose Measurement per stored record followed by a control-point response
17
+ * (`06 00 01 xx`). Every record is reported; the SDK's stable result identity keeps a
18
+ * record seen on an earlier connection from becoming a second reading.
19
+ *
20
+ * Glucose Measurement layout: flags, sequence number (2), base time (7), time offset (2,
21
+ * flag bit 0), concentration SFLOAT (2) and type/sample-location (1) (bit 1), sensor status
22
+ * (2, bit 3). Bit 2 picks the unit: kg/L, or mol/L. Both are converted to mg/dL.
23
+ */
24
+ const MG_PER_DL_PER_KG_PER_L = 100_000;
25
+
26
+ /** One mol/L of glucose (180.16 g/mol) is 18,016 mg/dL. */
27
+ const MG_PER_DL_PER_MOL_PER_L = 18_016;
28
+ const FLAG_TIME_OFFSET = 0x01;
29
+ const FLAG_CONCENTRATION = 0x02;
30
+ const FLAG_MOL_PER_L = 0x04;
31
+ const BASE_TIME_INDEX = 3;
32
+ const TIME_OFFSET_INDEX = 10;
33
+
34
+ /** Type 0xA and sample location 0x4 both mean a control-solution test, not a patient sample. */
35
+ const CONTROL_SOLUTION_TYPE = 0x0a;
36
+ const CONTROL_SOLUTION_LOCATION = 0x04;
37
+ const REPORT_ALL_STORED_RECORDS = "0101";
38
+ const concentrationIndex = flags => flags & FLAG_TIME_OFFSET ? TIME_OFFSET_INDEX + 2 : TIME_OFFSET_INDEX;
39
+ const selector = flags => flags.toString(16).padStart(2, "0");
40
+
41
+ /** Bits 5-7 are reserved; a meter that sets one still sends a readable record. */
42
+ const ALL_FLAGS = Array.from({
43
+ length: 256
44
+ }, (_, flags) => flags);
45
+ const glucoseField = flags => {
46
+ const index = concentrationIndex(flags);
47
+ return {
48
+ ...(0, _standardGattProfile.littleEndian)("bloodGlucose", [index, index + 1], "mg/dL", "sfloat"),
49
+ scale: flags & FLAG_MOL_PER_L ? MG_PER_DL_PER_MOL_PER_L : MG_PER_DL_PER_KG_PER_L,
50
+ decimals: 0
51
+ };
52
+ };
53
+ const byte = (frame, index) => {
54
+ const value = Number.parseInt(frame[index] ?? "", 16);
55
+ return Number.isInteger(value) ? value : undefined;
56
+ };
57
+
58
+ /** The record's own time: the base time plus its offset in minutes, read as phone-local. */
59
+ const recordedAtFromGlucoseFrame = frame => {
60
+ const parts = Array.from({
61
+ length: 7
62
+ }, (_, i) => byte(frame, BASE_TIME_INDEX + i));
63
+ const flags = byte(frame, 0);
64
+ if (flags === undefined || parts.some(part => part === undefined)) {
65
+ return undefined;
66
+ }
67
+ const [yearLow, yearHigh, month, day, hour, minute, second] = parts;
68
+ const year = yearLow | yearHigh << 8;
69
+ const recordedAt = new Date(year, month - 1, day, hour, minute, second);
70
+
71
+ // A field out of range (hour 24, minute 60) would roll the Date over into a plausible wrong time.
72
+ if (recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day || recordedAt.getHours() !== hour || recordedAt.getMinutes() !== minute || recordedAt.getSeconds() !== second) {
73
+ return undefined;
74
+ }
75
+ if (flags & FLAG_TIME_OFFSET) {
76
+ const low = byte(frame, TIME_OFFSET_INDEX);
77
+ const high = byte(frame, TIME_OFFSET_INDEX + 1);
78
+ if (low === undefined || high === undefined) {
79
+ return undefined;
80
+ }
81
+ const offsetMinutes = (high << 8 | low) << 16 >> 16;
82
+ recordedAt.setMinutes(recordedAt.getMinutes() + offsetMinutes);
83
+ }
84
+ return recordedAt;
85
+ };
86
+ exports.recordedAtFromGlucoseFrame = recordedAtFromGlucoseFrame;
87
+ const isControlSolution = frame => {
88
+ const flags = byte(frame, 0) ?? 0;
89
+ const typeAndLocation = byte(frame, concentrationIndex(flags) + 2);
90
+ return typeAndLocation !== undefined && ((typeAndLocation & 0x0f) === CONTROL_SOLUTION_TYPE || typeAndLocation >> 4 === CONTROL_SOLUTION_LOCATION);
91
+ };
92
+ const standardGlucoseDevice = params => (0, _defineCustomDevice.defineCustomDevice)({
93
+ id: params.id ?? `standard-${_core.MeasurementTypeKey.bloodGlucose}`,
94
+ nameMatch: params.nameMatch,
95
+ matchByService: params.nameMatch === undefined,
96
+ oneReadingPerConnection: params.oneReadingPerConnection,
97
+ stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? 60_000,
98
+ services: [{
99
+ uuid: (0, _standardGattProfile.sigUuid)("1808"),
100
+ monitor: [{
101
+ uuid: (0, _standardGattProfile.sigUuid)("2a18"),
102
+ frame: {
103
+ minLengthBytes: TIME_OFFSET_INDEX
104
+ },
105
+ caseSelectorBytes: [0],
106
+ cases: ALL_FLAGS.map(flags => flags & FLAG_CONCENTRATION ? {
107
+ selector: selector(flags),
108
+ kind: "result",
109
+ measurementTypeKey: _core.MeasurementTypeKey.bloodGlucose,
110
+ fields: [glucoseField(flags)],
111
+ minLengthBytes: concentrationIndex(flags) + 3
112
+ } : {
113
+ selector: selector(flags),
114
+ kind: "idle",
115
+ description: "A record without a concentration"
116
+ })
117
+ }, {
118
+ uuid: (0, _standardGattProfile.sigUuid)("2a52"),
119
+ frame: {
120
+ minLengthBytes: 2
121
+ },
122
+ caseSelectorBytes: [0],
123
+ cases: [{
124
+ selector: "05",
125
+ kind: "idle",
126
+ description: "Number of stored records"
127
+ }, {
128
+ selector: "06",
129
+ kind: "idle",
130
+ description: "Record access response"
131
+ }]
132
+ }],
133
+ write: {
134
+ uuid: (0, _standardGattProfile.sigUuid)("2a52"),
135
+ commandHex: REPORT_ALL_STORED_RECORDS,
136
+ when: "connect"
137
+ }
138
+ }]
139
+ }, {
140
+ decorateReading: (reading, frame, recordOffset) => {
141
+ if (frame && isControlSolution(frame)) {
142
+ return null;
143
+ }
144
+ const recordedAt = frame ? recordedAtFromGlucoseFrame(frame) : undefined;
145
+ const decorated = recordedAt ? {
146
+ ...reading,
147
+ recordedAt
148
+ } : reading;
149
+ return params.decorateReading ? params.decorateReading(decorated, frame, recordOffset) : decorated;
150
+ }
151
+ });
152
+ exports.standardGlucoseDevice = standardGlucoseDevice;
153
+ //# sourceMappingURL=standard-gatt.glucose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_defineCustomDevice","_standardGattProfile","MG_PER_DL_PER_KG_PER_L","MG_PER_DL_PER_MOL_PER_L","FLAG_TIME_OFFSET","FLAG_CONCENTRATION","FLAG_MOL_PER_L","BASE_TIME_INDEX","TIME_OFFSET_INDEX","CONTROL_SOLUTION_TYPE","CONTROL_SOLUTION_LOCATION","REPORT_ALL_STORED_RECORDS","concentrationIndex","flags","selector","toString","padStart","ALL_FLAGS","Array","from","length","_","glucoseField","index","littleEndian","scale","decimals","byte","frame","value","Number","parseInt","isInteger","undefined","recordedAtFromGlucoseFrame","parts","i","some","part","yearLow","yearHigh","month","day","hour","minute","second","year","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","low","high","offsetMinutes","setMinutes","exports","isControlSolution","typeAndLocation","standardGlucoseDevice","params","defineCustomDevice","id","MeasurementTypeKey","bloodGlucose","nameMatch","matchByService","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","sigUuid","monitor","minLengthBytes","caseSelectorBytes","cases","map","kind","measurementTypeKey","fields","description","write","commandHex","when","decorateReading","reading","recordOffset","decorated"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TranstekCommandDevice = void 0;
7
+ var _integratedDevices = require("../../../types/integrated-devices.js");
8
+ var _deviceSecrets = require("../../device-secrets.js");
9
+ var _btManagedDevice = require("../bt-managed-device.js");
10
+ var _transtekCommandProtocol = require("./transtek-command.protocol.js");
11
+ var _transtekCommandSequencer = require("./transtek-command.sequencer.js");
12
+ /** The sequencer decodes records itself; the declarative parser only has to pass frames on. */
13
+ const passThrough = {
14
+ caseValuePosition: [],
15
+ cases: []
16
+ };
17
+ const service = (uuid, data, optional) => ({
18
+ uuid,
19
+ optional,
20
+ monitorUuids: [{
21
+ uuid: _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.answer,
22
+ parsingModel: passThrough
23
+ }, {
24
+ uuid: data,
25
+ parsingModel: passThrough
26
+ }]
27
+ });
28
+ const SERVICES_BY_KIND = {
29
+ "blood-pressure": [service(_transtekCommandProtocol.TRANSTEK_SERVICES.bloodPressureA2, _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.bloodPressure, true), service(_transtekCommandProtocol.TRANSTEK_SERVICES.bloodPressureA3, _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.bloodPressure, true)],
30
+ scale: [service(_transtekCommandProtocol.TRANSTEK_SERVICES.scaleA2, _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.weightA2, true), service(_transtekCommandProtocol.TRANSTEK_SERVICES.scaleA3, _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.weightA3, true)],
31
+ tracker: [service(_transtekCommandProtocol.TRANSTEK_SERVICES.tracker, _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.tracker, false)]
32
+ };
33
+ const KIND = {
34
+ [_integratedDevices.IntegratedDevices.TRANSTEK_BPM]: "blood-pressure",
35
+ [_integratedDevices.IntegratedDevices.TRANSTEK_SCALE]: "scale",
36
+ [_integratedDevices.IntegratedDevices.TRANSTEK_SCALE_1525]: "scale",
37
+ [_integratedDevices.IntegratedDevices.TRANSTEK_TRACKER]: "tracker"
38
+ };
39
+ const secretKey = device => `transtek-password:${device.id}`;
40
+
41
+ /**
42
+ * Transtek's white-label blood-pressure monitors, scales and 405A0 activity tracker, on the
43
+ * "command" protocol (A2/A3). See `TranstekCommandSequencer` for the session.
44
+ */
45
+ class TranstekCommandDevice extends _btManagedDevice.BTManagedDevice {
46
+ stuckDataTimeout = 60_000;
47
+ onStreamStart = undefined;
48
+ constructor(device, params) {
49
+ super(device, params);
50
+ const kind = KIND[params.deviceName];
51
+ this.mainServices = SERVICES_BY_KIND[kind];
52
+
53
+ // The random-number reply has to be answered at once, so the stored password is loaded early.
54
+ void (0, _deviceSecrets.loadDeviceSecret)(secretKey(device));
55
+ this.createCommandSequencer = () => new _transtekCommandSequencer.TranstekCommandSequencer({
56
+ kind,
57
+ secretKey: secretKey(device),
58
+ heightInCentimetres: params.deviceName === _integratedDevices.IntegratedDevices.TRANSTEK_SCALE_1525,
59
+ onResult: result => this.onResult?.(result),
60
+ onError: error => this.onError?.(error)
61
+ });
62
+ }
63
+
64
+ /** No framing: every notification is one whole message. */
65
+ validatePackage = () => true;
66
+ handleSuccessResult() {
67
+ return;
68
+ }
69
+ }
70
+ exports.TranstekCommandDevice = TranstekCommandDevice;
71
+ //# sourceMappingURL=transtek-command.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_integratedDevices","require","_deviceSecrets","_btManagedDevice","_transtekCommandProtocol","_transtekCommandSequencer","passThrough","caseValuePosition","cases","service","uuid","data","optional","monitorUuids","TRANSTEK_CHARACTERISTICS","answer","parsingModel","SERVICES_BY_KIND","TRANSTEK_SERVICES","bloodPressureA2","bloodPressure","bloodPressureA3","scale","scaleA2","weightA2","scaleA3","weightA3","tracker","KIND","IntegratedDevices","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","secretKey","device","id","TranstekCommandDevice","BTManagedDevice","stuckDataTimeout","onStreamStart","undefined","constructor","params","kind","deviceName","mainServices","loadDeviceSecret","createCommandSequencer","TranstekCommandSequencer","heightInCentimetres","onResult","result","onError","error","validatePackage","handleSuccessResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.device.ts"],"mappings":";;;;;;AAIA,IAAAA,kBAAA,GAAAC,OAAA;AAGA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,wBAAA,GAAAH,OAAA;AAIA,IAAAI,yBAAA,GAAAJ,OAAA;AASA;AACA,MAAMK,WAAW,GAAG;EAAEC,iBAAiB,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAExD,MAAMC,OAAO,GAAGA,CAACC,IAAY,EAAEC,IAAY,EAAEC,QAAiB,MAAgB;EAC5EF,IAAI;EACJE,QAAQ;EACRC,YAAY,EAAE,CACZ;IAAEH,IAAI,EAAEI,iDAAwB,CAACC,MAAM;IAAEC,YAAY,EAAEV;EAAY,CAAC,EACpE;IAAEI,IAAI,EAAEC,IAAI;IAAEK,YAAY,EAAEV;EAAY,CAAC;AAE7C,CAAC,CAAC;AAEF,MAAMW,gBAAkD,GAAG;EACzD,gBAAgB,EAAE,CAChBR,OAAO,CAACS,0CAAiB,CAACC,eAAe,EAAEL,iDAAwB,CAACM,aAAa,EAAE,IAAI,CAAC,EACxFX,OAAO,CAACS,0CAAiB,CAACG,eAAe,EAAEP,iDAAwB,CAACM,aAAa,EAAE,IAAI,CAAC,CACzF;EACDE,KAAK,EAAE,CACLb,OAAO,CAACS,0CAAiB,CAACK,OAAO,EAAET,iDAAwB,CAACU,QAAQ,EAAE,IAAI,CAAC,EAC3Ef,OAAO,CAACS,0CAAiB,CAACO,OAAO,EAAEX,iDAAwB,CAACY,QAAQ,EAAE,IAAI,CAAC,CAC5E;EACDC,OAAO,EAAE,CAAClB,OAAO,CAACS,0CAAiB,CAACS,OAAO,EAAEb,iDAAwB,CAACa,OAAO,EAAE,KAAK,CAAC;AACvF,CAAC;AAED,MAAMC,IAA0C,GAAG;EACjD,CAACC,oCAAiB,CAACC,YAAY,GAAG,gBAAgB;EAClD,CAACD,oCAAiB,CAACE,cAAc,GAAG,OAAO;EAC3C,CAACF,oCAAiB,CAACG,mBAAmB,GAAG,OAAO;EAChD,CAACH,oCAAiB,CAACI,gBAAgB,GAAG;AACxC,CAAC;AAED,MAAMC,SAAS,GAAIC,MAAc,IAAa,qBAAqBA,MAAM,CAACC,EAAE,EAAE;;AAE9E;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,SAASC,gCAAe,CAAiB;EAExDC,gBAAgB,GAAG,MAAM;EACzBC,aAAa,GAAGC,SAAS;EAE5BC,WAAWA,CAACP,MAAc,EAAEQ,MAA0C,EAAE;IAC7E,KAAK,CAACR,MAAM,EAAEQ,MAAM,CAAC;IAErB,MAAMC,IAAI,GAAGhB,IAAI,CAACe,MAAM,CAACE,UAAU,CAAC;IAEpC,IAAI,CAACC,YAAY,GAAG7B,gBAAgB,CAAC2B,IAAI,CAAC;;IAE1C;IACA,KAAK,IAAAG,+BAAgB,EAACb,SAAS,CAACC,MAAM,CAAC,CAAC;IAExC,IAAI,CAACa,sBAAsB,GAAG,MAC5B,IAAIC,kDAAwB,CAAC;MAC3BL,IAAI;MACJV,SAAS,EAAEA,SAAS,CAACC,MAAM,CAAC;MAC5Be,mBAAmB,EACjBP,MAAM,CAACE,UAAU,KAAKhB,oCAAiB,CAACG,mBAAmB;MAC7DmB,QAAQ,EAAGC,MAAM,IACf,IAAI,CAACD,QAAQ,GACXC,MAGF,CAAC;MACHC,OAAO,EAAGC,KAAK,IAAK,IAAI,CAACD,OAAO,GAAGC,KAAK;IAC1C,CAAC,CAAC;EACN;;EAEA;EACUC,eAAe,GAAGA,CAAA,KAAe,IAAI;EAErCC,mBAAmBA,CAAA,EAAS;IACpC;EACF;AACF;AAACC,OAAA,CAAApB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.verificationCommand = exports.u32 = exports.u16 = exports.transtekTime = exports.transtekSeconds = exports.trackerUserDataCommand = exports.trackerConfigurationCommand = exports.setTimeCommand = exports.scaleProfileCommand = exports.readRandom = exports.readPassword = exports.opcode = exports.endSessionCommand = exports.bindUserCommand = exports.accountIdCommand = exports.TRANSTEK_SERVICES = exports.TRANSTEK_CHARACTERISTICS = exports.ANSWER = void 0;
7
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
8
+ var _le32FromHex = require("../../../utils/le-32-from-hex.js");
9
+ /* eslint-disable import/group-exports */
10
+
11
+ /**
12
+ * The Transtek / LifeSense "command" protocol (generations A2 and A3) spoken by Transtek's
13
+ * white-label blood-pressure monitors, scales and the 405A0 activity tracker.
14
+ *
15
+ * Layouts are from MedM Health Diary 3.12.11's `CTranstekCommandDevice` family. There is no
16
+ * framing: one notification is one message, every integer is little-endian, and the device
17
+ * never acknowledges a command - the app moves on by timers.
18
+ *
19
+ * Generation is picked by which primary service the device has: A2 or A3 for each kind.
20
+ */
21
+ const sig16 = assigned => `0000${assigned}-0000-1000-8000-00805f9b34fb`;
22
+ const TRANSTEK_SERVICES = exports.TRANSTEK_SERVICES = {
23
+ bloodPressureA2: sig16("7809"),
24
+ bloodPressureA3: sig16("7889"),
25
+ scaleA2: sig16("7802"),
26
+ scaleA3: sig16("7892"),
27
+ tracker: sig16("7801")
28
+ };
29
+ const TRANSTEK_CHARACTERISTICS = exports.TRANSTEK_CHARACTERISTICS = {
30
+ command: sig16("8a81"),
31
+ answer: sig16("8a82"),
32
+ bloodPressure: sig16("8a91"),
33
+ weightA2: sig16("8a21"),
34
+ weightA3: sig16("8a24"),
35
+ tracker: sig16("8a11")
36
+ };
37
+
38
+ /** Device-to-app opcodes on the answer characteristic. */
39
+ const ANSWER = exports.ANSWER = {
40
+ password: 0xa0,
41
+ random: 0xa1,
42
+ userCount: 0x83,
43
+ userInfo: 0xc0
44
+ };
45
+
46
+ /** Seconds since this local wall-clock instant are how both directions carry time. */
47
+ const EPOCH_UTC_MS = Date.UTC(2010, 0, 1);
48
+ const toHex = bytes => bytes.map(value => (value & 0xff).toString(16).padStart(2, "0"));
49
+ const le32 = value => [value & 0xff, value >>> 8 & 0xff, value >>> 16 & 0xff, value >>> 24 & 0xff];
50
+ const u32 = (frame, index) => (0, _le32FromHex.le32FromHex)([...frame], index) >>> 0;
51
+ exports.u32 = u32;
52
+ const u16 = (frame, index) => (0, _hexToByte.hexToByte)(frame[index] ?? "00") | (0, _hexToByte.hexToByte)(frame[index + 1] ?? "00") << 8;
53
+ exports.u16 = u16;
54
+ const opcode = frame => (0, _hexToByte.hexToByte)(frame[0] ?? "00");
55
+
56
+ /** A device timestamp, read as the phone's local wall-clock time. */
57
+ exports.opcode = opcode;
58
+ const transtekTime = seconds => {
59
+ const wall = new Date(EPOCH_UTC_MS + seconds * 1000);
60
+ return new Date(wall.getUTCFullYear(), wall.getUTCMonth(), wall.getUTCDate(), wall.getUTCHours(), wall.getUTCMinutes(), wall.getUTCSeconds());
61
+ };
62
+
63
+ /** The phone's local wall-clock time as device seconds; the device has no timezone. */
64
+ exports.transtekTime = transtekTime;
65
+ const transtekSeconds = now => Math.floor((Date.UTC(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds()) - EPOCH_UTC_MS) / 1000);
66
+ exports.transtekSeconds = transtekSeconds;
67
+ const readPassword = frame => u32(frame, 1);
68
+ exports.readPassword = readPassword;
69
+ const readRandom = frame => u32(frame, 1);
70
+
71
+ /** `21 FF 00 00 UU`: sent after the pairing password. */
72
+ exports.readRandom = readRandom;
73
+ const accountIdCommand = user => toHex([0x21, 0xff, 0x00, 0x00, user]);
74
+
75
+ /** `20` + (password XOR random): proves this phone holds the device's password. */
76
+ exports.accountIdCommand = accountIdCommand;
77
+ const verificationCommand = (password, random) => toHex([0x20, ...le32((password ^ random) >>> 0)]);
78
+ exports.verificationCommand = verificationCommand;
79
+ const setTimeCommand = now => toHex([0x02, ...le32(transtekSeconds(now))]);
80
+
81
+ /** `22`: the app is done with this session. */
82
+ exports.setTimeCommand = setTimeCommand;
83
+ const endSessionCommand = () => toHex([0x22]);
84
+
85
+ /** `03 UU` + an 18-byte, space-padded user name (A3 pairing). */
86
+ exports.endSessionCommand = endSessionCommand;
87
+ const bindUserCommand = (user, name) => {
88
+ const bytes = Array.from(name.slice(0, 18), char => char.charCodeAt(0) & 0x7f);
89
+ return toHex([0x03, user, ...bytes, ...Array(18 - bytes.length).fill(0x20)]);
90
+ };
91
+
92
+ /**
93
+ * `51`: the A3 scale's user profile. The SDK has no patient profile, so it sends the same
94
+ * defaults MedM falls back to - male, 30 years, 175 cm, kilograms, no goal. They feed only
95
+ * the scale's own body-composition estimate, never the weight.
96
+ */
97
+ exports.bindUserCommand = bindUserCommand;
98
+ const scaleProfileCommand = (user, heightInCentimetres) => {
99
+ const heightCm = 175;
100
+ const height = heightInCentimetres ? [heightCm & 0xff, 0xe0 + (heightCm >> 8)] : [heightCm * 10 & 0xff, 0xd0 | heightCm * 10 >> 8];
101
+ return toHex([0x51, 0x17, user, 0x01, 30, ...height, 0x00, 0x00, 0x00, 0x00, 0x00]);
102
+ };
103
+
104
+ /** `40 00`: tracker configuration, leaving stored data in place. */
105
+ exports.scaleProfileCommand = scaleProfileCommand;
106
+ const trackerConfigurationCommand = () => toHex([0x40, 0x00]);
107
+
108
+ /** `05`: tracker user data - 70 kg and 1.75 m, the same defaults as the scale profile. */
109
+ exports.trackerConfigurationCommand = trackerConfigurationCommand;
110
+ const trackerUserDataCommand = () => toHex([0x05, 0x0a, 0x00, ...[7000 & 0xff, 7000 >> 8], 0x00, 0xfe, 175 & 0xff, 0xe0]);
111
+ exports.trackerUserDataCommand = trackerUserDataCommand;
112
+ //# sourceMappingURL=transtek-command.protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hexToByte","require","_le32FromHex","sig16","assigned","TRANSTEK_SERVICES","exports","bloodPressureA2","bloodPressureA3","scaleA2","scaleA3","tracker","TRANSTEK_CHARACTERISTICS","command","answer","bloodPressure","weightA2","weightA3","ANSWER","password","random","userCount","userInfo","EPOCH_UTC_MS","Date","UTC","toHex","bytes","map","value","toString","padStart","le32","u32","frame","index","le32FromHex","u16","hexToByte","opcode","transtekTime","seconds","wall","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","transtekSeconds","now","Math","floor","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","readPassword","readRandom","accountIdCommand","user","verificationCommand","setTimeCommand","endSessionCommand","bindUserCommand","name","Array","from","slice","char","charCodeAt","length","fill","scaleProfileCommand","heightInCentimetres","heightCm","height","trackerConfigurationCommand","trackerUserDataCommand"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.protocol.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readWeight = exports.readTrackerSteps = exports.readBloodPressure = exports.decodeTranstekRecord = void 0;
7
+ var _core = require("@ovok/core");
8
+ var _decodeMedicalFloat = require("../../../utils/decode-medical-float.js");
9
+ var _hexToByte = require("../../../utils/hex-to-byte.js");
10
+ var _transtekCommandProtocol = require("./transtek-command.protocol.js");
11
+ /* eslint-disable import/group-exports */
12
+
13
+ /** Record layouts for the Transtek command protocol's measurement characteristics. */
14
+
15
+ const POUND_IN_KG = 0.45359237;
16
+ const DAY_MS = 86_400_000;
17
+ const YEAR_MS = 365 * DAY_MS;
18
+
19
+ /** MedM drops records more than a day ahead of the phone: the device clock was wrong. */
20
+ const isFromFuture = recordedAt => recordedAt.getTime() > Date.now() + DAY_MS;
21
+ /** Characteristic 8A91, sixteen bytes at fixed offsets; MedM ignores the kPa flag. */
22
+ const readBloodPressure = (frame, shiftUser) => {
23
+ if (frame.length < 16) {
24
+ return undefined;
25
+ }
26
+ const flags = (0, _transtekCommandProtocol.opcode)(frame);
27
+ const status = (0, _transtekCommandProtocol.u16)(frame, 14);
28
+ const recordedAt = (0, _transtekCommandProtocol.transtekTime)((0, _transtekCommandProtocol.u32)(frame, 7));
29
+ if (isFromFuture(recordedAt)) {
30
+ return undefined;
31
+ }
32
+ return {
33
+ systolic: (0, _transtekCommandProtocol.u16)(frame, 1),
34
+ diastolic: (0, _transtekCommandProtocol.u16)(frame, 3),
35
+ recordedAt,
36
+ heartRate: (0, _transtekCommandProtocol.u16)(frame, 11),
37
+ memorySlot: (0, _hexToByte.hexToByte)(frame[13] ?? "00") + (shiftUser ? 1 : 0),
38
+ irregularHeartbeat: (flags & 0x10) !== 0 && (status & 0x04) !== 0
39
+ };
40
+ };
41
+
42
+ /**
43
+ * Characteristic 8A21 (A2) or 8A24 (A3): an IEEE-11073 FLOAT in kilograms and a status byte
44
+ * that must say the reading is stable or complete. Frames are 11, 15 or 19+ bytes long.
45
+ */
46
+ exports.readBloodPressure = readBloodPressure;
47
+ const readWeight = frame => {
48
+ const length = frame.length;
49
+ if (!(length > 18 || length === 11 || length === 15)) {
50
+ return undefined;
51
+ }
52
+
53
+ // Only status bit 0 set with code 4 ("complete") is a finished weight. MedM also keeps
54
+ // "unstable" frames, tagged; those are the values a scale shows while someone steps on,
55
+ // so they are not reported here.
56
+ const status = (0, _hexToByte.hexToByte)(frame[Math.min(length, 19) - 1] ?? "00");
57
+ if ((status & 0x01) !== 1 || (status >> 1 & 0x07) !== 4) {
58
+ return undefined;
59
+ }
60
+ const value = (0, _decodeMedicalFloat.decodeMedicalFloat)((0, _transtekCommandProtocol.u32)(frame, 1), 8, 24);
61
+ const recordedAt = (0, _transtekCommandProtocol.transtekTime)((0, _transtekCommandProtocol.u32)(frame, 5));
62
+ if (value === undefined || value <= 0 || isFromFuture(recordedAt)) {
63
+ return undefined;
64
+ }
65
+
66
+ // A scale set to pounds flags it (bit 5). MedM reads a value with at most one decimal as
67
+ // kilograms and one with two as already in pounds; the SDK follows it.
68
+ const pounds = ((0, _transtekCommandProtocol.opcode)(frame) & 0x20) !== 0 && Math.round(value * 100) % 10 !== 0;
69
+ return {
70
+ bodyWeight: Math.round((pounds ? value * POUND_IN_KG : value) * 100) / 100,
71
+ recordedAt
72
+ };
73
+ };
74
+
75
+ /**
76
+ * Characteristic 8A11: nineteen bytes starting `7E`, with the day's cumulative step count.
77
+ *
78
+ * Only the live record is a reading: stored points (stamped at :59) are earlier running
79
+ * totals and the day's statistic (23:59:59), so reporting them as well would count the same
80
+ * steps again. A record dated outside the past year or after tomorrow is a clock that was
81
+ * never set.
82
+ */
83
+ exports.readWeight = readWeight;
84
+ const readTrackerSteps = frame => {
85
+ if (frame.length !== 19 || (0, _transtekCommandProtocol.opcode)(frame) !== 0x7e) {
86
+ return undefined;
87
+ }
88
+ const recordedAt = (0, _transtekCommandProtocol.transtekTime)((0, _transtekCommandProtocol.u32)(frame, 4));
89
+ if (recordedAt.getSeconds() === 59 || isFromFuture(recordedAt) || Date.now() - recordedAt.getTime() > YEAR_MS) {
90
+ return undefined;
91
+ }
92
+ return {
93
+ stepCount: (0, _hexToByte.hexToByte)(frame[1] ?? "00") | (0, _hexToByte.hexToByte)(frame[2] ?? "00") << 8 | (0, _hexToByte.hexToByte)(frame[3] ?? "00") << 16,
94
+ recordedAt
95
+ };
96
+ };
97
+
98
+ /** Decodes a record by the characteristic it arrived on; anything else is not a reading. */
99
+ exports.readTrackerSteps = readTrackerSteps;
100
+ const decodeTranstekRecord = (frame, characteristicUuid, shiftUser) => {
101
+ if (characteristicUuid === _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.bloodPressure) {
102
+ const reading = readBloodPressure(frame, shiftUser);
103
+ return reading && {
104
+ measurementTypeKey: _core.MeasurementTypeKey.bloodPressure,
105
+ systolic: reading.systolic,
106
+ diastolic: reading.diastolic,
107
+ heartRate: reading.heartRate,
108
+ recordedAt: reading.recordedAt,
109
+ memorySlot: reading.memorySlot,
110
+ ...(reading.irregularHeartbeat ? {
111
+ irregularHeartbeat: true
112
+ } : {})
113
+ };
114
+ }
115
+ if (characteristicUuid === _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.weightA2 || characteristicUuid === _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.weightA3) {
116
+ const reading = readWeight(frame);
117
+ return reading && {
118
+ measurementTypeKey: _core.MeasurementTypeKey.bodyWeight,
119
+ ...reading
120
+ };
121
+ }
122
+ if (characteristicUuid === _transtekCommandProtocol.TRANSTEK_CHARACTERISTICS.tracker) {
123
+ const reading = readTrackerSteps(frame);
124
+ return reading && {
125
+ measurementTypeKey: _core.MeasurementTypeKey.stepCount,
126
+ ...reading
127
+ };
128
+ }
129
+ return undefined;
130
+ };
131
+ exports.decodeTranstekRecord = decodeTranstekRecord;
132
+ //# sourceMappingURL=transtek-command.records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_decodeMedicalFloat","_hexToByte","_transtekCommandProtocol","POUND_IN_KG","DAY_MS","YEAR_MS","isFromFuture","recordedAt","getTime","Date","now","readBloodPressure","frame","shiftUser","length","undefined","flags","opcode","status","u16","transtekTime","u32","systolic","diastolic","heartRate","memorySlot","hexToByte","irregularHeartbeat","exports","readWeight","Math","min","value","decodeMedicalFloat","pounds","round","bodyWeight","readTrackerSteps","getSeconds","stepCount","decodeTranstekRecord","characteristicUuid","TRANSTEK_CHARACTERISTICS","bloodPressure","reading","measurementTypeKey","MeasurementTypeKey","weightA2","weightA3","tracker"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/transtek/transtek-command.records.ts"],"mappings":"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","ignoreList":[]}