@rickosborne/bluetools 2025.3.9

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 (410) hide show
  1. package/README.md +2624 -0
  2. package/assigned.cjs +577 -0
  3. package/assigned.cjs.map +6 -0
  4. package/assigned.d.ts +552 -0
  5. package/assigned.d.ts.map +1 -0
  6. package/assigned.mjs +557 -0
  7. package/assigned.mjs.map +6 -0
  8. package/battery-level.cjs +50 -0
  9. package/battery-level.cjs.map +6 -0
  10. package/battery-level.d.ts +25 -0
  11. package/battery-level.d.ts.map +1 -0
  12. package/battery-level.mjs +31 -0
  13. package/battery-level.mjs.map +6 -0
  14. package/cross-trainer-data.cjs +188 -0
  15. package/cross-trainer-data.cjs.map +6 -0
  16. package/cross-trainer-data.d.ts +192 -0
  17. package/cross-trainer-data.d.ts.map +1 -0
  18. package/cross-trainer-data.mjs +169 -0
  19. package/cross-trainer-data.mjs.map +6 -0
  20. package/csc-feature.cjs +59 -0
  21. package/csc-feature.cjs.map +6 -0
  22. package/csc-feature.d.ts +55 -0
  23. package/csc-feature.d.ts.map +1 -0
  24. package/csc-feature.mjs +40 -0
  25. package/csc-feature.mjs.map +6 -0
  26. package/csc-measurement.cjs +76 -0
  27. package/csc-measurement.cjs.map +6 -0
  28. package/csc-measurement.d.ts +57 -0
  29. package/csc-measurement.d.ts.map +1 -0
  30. package/csc-measurement.mjs +57 -0
  31. package/csc-measurement.mjs.map +6 -0
  32. package/current-time.cjs +66 -0
  33. package/current-time.cjs.map +6 -0
  34. package/current-time.d.ts +65 -0
  35. package/current-time.d.ts.map +1 -0
  36. package/current-time.mjs +47 -0
  37. package/current-time.mjs.map +6 -0
  38. package/data-view-from-hex.cjs +34 -0
  39. package/data-view-from-hex.cjs.map +6 -0
  40. package/data-view-from-hex.d.ts +6 -0
  41. package/data-view-from-hex.d.ts.map +1 -0
  42. package/data-view-from-hex.mjs +15 -0
  43. package/data-view-from-hex.mjs.map +6 -0
  44. package/data-view-reader.cjs +115 -0
  45. package/data-view-reader.cjs.map +6 -0
  46. package/data-view-reader.d.ts +21 -0
  47. package/data-view-reader.d.ts.map +1 -0
  48. package/data-view-reader.mjs +96 -0
  49. package/data-view-reader.mjs.map +6 -0
  50. package/date-time.cjs +65 -0
  51. package/date-time.cjs.map +6 -0
  52. package/date-time.d.ts +89 -0
  53. package/date-time.d.ts.map +1 -0
  54. package/date-time.mjs +46 -0
  55. package/date-time.mjs.map +6 -0
  56. package/day-date-time.cjs +55 -0
  57. package/day-date-time.cjs.map +6 -0
  58. package/day-date-time.d.ts +21 -0
  59. package/day-date-time.d.ts.map +1 -0
  60. package/day-date-time.mjs +36 -0
  61. package/day-date-time.mjs.map +6 -0
  62. package/day-of-week.cjs +50 -0
  63. package/day-of-week.cjs.map +6 -0
  64. package/day-of-week.d.ts +33 -0
  65. package/day-of-week.d.ts.map +1 -0
  66. package/day-of-week.mjs +31 -0
  67. package/day-of-week.mjs.map +6 -0
  68. package/dst-offset.cjs +50 -0
  69. package/dst-offset.cjs.map +6 -0
  70. package/dst-offset.d.ts +30 -0
  71. package/dst-offset.d.ts.map +1 -0
  72. package/dst-offset.mjs +31 -0
  73. package/dst-offset.mjs.map +6 -0
  74. package/elevation.cjs +50 -0
  75. package/elevation.cjs.map +6 -0
  76. package/elevation.d.ts +22 -0
  77. package/elevation.d.ts.map +1 -0
  78. package/elevation.mjs +31 -0
  79. package/elevation.mjs.map +6 -0
  80. package/exact-time-256.cjs +54 -0
  81. package/exact-time-256.cjs.map +6 -0
  82. package/exact-time-256.d.ts +27 -0
  83. package/exact-time-256.d.ts.map +1 -0
  84. package/exact-time-256.mjs +35 -0
  85. package/exact-time-256.mjs.map +6 -0
  86. package/firmware-revision-string.cjs +50 -0
  87. package/firmware-revision-string.cjs.map +6 -0
  88. package/firmware-revision-string.d.ts +19 -0
  89. package/firmware-revision-string.d.ts.map +1 -0
  90. package/firmware-revision-string.mjs +31 -0
  91. package/firmware-revision-string.mjs.map +6 -0
  92. package/five-zone-heart-rate-limits.cjs +59 -0
  93. package/five-zone-heart-rate-limits.cjs.map +6 -0
  94. package/five-zone-heart-rate-limits.d.ts +47 -0
  95. package/five-zone-heart-rate-limits.d.ts.map +1 -0
  96. package/five-zone-heart-rate-limits.mjs +40 -0
  97. package/five-zone-heart-rate-limits.mjs.map +6 -0
  98. package/gatt-characteristic-presentation-format.cjs +62 -0
  99. package/gatt-characteristic-presentation-format.cjs.map +6 -0
  100. package/gatt-characteristic-presentation-format.d.ts +91 -0
  101. package/gatt-characteristic-presentation-format.d.ts.map +1 -0
  102. package/gatt-characteristic-presentation-format.mjs +43 -0
  103. package/gatt-characteristic-presentation-format.mjs.map +6 -0
  104. package/gatt.cjs +57 -0
  105. package/gatt.cjs.map +6 -0
  106. package/gatt.d.ts +4 -0
  107. package/gatt.d.ts.map +1 -0
  108. package/gatt.mjs +38 -0
  109. package/gatt.mjs.map +6 -0
  110. package/glucose-feature.cjs +83 -0
  111. package/glucose-feature.cjs.map +6 -0
  112. package/glucose-feature.d.ts +127 -0
  113. package/glucose-feature.d.ts.map +1 -0
  114. package/glucose-feature.mjs +64 -0
  115. package/glucose-feature.mjs.map +6 -0
  116. package/glucose-measurement-context.cjs +133 -0
  117. package/glucose-measurement-context.cjs.map +6 -0
  118. package/glucose-measurement-context.d.ts +183 -0
  119. package/glucose-measurement-context.d.ts.map +1 -0
  120. package/glucose-measurement-context.mjs +114 -0
  121. package/glucose-measurement-context.mjs.map +6 -0
  122. package/glucose-measurement.cjs +136 -0
  123. package/glucose-measurement.cjs.map +6 -0
  124. package/glucose-measurement.d.ts +230 -0
  125. package/glucose-measurement.d.ts.map +1 -0
  126. package/glucose-measurement.mjs +117 -0
  127. package/glucose-measurement.mjs.map +6 -0
  128. package/hardware-revision-string.cjs +50 -0
  129. package/hardware-revision-string.cjs.map +6 -0
  130. package/hardware-revision-string.d.ts +19 -0
  131. package/hardware-revision-string.d.ts.map +1 -0
  132. package/hardware-revision-string.mjs +31 -0
  133. package/hardware-revision-string.mjs.map +6 -0
  134. package/heart-rate-control-point.cjs +50 -0
  135. package/heart-rate-control-point.cjs.map +6 -0
  136. package/heart-rate-control-point.d.ts +26 -0
  137. package/heart-rate-control-point.d.ts.map +1 -0
  138. package/heart-rate-control-point.mjs +31 -0
  139. package/heart-rate-control-point.mjs.map +6 -0
  140. package/heart-rate-max.cjs +50 -0
  141. package/heart-rate-max.cjs.map +6 -0
  142. package/heart-rate-max.d.ts +23 -0
  143. package/heart-rate-max.d.ts.map +1 -0
  144. package/heart-rate-max.mjs +31 -0
  145. package/heart-rate-max.mjs.map +6 -0
  146. package/heart-rate-measurement.cjs +79 -0
  147. package/heart-rate-measurement.cjs.map +6 -0
  148. package/heart-rate-measurement.d.ts +65 -0
  149. package/heart-rate-measurement.d.ts.map +1 -0
  150. package/heart-rate-measurement.mjs +60 -0
  151. package/heart-rate-measurement.mjs.map +6 -0
  152. package/heart-rate.cjs +58 -0
  153. package/heart-rate.cjs.map +6 -0
  154. package/heart-rate.d.ts +7 -0
  155. package/heart-rate.d.ts.map +1 -0
  156. package/heart-rate.mjs +39 -0
  157. package/heart-rate.mjs.map +6 -0
  158. package/index.cjs +84 -0
  159. package/index.cjs.map +6 -0
  160. package/index.d.ts +67 -0
  161. package/index.d.ts.map +1 -0
  162. package/index.mjs +67 -0
  163. package/index.mjs.map +6 -0
  164. package/indoor-bike-data.cjs +153 -0
  165. package/indoor-bike-data.cjs.map +6 -0
  166. package/indoor-bike-data.d.ts +146 -0
  167. package/indoor-bike-data.d.ts.map +1 -0
  168. package/indoor-bike-data.mjs +134 -0
  169. package/indoor-bike-data.mjs.map +6 -0
  170. package/language.cjs +50 -0
  171. package/language.cjs.map +6 -0
  172. package/language.d.ts +22 -0
  173. package/language.d.ts.map +1 -0
  174. package/language.mjs +31 -0
  175. package/language.mjs.map +6 -0
  176. package/latitude.cjs +50 -0
  177. package/latitude.cjs.map +6 -0
  178. package/latitude.d.ts +19 -0
  179. package/latitude.d.ts.map +1 -0
  180. package/latitude.mjs +31 -0
  181. package/latitude.mjs.map +6 -0
  182. package/local-time-information.cjs +55 -0
  183. package/local-time-information.cjs.map +6 -0
  184. package/local-time-information.d.ts +21 -0
  185. package/local-time-information.d.ts.map +1 -0
  186. package/local-time-information.mjs +36 -0
  187. package/local-time-information.mjs.map +6 -0
  188. package/location-and-speed.cjs +114 -0
  189. package/location-and-speed.cjs.map +6 -0
  190. package/location-and-speed.d.ts +182 -0
  191. package/location-and-speed.d.ts.map +1 -0
  192. package/location-and-speed.mjs +95 -0
  193. package/location-and-speed.mjs.map +6 -0
  194. package/location-name.cjs +50 -0
  195. package/location-name.cjs.map +6 -0
  196. package/location-name.d.ts +19 -0
  197. package/location-name.d.ts.map +1 -0
  198. package/location-name.mjs +31 -0
  199. package/location-name.mjs.map +6 -0
  200. package/longitude.cjs +50 -0
  201. package/longitude.cjs.map +6 -0
  202. package/longitude.d.ts +19 -0
  203. package/longitude.d.ts.map +1 -0
  204. package/longitude.mjs +31 -0
  205. package/longitude.mjs.map +6 -0
  206. package/manufacturer-name-string.cjs +50 -0
  207. package/manufacturer-name-string.cjs.map +6 -0
  208. package/manufacturer-name-string.d.ts +19 -0
  209. package/manufacturer-name-string.d.ts.map +1 -0
  210. package/manufacturer-name-string.mjs +31 -0
  211. package/manufacturer-name-string.mjs.map +6 -0
  212. package/maximum-recommended-heart-rate.cjs +50 -0
  213. package/maximum-recommended-heart-rate.cjs.map +6 -0
  214. package/maximum-recommended-heart-rate.d.ts +23 -0
  215. package/maximum-recommended-heart-rate.d.ts.map +1 -0
  216. package/maximum-recommended-heart-rate.mjs +31 -0
  217. package/maximum-recommended-heart-rate.mjs.map +6 -0
  218. package/measurement-interval.cjs +50 -0
  219. package/measurement-interval.cjs.map +6 -0
  220. package/measurement-interval.d.ts +27 -0
  221. package/measurement-interval.d.ts.map +1 -0
  222. package/measurement-interval.mjs +31 -0
  223. package/measurement-interval.mjs.map +6 -0
  224. package/model-number-string.cjs +50 -0
  225. package/model-number-string.cjs.map +6 -0
  226. package/model-number-string.d.ts +19 -0
  227. package/model-number-string.d.ts.map +1 -0
  228. package/model-number-string.mjs +31 -0
  229. package/model-number-string.mjs.map +6 -0
  230. package/navigation.cjs +90 -0
  231. package/navigation.cjs.map +6 -0
  232. package/navigation.d.ts +134 -0
  233. package/navigation.d.ts.map +1 -0
  234. package/navigation.mjs +71 -0
  235. package/navigation.mjs.map +6 -0
  236. package/number-of-digitals.cjs +50 -0
  237. package/number-of-digitals.cjs.map +6 -0
  238. package/number-of-digitals.d.ts +19 -0
  239. package/number-of-digitals.d.ts.map +1 -0
  240. package/number-of-digitals.mjs +31 -0
  241. package/number-of-digitals.mjs.map +6 -0
  242. package/package.json +456 -0
  243. package/plx-continuous-measurement.cjs +184 -0
  244. package/plx-continuous-measurement.cjs.map +6 -0
  245. package/plx-continuous-measurement.d.ts +352 -0
  246. package/plx-continuous-measurement.d.ts.map +1 -0
  247. package/plx-continuous-measurement.mjs +165 -0
  248. package/plx-continuous-measurement.mjs.map +6 -0
  249. package/plx-features.cjs +163 -0
  250. package/plx-features.cjs.map +6 -0
  251. package/plx-features.d.ts +354 -0
  252. package/plx-features.d.ts.map +1 -0
  253. package/plx-features.mjs +144 -0
  254. package/plx-features.mjs.map +6 -0
  255. package/plx-spot-check-measurement.cjs +169 -0
  256. package/plx-spot-check-measurement.cjs.map +6 -0
  257. package/plx-spot-check-measurement.d.ts +334 -0
  258. package/plx-spot-check-measurement.d.ts.map +1 -0
  259. package/plx-spot-check-measurement.mjs +150 -0
  260. package/plx-spot-check-measurement.mjs.map +6 -0
  261. package/reference-time-information.cjs +61 -0
  262. package/reference-time-information.cjs.map +6 -0
  263. package/reference-time-information.d.ts +38 -0
  264. package/reference-time-information.d.ts.map +1 -0
  265. package/reference-time-information.mjs +42 -0
  266. package/reference-time-information.mjs.map +6 -0
  267. package/resting-heart-rate.cjs +50 -0
  268. package/resting-heart-rate.cjs.map +6 -0
  269. package/resting-heart-rate.d.ts +23 -0
  270. package/resting-heart-rate.d.ts.map +1 -0
  271. package/resting-heart-rate.mjs +31 -0
  272. package/resting-heart-rate.mjs.map +6 -0
  273. package/rsc-feature.cjs +65 -0
  274. package/rsc-feature.cjs.map +6 -0
  275. package/rsc-feature.d.ts +73 -0
  276. package/rsc-feature.d.ts.map +1 -0
  277. package/rsc-feature.mjs +46 -0
  278. package/rsc-feature.mjs.map +6 -0
  279. package/rsc-measurement.cjs +73 -0
  280. package/rsc-measurement.cjs.map +6 -0
  281. package/rsc-measurement.d.ts +70 -0
  282. package/rsc-measurement.d.ts.map +1 -0
  283. package/rsc-measurement.mjs +54 -0
  284. package/rsc-measurement.mjs.map +6 -0
  285. package/scripts/fetch-and-cache-text.d.ts +2 -0
  286. package/scripts/fetch-and-cache-text.d.ts.map +1 -0
  287. package/scripts/from-xml.d.ts +2 -0
  288. package/scripts/from-xml.d.ts.map +1 -0
  289. package/scripts/gatt-assigned.d.ts +2 -0
  290. package/scripts/gatt-assigned.d.ts.map +1 -0
  291. package/sensor-location.cjs +50 -0
  292. package/sensor-location.cjs.map +6 -0
  293. package/sensor-location.d.ts +42 -0
  294. package/sensor-location.d.ts.map +1 -0
  295. package/sensor-location.mjs +31 -0
  296. package/sensor-location.mjs.map +6 -0
  297. package/serial-number-string.cjs +50 -0
  298. package/serial-number-string.cjs.map +6 -0
  299. package/serial-number-string.d.ts +19 -0
  300. package/serial-number-string.d.ts.map +1 -0
  301. package/serial-number-string.mjs +31 -0
  302. package/serial-number-string.mjs.map +6 -0
  303. package/software-revision-string.cjs +50 -0
  304. package/software-revision-string.cjs.map +6 -0
  305. package/software-revision-string.d.ts +19 -0
  306. package/software-revision-string.d.ts.map +1 -0
  307. package/software-revision-string.mjs +31 -0
  308. package/software-revision-string.mjs.map +6 -0
  309. package/supported-heart-rate-range.cjs +56 -0
  310. package/supported-heart-rate-range.cjs.map +6 -0
  311. package/supported-heart-rate-range.d.ts +37 -0
  312. package/supported-heart-rate-range.d.ts.map +1 -0
  313. package/supported-heart-rate-range.mjs +37 -0
  314. package/supported-heart-rate-range.mjs.map +6 -0
  315. package/supported-inclination-range.cjs +56 -0
  316. package/supported-inclination-range.cjs.map +6 -0
  317. package/supported-inclination-range.d.ts +37 -0
  318. package/supported-inclination-range.d.ts.map +1 -0
  319. package/supported-inclination-range.mjs +37 -0
  320. package/supported-inclination-range.mjs.map +6 -0
  321. package/supported-speed-range.cjs +56 -0
  322. package/supported-speed-range.cjs.map +6 -0
  323. package/supported-speed-range.d.ts +37 -0
  324. package/supported-speed-range.d.ts.map +1 -0
  325. package/supported-speed-range.mjs +37 -0
  326. package/supported-speed-range.mjs.map +6 -0
  327. package/system-id.cjs +53 -0
  328. package/system-id.cjs.map +6 -0
  329. package/system-id.d.ts +34 -0
  330. package/system-id.d.ts.map +1 -0
  331. package/system-id.mjs +34 -0
  332. package/system-id.mjs.map +6 -0
  333. package/temperature-measurement.cjs +79 -0
  334. package/temperature-measurement.cjs.map +6 -0
  335. package/temperature-measurement.d.ts +61 -0
  336. package/temperature-measurement.d.ts.map +1 -0
  337. package/temperature-measurement.mjs +60 -0
  338. package/temperature-measurement.mjs.map +6 -0
  339. package/temperature-type.cjs +50 -0
  340. package/temperature-type.cjs.map +6 -0
  341. package/temperature-type.d.ts +37 -0
  342. package/temperature-type.d.ts.map +1 -0
  343. package/temperature-type.mjs +31 -0
  344. package/temperature-type.mjs.map +6 -0
  345. package/temperature.cjs +50 -0
  346. package/temperature.cjs.map +6 -0
  347. package/temperature.d.ts +22 -0
  348. package/temperature.d.ts.map +1 -0
  349. package/temperature.mjs +31 -0
  350. package/temperature.mjs.map +6 -0
  351. package/three-zone-heart-rate-limits.cjs +53 -0
  352. package/three-zone-heart-rate-limits.cjs.map +6 -0
  353. package/three-zone-heart-rate-limits.d.ts +33 -0
  354. package/three-zone-heart-rate-limits.d.ts.map +1 -0
  355. package/three-zone-heart-rate-limits.mjs +34 -0
  356. package/three-zone-heart-rate-limits.mjs.map +6 -0
  357. package/time-accuracy.cjs +50 -0
  358. package/time-accuracy.cjs.map +6 -0
  359. package/time-accuracy.d.ts +23 -0
  360. package/time-accuracy.d.ts.map +1 -0
  361. package/time-accuracy.mjs +31 -0
  362. package/time-accuracy.mjs.map +6 -0
  363. package/time-source.cjs +50 -0
  364. package/time-source.cjs.map +6 -0
  365. package/time-source.d.ts +33 -0
  366. package/time-source.d.ts.map +1 -0
  367. package/time-source.mjs +31 -0
  368. package/time-source.mjs.map +6 -0
  369. package/time-update-control-point.cjs +50 -0
  370. package/time-update-control-point.cjs.map +6 -0
  371. package/time-update-control-point.d.ts +29 -0
  372. package/time-update-control-point.d.ts.map +1 -0
  373. package/time-update-control-point.mjs +31 -0
  374. package/time-update-control-point.mjs.map +6 -0
  375. package/time-update-state.cjs +53 -0
  376. package/time-update-state.cjs.map +6 -0
  377. package/time-update-state.d.ts +45 -0
  378. package/time-update-state.d.ts.map +1 -0
  379. package/time-update-state.mjs +34 -0
  380. package/time-update-state.mjs.map +6 -0
  381. package/time-with-dst.cjs +55 -0
  382. package/time-with-dst.cjs.map +6 -0
  383. package/time-with-dst.d.ts +21 -0
  384. package/time-with-dst.d.ts.map +1 -0
  385. package/time-with-dst.mjs +36 -0
  386. package/time-with-dst.mjs.map +6 -0
  387. package/time-zone.cjs +50 -0
  388. package/time-zone.cjs.map +6 -0
  389. package/time-zone.d.ts +23 -0
  390. package/time-zone.d.ts.map +1 -0
  391. package/time-zone.mjs +31 -0
  392. package/time-zone.mjs.map +6 -0
  393. package/treadmill-data.cjs +171 -0
  394. package/treadmill-data.cjs.map +6 -0
  395. package/treadmill-data.d.ts +167 -0
  396. package/treadmill-data.d.ts.map +1 -0
  397. package/treadmill-data.mjs +152 -0
  398. package/treadmill-data.mjs.map +6 -0
  399. package/two-zone-heart-rate-limit.cjs +50 -0
  400. package/two-zone-heart-rate-limit.cjs.map +6 -0
  401. package/two-zone-heart-rate-limit.d.ts +23 -0
  402. package/two-zone-heart-rate-limit.d.ts.map +1 -0
  403. package/two-zone-heart-rate-limit.mjs +31 -0
  404. package/two-zone-heart-rate-limit.mjs.map +6 -0
  405. package/vo2-max.cjs +50 -0
  406. package/vo2-max.cjs.map +6 -0
  407. package/vo2-max.d.ts +22 -0
  408. package/vo2-max.d.ts.map +1 -0
  409. package/vo2-max.mjs +31 -0
  410. package/vo2-max.mjs.map +6 -0
@@ -0,0 +1,114 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ import { dataViewReader } from "./data-view-reader.mjs";
6
+ const _GlucoseMeasurementContextImpl = class _GlucoseMeasurementContextImpl {
7
+ /** Parse from a DataView into {@link GlucoseMeasurementContext}. */
8
+ static fromDataView(dataView, indexStart) {
9
+ return new _GlucoseMeasurementContextImpl(glucoseMeasurementContextFromDataView(dataView, indexStart));
10
+ }
11
+ carbohydrateID;
12
+ carbohydrateUnitsOfKilograms;
13
+ exerciseDuration;
14
+ exerciseIntensity;
15
+ extendedFlags;
16
+ flags;
17
+ hba1c;
18
+ health;
19
+ meal;
20
+ medicationID;
21
+ medicationUnitsOfKilograms;
22
+ medicationUnitsOfLiters;
23
+ sequenceNumber;
24
+ tester;
25
+ constructor(glucoseMeasurementContext) {
26
+ this.carbohydrateID = glucoseMeasurementContext.carbohydrateID;
27
+ this.carbohydrateUnitsOfKilograms = glucoseMeasurementContext.carbohydrateUnitsOfKilograms;
28
+ this.exerciseDuration = glucoseMeasurementContext.exerciseDuration;
29
+ this.exerciseIntensity = glucoseMeasurementContext.exerciseIntensity;
30
+ this.extendedFlags = glucoseMeasurementContext.extendedFlags;
31
+ this.flags = glucoseMeasurementContext.flags;
32
+ this.hba1c = glucoseMeasurementContext.hba1c;
33
+ this.health = glucoseMeasurementContext.health;
34
+ this.meal = glucoseMeasurementContext.meal;
35
+ this.medicationID = glucoseMeasurementContext.medicationID;
36
+ this.medicationUnitsOfKilograms = glucoseMeasurementContext.medicationUnitsOfKilograms;
37
+ this.medicationUnitsOfLiters = glucoseMeasurementContext.medicationUnitsOfLiters;
38
+ this.sequenceNumber = glucoseMeasurementContext.sequenceNumber;
39
+ this.tester = glucoseMeasurementContext.tester;
40
+ }
41
+ };
42
+ __name(_GlucoseMeasurementContextImpl, "GlucoseMeasurementContextImpl");
43
+ __publicField(_GlucoseMeasurementContextImpl, "UUID_PREFIX", 10804);
44
+ __publicField(_GlucoseMeasurementContextImpl, "TYPE_NAME", "org.bluetooth.characteristic.glucose_measurement_context");
45
+ __publicField(_GlucoseMeasurementContextImpl, "NAME", "Glucose Measurement Context");
46
+ let GlucoseMeasurementContextImpl = _GlucoseMeasurementContextImpl;
47
+ function glucoseMeasurementContextFromDataView(dataView, indexStart = 0) {
48
+ const $dvr = dataViewReader(dataView, indexStart);
49
+ const flags = $dvr.uint8();
50
+ const carbohydrateIDAndCarbohydratePresent = !!(flags & 1);
51
+ const mealPresent = !!((flags & 2) >> 1);
52
+ const testerHealthPresent = !!((flags & 4) >> 2);
53
+ const exerciseDurationAndExerciseIntensityPresent = !!((flags & 8) >> 3);
54
+ const medicationIDAndMedicationPresent = !!((flags & 16) >> 4);
55
+ const medicationValueUnits = !!((flags & 32) >> 5);
56
+ const hba1cPresent = !!((flags & 64) >> 6);
57
+ const extendedFlagsPresent = !!((flags & 128) >> 7);
58
+ const sequenceNumber = $dvr.uint16();
59
+ let extendedFlags = void 0;
60
+ if (extendedFlagsPresent) {
61
+ extendedFlags = $dvr.uint8();
62
+ }
63
+ let carbohydrateID = void 0;
64
+ if (carbohydrateIDAndCarbohydratePresent) {
65
+ carbohydrateID = $dvr.uint8();
66
+ }
67
+ let carbohydrateUnitsOfKilograms = void 0;
68
+ if (carbohydrateIDAndCarbohydratePresent) {
69
+ carbohydrateUnitsOfKilograms = $dvr.sFloat();
70
+ }
71
+ let meal = void 0;
72
+ if (mealPresent) {
73
+ meal = $dvr.uint8();
74
+ }
75
+ let tester = void 0;
76
+ if (testerHealthPresent) {
77
+ tester = $dvr.nibble();
78
+ }
79
+ let health = void 0;
80
+ if (testerHealthPresent) {
81
+ health = $dvr.nibble();
82
+ }
83
+ let exerciseDuration = void 0;
84
+ if (exerciseDurationAndExerciseIntensityPresent) {
85
+ exerciseDuration = $dvr.uint16();
86
+ }
87
+ let exerciseIntensity = void 0;
88
+ if (exerciseDurationAndExerciseIntensityPresent) {
89
+ exerciseIntensity = $dvr.uint8();
90
+ }
91
+ let medicationID = void 0;
92
+ if (medicationIDAndMedicationPresent) {
93
+ medicationID = $dvr.uint8();
94
+ }
95
+ let medicationUnitsOfKilograms = void 0;
96
+ if (medicationIDAndMedicationPresent && !medicationValueUnits) {
97
+ medicationUnitsOfKilograms = $dvr.sFloat();
98
+ }
99
+ let medicationUnitsOfLiters = void 0;
100
+ if (medicationIDAndMedicationPresent && medicationValueUnits) {
101
+ medicationUnitsOfLiters = $dvr.sFloat();
102
+ }
103
+ let hba1c = void 0;
104
+ if (hba1cPresent) {
105
+ hba1c = $dvr.sFloat();
106
+ }
107
+ return { carbohydrateID, carbohydrateUnitsOfKilograms, exerciseDuration, exerciseIntensity, extendedFlags, flags, hba1c, health, meal, medicationID, medicationUnitsOfKilograms, medicationUnitsOfLiters, sequenceNumber, tester };
108
+ }
109
+ __name(glucoseMeasurementContextFromDataView, "glucoseMeasurementContextFromDataView");
110
+ export {
111
+ GlucoseMeasurementContextImpl,
112
+ glucoseMeasurementContextFromDataView
113
+ };
114
+ //# sourceMappingURL=glucose-measurement-context.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/bluetools/glucose-measurement-context.ts"],
4
+ "mappings": ";;;;AAAA,SAA8B,sBAAsB;AAmK7C,MAAM,iCAAN,MAAM,+BAAmE;AAAA;AAAA,EAM5E,OAAc,aAAa,UAAqC,YAAgE;AAC5H,WAAO,IAAI,+BAA8B,sCAAsC,UAAU,UAAU,CAAC;AAAA,EACxG;AAAA,EAEgB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,2BAAsD;AACrE,SAAK,iBAAiB,0BAA0B;AAChD,SAAK,+BAA+B,0BAA0B;AAC9D,SAAK,mBAAmB,0BAA0B;AAClD,SAAK,oBAAoB,0BAA0B;AACnD,SAAK,gBAAgB,0BAA0B;AAC/C,SAAK,QAAQ,0BAA0B;AACvC,SAAK,QAAQ,0BAA0B;AACvC,SAAK,SAAS,0BAA0B;AACxC,SAAK,OAAO,0BAA0B;AACtC,SAAK,eAAe,0BAA0B;AAC9C,SAAK,6BAA6B,0BAA0B;AAC5D,SAAK,0BAA0B,0BAA0B;AACzD,SAAK,iBAAiB,0BAA0B;AAChD,SAAK,SAAS,0BAA0B;AAAA,EAC5C;AACJ;AAzCgF;AAC5E,cADS,gCACc,eAAc;AACrC,cAFS,gCAEc,aAAY;AACnC,cAHS,gCAGc,QAAO;AAH3B,IAAM,gCAAN;AA4CA,SAAS,sCAAsC,UAAqC,aAAqB,GAA8B;AAC1I,QAAM,OAAuB,eAAe,UAAU,UAAU;AAChE,QAAM,QAAQ,KAAK,MAAM;AAQzB,QAAM,uCAAuC,CAAC,EAAE,QAAQ;AAQxD,QAAM,cAAc,CAAC,GAAG,QAAQ,MAAgB;AAQhD,QAAM,sBAAsB,CAAC,GAAG,QAAQ,MAAgB;AAQxD,QAAM,8CAA8C,CAAC,GAAG,QAAQ,MAAgB;AAQhF,QAAM,mCAAmC,CAAC,GAAG,QAAQ,OAAgB;AAQrE,QAAM,uBAAuB,CAAC,GAAG,QAAQ,OAAgB;AAQzD,QAAM,eAAe,CAAC,GAAG,QAAQ,OAAgB;AAQjD,QAAM,uBAAuB,CAAC,GAAG,QAAQ,QAAgB;AACzD,QAAM,iBAAiB,KAAK,OAAO;AACnC,MAAI,gBAAoC;AACxC,MAAI,sBAAsB;AACtB,oBAAgB,KAAK,MAAM;AAAA,EAC/B;AAEA,MAAI,iBAAqC;AACzC,MAAI,sCAAsC;AACtC,qBAAiB,KAAK,MAAM;AAAA,EAChC;AAEA,MAAI,+BAAmD;AACvD,MAAI,sCAAsC;AACtC,mCAA+B,KAAK,OAAO;AAAA,EAC/C;AAEA,MAAI,OAA2B;AAC/B,MAAI,aAAa;AACb,WAAO,KAAK,MAAM;AAAA,EACtB;AAEA,MAAI,SAA6B;AACjC,MAAI,qBAAqB;AACrB,aAAS,KAAK,OAAO;AAAA,EACzB;AAEA,MAAI,SAA6B;AACjC,MAAI,qBAAqB;AACrB,aAAS,KAAK,OAAO;AAAA,EACzB;AAEA,MAAI,mBAAuC;AAC3C,MAAI,6CAA6C;AAC7C,uBAAmB,KAAK,OAAO;AAAA,EACnC;AAEA,MAAI,oBAAwC;AAC5C,MAAI,6CAA6C;AAC7C,wBAAoB,KAAK,MAAM;AAAA,EACnC;AAEA,MAAI,eAAmC;AACvC,MAAI,kCAAkC;AAClC,mBAAe,KAAK,MAAM;AAAA,EAC9B;AAEA,MAAI,6BAAiD;AACrD,MAAI,oCAAoC,CAAC,sBAAsB;AAC3D,iCAA6B,KAAK,OAAO;AAAA,EAC7C;AAEA,MAAI,0BAA8C;AAClD,MAAI,oCAAoC,sBAAsB;AAC1D,8BAA0B,KAAK,OAAO;AAAA,EAC1C;AAEA,MAAI,QAA4B;AAChC,MAAI,cAAc;AACd,YAAQ,KAAK,OAAO;AAAA,EACxB;AAEA,SAAO,EAAE,gBAAgB,8BAA8B,kBAAkB,mBAAmB,eAAe,OAAO,OAAO,QAAQ,MAAM,cAAc,4BAA4B,yBAAyB,gBAAgB,OAAO;AACrO;AAjIgB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
22
+ var glucose_measurement_exports = {};
23
+ __export(glucose_measurement_exports, {
24
+ GlucoseMeasurementImpl: () => GlucoseMeasurementImpl,
25
+ glucoseMeasurementFromDataView: () => glucoseMeasurementFromDataView
26
+ });
27
+ module.exports = __toCommonJS(glucose_measurement_exports);
28
+ var import_data_view_reader = require("./data-view-reader.cjs");
29
+ var import_date_time = require("./date-time.cjs");
30
+ const _GlucoseMeasurementImpl = class _GlucoseMeasurementImpl {
31
+ /** Parse from a DataView into {@link GlucoseMeasurement}. */
32
+ static fromDataView(dataView, indexStart) {
33
+ return new _GlucoseMeasurementImpl(glucoseMeasurementFromDataView(dataView, indexStart));
34
+ }
35
+ baseTime;
36
+ contextInformationFollows;
37
+ deviceBatteryLowAtTimeOfMeasurement;
38
+ flags;
39
+ generalDeviceFaultHasOccurredInTheSensor;
40
+ glucoseConcentrationUnitsOfKgL;
41
+ glucoseConcentrationUnitsOfMolL;
42
+ sampleLocation;
43
+ sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement;
44
+ sensorMalfunctionOrFaultingAtTimeOfMeasurement;
45
+ sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement;
46
+ sensorResultHigherThanTheDeviceCanProcess;
47
+ sensorResultLowerThanTheDeviceCanProcess;
48
+ sensorStatusAnnunciation;
49
+ sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement;
50
+ sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement;
51
+ sequenceNumber;
52
+ stripInsertionError;
53
+ stripTypeIncorrectForDevice;
54
+ timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate;
55
+ timeOffset;
56
+ type;
57
+ constructor(glucoseMeasurement) {
58
+ this.baseTime = glucoseMeasurement.baseTime;
59
+ this.contextInformationFollows = glucoseMeasurement.contextInformationFollows;
60
+ this.deviceBatteryLowAtTimeOfMeasurement = glucoseMeasurement.deviceBatteryLowAtTimeOfMeasurement;
61
+ this.flags = glucoseMeasurement.flags;
62
+ this.generalDeviceFaultHasOccurredInTheSensor = glucoseMeasurement.generalDeviceFaultHasOccurredInTheSensor;
63
+ this.glucoseConcentrationUnitsOfKgL = glucoseMeasurement.glucoseConcentrationUnitsOfKgL;
64
+ this.glucoseConcentrationUnitsOfMolL = glucoseMeasurement.glucoseConcentrationUnitsOfMolL;
65
+ this.sampleLocation = glucoseMeasurement.sampleLocation;
66
+ this.sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement = glucoseMeasurement.sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement;
67
+ this.sensorMalfunctionOrFaultingAtTimeOfMeasurement = glucoseMeasurement.sensorMalfunctionOrFaultingAtTimeOfMeasurement;
68
+ this.sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement = glucoseMeasurement.sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement;
69
+ this.sensorResultHigherThanTheDeviceCanProcess = glucoseMeasurement.sensorResultHigherThanTheDeviceCanProcess;
70
+ this.sensorResultLowerThanTheDeviceCanProcess = glucoseMeasurement.sensorResultLowerThanTheDeviceCanProcess;
71
+ this.sensorStatusAnnunciation = glucoseMeasurement.sensorStatusAnnunciation;
72
+ this.sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement = glucoseMeasurement.sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement;
73
+ this.sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement = glucoseMeasurement.sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement;
74
+ this.sequenceNumber = glucoseMeasurement.sequenceNumber;
75
+ this.stripInsertionError = glucoseMeasurement.stripInsertionError;
76
+ this.stripTypeIncorrectForDevice = glucoseMeasurement.stripTypeIncorrectForDevice;
77
+ this.timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate = glucoseMeasurement.timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate;
78
+ this.timeOffset = glucoseMeasurement.timeOffset;
79
+ this.type = glucoseMeasurement.type;
80
+ }
81
+ };
82
+ __name(_GlucoseMeasurementImpl, "GlucoseMeasurementImpl");
83
+ __publicField(_GlucoseMeasurementImpl, "UUID_PREFIX", 10776);
84
+ __publicField(_GlucoseMeasurementImpl, "TYPE_NAME", "org.bluetooth.characteristic.glucose_measurement");
85
+ __publicField(_GlucoseMeasurementImpl, "NAME", "Glucose Measurement");
86
+ let GlucoseMeasurementImpl = _GlucoseMeasurementImpl;
87
+ function glucoseMeasurementFromDataView(dataView, indexStart = 0) {
88
+ const $dvr = (0, import_data_view_reader.dataViewReader)(dataView, indexStart);
89
+ const flags = $dvr.uint8();
90
+ const timeOffsetPresent = !!(flags & 1);
91
+ const glucoseConcentrationTypeAndSampleLocationPresent = !!((flags & 2) >> 1);
92
+ const glucoseConcentrationUnits = !!((flags & 4) >> 2);
93
+ const sensorStatusAnnunciationPresent = !!((flags & 8) >> 3);
94
+ const contextInformationFollows = (flags & 16) >> 4;
95
+ const sequenceNumber = $dvr.uint16();
96
+ const baseTime = import_date_time.DateTimeImpl.fromDataView($dvr);
97
+ let timeOffset = void 0;
98
+ if (timeOffsetPresent) {
99
+ timeOffset = $dvr.int16();
100
+ }
101
+ let glucoseConcentrationUnitsOfKgL = void 0;
102
+ if (glucoseConcentrationTypeAndSampleLocationPresent && !glucoseConcentrationUnits) {
103
+ glucoseConcentrationUnitsOfKgL = $dvr.sFloat();
104
+ }
105
+ let glucoseConcentrationUnitsOfMolL = void 0;
106
+ if (glucoseConcentrationTypeAndSampleLocationPresent && glucoseConcentrationUnits) {
107
+ glucoseConcentrationUnitsOfMolL = $dvr.sFloat();
108
+ }
109
+ let type = void 0;
110
+ if (glucoseConcentrationTypeAndSampleLocationPresent) {
111
+ type = $dvr.nibble();
112
+ }
113
+ let sampleLocation = void 0;
114
+ if (glucoseConcentrationTypeAndSampleLocationPresent) {
115
+ sampleLocation = $dvr.nibble();
116
+ }
117
+ let sensorStatusAnnunciation = 0;
118
+ if (sensorStatusAnnunciationPresent) {
119
+ sensorStatusAnnunciation = $dvr.uint16();
120
+ }
121
+ const deviceBatteryLowAtTimeOfMeasurement = sensorStatusAnnunciation & 1;
122
+ const sensorMalfunctionOrFaultingAtTimeOfMeasurement = (sensorStatusAnnunciation & 2) >> 1;
123
+ const sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement = (sensorStatusAnnunciation & 4) >> 2;
124
+ const stripInsertionError = (sensorStatusAnnunciation & 8) >> 3;
125
+ const stripTypeIncorrectForDevice = (sensorStatusAnnunciation & 16) >> 4;
126
+ const sensorResultHigherThanTheDeviceCanProcess = (sensorStatusAnnunciation & 32) >> 5;
127
+ const sensorResultLowerThanTheDeviceCanProcess = (sensorStatusAnnunciation & 64) >> 6;
128
+ const sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement = (sensorStatusAnnunciation & 128) >> 7;
129
+ const sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement = (sensorStatusAnnunciation & 256) >> 8;
130
+ const sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement = (sensorStatusAnnunciation & 512) >> 9;
131
+ const generalDeviceFaultHasOccurredInTheSensor = (sensorStatusAnnunciation & 1024) >> 10;
132
+ const timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate = (sensorStatusAnnunciation & 2048) >> 11;
133
+ return { baseTime, contextInformationFollows, deviceBatteryLowAtTimeOfMeasurement, flags, generalDeviceFaultHasOccurredInTheSensor, glucoseConcentrationUnitsOfKgL, glucoseConcentrationUnitsOfMolL, sampleLocation, sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement, sensorMalfunctionOrFaultingAtTimeOfMeasurement, sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement, sensorResultHigherThanTheDeviceCanProcess, sensorResultLowerThanTheDeviceCanProcess, sensorStatusAnnunciation, sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement, sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement, sequenceNumber, stripInsertionError, stripTypeIncorrectForDevice, timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate, timeOffset, type };
134
+ }
135
+ __name(glucoseMeasurementFromDataView, "glucoseMeasurementFromDataView");
136
+ //# sourceMappingURL=glucose-measurement.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/bluetools/glucose-measurement.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,230 @@
1
+ import { type DataViewReader } from "./data-view-reader.js";
2
+ import { type DateTime } from "./date-time.js";
3
+ /** <p>The Glucose Measurement characteristic is a variable length structure containing a Flags field, a Sequence Number field, a Base Time field and, based upon the contents of the Flags field, may contain a Time Offset field, Glucose Concentration field, Type-Sample Location field and a Sensor Status Annunciation field.</p> */
4
+ export interface GlucoseMeasurement {
5
+ baseTime: DateTime;
6
+ /**
7
+ * | value | description |
8
+ * | ----- | ----------- |
9
+ * | 0 | False |
10
+ * | 1 | True |
11
+ */
12
+ contextInformationFollows: number;
13
+ /**
14
+ * | value | description |
15
+ * | ----- | ----------- |
16
+ * | 0 | False |
17
+ * | 1 | True |
18
+ */
19
+ deviceBatteryLowAtTimeOfMeasurement: number;
20
+ /**
21
+ * <p>Format: `8bit`</p>
22
+ * <p>These flags define which data fields are present in the Characteristic value</p>
23
+ *
24
+ * Bit field:
25
+ *
26
+ * | index | size | req | name |
27
+ * | ----- | ---- | ------ | ------------------------------------------------------- |
28
+ * | 0 | 1 | C1 | Time Offset Present |
29
+ * | 1 | 1 | C2 | Glucose Concentration, Type and Sample Location Present |
30
+ * | 2 | 1 | C3, C4 | Glucose Concentration Units |
31
+ * | 3 | 1 | C5 | Sensor Status Annunciation Present |
32
+ * | 4 | 1 | | Context Information Follows |
33
+ * | 5 | 3 | | Reserved for future use |
34
+ *
35
+ */
36
+ flags: number;
37
+ /**
38
+ * | value | description |
39
+ * | ----- | ----------- |
40
+ * | 0 | False |
41
+ * | 1 | True |
42
+ */
43
+ generalDeviceFaultHasOccurredInTheSensor: number;
44
+ /**
45
+ * <p>Format: `SFLOAT`</p>
46
+ * <p>Unit: `org.bluetooth.unit.mass_density.kilogram_per_litre`</p>
47
+ * <p>C2: Field exists if the key of bit 1 of the Flags field is set to 1, C3: Field exists if the key of bit 2 of the Flags field is set to 0</p>
48
+ */
49
+ glucoseConcentrationUnitsOfKgL?: number | undefined;
50
+ /**
51
+ * <p>Format: `SFLOAT`</p>
52
+ * <p>Unit: `org.bluetooth.unit.mass_density.mole_per_litre`</p>
53
+ * <p>C2: Field exists if the key of bit 1 of the Flags field is set to 1, C4: Field exists if the key of bit 2 of the Flags field is set to 1</p>
54
+ */
55
+ glucoseConcentrationUnitsOfMolL?: number | undefined;
56
+ /**
57
+ * <p>Format: `nibble`</p>
58
+ * <p>C2: Field exists if the key of bit 1 of the Flags field is set to 1</p>
59
+ * | Key | Description |
60
+ * | --- | ----------------------------------- |
61
+ * | 0 | Reserved for future use |
62
+ * | 1 | Finger |
63
+ * | 2 | Alternate Site Test (AST) |
64
+ * | 3 | Earlobe |
65
+ * | 4 | Control solution |
66
+ * | 15 | Sample Location value not available |
67
+ *
68
+ * <p>Reserved for future use: 5 to 14</p>
69
+ */
70
+ sampleLocation?: number | undefined;
71
+ /**
72
+ * | value | description |
73
+ * | ----- | ----------- |
74
+ * | 0 | False |
75
+ * | 1 | True |
76
+ */
77
+ sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement: number;
78
+ /**
79
+ * | value | description |
80
+ * | ----- | ----------- |
81
+ * | 0 | False |
82
+ * | 1 | True |
83
+ */
84
+ sensorMalfunctionOrFaultingAtTimeOfMeasurement: number;
85
+ /**
86
+ * | value | description |
87
+ * | ----- | ----------- |
88
+ * | 0 | False |
89
+ * | 1 | True |
90
+ */
91
+ sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement: number;
92
+ /**
93
+ * | value | description |
94
+ * | ----- | ----------- |
95
+ * | 0 | False |
96
+ * | 1 | True |
97
+ */
98
+ sensorResultHigherThanTheDeviceCanProcess: number;
99
+ /**
100
+ * | value | description |
101
+ * | ----- | ----------- |
102
+ * | 0 | False |
103
+ * | 1 | True |
104
+ */
105
+ sensorResultLowerThanTheDeviceCanProcess: number;
106
+ /**
107
+ * <p>Format: `16bit`</p>
108
+ * <p>C5: Field exists if the key of bit 3 of the Flags field is set to 1</p>
109
+ *
110
+ * Bit field:
111
+ *
112
+ * | index | size | name |
113
+ * | ----- | ---- | -------------------------------------------------------------------------------- |
114
+ * | 0 | 1 | Device battery low at time of measurement |
115
+ * | 1 | 1 | Sensor malfunction or faulting at time of measurement |
116
+ * | 2 | 1 | Sample size for blood or control solution insufficient at time of measurement |
117
+ * | 3 | 1 | Strip insertion error |
118
+ * | 4 | 1 | Strip type incorrect for device |
119
+ * | 5 | 1 | Sensor result higher than the device can process |
120
+ * | 6 | 1 | Sensor result lower than the device can process |
121
+ * | 7 | 1 | Sensor temperature too high for valid test/result at time of measurement |
122
+ * | 8 | 1 | Sensor temperature too low for valid test/result at time of measurement |
123
+ * | 9 | 1 | Sensor read interrupted because strip was pulled too soon at time of measurement |
124
+ * | 10 | 1 | General device fault has occurred in the sensor |
125
+ * | 11 | 1 | Time fault has occurred in the sensor and time may be inaccurate |
126
+ * | 12 | 4 | Reserved for future use |
127
+ *
128
+ */
129
+ sensorStatusAnnunciation: number;
130
+ /**
131
+ * | value | description |
132
+ * | ----- | ----------- |
133
+ * | 0 | False |
134
+ * | 1 | True |
135
+ */
136
+ sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement: number;
137
+ /**
138
+ * | value | description |
139
+ * | ----- | ----------- |
140
+ * | 0 | False |
141
+ * | 1 | True |
142
+ */
143
+ sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement: number;
144
+ /** <p>Format: `uint16`</p> */
145
+ sequenceNumber: number;
146
+ /**
147
+ * | value | description |
148
+ * | ----- | ----------- |
149
+ * | 0 | False |
150
+ * | 1 | True |
151
+ */
152
+ stripInsertionError: number;
153
+ /**
154
+ * | value | description |
155
+ * | ----- | ----------- |
156
+ * | 0 | False |
157
+ * | 1 | True |
158
+ */
159
+ stripTypeIncorrectForDevice: number;
160
+ /**
161
+ * | value | description |
162
+ * | ----- | ----------- |
163
+ * | 0 | False |
164
+ * | 1 | True |
165
+ */
166
+ timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate: number;
167
+ /**
168
+ * <p>Format: `sint16`</p>
169
+ * <p>Unit: `org.bluetooth.unit.time.minute`</p>
170
+ * <p>C1: Field exists if the key of bit 0 of the Flags field is set to 1</p>
171
+ */
172
+ timeOffset?: number | undefined;
173
+ /**
174
+ * <p>Format: `nibble`</p>
175
+ * <p>C2: Field exists if the key of bit 1 of the Flags field is set to 1</p>
176
+ * | Key | Description |
177
+ * | --- | ------------------------ |
178
+ * | 0 | Reserved for future use |
179
+ * | 1 | Capillary Whole blood |
180
+ * | 2 | Capillary Plasma |
181
+ * | 3 | Venous Whole blood |
182
+ * | 4 | Venous Plasma |
183
+ * | 5 | Arterial Whole blood |
184
+ * | 6 | Arterial Plasma |
185
+ * | 7 | Undetermined Whole blood |
186
+ * | 8 | Undetermined Plasma |
187
+ * | 9 | Interstitial Fluid (ISF) |
188
+ * | 10 | Control Solution |
189
+ *
190
+ * <p>Reserved for future use: 11 to 15</p>
191
+ */
192
+ type?: number | undefined;
193
+ }
194
+ /**
195
+ * Where fields with the format ?nibble? have been defined in the above table, the fields are shown in the order of Least Significant Nibble first, when reading the table from top to bottom. Where the characteristic definition contains two adjacent nibbles and the service specification has defined that that pair of nibbles comprise a single octet, the Least Significant Nibble means the four bits numbered 0, 1, 2 and 3 of the octet and the Most Significant Nibble means the four bits numbered 4, 5, 6 and 7 of that octet.
196
+ * @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.glucose_measurement.xml | Glucose Measurement}
197
+ */
198
+ export declare class GlucoseMeasurementImpl implements GlucoseMeasurement {
199
+ static readonly UUID_PREFIX = 10776;
200
+ static readonly TYPE_NAME = "org.bluetooth.characteristic.glucose_measurement";
201
+ static readonly NAME = "Glucose Measurement";
202
+ /** Parse from a DataView into {@link GlucoseMeasurement}. */
203
+ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): GlucoseMeasurementImpl;
204
+ readonly baseTime: DateTime;
205
+ readonly contextInformationFollows: number;
206
+ readonly deviceBatteryLowAtTimeOfMeasurement: number;
207
+ readonly flags: number;
208
+ readonly generalDeviceFaultHasOccurredInTheSensor: number;
209
+ readonly glucoseConcentrationUnitsOfKgL?: number | undefined;
210
+ readonly glucoseConcentrationUnitsOfMolL?: number | undefined;
211
+ readonly sampleLocation?: number | undefined;
212
+ readonly sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement: number;
213
+ readonly sensorMalfunctionOrFaultingAtTimeOfMeasurement: number;
214
+ readonly sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement: number;
215
+ readonly sensorResultHigherThanTheDeviceCanProcess: number;
216
+ readonly sensorResultLowerThanTheDeviceCanProcess: number;
217
+ readonly sensorStatusAnnunciation: number;
218
+ readonly sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement: number;
219
+ readonly sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement: number;
220
+ readonly sequenceNumber: number;
221
+ readonly stripInsertionError: number;
222
+ readonly stripTypeIncorrectForDevice: number;
223
+ readonly timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate: number;
224
+ readonly timeOffset?: number | undefined;
225
+ readonly type?: number | undefined;
226
+ constructor(glucoseMeasurement: GlucoseMeasurement);
227
+ }
228
+ /** Parse from a DataView into {@link GlucoseMeasurement}. */
229
+ export declare function glucoseMeasurementFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GlucoseMeasurement;
230
+ //# sourceMappingURL=glucose-measurement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glucose-measurement.d.ts","sourceRoot":"","sources":["../../../src/packages/bluetools/glucose-measurement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ import { dataViewReader } from "./data-view-reader.mjs";
6
+ import { DateTimeImpl } from "./date-time.mjs";
7
+ const _GlucoseMeasurementImpl = class _GlucoseMeasurementImpl {
8
+ /** Parse from a DataView into {@link GlucoseMeasurement}. */
9
+ static fromDataView(dataView, indexStart) {
10
+ return new _GlucoseMeasurementImpl(glucoseMeasurementFromDataView(dataView, indexStart));
11
+ }
12
+ baseTime;
13
+ contextInformationFollows;
14
+ deviceBatteryLowAtTimeOfMeasurement;
15
+ flags;
16
+ generalDeviceFaultHasOccurredInTheSensor;
17
+ glucoseConcentrationUnitsOfKgL;
18
+ glucoseConcentrationUnitsOfMolL;
19
+ sampleLocation;
20
+ sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement;
21
+ sensorMalfunctionOrFaultingAtTimeOfMeasurement;
22
+ sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement;
23
+ sensorResultHigherThanTheDeviceCanProcess;
24
+ sensorResultLowerThanTheDeviceCanProcess;
25
+ sensorStatusAnnunciation;
26
+ sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement;
27
+ sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement;
28
+ sequenceNumber;
29
+ stripInsertionError;
30
+ stripTypeIncorrectForDevice;
31
+ timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate;
32
+ timeOffset;
33
+ type;
34
+ constructor(glucoseMeasurement) {
35
+ this.baseTime = glucoseMeasurement.baseTime;
36
+ this.contextInformationFollows = glucoseMeasurement.contextInformationFollows;
37
+ this.deviceBatteryLowAtTimeOfMeasurement = glucoseMeasurement.deviceBatteryLowAtTimeOfMeasurement;
38
+ this.flags = glucoseMeasurement.flags;
39
+ this.generalDeviceFaultHasOccurredInTheSensor = glucoseMeasurement.generalDeviceFaultHasOccurredInTheSensor;
40
+ this.glucoseConcentrationUnitsOfKgL = glucoseMeasurement.glucoseConcentrationUnitsOfKgL;
41
+ this.glucoseConcentrationUnitsOfMolL = glucoseMeasurement.glucoseConcentrationUnitsOfMolL;
42
+ this.sampleLocation = glucoseMeasurement.sampleLocation;
43
+ this.sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement = glucoseMeasurement.sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement;
44
+ this.sensorMalfunctionOrFaultingAtTimeOfMeasurement = glucoseMeasurement.sensorMalfunctionOrFaultingAtTimeOfMeasurement;
45
+ this.sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement = glucoseMeasurement.sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement;
46
+ this.sensorResultHigherThanTheDeviceCanProcess = glucoseMeasurement.sensorResultHigherThanTheDeviceCanProcess;
47
+ this.sensorResultLowerThanTheDeviceCanProcess = glucoseMeasurement.sensorResultLowerThanTheDeviceCanProcess;
48
+ this.sensorStatusAnnunciation = glucoseMeasurement.sensorStatusAnnunciation;
49
+ this.sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement = glucoseMeasurement.sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement;
50
+ this.sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement = glucoseMeasurement.sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement;
51
+ this.sequenceNumber = glucoseMeasurement.sequenceNumber;
52
+ this.stripInsertionError = glucoseMeasurement.stripInsertionError;
53
+ this.stripTypeIncorrectForDevice = glucoseMeasurement.stripTypeIncorrectForDevice;
54
+ this.timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate = glucoseMeasurement.timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate;
55
+ this.timeOffset = glucoseMeasurement.timeOffset;
56
+ this.type = glucoseMeasurement.type;
57
+ }
58
+ };
59
+ __name(_GlucoseMeasurementImpl, "GlucoseMeasurementImpl");
60
+ __publicField(_GlucoseMeasurementImpl, "UUID_PREFIX", 10776);
61
+ __publicField(_GlucoseMeasurementImpl, "TYPE_NAME", "org.bluetooth.characteristic.glucose_measurement");
62
+ __publicField(_GlucoseMeasurementImpl, "NAME", "Glucose Measurement");
63
+ let GlucoseMeasurementImpl = _GlucoseMeasurementImpl;
64
+ function glucoseMeasurementFromDataView(dataView, indexStart = 0) {
65
+ const $dvr = dataViewReader(dataView, indexStart);
66
+ const flags = $dvr.uint8();
67
+ const timeOffsetPresent = !!(flags & 1);
68
+ const glucoseConcentrationTypeAndSampleLocationPresent = !!((flags & 2) >> 1);
69
+ const glucoseConcentrationUnits = !!((flags & 4) >> 2);
70
+ const sensorStatusAnnunciationPresent = !!((flags & 8) >> 3);
71
+ const contextInformationFollows = (flags & 16) >> 4;
72
+ const sequenceNumber = $dvr.uint16();
73
+ const baseTime = DateTimeImpl.fromDataView($dvr);
74
+ let timeOffset = void 0;
75
+ if (timeOffsetPresent) {
76
+ timeOffset = $dvr.int16();
77
+ }
78
+ let glucoseConcentrationUnitsOfKgL = void 0;
79
+ if (glucoseConcentrationTypeAndSampleLocationPresent && !glucoseConcentrationUnits) {
80
+ glucoseConcentrationUnitsOfKgL = $dvr.sFloat();
81
+ }
82
+ let glucoseConcentrationUnitsOfMolL = void 0;
83
+ if (glucoseConcentrationTypeAndSampleLocationPresent && glucoseConcentrationUnits) {
84
+ glucoseConcentrationUnitsOfMolL = $dvr.sFloat();
85
+ }
86
+ let type = void 0;
87
+ if (glucoseConcentrationTypeAndSampleLocationPresent) {
88
+ type = $dvr.nibble();
89
+ }
90
+ let sampleLocation = void 0;
91
+ if (glucoseConcentrationTypeAndSampleLocationPresent) {
92
+ sampleLocation = $dvr.nibble();
93
+ }
94
+ let sensorStatusAnnunciation = 0;
95
+ if (sensorStatusAnnunciationPresent) {
96
+ sensorStatusAnnunciation = $dvr.uint16();
97
+ }
98
+ const deviceBatteryLowAtTimeOfMeasurement = sensorStatusAnnunciation & 1;
99
+ const sensorMalfunctionOrFaultingAtTimeOfMeasurement = (sensorStatusAnnunciation & 2) >> 1;
100
+ const sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement = (sensorStatusAnnunciation & 4) >> 2;
101
+ const stripInsertionError = (sensorStatusAnnunciation & 8) >> 3;
102
+ const stripTypeIncorrectForDevice = (sensorStatusAnnunciation & 16) >> 4;
103
+ const sensorResultHigherThanTheDeviceCanProcess = (sensorStatusAnnunciation & 32) >> 5;
104
+ const sensorResultLowerThanTheDeviceCanProcess = (sensorStatusAnnunciation & 64) >> 6;
105
+ const sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement = (sensorStatusAnnunciation & 128) >> 7;
106
+ const sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement = (sensorStatusAnnunciation & 256) >> 8;
107
+ const sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement = (sensorStatusAnnunciation & 512) >> 9;
108
+ const generalDeviceFaultHasOccurredInTheSensor = (sensorStatusAnnunciation & 1024) >> 10;
109
+ const timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate = (sensorStatusAnnunciation & 2048) >> 11;
110
+ return { baseTime, contextInformationFollows, deviceBatteryLowAtTimeOfMeasurement, flags, generalDeviceFaultHasOccurredInTheSensor, glucoseConcentrationUnitsOfKgL, glucoseConcentrationUnitsOfMolL, sampleLocation, sampleSizeForBloodOrControlSolutionInsufficientAtTimeOfMeasurement, sensorMalfunctionOrFaultingAtTimeOfMeasurement, sensorReadInterruptedBecauseStripWasPulledTooSoonAtTimeOfMeasurement, sensorResultHigherThanTheDeviceCanProcess, sensorResultLowerThanTheDeviceCanProcess, sensorStatusAnnunciation, sensorTemperatureTooHighForValidTestResultAtTimeOfMeasurement, sensorTemperatureTooLowForValidTestResultAtTimeOfMeasurement, sequenceNumber, stripInsertionError, stripTypeIncorrectForDevice, timeFaultHasOccurredInTheSensorAndTimeMayBeInaccurate, timeOffset, type };
111
+ }
112
+ __name(glucoseMeasurementFromDataView, "glucoseMeasurementFromDataView");
113
+ export {
114
+ GlucoseMeasurementImpl,
115
+ glucoseMeasurementFromDataView
116
+ };
117
+ //# sourceMappingURL=glucose-measurement.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/bluetools/glucose-measurement.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }