@ovok/native 1.16.1-dev.2129 → 1.16.1-dev.2133

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 (105) hide show
  1. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +13 -1
  2. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +4 -7
  4. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +106 -0
  6. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
  7. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
  8. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +41 -0
  10. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
  11. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +22 -24
  12. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  13. package/lib/commonjs/modules/bt-management/utils/device-user.js +22 -0
  14. package/lib/commonjs/modules/bt-management/utils/device-user.js.map +1 -0
  15. package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js +9 -0
  16. package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/utils/rr-interval.js +16 -0
  18. package/lib/commonjs/modules/bt-management/utils/rr-interval.js.map +1 -0
  19. package/lib/commonjs/modules/bt-management/utils/temperature-type.js +15 -0
  20. package/lib/commonjs/modules/bt-management/utils/temperature-type.js.map +1 -0
  21. package/lib/commonjs/modules/next/bluetooth/index.js +6 -0
  22. package/lib/commonjs/modules/next/bluetooth/index.js.map +1 -1
  23. package/lib/commonjs/modules/next/bluetooth/result-policy.js +10 -2
  24. package/lib/commonjs/modules/next/bluetooth/result-policy.js.map +1 -1
  25. package/lib/commonjs/modules/next/bluetooth/sig-profiles.js +46 -13
  26. package/lib/commonjs/modules/next/bluetooth/sig-profiles.js.map +1 -1
  27. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +13 -1
  28. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  29. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +1 -4
  30. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
  31. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +99 -0
  32. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
  33. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
  34. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  35. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +35 -0
  36. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
  37. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +18 -20
  38. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  39. package/lib/module/modules/bt-management/utils/device-user.js +17 -0
  40. package/lib/module/modules/bt-management/utils/device-user.js.map +1 -0
  41. package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js +6 -0
  42. package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
  43. package/lib/module/modules/bt-management/utils/rr-interval.js +12 -0
  44. package/lib/module/modules/bt-management/utils/rr-interval.js.map +1 -0
  45. package/lib/module/modules/bt-management/utils/temperature-type.js +11 -0
  46. package/lib/module/modules/bt-management/utils/temperature-type.js.map +1 -0
  47. package/lib/module/modules/next/bluetooth/index.js +1 -1
  48. package/lib/module/modules/next/bluetooth/index.js.map +1 -1
  49. package/lib/module/modules/next/bluetooth/result-policy.js +8 -1
  50. package/lib/module/modules/next/bluetooth/result-policy.js.map +1 -1
  51. package/lib/module/modules/next/bluetooth/sig-profiles.js +44 -11
  52. package/lib/module/modules/next/bluetooth/sig-profiles.js.map +1 -1
  53. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +2 -0
  54. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
  57. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
  59. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
  61. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
  62. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
  63. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +6 -0
  65. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts +6 -0
  67. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
  68. package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
  69. package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
  70. package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
  71. package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
  72. package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
  73. package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +1 -1
  75. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts +6 -1
  77. package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
  79. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +2 -0
  80. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  81. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
  82. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
  83. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
  84. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
  85. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  86. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
  87. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
  88. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
  89. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  90. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +6 -0
  91. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  92. package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts +6 -0
  93. package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
  94. package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
  95. package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
  96. package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
  97. package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
  98. package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
  99. package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
  100. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +1 -1
  101. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
  102. package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts +6 -1
  103. package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
  104. package/lib/typescript/module/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
  105. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_bloodPressureStates","require","_sigUuid","_defineCustomDevice","_standardGattBloodPressureStatus","SPOT_CHECK_TIMEOUT_MS","declareProfile","params","profile","defineCustomDevice","id","measurementTypeKey","nameMatch","matchByService","undefined","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","sigUuid","service","monitor","characteristic","frame","minLengthBytes","caseSelectorBytes","cases","selectors","map","selector","optional","optionalFields","fields","fieldsBySelector","kind","decorateReading","exports","littleEndian","name","byteIndexes","unit","encoding","byteOrder","byteAt","index","offset","value","Number","parseInt","isInteger","recordedAtFromBloodPressureFrame","flags","yearLow","yearHigh","month","day","hour","minute","second","year","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","decorateBloodPressureReading","reading","recordOffset","cursor","metadata","userId","memorySlot","status","bloodPressureStatusFromFrame","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","irregularHeartbeat","Object","keys","length"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bloodPressureStates","require","_deviceUser","_sigUuid","_defineCustomDevice","_standardGattBloodPressureStatus","_standardGattFrame","SPOT_CHECK_TIMEOUT_MS","chainDecorators","first","second","reading","frame","recordOffset","decorated","declareProfile","params","profile","defineCustomDevice","id","measurementTypeKey","nameMatch","matchByService","undefined","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","sigUuid","service","monitor","characteristic","minLengthBytes","caseSelectorBytes","cases","selectors","map","selector","optional","optionalFields","fields","fieldsBySelector","kind","decorateReading","exports","littleEndian","name","byteIndexes","unit","encoding","byteOrder","recordedAtFromBloodPressureFrame","offset","flags","byteAt","dateTimeAt","decorateBloodPressureReading","recordedAt","cursor","metadata","userId","memorySlot","memorySlotForDeviceUser","status","bloodPressureStatusFromFrame","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","irregularHeartbeat","Object","keys","length"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.memorySlotForDeviceUser = exports.isFromAcceptedMemorySlot = void 0;
7
+ /** The Bluetooth SIG User Index that means the device does not know whose reading it is. */
8
+ const UNKNOWN_DEVICE_USER = 0xff;
9
+
10
+ /** The memory slot of a SIG device user: users count from 0, slots from 1; the unknown user has none. */
11
+ const memorySlotForDeviceUser = userId => userId === UNKNOWN_DEVICE_USER ? undefined : userId + 1;
12
+
13
+ /** Whether a reading is from one of the device users `slots`; a reading that names no device user is kept. */
14
+ exports.memorySlotForDeviceUser = memorySlotForDeviceUser;
15
+ const isFromAcceptedMemorySlot = (reading, slots) => {
16
+ const {
17
+ memorySlot
18
+ } = reading;
19
+ return typeof memorySlot !== "number" || slots.includes(memorySlot);
20
+ };
21
+ exports.isFromAcceptedMemorySlot = isFromAcceptedMemorySlot;
22
+ //# sourceMappingURL=device-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UNKNOWN_DEVICE_USER","memorySlotForDeviceUser","userId","undefined","exports","isFromAcceptedMemorySlot","reading","slots","memorySlot","includes"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/device-user.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,mBAAmB,GAAG,IAAI;;AAEhC;AACA,MAAMC,uBAAuB,GAAIC,MAAc,IAC7CA,MAAM,KAAKF,mBAAmB,GAAGG,SAAS,GAAGD,MAAM,GAAG,CAAC;;AAEzD;AAAAE,OAAA,CAAAH,uBAAA,GAAAA,uBAAA;AACA,MAAMI,wBAAwB,GAAGA,CAC/BC,OAAe,EACfC,KAAwB,KACZ;EACZ,MAAM;IAAEC;EAAW,CAAC,GAAGF,OAAmC;EAE1D,OAAO,OAAOE,UAAU,KAAK,QAAQ,IAAID,KAAK,CAACE,QAAQ,CAACD,UAAU,CAAC;AACrE,CAAC;AAACJ,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KPA_TO_MMHG = void 0;
7
+ /** Millimetres of mercury in one kilopascal. */
8
+ const KPA_TO_MMHG = exports.KPA_TO_MMHG = 7.50062;
9
+ //# sourceMappingURL=kpa-to-mmhg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KPA_TO_MMHG","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/kpa-to-mmhg.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rrIntervalMilliseconds = void 0;
7
+ const MILLISECONDS_PER_SECOND = 1000;
8
+
9
+ /** The Bluetooth SIG heart-rate RR-Interval resolution: counts of 1/1024 s. */
10
+ const RR_COUNTS_PER_SECOND = 1024;
11
+ const RR_DECIMALS = 2;
12
+
13
+ /** An RR-Interval count from a Heart Rate Measurement, in milliseconds. */
14
+ const rrIntervalMilliseconds = counts => Number((counts * MILLISECONDS_PER_SECOND / RR_COUNTS_PER_SECOND).toFixed(RR_DECIMALS));
15
+ exports.rrIntervalMilliseconds = rrIntervalMilliseconds;
16
+ //# sourceMappingURL=rr-interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MILLISECONDS_PER_SECOND","RR_COUNTS_PER_SECOND","RR_DECIMALS","rrIntervalMilliseconds","counts","Number","toFixed","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/rr-interval.ts"],"mappings":";;;;;;AAAA,MAAMA,uBAAuB,GAAG,IAAI;;AAEpC;AACA,MAAMC,oBAAoB,GAAG,IAAI;AAEjC,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,sBAAsB,GAAIC,MAAc,IAC5CC,MAAM,CACJ,CAAED,MAAM,GAAGJ,uBAAuB,GAAIC,oBAAoB,EAAEK,OAAO,CACjEJ,WACF,CACF,CAAC;AAACK,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.temperatureTypeFromCode = void 0;
7
+ /** Where on the body a thermometer took its reading: the Bluetooth SIG Temperature Type. */
8
+
9
+ /** Indexed by the Temperature Type code, which starts at 1; code 0 is reserved. */
10
+ const TEMPERATURE_TYPES = ["armpit", "body", "ear", "finger", "gastrointestinal-tract", "mouth", "rectum", "toe", "tympanum"];
11
+
12
+ /** The body site for a Temperature Type code; undefined for a reserved or unknown code. */
13
+ const temperatureTypeFromCode = code => TEMPERATURE_TYPES[code - 1];
14
+ exports.temperatureTypeFromCode = temperatureTypeFromCode;
15
+ //# sourceMappingURL=temperature-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TEMPERATURE_TYPES","temperatureTypeFromCode","code","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/temperature-type.ts"],"mappings":";;;;;;AAAA;;AAYA;AACA,MAAMA,iBAA6C,GAAG,CACpD,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAQ,EACR,wBAAwB,EACxB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,UAAU,CACX;;AAED;AACA,MAAMC,uBAAuB,GAAIC,IAAY,IAC3CF,iBAAiB,CAACE,IAAI,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAF,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -39,6 +39,12 @@ Object.defineProperty(exports, "SIG_PROTOCOLS", {
39
39
  return _sigProfiles.SIG_PROTOCOLS;
40
40
  }
41
41
  });
42
+ Object.defineProperty(exports, "acceptedMemorySlots", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _resultPolicy.acceptedMemorySlots;
46
+ }
47
+ });
42
48
  Object.defineProperty(exports, "bleManagerScanner", {
43
49
  enumerable: true,
44
50
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_runtime","require","_errors","_devices","_resultPolicy","_sigProfiles","_bleScanner","_builtInDevices","_integratedDevices","_osPermissions","_ovokSink","_createBluetoothRuntime","_context","_hooks","_bluetoothDevicePicker"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAOA,IAAAE,QAAA,GAAAF,OAAA;AAIA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AAEA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AAGA,IAAAW,QAAA,GAAAX,OAAA;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AASA,IAAAa,sBAAA,GAAAb,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_runtime","require","_errors","_devices","_resultPolicy","_sigProfiles","_bleScanner","_builtInDevices","_integratedDevices","_osPermissions","_ovokSink","_createBluetoothRuntime","_context","_hooks","_bluetoothDevicePicker"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAOA,IAAAE,QAAA,GAAAF,OAAA;AAIA,IAAAG,aAAA,GAAAH,OAAA;AASA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AAEA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AAGA,IAAAW,QAAA,GAAAX,OAAA;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AASA,IAAAa,sBAAA,GAAAb,OAAA","ignoreList":[]}
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.firstReadingPerKind = exports.everyReading = exports.dailyTotalsOnly = void 0;
6
+ exports.firstReadingPerKind = exports.everyReading = exports.dailyTotalsOnly = exports.acceptedMemorySlots = void 0;
7
7
  exports.keepReadings = keepReadings;
8
8
  exports.policyByKind = void 0;
9
+ var _deviceUser = require("../../bt-management/utils/device-user.js");
9
10
  var _dailyTotalDay = require("./daily-total-day.js");
10
11
  /** Makes, for each connection, the test of which readings to keep. */
11
12
 
@@ -45,8 +46,15 @@ const dailyTotalsOnly = () => {
45
46
  };
46
47
  };
47
48
 
48
- /** Applies a policy per measurement type, and `fallback` to the other types. */
49
+ /**
50
+ * Keeps the readings of the device users in `slots` (a multi-user device reports its user as `memorySlot`, starting at
51
+ * 1), and drops the others. A reading that names no device user is kept.
52
+ */
49
53
  exports.dailyTotalsOnly = dailyTotalsOnly;
54
+ const acceptedMemorySlots = slots => () => reading => (0, _deviceUser.isFromAcceptedMemorySlot)(reading, slots);
55
+
56
+ /** Applies a policy per measurement type, and `fallback` to the other types. */
57
+ exports.acceptedMemorySlots = acceptedMemorySlots;
50
58
  const policyByKind = (policies, fallback = everyReading) => () => {
51
59
  const tests = new Map();
52
60
  const fallbackTest = fallback();
@@ -1 +1 @@
1
- {"version":3,"names":["_dailyTotalDay","require","everyReading","exports","firstReadingPerKind","reported","Set","measurementTypeKey","has","add","dailyTotalsOnly","reading","day","dailyTotalDay","Date","now","undefined","key","policyByKind","policies","fallback","tests","Map","fallbackTest","policy","test","get","set","keepReadings","events","keep","event","kind"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/result-policy.ts"],"mappings":";;;;;;;;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAGA;;AAGA;AACA,MAAMC,YAA0B,GAAGA,CAAA,KAAM,MAAM,IAAI;;AAEnD;AAAAC,OAAA,CAAAD,YAAA,GAAAA,YAAA;AACA,MAAME,mBAAiC,GAAGA,CAAA,KAAM;EAC9C,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAqB,CAAC;EAE9C,OAAO,CAAC;IAAEC;EAAmB,CAAC,KAAK;IACjC,IAAIF,QAAQ,CAACG,GAAG,CAACD,kBAAkB,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEAF,QAAQ,CAACI,GAAG,CAACF,kBAAkB,CAAC;IAEhC,OAAO,IAAI;EACb,CAAC;AACH,CAAC;;AAED;AAAAJ,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AACA,MAAMM,eAA6B,GAAGA,CAAA,KAAM;EAC1C,MAAML,QAAQ,GAAG,IAAIC,GAAG,CAAS,CAAC;EAElC,OAAQK,OAAO,IAAK;IAClB,MAAMC,GAAG,GAAG,IAAAC,4BAAa,EAACF,OAAO,EAAEG,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAIH,GAAG,KAAKI,SAAS,EAAE;MACrB,OAAO,IAAI;IACb;IAEA,MAAMC,GAAG,GAAG,GAAGN,OAAO,CAACJ,kBAAkB,IAAIK,GAAG,EAAE;IAElD,IAAIA,GAAG,KAAK,QAAQ,IAAIP,QAAQ,CAACG,GAAG,CAACS,GAAG,CAAC,EAAE;MACzC,OAAO,KAAK;IACd;IAEAZ,QAAQ,CAACI,GAAG,CAACQ,GAAG,CAAC;IAEjB,OAAO,IAAI;EACb,CAAC;AACH,CAAC;;AAED;AAAAd,OAAA,CAAAO,eAAA,GAAAA,eAAA;AACA,MAAMQ,YAAY,GAAGA,CACnBC,QAA2D,EAC3DC,QAAsB,GAAGlB,YAAY,KAErC,MAAM;EACJ,MAAMmB,KAAK,GAAG,IAAIC,GAAG,CAAwD,CAAC;EAC9E,MAAMC,YAAY,GAAGH,QAAQ,CAAC,CAAC;EAE/B,OAAQT,OAAO,IAAK;IAClB,MAAMa,MAAM,GAAGL,QAAQ,CAACR,OAAO,CAACJ,kBAAkB,CAAC;IAEnD,IAAI,CAACiB,MAAM,EAAE;MACX,OAAOD,YAAY,CAACZ,OAAO,CAAC;IAC9B;IAEA,MAAMc,IAAI,GAAGJ,KAAK,CAACK,GAAG,CAACf,OAAO,CAACJ,kBAAkB,CAAC,IAAIiB,MAAM,CAAC,CAAC;IAE9DH,KAAK,CAACM,GAAG,CAAChB,OAAO,CAACJ,kBAAkB,EAAEkB,IAAI,CAAC;IAE3C,OAAOA,IAAI,CAACd,OAAO,CAAC;EACtB,CAAC;AACH,CAAC;;AAEH;AAAAR,OAAA,CAAAe,YAAA,GAAAA,YAAA;AACA,gBAAgBU,YAAYA,CAACC,MAAkC,EAAEL,MAAoB,EAA8B;EACjH,MAAMM,IAAI,GAAGN,MAAM,CAAC,CAAC;EAErB,WAAW,MAAMO,KAAK,IAAIF,MAAM,EAAE;IAChC,IAAIE,KAAK,CAACC,IAAI,KAAK,SAAS,IAAIF,IAAI,CAACC,KAAK,CAACpB,OAAO,CAAC,EAAE;MACnD,MAAMoB,KAAK;IACb;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_deviceUser","require","_dailyTotalDay","everyReading","exports","firstReadingPerKind","reported","Set","measurementTypeKey","has","add","dailyTotalsOnly","reading","day","dailyTotalDay","Date","now","undefined","key","acceptedMemorySlots","slots","isFromAcceptedMemorySlot","policyByKind","policies","fallback","tests","Map","fallbackTest","policy","test","get","set","keepReadings","events","keep","event","kind"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/result-policy.ts"],"mappings":";;;;;;;;AAEA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAGA;;AAGA;AACA,MAAME,YAA0B,GAAGA,CAAA,KAAM,MAAM,IAAI;;AAEnD;AAAAC,OAAA,CAAAD,YAAA,GAAAA,YAAA;AACA,MAAME,mBAAiC,GAAGA,CAAA,KAAM;EAC9C,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAqB,CAAC;EAE9C,OAAO,CAAC;IAAEC;EAAmB,CAAC,KAAK;IACjC,IAAIF,QAAQ,CAACG,GAAG,CAACD,kBAAkB,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEAF,QAAQ,CAACI,GAAG,CAACF,kBAAkB,CAAC;IAEhC,OAAO,IAAI;EACb,CAAC;AACH,CAAC;;AAED;AAAAJ,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AACA,MAAMM,eAA6B,GAAGA,CAAA,KAAM;EAC1C,MAAML,QAAQ,GAAG,IAAIC,GAAG,CAAS,CAAC;EAElC,OAAQK,OAAO,IAAK;IAClB,MAAMC,GAAG,GAAG,IAAAC,4BAAa,EAACF,OAAO,EAAEG,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAIH,GAAG,KAAKI,SAAS,EAAE;MACrB,OAAO,IAAI;IACb;IAEA,MAAMC,GAAG,GAAG,GAAGN,OAAO,CAACJ,kBAAkB,IAAIK,GAAG,EAAE;IAElD,IAAIA,GAAG,KAAK,QAAQ,IAAIP,QAAQ,CAACG,GAAG,CAACS,GAAG,CAAC,EAAE;MACzC,OAAO,KAAK;IACd;IAEAZ,QAAQ,CAACI,GAAG,CAACQ,GAAG,CAAC;IAEjB,OAAO,IAAI;EACb,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AAHAd,OAAA,CAAAO,eAAA,GAAAA,eAAA;AAIA,MAAMQ,mBAAmB,GAAIC,KAAwB,IACnD,MAAOR,OAAO,IAAK,IAAAS,oCAAwB,EAACT,OAAO,EAAEQ,KAAK,CAAC;;AAE7D;AAAAhB,OAAA,CAAAe,mBAAA,GAAAA,mBAAA;AACA,MAAMG,YAAY,GAAGA,CACnBC,QAA2D,EAC3DC,QAAsB,GAAGrB,YAAY,KAErC,MAAM;EACJ,MAAMsB,KAAK,GAAG,IAAIC,GAAG,CAAwD,CAAC;EAC9E,MAAMC,YAAY,GAAGH,QAAQ,CAAC,CAAC;EAE/B,OAAQZ,OAAO,IAAK;IAClB,MAAMgB,MAAM,GAAGL,QAAQ,CAACX,OAAO,CAACJ,kBAAkB,CAAC;IAEnD,IAAI,CAACoB,MAAM,EAAE;MACX,OAAOD,YAAY,CAACf,OAAO,CAAC;IAC9B;IAEA,MAAMiB,IAAI,GAAGJ,KAAK,CAACK,GAAG,CAAClB,OAAO,CAACJ,kBAAkB,CAAC,IAAIoB,MAAM,CAAC,CAAC;IAE9DH,KAAK,CAACM,GAAG,CAACnB,OAAO,CAACJ,kBAAkB,EAAEqB,IAAI,CAAC;IAE3C,OAAOA,IAAI,CAACjB,OAAO,CAAC;EACtB,CAAC;AACH,CAAC;;AAEH;AAAAR,OAAA,CAAAkB,YAAA,GAAAA,YAAA;AACA,gBAAgBU,YAAYA,CAACC,MAAkC,EAAEL,MAAoB,EAA8B;EACjH,MAAMM,IAAI,GAAGN,MAAM,CAAC,CAAC;EAErB,WAAW,MAAMO,KAAK,IAAIF,MAAM,EAAE;IAChC,IAAIE,KAAK,CAACC,IAAI,KAAK,SAAS,IAAIF,IAAI,CAACC,KAAK,CAACvB,OAAO,CAAC,EAAE;MACnD,MAAMuB,KAAK;IACb;EACF;AACF","ignoreList":[]}
@@ -6,9 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.temperature = exports.pulseOximetry = exports.heartRate = exports.bodyWeight = exports.bloodPressure = exports.SIG_PROTOCOLS = void 0;
7
7
  var _next = require("@ovok/core/next");
8
8
  var _bloodPressureStates = require("../../bt-management/types/blood-pressure-states.js");
9
+ var _deviceUser = require("../../bt-management/utils/device-user.js");
10
+ var _kpaToMmhg = require("../../bt-management/utils/kpa-to-mmhg.js");
11
+ var _rrInterval = require("../../bt-management/utils/rr-interval.js");
9
12
  var _sigUuid = require("../../bt-management/utils/sig-uuid.js");
13
+ var _temperatureType = require("../../bt-management/utils/temperature-type.js");
10
14
  var _sigValues = require("./sig-values.js");
11
- const KPA_TO_MMHG = 7.50062;
12
15
  const KG_PER_SI_COUNT = 0.005;
13
16
  const KG_PER_IMPERIAL_COUNT = 0.01 * 0.45359237;
14
17
  const WEIGHT_UNSUCCESSFUL = 0xffff;
@@ -23,15 +26,29 @@ const BP_LOOSE_CUFF = 0x02;
23
26
  const BP_IRREGULAR_PULSE = 0x04;
24
27
  const TEMPERATURE_FAHRENHEIT = 0x01;
25
28
  const TEMPERATURE_TIMESTAMP = 0x02;
29
+ const TEMPERATURE_TYPE = 0x04;
30
+ const TEMPERATURE_TIMESTAMP_OFFSET = 5;
26
31
  const WEIGHT_IMPERIAL = 0x01;
27
32
  const WEIGHT_TIMESTAMP = 0x02;
33
+ const WEIGHT_USER = 0x04;
34
+ const WEIGHT_TIMESTAMP_OFFSET = 3;
28
35
  const PLX_TIMESTAMP = 0x01;
29
36
  const HEART_RATE_UINT16 = 0x01;
30
37
  const HEART_RATE_CONTACT_BITS = 0x06;
31
38
  const HEART_RATE_NO_CONTACT = 0x04;
39
+ const HEART_RATE_ENERGY_EXPENDED = 0x08;
40
+ const HEART_RATE_RR_INTERVALS = 0x10;
41
+ const UINT8_BYTES = 1;
42
+ const UINT16_BYTES = 2;
32
43
 
33
44
  /** Core does not export its status enum; this one has the same values. */
34
45
 
46
+ /** Core's temperature has no body site, so it rides along on the reading as `memorySlot` does on blood pressure. */
47
+
48
+ /** The device user, carried the way blood pressure carries it. */
49
+
50
+ /** Core's heart rate has no RR intervals, so they ride along on the reading, in milliseconds. */
51
+
35
52
  const bloodPressureStatus = status => {
36
53
  if (status & BP_BODY_MOVEMENT) {
37
54
  return _bloodPressureStates.BloodPressureStates.DISTURB_DETECTED;
@@ -52,8 +69,7 @@ const bloodPressureExtras = (view, flags) => {
52
69
  offset += 2;
53
70
  }
54
71
  if (flags & BP_USER) {
55
- const user = view.getUint8(offset);
56
- extras.memorySlot = user < 2 ? user + 1 : undefined;
72
+ extras.memorySlot = (0, _deviceUser.memorySlotForDeviceUser)(view.getUint8(offset));
57
73
  offset += 1;
58
74
  }
59
75
  if (flags & BP_STATUS) {
@@ -67,7 +83,7 @@ const bloodPressureExtras = (view, flags) => {
67
83
  /** Blood Pressure Measurement 0x2A35, in mmHg. */
68
84
  const bloodPressure = view => {
69
85
  const flags = view.getUint8(0);
70
- const pressure = value => flags & BP_KPA ? (0, _sigValues.roundTo)(value * KPA_TO_MMHG, 0) : value;
86
+ const pressure = value => flags & BP_KPA ? (0, _sigValues.roundTo)(value * _kpaToMmhg.KPA_TO_MMHG, 0) : value;
71
87
  const [systolic, diastolic, mean] = [1, 3, 5].map(offset => (0, _sigValues.sfloatAt)(view, offset));
72
88
  if (systolic === undefined || diastolic === undefined) {
73
89
  return undefined;
@@ -91,13 +107,16 @@ const temperature = view => {
91
107
  if (value === undefined) {
92
108
  return undefined;
93
109
  }
110
+ const hasTimestamp = Boolean(flags & TEMPERATURE_TIMESTAMP);
111
+ const typeOffset = TEMPERATURE_TIMESTAMP_OFFSET + (hasTimestamp ? DATE_TIME_BYTES : 0);
94
112
  const reading = {
95
113
  measurementTypeKey: _next.MeasurementTypeKey.temperature,
96
114
  bodyTemp: flags & TEMPERATURE_FAHRENHEIT ? (0, _sigValues.roundTo)((value - 32) * 5 / 9, 2) : value
97
115
  };
98
- return flags & TEMPERATURE_TIMESTAMP ? (0, _sigValues.withDefined)(reading, {
99
- recordedAt: (0, _sigValues.dateTimeAt)(view, 5)
100
- }) : reading;
116
+ return (0, _sigValues.withDefined)(reading, {
117
+ recordedAt: hasTimestamp ? (0, _sigValues.dateTimeAt)(view, TEMPERATURE_TIMESTAMP_OFFSET) : undefined,
118
+ temperatureType: flags & TEMPERATURE_TYPE ? (0, _temperatureType.temperatureTypeFromCode)(view.getUint8(typeOffset)) : undefined
119
+ });
101
120
  };
102
121
 
103
122
  /** Weight Measurement 0x2A9D, in kilograms. */
@@ -108,13 +127,16 @@ const bodyWeight = view => {
108
127
  if (counts === WEIGHT_UNSUCCESSFUL) {
109
128
  return undefined;
110
129
  }
130
+ const hasTimestamp = Boolean(flags & WEIGHT_TIMESTAMP);
131
+ const userOffset = WEIGHT_TIMESTAMP_OFFSET + (hasTimestamp ? DATE_TIME_BYTES : 0);
111
132
  const reading = {
112
133
  measurementTypeKey: _next.MeasurementTypeKey.bodyWeight,
113
134
  bodyWeight: (0, _sigValues.roundTo)(counts * (flags & WEIGHT_IMPERIAL ? KG_PER_IMPERIAL_COUNT : KG_PER_SI_COUNT), 3)
114
135
  };
115
- return flags & WEIGHT_TIMESTAMP ? (0, _sigValues.withDefined)(reading, {
116
- recordedAt: (0, _sigValues.dateTimeAt)(view, 3)
117
- }) : reading;
136
+ return (0, _sigValues.withDefined)(reading, {
137
+ recordedAt: hasTimestamp ? (0, _sigValues.dateTimeAt)(view, WEIGHT_TIMESTAMP_OFFSET) : undefined,
138
+ memorySlot: flags & WEIGHT_USER ? (0, _deviceUser.memorySlotForDeviceUser)(view.getUint8(userOffset)) : undefined
139
+ });
118
140
  };
119
141
 
120
142
  /** PLX Spot-Check Measurement 0x2A5E. */
@@ -136,18 +158,29 @@ const pulseOximetry = view => {
136
158
  }) : reading;
137
159
  };
138
160
 
139
- /** Heart Rate Measurement 0x2A37; a strap reporting no skin contact has no reading. */
161
+ /** The RR intervals from `offset` to the end of the frame, in milliseconds. */
140
162
  exports.pulseOximetry = pulseOximetry;
163
+ const rrIntervalsFrom = (view, offset) => Array.from({
164
+ length: Math.floor((view.byteLength - offset) / UINT16_BYTES)
165
+ }, (_, index) => (0, _rrInterval.rrIntervalMilliseconds)(view.getUint16(offset + index * UINT16_BYTES, true)));
166
+
167
+ /** Heart Rate Measurement 0x2A37; a strap reporting no skin contact has no reading. */
141
168
  const heartRate = view => {
142
169
  const flags = view.getUint8(0);
143
170
  if ((flags & HEART_RATE_CONTACT_BITS) === HEART_RATE_NO_CONTACT) {
144
171
  return undefined;
145
172
  }
173
+ const hasUint16 = Boolean(flags & HEART_RATE_UINT16);
174
+ const rrOffset = 1 + (hasUint16 ? UINT16_BYTES : UINT8_BYTES) + (flags & HEART_RATE_ENERGY_EXPENDED ? UINT16_BYTES : 0);
175
+ const rrIntervals = flags & HEART_RATE_RR_INTERVALS ? rrIntervalsFrom(view, rrOffset) : [];
146
176
  const reading = {
147
177
  measurementTypeKey: _next.MeasurementTypeKey.heartRate,
148
- heartRate: flags & HEART_RATE_UINT16 ? view.getUint16(1, true) : view.getUint8(1)
178
+ heartRate: hasUint16 ? view.getUint16(1, true) : view.getUint8(1)
149
179
  };
150
- return reading;
180
+ return rrIntervals.length > 0 ? {
181
+ ...reading,
182
+ rrIntervals
183
+ } : reading;
151
184
  };
152
185
  exports.heartRate = heartRate;
153
186
  const subscribed = (service, characteristic, decode) => async function* (link) {
@@ -1 +1 @@
1
- {"version":3,"names":["_next","require","_bloodPressureStates","_sigUuid","_sigValues","KPA_TO_MMHG","KG_PER_SI_COUNT","KG_PER_IMPERIAL_COUNT","WEIGHT_UNSUCCESSFUL","DATE_TIME_BYTES","BP_KPA","BP_TIMESTAMP","BP_PULSE","BP_USER","BP_STATUS","BP_BODY_MOVEMENT","BP_LOOSE_CUFF","BP_IRREGULAR_PULSE","TEMPERATURE_FAHRENHEIT","TEMPERATURE_TIMESTAMP","WEIGHT_IMPERIAL","WEIGHT_TIMESTAMP","PLX_TIMESTAMP","HEART_RATE_UINT16","HEART_RATE_CONTACT_BITS","HEART_RATE_NO_CONTACT","bloodPressureStatus","status","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","bloodPressureExtras","view","flags","offset","extras","recordedAt","dateTimeAt","heartRate","sfloatAt","user","getUint8","memorySlot","undefined","getUint16","irregularHeartbeat","bloodPressure","pressure","value","roundTo","systolic","diastolic","mean","map","reading","measurementTypeKey","MeasurementTypeKey","withDefined","meanArterialPressure","exports","temperature","floatAt","bodyTemp","bodyWeight","counts","pulseOximetry","bloodOxygen","pulseRate","bloodOxygenPulseRate","subscribed","service","characteristic","decode","link","frame","subscribe","sigUuid","decodeFrame","SIG_PROTOCOLS","Map"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/sig-profiles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_next","require","_bloodPressureStates","_deviceUser","_kpaToMmhg","_rrInterval","_sigUuid","_temperatureType","_sigValues","KG_PER_SI_COUNT","KG_PER_IMPERIAL_COUNT","WEIGHT_UNSUCCESSFUL","DATE_TIME_BYTES","BP_KPA","BP_TIMESTAMP","BP_PULSE","BP_USER","BP_STATUS","BP_BODY_MOVEMENT","BP_LOOSE_CUFF","BP_IRREGULAR_PULSE","TEMPERATURE_FAHRENHEIT","TEMPERATURE_TIMESTAMP","TEMPERATURE_TYPE","TEMPERATURE_TIMESTAMP_OFFSET","WEIGHT_IMPERIAL","WEIGHT_TIMESTAMP","WEIGHT_USER","WEIGHT_TIMESTAMP_OFFSET","PLX_TIMESTAMP","HEART_RATE_UINT16","HEART_RATE_CONTACT_BITS","HEART_RATE_NO_CONTACT","HEART_RATE_ENERGY_EXPENDED","HEART_RATE_RR_INTERVALS","UINT8_BYTES","UINT16_BYTES","bloodPressureStatus","status","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","bloodPressureExtras","view","flags","offset","extras","recordedAt","dateTimeAt","heartRate","sfloatAt","memorySlot","memorySlotForDeviceUser","getUint8","getUint16","irregularHeartbeat","undefined","bloodPressure","pressure","value","roundTo","KPA_TO_MMHG","systolic","diastolic","mean","map","reading","measurementTypeKey","MeasurementTypeKey","withDefined","meanArterialPressure","exports","temperature","floatAt","hasTimestamp","Boolean","typeOffset","bodyTemp","temperatureType","temperatureTypeFromCode","bodyWeight","counts","userOffset","pulseOximetry","bloodOxygen","pulseRate","bloodOxygenPulseRate","rrIntervalsFrom","Array","from","length","Math","floor","byteLength","_","index","rrIntervalMilliseconds","hasUint16","rrOffset","rrIntervals","subscribed","service","characteristic","decode","link","frame","subscribe","sigUuid","decodeFrame","SIG_PROTOCOLS","Map"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/sig-profiles.ts"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ import { findDeviceVariant } from "../../constants/device-variants.js";
10
10
  import { toBluetoothError } from "../../types/bluetooth-error.js";
11
11
  import { clockSyncCapabilityForDevice } from "../../types/clock-sync.js";
12
12
  import { DeviceStatus } from "../../types/device-status.js";
13
+ import { isFromAcceptedMemorySlot } from "../../utils/device-user.js";
13
14
  import { errorCallbackPayload } from "../../utils/error-callback-payload.js";
14
15
  import { createStableResultId } from "../../utils/result-identity.js";
15
16
  import { supportedMeasurementTypeKeys } from "../../utils/supported-measurement-type-keys.js";
@@ -26,6 +27,9 @@ export class BTManagedDevice {
26
27
 
27
28
  connected = false;
28
29
  destroyed = false;
30
+
31
+ /** A policy that picks how results are delivered replaces `oneReadingPerConnection`; a user filter does not. */
32
+
29
33
  resultReportedThisConnection = false;
30
34
  historyTransferActive = false;
31
35
  bondedEventReported = false;
@@ -131,6 +135,7 @@ export class BTManagedDevice {
131
135
  this.device = device;
132
136
  this.oneReadingPerConnection = oneReadingPerConnection === true;
133
137
  this.resultPolicy = resultPolicy;
138
+ this.policyPicksDelivery = resultPolicy?.default !== undefined || resultPolicy?.byMeasurement !== undefined;
134
139
  sentryLogger("info", "BT_MANAGER: Creating BTManagedDevice");
135
140
  this.deviceData = {
136
141
  id: device.id,
@@ -183,13 +188,20 @@ export class BTManagedDevice {
183
188
  ...data
184
189
  }) => {
185
190
  const measurementTypeKey = data.measurementTypeKey;
191
+ const acceptedMemorySlots = this.resultPolicy?.acceptedMemorySlots;
192
+ if (acceptedMemorySlots && !isFromAcceptedMemorySlot(data, acceptedMemorySlots)) {
193
+ sentryLogger("info", "BT_MANAGER: Dropping a reading of another device user", {
194
+ measurementTypeKey
195
+ });
196
+ return;
197
+ }
186
198
  const policy = this.policyFor(measurementTypeKey);
187
199
 
188
200
  // A live value of a kind kept as a series goes to the series; a stored record is reported as it is.
189
201
  if (policy === "series" && onSeriesValueCallback?.(this.deviceData, data)) {
190
202
  return;
191
203
  }
192
- if (this.oneReadingPerConnection && !this.resultPolicy && this.resultReportedThisConnection) {
204
+ if (this.oneReadingPerConnection && !this.policyPicksDelivery && this.resultReportedThisConnection) {
193
205
  return;
194
206
  }
195
207
  if (policy === "first-reading-per-kind-per-connection") {
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokMetric","dailyTotalDay","BUILT_IN_MEASUREMENT_TYPES","findDeviceVariant","toBluetoothError","clockSyncCapabilityForDevice","DeviceStatus","errorCallbackPayload","createStableResultId","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","connected","destroyed","resultReportedThisConnection","historyTransferActive","bondedEventReported","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","getSupportedMeasurementTypeKeys","declared","mainServices","length","deviceData","name","reportsBondedEvent","handleSuccessResult","_successResult","_collectedValues","handleMeasurementEnd","policyFor","measurementTypeKey","resultPolicy","byMeasurement","default","reportResult","result","onResult","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResultCallback","onSeriesValue","onSeriesValueCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","id","localName","manufacturerData","sn","measurementTypes","clockSync","variant","String","manufacturer","model","status","error","normalized","errorCode","code","caseType","_","data","policy","has","add","day","Date","now","key","kind","progress","current","Object","defineProperty","value","enumerable","writable","destroy","connectionHandler","dataProcessor","undefined","disconnect","cancelConnection","connectInternal","clear","sequencer","createCommandSequencer","isHistoryTransfer","onStatusChanged","CONNECTED","bind","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","onServicesDiscovered","uuids","initialCommands","onCommandSent","armStuckTimeout","armCommandTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","onMeasurementEnd","validatePackage","parsedData","collectedValues","nextCommand","frame","sendCommands","commands","commandTimeoutMs","onCommandTimeout","commandProgress","handleDependentResult","frameReader","connect","Promise","reject","Error","connectionPromise","resolve","finally"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":";;AAAA;;AAKA,SAASA,YAAY,QAAQ,yCAAsC;AACnE,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,qCAAkC;AACrF,SAASC,aAAa,QAAQ,4CAAyC;AACvE,SAASC,0BAA0B,QAAQ,+CAA4C;AACvF,SAASC,iBAAiB,QAAQ,oCAAiC;AACnE,SAASC,gBAAgB,QAAQ,gCAA6B;AAC9D,SAASC,4BAA4B,QAAQ,2BAAwB;AAQrE,SAASC,YAAY,QAAQ,8BAA2B;AAQxD,SAASC,oBAAoB,QAAQ,uCAAoC;AACzE,SAASC,oBAAoB,QAAQ,gCAA6B;AAClE,SAASC,4BAA4B,QAAQ,gDAA6C;AAE1F,SAASC,mBAAmB,QAAQ,4BAAyB;AAC7D,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,mBAAmB,QAAQ,gCAA6B;;AAEjE;AACA;AACA;AACA;AACA,OAAO,MAAeC,eAAe,CAErC;EACE;;EAKQC,SAAS,GAAG,KAAK;EACjBC,SAAS,GAAG,KAAK;EAMjBC,4BAA4B,GAAG,KAAK;EACpCC,qBAAqB,GAAG,KAAK;EAC7BC,mBAAmB,GAAG,KAAK;EAC3BC,wBAAwB,GAAG,IAAIC,GAAG,CAAqB,CAAC;EACxDC,mBAAmB,GAAG,IAAID,GAAG,CAAS,CAAC;EACvCE,kBAAkB,GAAG,CAAC;;EAE9B;;EAGA;AACF;AACA;;EAGE;AACF;AACA;AACA;EACYC,+BAA+BA,CAAA,EAAyB;IAChE,MAAMC,QAAQ,GAAGf,4BAA4B,CAAC,IAAI,CAACgB,YAAY,CAAC;IAEhE,OAAOD,QAAQ,CAACE,MAAM,GAAG,CAAC,GACtBF,QAAQ,GACR,CAAC,IAAItB,0BAA0B,CAAC,IAAI,CAACyB,UAAU,CAACC,IAAI,CAAsB,IAAI,EAAE,CAAC,CAAC;EACxF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;;EAGE;EACUC,kBAAkB,GAAG,KAAK;;EAEpC;AACF;AACA;AACA;AACA;AACA;;EAIE;EACUC,mBAAmBA,CAC3BC,cAAoD,EACpDC,gBAA0B,EACV;IAChB;EACF;;EAEA;EACUC,oBAAoBA,CAAA,EAAS,CAAC;;EAExC;;EAGA;;EAMA;;EAKA;;EAGA;;EAGA;EACUC,SAAS,GAAIC,kBAAsC,IAC3D,IAAI,CAACC,YAAY,EAAEC,aAAa,GAAGF,kBAAkB,CAAC,IACtD,IAAI,CAACC,YAAY,EAAEE,OAAO,IAC1B,KAAK;;EAEP;EACUC,YAAY,GAAIC,MAAc,IACtC,IAAI,CAACC,QAAQ,GACXD,MACF,CAAC;EAEHE,WAAWA,CAET;EACgBC,MAAc,EAE9B;IACEC,UAAU;IACVC,OAAO,EAAEC,eAAe;IACxBC,qBAAqB,EAAEC,6BAA6B;IACpDP,QAAQ,EAAEQ,gBAAgB;IAC1BC,aAAa,EAAEC,qBAAqB;IACpCC,iBAAiB,EAAEC,yBAAyB;IAC5CC,oBAAoB,EAAEC,4BAA4B;IAClDC,uBAAuB;IACvBpB;EACqB,CAAC,EACxB;IAAA,KAbgBO,MAAc,GAAdA,MAAc;IAc9B,IAAI,CAACa,uBAAuB,GAAGA,uBAAuB,KAAK,IAAI;IAC/D,IAAI,CAACpB,YAAY,GAAGA,YAAY;IAChCtC,YAAY,CAAC,MAAM,EAAE,sCAAsC,CAAC;IAC5D,IAAI,CAAC6B,UAAU,GAAG;MAChB8B,EAAE,EAAEd,MAAM,CAACc,EAAE;MACb7B,IAAI,EAAEgB,UAAU;MAChBc,SAAS,EAAEf,MAAM,CAACe,SAAS,IAAI,EAAE;MACjCC,gBAAgB,EAAEhB,MAAM,CAACgB,gBAAgB,IAAI,EAAE;MAC/CC,EAAE,EAAE,EAAE;MAEN;MACAC,gBAAgB,EAAE,EAAE;MACpBC,SAAS,EAAEzD,4BAA4B,CAACuC,UAAU;IACpD,CAAC;;IAED;IACA,MAAMmB,OAAO,GACX5D,iBAAiB,CAAC6D,MAAM,CAACpB,UAAU,CAAC,EAAED,MAAM,CAACf,IAAI,IAAI,EAAE,CAAC,IACxDzB,iBAAiB,CAAC6D,MAAM,CAACpB,UAAU,CAAC,EAAED,MAAM,CAACe,SAAS,IAAI,EAAE,CAAC;IAE/D,IAAIK,OAAO,EAAE;MACX,IAAI,CAACpC,UAAU,CAACoC,OAAO,GAAG;QACxBE,YAAY,EAAEF,OAAO,CAACE,YAAY;QAClCC,KAAK,EAAEH,OAAO,CAACG;MACjB,CAAC;IACH;IAEA,IAAI,CAACT,EAAE,GAAGd,MAAM,CAACc,EAAE;IAEnB,IAAI,CAACV,qBAAqB,GAAG,CAC3BoB,MAAoB,EACpBhC,kBAAuC,KACpC;MACHrC,YAAY,CACV,MAAM,EACN,oDAAoD,EACpD;QACEqE,MAAM;QACNhC;MACF,CACF,CAAC;MACDpC,gBAAgB,CAAC,uBAAuB,EAAE;QACxCmE,KAAK,EAAE,IAAI,CAACvC,UAAU,CAACC,IAAI;QAC3BuC,MAAM;QACNhC,kBAAkB,EAAEA,kBAAkB,IAAI;MAC5C,CAAC,CAAC;MACFa,6BAA6B,GAAG;QAC9BrB,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BwC,MAAM,EAAEA,MAAM;QACdhC;MACF,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAACU,OAAO,GAAIuB,KAAgC,IAAK;MACnD,MAAMC,UAAU,GAAGjE,gBAAgB,CAACgE,KAAK,CAAC;MAE1CtE,YAAY,CAAC,OAAO,EAAE,sCAAsC,EAAE;QAC5DwE,SAAS,EAAED,UAAU,CAACE;MACxB,CAAC,CAAC;MAEFzB,eAAe,GAAG;QAChBnB,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3B,GAAGpB,oBAAoB,CAAC8D,UAAU;MACpC,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC5B,QAAQ,GAAG,CAAC;MACf+B,QAAQ,EAAEC,CAAC;MACX,GAAGC;IAC2B,CAAC,KAAK;MACpC,MAAMvC,kBAAkB,GAAGuC,IAAI,CAACvC,kBAAkB;MAClD,MAAMwC,MAAM,GAAG,IAAI,CAACzC,SAAS,CAACC,kBAAkB,CAAC;;MAEjD;MACA,IAAIwC,MAAM,KAAK,QAAQ,IAAIxB,qBAAqB,GAAG,IAAI,CAACxB,UAAU,EAAE+C,IAAmB,CAAC,EAAE;QACxF;MACF;MAEA,IACE,IAAI,CAAClB,uBAAuB,IAC5B,CAAC,IAAI,CAACpB,YAAY,IAClB,IAAI,CAACpB,4BAA4B,EACjC;QACA;MACF;MAEA,IAAI2D,MAAM,KAAK,uCAAuC,EAAE;QACtD,IAAI,IAAI,CAACxD,wBAAwB,CAACyD,GAAG,CAACzC,kBAAkB,CAAC,EAAE;UACzD;QACF;QACA,IAAI,CAAChB,wBAAwB,CAAC0D,GAAG,CAAC1C,kBAAkB,CAAC;MACvD;MAEA,IAAIwC,MAAM,KAAK,mBAAmB,EAAE;QAClC;QACA;QACA,MAAMG,GAAG,GAAG7E,aAAa,CAACyE,IAAI,EAAEK,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;QAE3C,IAAIF,GAAG,KAAK,QAAQ,EAAE;UACpB;QACF;QAEA,IAAIA,GAAG,EAAE;UACP,MAAMG,GAAG,GAAG,GAAG9C,kBAAkB,IAAI2C,GAAG,EAAE;UAE1C,IAAI,IAAI,CAACzD,mBAAmB,CAACuD,GAAG,CAACK,GAAG,CAAC,EAAE;YACrC;UACF;UAEA,IAAI,CAAC5D,mBAAmB,CAACwD,GAAG,CAACI,GAAG,CAAC;QACnC;MACF;MAEA,IAAI,CAACjE,4BAA4B,GAAG,IAAI;MACxC,IAAI,CAACM,kBAAkB,IAAI,CAAC;MAC5BtB,gBAAgB,CAAC,wBAAwB,EAAE,CAAC,EAAE;QAC5CkE,KAAK,EAAE,IAAI,CAACvC,UAAU,CAACC,IAAI;QAC3BO;MACF,CAAC,CAAC;MACFpC,gBAAgB,CAAC,kBAAkB,EAAE;QACnCmE,KAAK,EAAE,IAAI,CAACvC,UAAU,CAACC,IAAI;QAC3BO;MACF,CAAC,CAAC;MACFrC,YAAY,CAAC,MAAM,EAAE,uCAAuC,EAAE;QAC5DqC;MACF,CAAC,CAAC;MACF,IAAI,IAAI,CAAClB,qBAAqB,EAAE;QAC9BoC,yBAAyB,GAAG;UAC1B1B,UAAU,EAAE,IAAI,CAACA,UAAU;UAC3BuD,IAAI,EAAE,kBAAkB;UACxBC,QAAQ,EAAE;YAAEC,OAAO,EAAE,IAAI,CAAC9D;UAAmB;QAC/C,CAAC,CAAC;MACJ;MACA,MAAMkB,MAAM,GAAG;QAAEb,UAAU,EAAE,IAAI,CAACA,UAAU;QAAE+C;MAAK,CAIlD;MAGDW,MAAM,CAACC,cAAc,CAAC9C,MAAM,EAAE,IAAI,EAAE;QAClC+C,KAAK,EAAE/E,oBAAoB,CAAC,IAAI,CAACmB,UAAU,EAAE+C,IAAmB,CAAC;QACjEc,UAAU,EAAE,IAAI;QAChBC,QAAQ,EAAE;MACZ,CAAC,CAAC;MACFxC,gBAAgB,GAAGT,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,CAACc,oBAAoB,GAAGC,4BAA4B;IACxD,IAAI,CAACH,iBAAiB,GAAGC,yBAAyB;EACpD;;EAEA;EACOqC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAI,CAAC3E,SAAS,GAAG,IAAI;IACrB,IAAI,CAACkB,oBAAoB,CAAC,CAAC;IAC3BnC,YAAY,CAAC,MAAM,EAAE,+BAA+B,CAAC;IACrD,IAAI,CAAC6F,iBAAiB,EAAED,OAAO,CAAC,CAAC;IACjC,IAAI,CAACE,aAAa,EAAEF,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC7C,OAAO,GAAGgD,SAAS;IACxB,IAAI,CAAC9C,qBAAqB,GAAG8C,SAAS;IACtC,IAAI,CAACpD,QAAQ,GAAGoD,SAAS;IACzB,IAAI,CAACzC,iBAAiB,GAAGyC,SAAS;EACpC,CAAC;;EAED;EACOC,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC9B,IAAI,CAAChF,SAAS,GAAG,KAAK;IACtB,IAAI,CAAC4E,OAAO,CAAC,CAAC;IAEd,IAAI;MACF,MAAM,IAAI,CAAC/C,MAAM,CAACoD,gBAAgB,CAAC,CAAC;IACtC,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd,MAAMC,UAAU,GAAGjE,gBAAgB,CAACgE,KAAK,CAAC;MAE1CtE,YAAY,CAAC,MAAM,EAAE,6CAA6C,EAAE;QAClEwE,SAAS,EAAED,UAAU,CAACE;MACxB,CAAC,CAAC;IACJ;EACF,CAAC;EAEOyB,eAAe,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAI,CAAChF,4BAA4B,GAAG,KAAK;IACzC,IAAI,CAACG,wBAAwB,CAAC8E,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC5E,mBAAmB,CAAC4E,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC3E,kBAAkB,GAAG,CAAC;;IAE3B;IACA,IAAI,CAACK,UAAU,CAACkC,gBAAgB,GAAG,IAAI,CAACtC,+BAA+B,CAAC,CAAC;IAEzE,MAAM2E,SAA2B,GAC/B,IAAI,CAACC,sBAAsB,GAAG,CAAC,IAAIvF,mBAAmB,CAAC,IAAI,CAACa,YAAY,CAAC;IAE3E,IAAI,CAACR,qBAAqB,GAAGiF,SAAS,CAACE,iBAAiB,GAAG,CAAC,KAAK,IAAI;IAErE,IAAI,CAACT,iBAAiB,GAAG,IAAIjF,mBAAmB,CAC9C,IAAI,CAACiC,MAAM,EACX,IAAI,CAAClB,YAAY,EACjB;MACE4E,eAAe,EAAGlC,MAAM,IAAK;QAC3B,IAAI,CAACrD,SAAS,GAAGqD,MAAM,KAAK7D,YAAY,CAACgG,SAAS;QAClD,IAAI,CAACvD,qBAAqB,EAAEwD,IAAI,CAAC,IAAI,CAAC,CAACpC,MAAM,CAAC;QAC9C,IACEA,MAAM,KAAK7D,YAAY,CAACgG,SAAS,IACjC,IAAI,CAACzE,kBAAkB,IACvB,CAAC,IAAI,CAACX,mBAAmB,EACzB;UACA,IAAI,CAACA,mBAAmB,GAAG,IAAI;UAC/B,IAAI,CAACkC,iBAAiB,GAAG;YACvBzB,UAAU,EAAE,IAAI,CAACA,UAAU;YAC3BuD,IAAI,EAAE;UACR,CAAC,CAAC;QACJ;QACA,IAAIf,MAAM,KAAK7D,YAAY,CAACgG,SAAS,EAAE;UACrC,IAAI,CAAClD,iBAAiB,GAAG;YACvBzB,UAAU,EAAE,IAAI,CAACA,UAAU;YAC3BuD,IAAI,EAAE;UACR,CAAC,CAAC;QACJ;QACA,IAAIf,MAAM,KAAK7D,YAAY,CAACkG,YAAY,EAAE;UACxC,IAAI,CAAClD,oBAAoB,GAAG,CAAC;UAC7B,IAAI,CAACoC,OAAO,CAAC,CAAC;QAChB;MACF,CAAC;MACD7C,OAAO,EAAGuB,KAAK,IAAK,IAAI,CAACvB,OAAO,EAAE0D,IAAI,CAAC,IAAI,CAAC,CAACnC,KAAK,CAAC;MACnDhB,iBAAiB,EAAGqD,KAAK,IACvB,IAAI,CAACrD,iBAAiB,GAAG;QAAEzB,UAAU,EAAE,IAAI,CAACA,UAAU;QAAE,GAAG8E;MAAM,CAAC,CAAC;MACrEC,cAAc,EAAEA,CAACC,IAAI,EAAEC,QAAQ,KAAK;QAClC,IAAI,CAAChB,aAAa,EAAEiB,WAAW,CAACF,IAAI,EAAEC,QAAQ,CAAC;MACjD,CAAC;MACDE,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAIA,IAAI,CAACnF,IAAI,EAAE;UACb,IAAI,CAACD,UAAU,CAAC+B,SAAS,GAAGqD,IAAI,CAACnF,IAAI;QACvC;QACA,IAAImF,IAAI,CAACC,gBAAgB,EAAE;UACzB,IAAI,CAACrF,UAAU,CAACqF,gBAAgB,GAAGD,IAAI,CAACC,gBAAgB;QAC1D;QACA,IAAID,IAAI,CAAC7C,KAAK,EAAE;UACd,IAAI,CAACvC,UAAU,CAACuC,KAAK,GAAG6C,IAAI,CAAC7C,KAAK;QACpC;QACA,IAAI6C,IAAI,CAACE,YAAY,EAAE;UACrB,IAAI,CAACtF,UAAU,CAACiC,EAAE,GAAGmD,IAAI,CAACE,YAAY;QACxC;MACF,CAAC;MACDC,oBAAoB,EAAGC,KAAK,IAAKjB,SAAS,CAACgB,oBAAoB,GAAGC,KAAK,CAAC;MACxEC,eAAe,EAAEA,CAAA,KAAMlB,SAAS,CAACkB,eAAe,CAAC,CAAC;MAClDC,aAAa,EAAEA,CAAA,KAAM;QACnB,IAAI,CAACzB,aAAa,EAAE0B,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC1B,aAAa,EAAE2B,iBAAiB,CAAC,CAAC;MACzC,CAAC;MACDC,kBAAkB,EAAEA,CAAA,KAAMtB,SAAS,CAACsB,kBAAkB,GAAG,CAAC,IAAI;IAChE,CAAC,EACD,IAAI,CAACC,YACP,CAAC;IAED,IAAI,CAAC7B,aAAa,GAAG,IAAIjF,eAAe,CACtC,IAAI,CAACgC,MAAM,EACX,IAAI,CAAClB,YAAY,EACjB,IAAI,CAACiG,gBAAgB,EACrB;MACErB,eAAe,EAAE,IAAI,CAACtD,qBAAqB,EAAEwD,IAAI,CAAC,IAAI,CAAC;MACvDoB,aAAa,EAAE,IAAI,CAACA,aAAa,EAAEpB,IAAI,CAAC,IAAI,CAAC;MAC7CqB,gBAAgB,EAAE,IAAI,CAAC3F,oBAAoB,CAACsE,IAAI,CAAC,IAAI,CAAC;MACtDsB,eAAe,EAAE,IAAI,CAACA,eAAe,EAAEtB,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,CAAC;MAClE9D,QAAQ,EAAEA,CAACqF,UAAU,EAAEC,eAAe,KAAK;QACzC,IAAI;UACF,OAAO,IAAI,CAACjG,mBAAmB,CAACyE,IAAI,CAAC,IAAI,CAAC,CACxCuB,UAAU,EACVC,eACF,CAAC;QACH,CAAC,CAAC,OAAO3D,KAAK,EAAE;UACd,IAAI,CAACvB,OAAO,EAAE0D,IAAI,CAAC,IAAI,CAAC,CAACnC,KAAyB,CAAC;QACrD;MACF,CAAC;MACD4D,WAAW,EAAEA,CAACC,KAAK,EAAEtB,IAAI,KAAKT,SAAS,CAAC8B,WAAW,CAACC,KAAK,EAAEtB,IAAI,CAAC;MAChEuB,YAAY,EAAGC,QAAQ,IACrB,KAAK,IAAI,CAACxC,iBAAiB,EAAEuC,YAAY,CAACC,QAAQ,CAAC;MACrDC,gBAAgB,EAAEA,CAAA,KAAMlC,SAAS,CAACkC,gBAAgB,GAAG,CAAC;MACtDC,gBAAgB,EAAEA,CAAA,KAAMnC,SAAS,CAACmC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;MAC5DC,eAAe,EAAGL,KAAK,IACrB/B,SAAS,CAACoC,eAAe,GAAGL,KAAK,CAAC,IAAI,UAAU;MAClDpF,OAAO,EAAE,IAAI,CAACA,OAAO,EAAE0D,IAAI,CAAC,IAAI,CAAC;MACjCgC,qBAAqB,EAAE,IAAI,CAACA,qBAAqB,EAAEhC,IAAI,CAAC,IAAI;IAC9D,CAAC,EACD,IAAI,CAACiC,WACP,CAAC;IAED,MAAM,IAAI,CAAC7C,iBAAiB,CAAC8C,OAAO,CAAC,CAAC;EACxC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACSA,OAAO,GAAGA,CAAA,KAAqB;IACpC,IAAI,IAAI,CAAC1H,SAAS,EAAE;MAClB,OAAO2H,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjF;IAEA,IAAI,IAAI,CAACC,iBAAiB,EAAE;MAC1B,OAAO,IAAI,CAACA,iBAAiB;IAC/B;IAEA,IAAI,IAAI,CAAC/H,SAAS,EAAE;MAClB,OAAO4H,OAAO,CAACI,OAAO,CAAC,CAAC;IAC1B;IAEA,IAAI,CAACD,iBAAiB,GAAG,IAAI,CAAC7C,eAAe,CAAC,CAAC,CAAC+C,OAAO,CAAC,MAAM;MAC5D,IAAI,CAACF,iBAAiB,GAAGhD,SAAS;IACpC,CAAC,CAAC;IAEF,OAAO,IAAI,CAACgD,iBAAiB;EAC/B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokMetric","dailyTotalDay","BUILT_IN_MEASUREMENT_TYPES","findDeviceVariant","toBluetoothError","clockSyncCapabilityForDevice","DeviceStatus","isFromAcceptedMemorySlot","errorCallbackPayload","createStableResultId","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","connected","destroyed","resultReportedThisConnection","historyTransferActive","bondedEventReported","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","getSupportedMeasurementTypeKeys","declared","mainServices","length","deviceData","name","reportsBondedEvent","handleSuccessResult","_successResult","_collectedValues","handleMeasurementEnd","policyFor","measurementTypeKey","resultPolicy","byMeasurement","default","reportResult","result","onResult","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResultCallback","onSeriesValue","onSeriesValueCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","policyPicksDelivery","undefined","id","localName","manufacturerData","sn","measurementTypes","clockSync","variant","String","manufacturer","model","status","error","normalized","errorCode","code","caseType","_","data","acceptedMemorySlots","policy","has","add","day","Date","now","key","kind","progress","current","Object","defineProperty","value","enumerable","writable","destroy","connectionHandler","dataProcessor","disconnect","cancelConnection","connectInternal","clear","sequencer","createCommandSequencer","isHistoryTransfer","onStatusChanged","CONNECTED","bind","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","onServicesDiscovered","uuids","initialCommands","onCommandSent","armStuckTimeout","armCommandTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","onMeasurementEnd","validatePackage","parsedData","collectedValues","nextCommand","frame","sendCommands","commands","commandTimeoutMs","onCommandTimeout","commandProgress","handleDependentResult","frameReader","connect","Promise","reject","Error","connectionPromise","resolve","finally"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
 
3
- const byteAt = (frame, index, offset) => {
4
- const value = Number.parseInt(frame[index + offset] ?? "", 16);
5
- return Number.isInteger(value) && value >= 0 && value <= 0xff ? value : undefined;
6
- };
3
+ import { byteAt } from "./standard-gatt.frame.js";
7
4
  const bloodPressureStatusFromFrame = (frame, recordOffset = 0) => {
8
5
  const flags = byteAt(frame, 0, recordOffset);
9
6
  if (flags === undefined || (flags & 0x10) === 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["byteAt","frame","index","offset","value","Number","parseInt","isInteger","undefined","bloodPressureStatusFromFrame","recordOffset","flags","cursor","statusLow","statusHigh"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAGA,CACbC,KAAwB,EACxBC,KAAa,EACbC,MAAc,KACS;EACvB,MAAMC,KAAK,GAAGC,MAAM,CAACC,QAAQ,CAACL,KAAK,CAACC,KAAK,GAAGC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EAE9D,OAAOE,MAAM,CAACE,SAAS,CAACH,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,IAAIA,KAAK,IAAI,IAAI,GACzDA,KAAK,GACLI,SAAS;AACf,CAAC;AAED,MAAMC,4BAA4B,GAAGA,CACnCR,KAAwB,EACxBS,YAAY,GAAG,CAAC,KACO;EACvB,MAAMC,KAAK,GAAGX,MAAM,CAACC,KAAK,EAAE,CAAC,EAAES,YAAY,CAAC;EAE5C,IAAIC,KAAK,KAAKH,SAAS,IAAI,CAACG,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IAC/C,OAAOH,SAAS;EAClB;EAEA,IAAII,MAAM,GAAG,CAAC;EAEd,IAAI,CAACD,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBC,MAAM,IAAI,CAAC;EACb;EAEA,IAAI,CAACD,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBC,MAAM,IAAI,CAAC;EACb;EAEA,IAAI,CAACD,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBC,MAAM,IAAI,CAAC;EACb;EAEA,MAAMC,SAAS,GAAGb,MAAM,CAACC,KAAK,EAAEW,MAAM,EAAEF,YAAY,CAAC;EACrD,MAAMI,UAAU,GAAGd,MAAM,CAACC,KAAK,EAAEW,MAAM,GAAG,CAAC,EAAEF,YAAY,CAAC;EAE1D,OAAOG,SAAS,KAAKL,SAAS,IAAIM,UAAU,KAAKN,SAAS,GACtDK,SAAS,GAAIC,UAAU,IAAI,CAAE,GAC7BN,SAAS;AACf,CAAC;AAED,SAASC,4BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["byteAt","bloodPressureStatusFromFrame","frame","recordOffset","flags","undefined","cursor","statusLow","statusHigh"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,0BAAuB;AAE9C,MAAMC,4BAA4B,GAAGA,CACnCC,KAAwB,EACxBC,YAAY,GAAG,CAAC,KACO;EACvB,MAAMC,KAAK,GAAGJ,MAAM,CAACE,KAAK,EAAE,CAAC,EAAEC,YAAY,CAAC;EAE5C,IAAIC,KAAK,KAAKC,SAAS,IAAI,CAACD,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IAC/C,OAAOC,SAAS;EAClB;EAEA,IAAIC,MAAM,GAAG,CAAC;EAEd,IAAI,CAACF,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBE,MAAM,IAAI,CAAC;EACb;EAEA,IAAI,CAACF,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBE,MAAM,IAAI,CAAC;EACb;EAEA,IAAI,CAACF,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE;IACxBE,MAAM,IAAI,CAAC;EACb;EAEA,MAAMC,SAAS,GAAGP,MAAM,CAACE,KAAK,EAAEI,MAAM,EAAEH,YAAY,CAAC;EACrD,MAAMK,UAAU,GAAGR,MAAM,CAACE,KAAK,EAAEI,MAAM,GAAG,CAAC,EAAEH,YAAY,CAAC;EAE1D,OAAOI,SAAS,KAAKF,SAAS,IAAIG,UAAU,KAAKH,SAAS,GACtDE,SAAS,GAAIC,UAAU,IAAI,CAAE,GAC7BH,SAAS;AACf,CAAC;AAED,SAASJ,4BAA4B","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import { memorySlotForDeviceUser } from "../../../utils/device-user.js";
4
+ import { rrIntervalMilliseconds } from "../../../utils/rr-interval.js";
5
+ import { temperatureTypeFromCode } from "../../../utils/temperature-type.js";
6
+ import { byteAt, DATE_TIME_BYTES, dateTimeAt, withDefinedMetadata } from "./standard-gatt.frame.js";
7
+ const TEMPERATURE_TIMESTAMP = 0x02;
8
+ const TEMPERATURE_TYPE = 0x04;
9
+ const TEMPERATURE_FIELDS_INDEX = 5;
10
+ const WEIGHT_TIMESTAMP = 0x02;
11
+ const WEIGHT_USER = 0x04;
12
+ const WEIGHT_FIELDS_INDEX = 3;
13
+
14
+ /** The weight a scale sends when the measurement failed. */
15
+ const WEIGHT_UNSUCCESSFUL = 0xffff;
16
+ const PULSE_OXIMETER_TIMESTAMP = 0x01;
17
+ const PULSE_OXIMETER_FIELDS_INDEX = 5;
18
+ const HEART_RATE_UINT16 = 0x01;
19
+ const HEART_RATE_ENERGY_EXPENDED = 0x08;
20
+ const HEART_RATE_RR_INTERVALS = 0x10;
21
+ const HEART_RATE_FLAGS_BYTES = 1;
22
+ const UINT8_BYTES = 1;
23
+ const UINT16_BYTES = 2;
24
+
25
+ /** Where the optional fields start once the fixed ones and the timestamp are accounted for. */
26
+ const afterTimestamp = (flags, timestampFlag, fieldsIndex) => flags & timestampFlag ? fieldsIndex + DATE_TIME_BYTES : fieldsIndex;
27
+ const littleEndian16 = (frame, index, offset) => {
28
+ const low = byteAt(frame, index, offset);
29
+ const high = byteAt(frame, index + 1, offset);
30
+ return low === undefined || high === undefined ? undefined : low | high << 8;
31
+ };
32
+
33
+ /** Temperature Measurement 0x2A1C: the device's own timestamp and where on the body it measured. */
34
+ const decorateThermometerReading = (reading, frame, recordOffset = 0) => {
35
+ const flags = frame && byteAt(frame, 0, recordOffset);
36
+ if (!frame || flags === undefined) {
37
+ return reading;
38
+ }
39
+ const typeCode = flags & TEMPERATURE_TYPE ? byteAt(frame, afterTimestamp(flags, TEMPERATURE_TIMESTAMP, TEMPERATURE_FIELDS_INDEX), recordOffset) : undefined;
40
+ return withDefinedMetadata(reading, {
41
+ recordedAt: flags & TEMPERATURE_TIMESTAMP ? dateTimeAt(frame, TEMPERATURE_FIELDS_INDEX, recordOffset) : undefined,
42
+ temperatureType: typeCode === undefined ? undefined : temperatureTypeFromCode(typeCode)
43
+ });
44
+ };
45
+
46
+ /** Weight Measurement 0x2A9D: withholds an unsuccessful weight, adds the timestamp and the device user. */
47
+ const decorateWeightReading = (reading, frame, recordOffset = 0) => {
48
+ const flags = frame && byteAt(frame, 0, recordOffset);
49
+ if (!frame || flags === undefined) {
50
+ return reading;
51
+ }
52
+ if (littleEndian16(frame, 1, recordOffset) === WEIGHT_UNSUCCESSFUL) {
53
+ return null;
54
+ }
55
+ const userId = flags & WEIGHT_USER ? byteAt(frame, afterTimestamp(flags, WEIGHT_TIMESTAMP, WEIGHT_FIELDS_INDEX), recordOffset) : undefined;
56
+ return withDefinedMetadata(reading, {
57
+ recordedAt: flags & WEIGHT_TIMESTAMP ? dateTimeAt(frame, WEIGHT_FIELDS_INDEX, recordOffset) : undefined,
58
+ memorySlot: userId === undefined ? undefined : memorySlotForDeviceUser(userId)
59
+ });
60
+ };
61
+
62
+ /** PLX Spot-Check Measurement 0x2A5E: the device's own timestamp. */
63
+ const decoratePulseOximeterReading = (reading, frame, recordOffset = 0) => {
64
+ const flags = frame && byteAt(frame, 0, recordOffset);
65
+ if (!frame || flags === undefined || !(flags & PULSE_OXIMETER_TIMESTAMP)) {
66
+ return reading;
67
+ }
68
+ return withDefinedMetadata(reading, {
69
+ recordedAt: dateTimeAt(frame, PULSE_OXIMETER_FIELDS_INDEX, recordOffset)
70
+ });
71
+ };
72
+
73
+ /** The RR intervals a Heart Rate Measurement carries, in milliseconds and in the order sent. */
74
+ const rrIntervalsFromHeartRateFrame = (frame, flags, recordOffset) => {
75
+ const rrIntervals = [];
76
+ let index = HEART_RATE_FLAGS_BYTES + (flags & HEART_RATE_UINT16 ? UINT16_BYTES : UINT8_BYTES) + (flags & HEART_RATE_ENERGY_EXPENDED ? UINT16_BYTES : 0);
77
+ let counts = littleEndian16(frame, index, recordOffset);
78
+ while (counts !== undefined) {
79
+ rrIntervals.push(rrIntervalMilliseconds(counts));
80
+ index += UINT16_BYTES;
81
+ counts = littleEndian16(frame, index, recordOffset);
82
+ }
83
+ return rrIntervals;
84
+ };
85
+
86
+ /** Heart Rate Measurement 0x2A37: the RR intervals, when the strap sends them. */
87
+ const decorateHeartRateReading = (reading, frame, recordOffset = 0) => {
88
+ const flags = frame && byteAt(frame, 0, recordOffset);
89
+ if (!frame || flags === undefined || !(flags & HEART_RATE_RR_INTERVALS)) {
90
+ return reading;
91
+ }
92
+ const rrIntervals = rrIntervalsFromHeartRateFrame(frame, flags, recordOffset);
93
+ return rrIntervals.length > 0 ? {
94
+ ...reading,
95
+ rrIntervals
96
+ } : reading;
97
+ };
98
+ export { decorateHeartRateReading, decoratePulseOximeterReading, decorateThermometerReading, decorateWeightReading };
99
+ //# sourceMappingURL=standard-gatt.decorators.js.map