@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
@@ -2,9 +2,12 @@
2
2
 
3
3
  import { MeasurementTypeKey } from "@ovok/core/next";
4
4
  import { BloodPressureStates } from "../../bt-management/types/blood-pressure-states.js";
5
+ import { memorySlotForDeviceUser } from "../../bt-management/utils/device-user.js";
6
+ import { KPA_TO_MMHG } from "../../bt-management/utils/kpa-to-mmhg.js";
7
+ import { rrIntervalMilliseconds } from "../../bt-management/utils/rr-interval.js";
5
8
  import { sigUuid } from "../../bt-management/utils/sig-uuid.js";
9
+ import { temperatureTypeFromCode } from "../../bt-management/utils/temperature-type.js";
6
10
  import { dateTimeAt, decodeFrame, floatAt, roundTo, sfloatAt, withDefined } from "./sig-values.js";
7
- const KPA_TO_MMHG = 7.50062;
8
11
  const KG_PER_SI_COUNT = 0.005;
9
12
  const KG_PER_IMPERIAL_COUNT = 0.01 * 0.45359237;
10
13
  const WEIGHT_UNSUCCESSFUL = 0xffff;
@@ -19,15 +22,29 @@ const BP_LOOSE_CUFF = 0x02;
19
22
  const BP_IRREGULAR_PULSE = 0x04;
20
23
  const TEMPERATURE_FAHRENHEIT = 0x01;
21
24
  const TEMPERATURE_TIMESTAMP = 0x02;
25
+ const TEMPERATURE_TYPE = 0x04;
26
+ const TEMPERATURE_TIMESTAMP_OFFSET = 5;
22
27
  const WEIGHT_IMPERIAL = 0x01;
23
28
  const WEIGHT_TIMESTAMP = 0x02;
29
+ const WEIGHT_USER = 0x04;
30
+ const WEIGHT_TIMESTAMP_OFFSET = 3;
24
31
  const PLX_TIMESTAMP = 0x01;
25
32
  const HEART_RATE_UINT16 = 0x01;
26
33
  const HEART_RATE_CONTACT_BITS = 0x06;
27
34
  const HEART_RATE_NO_CONTACT = 0x04;
35
+ const HEART_RATE_ENERGY_EXPENDED = 0x08;
36
+ const HEART_RATE_RR_INTERVALS = 0x10;
37
+ const UINT8_BYTES = 1;
38
+ const UINT16_BYTES = 2;
28
39
 
29
40
  /** Core does not export its status enum; this one has the same values. */
30
41
 
42
+ /** Core's temperature has no body site, so it rides along on the reading as `memorySlot` does on blood pressure. */
43
+
44
+ /** The device user, carried the way blood pressure carries it. */
45
+
46
+ /** Core's heart rate has no RR intervals, so they ride along on the reading, in milliseconds. */
47
+
31
48
  const bloodPressureStatus = status => {
32
49
  if (status & BP_BODY_MOVEMENT) {
33
50
  return BloodPressureStates.DISTURB_DETECTED;
@@ -48,8 +65,7 @@ const bloodPressureExtras = (view, flags) => {
48
65
  offset += 2;
49
66
  }
50
67
  if (flags & BP_USER) {
51
- const user = view.getUint8(offset);
52
- extras.memorySlot = user < 2 ? user + 1 : undefined;
68
+ extras.memorySlot = memorySlotForDeviceUser(view.getUint8(offset));
53
69
  offset += 1;
54
70
  }
55
71
  if (flags & BP_STATUS) {
@@ -86,13 +102,16 @@ const temperature = view => {
86
102
  if (value === undefined) {
87
103
  return undefined;
88
104
  }
105
+ const hasTimestamp = Boolean(flags & TEMPERATURE_TIMESTAMP);
106
+ const typeOffset = TEMPERATURE_TIMESTAMP_OFFSET + (hasTimestamp ? DATE_TIME_BYTES : 0);
89
107
  const reading = {
90
108
  measurementTypeKey: MeasurementTypeKey.temperature,
91
109
  bodyTemp: flags & TEMPERATURE_FAHRENHEIT ? roundTo((value - 32) * 5 / 9, 2) : value
92
110
  };
93
- return flags & TEMPERATURE_TIMESTAMP ? withDefined(reading, {
94
- recordedAt: dateTimeAt(view, 5)
95
- }) : reading;
111
+ return withDefined(reading, {
112
+ recordedAt: hasTimestamp ? dateTimeAt(view, TEMPERATURE_TIMESTAMP_OFFSET) : undefined,
113
+ temperatureType: flags & TEMPERATURE_TYPE ? temperatureTypeFromCode(view.getUint8(typeOffset)) : undefined
114
+ });
96
115
  };
97
116
 
98
117
  /** Weight Measurement 0x2A9D, in kilograms. */
@@ -102,13 +121,16 @@ const bodyWeight = view => {
102
121
  if (counts === WEIGHT_UNSUCCESSFUL) {
103
122
  return undefined;
104
123
  }
124
+ const hasTimestamp = Boolean(flags & WEIGHT_TIMESTAMP);
125
+ const userOffset = WEIGHT_TIMESTAMP_OFFSET + (hasTimestamp ? DATE_TIME_BYTES : 0);
105
126
  const reading = {
106
127
  measurementTypeKey: MeasurementTypeKey.bodyWeight,
107
128
  bodyWeight: roundTo(counts * (flags & WEIGHT_IMPERIAL ? KG_PER_IMPERIAL_COUNT : KG_PER_SI_COUNT), 3)
108
129
  };
109
- return flags & WEIGHT_TIMESTAMP ? withDefined(reading, {
110
- recordedAt: dateTimeAt(view, 3)
111
- }) : reading;
130
+ return withDefined(reading, {
131
+ recordedAt: hasTimestamp ? dateTimeAt(view, WEIGHT_TIMESTAMP_OFFSET) : undefined,
132
+ memorySlot: flags & WEIGHT_USER ? memorySlotForDeviceUser(view.getUint8(userOffset)) : undefined
133
+ });
112
134
  };
113
135
 
114
136
  /** PLX Spot-Check Measurement 0x2A5E. */
@@ -129,17 +151,28 @@ const pulseOximetry = view => {
129
151
  }) : reading;
130
152
  };
131
153
 
154
+ /** The RR intervals from `offset` to the end of the frame, in milliseconds. */
155
+ const rrIntervalsFrom = (view, offset) => Array.from({
156
+ length: Math.floor((view.byteLength - offset) / UINT16_BYTES)
157
+ }, (_, index) => rrIntervalMilliseconds(view.getUint16(offset + index * UINT16_BYTES, true)));
158
+
132
159
  /** Heart Rate Measurement 0x2A37; a strap reporting no skin contact has no reading. */
133
160
  const heartRate = view => {
134
161
  const flags = view.getUint8(0);
135
162
  if ((flags & HEART_RATE_CONTACT_BITS) === HEART_RATE_NO_CONTACT) {
136
163
  return undefined;
137
164
  }
165
+ const hasUint16 = Boolean(flags & HEART_RATE_UINT16);
166
+ const rrOffset = 1 + (hasUint16 ? UINT16_BYTES : UINT8_BYTES) + (flags & HEART_RATE_ENERGY_EXPENDED ? UINT16_BYTES : 0);
167
+ const rrIntervals = flags & HEART_RATE_RR_INTERVALS ? rrIntervalsFrom(view, rrOffset) : [];
138
168
  const reading = {
139
169
  measurementTypeKey: MeasurementTypeKey.heartRate,
140
- heartRate: flags & HEART_RATE_UINT16 ? view.getUint16(1, true) : view.getUint8(1)
170
+ heartRate: hasUint16 ? view.getUint16(1, true) : view.getUint8(1)
141
171
  };
142
- return reading;
172
+ return rrIntervals.length > 0 ? {
173
+ ...reading,
174
+ rrIntervals
175
+ } : reading;
143
176
  };
144
177
  const subscribed = (service, characteristic, decode) => async function* (link) {
145
178
  for await (const frame of link.subscribe(sigUuid(service), sigUuid(characteristic))) {
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","BloodPressureStates","sigUuid","dateTimeAt","decodeFrame","floatAt","roundTo","sfloatAt","withDefined","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","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","bloodPressureExtras","view","flags","offset","extras","recordedAt","heartRate","user","getUint8","memorySlot","undefined","getUint16","irregularHeartbeat","bloodPressure","pressure","value","systolic","diastolic","mean","map","reading","measurementTypeKey","meanArterialPressure","temperature","bodyTemp","bodyWeight","counts","pulseOximetry","bloodOxygen","pulseRate","bloodOxygenPulseRate","subscribed","service","characteristic","decode","link","frame","subscribe","SIG_PROTOCOLS","Map"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/sig-profiles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","BloodPressureStates","memorySlotForDeviceUser","KPA_TO_MMHG","rrIntervalMilliseconds","sigUuid","temperatureTypeFromCode","dateTimeAt","decodeFrame","floatAt","roundTo","sfloatAt","withDefined","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","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","bloodPressureExtras","view","flags","offset","extras","recordedAt","heartRate","memorySlot","getUint8","getUint16","irregularHeartbeat","undefined","bloodPressure","pressure","value","systolic","diastolic","mean","map","reading","measurementTypeKey","meanArterialPressure","temperature","hasTimestamp","Boolean","typeOffset","bodyTemp","temperatureType","bodyWeight","counts","userOffset","pulseOximetry","bloodOxygen","pulseRate","bloodOxygenPulseRate","rrIntervalsFrom","Array","from","length","Math","floor","byteLength","_","index","hasUint16","rrOffset","rrIntervals","subscribed","service","characteristic","decode","link","frame","subscribe","SIG_PROTOCOLS","Map"],"sourceRoot":"../../../../../src","sources":["modules/next/bluetooth/sig-profiles.ts"],"mappings":"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","ignoreList":[]}
@@ -30,6 +30,8 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
30
30
  private dataProcessor;
31
31
  private readonly oneReadingPerConnection;
32
32
  private readonly resultPolicy;
33
+ /** A policy that picks how results are delivered replaces `oneReadingPerConnection`; a user filter does not. */
34
+ private readonly policyPicksDelivery;
33
35
  private resultReportedThisConnection;
34
36
  private historyTransferActive;
35
37
  private bondedEventReported;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.blood-pressure-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,4BAA4B,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,qBAAgB,KACf,MAAM,GAAG,SA2BX,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"standard-gatt.blood-pressure-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,4BAA4B,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,qBAAgB,KACf,MAAM,GAAG,SA2BX,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CustomReadingDecorator } from "../../../types/custom-device-definition";
2
+ /** Temperature Measurement 0x2A1C: the device's own timestamp and where on the body it measured. */
3
+ declare const decorateThermometerReading: CustomReadingDecorator;
4
+ /** Weight Measurement 0x2A9D: withholds an unsuccessful weight, adds the timestamp and the device user. */
5
+ declare const decorateWeightReading: CustomReadingDecorator;
6
+ /** PLX Spot-Check Measurement 0x2A5E: the device's own timestamp. */
7
+ declare const decoratePulseOximeterReading: CustomReadingDecorator;
8
+ /** Heart Rate Measurement 0x2A37: the RR intervals, when the strap sends them. */
9
+ declare const decorateHeartRateReading: CustomReadingDecorator;
10
+ export { decorateHeartRateReading, decoratePulseOximeterReading, decorateThermometerReading, decorateWeightReading, };
11
+ //# sourceMappingURL=standard-gatt.decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.decorators.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAoDjF,oGAAoG;AACpG,QAAA,MAAM,0BAA0B,EAAE,sBA4BjC,CAAC;AAEF,2GAA2G;AAC3G,QAAA,MAAM,qBAAqB,EAAE,sBA+B5B,CAAC;AAEF,qEAAqE;AACrE,QAAA,MAAM,4BAA4B,EAAE,sBAcnC,CAAC;AA0BF,kFAAkF;AAClF,QAAA,MAAM,wBAAwB,EAAE,sBAc/B,CAAC;AAEF,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,GACtB,CAAC"}
@@ -9,20 +9,23 @@ declare const standardThermometerDevice: (params: StandardDeviceParams) => Custo
9
9
  * Weight Scale Service 0x181D, Weight Measurement 0x2A9D.
10
10
  *
11
11
  * The reading is a scaled integer rather than a float, so the resolution is applied here.
12
+ * A weight of 0xFFFF means the measurement failed, so it yields no reading.
12
13
  */
13
14
  declare const standardWeightScaleDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
14
15
  /**
15
16
  * Pulse Oximeter Service 0x1822, PLX Spot-Check Measurement 0x2A5E.
16
17
  *
17
18
  * Saturation and pulse rate are both required by the catalog, which matches the
18
- * specification: a spot-check measurement always carries both.
19
+ * specification: a spot-check measurement always carries both, at bytes 1-4 whatever the
20
+ * flags say, so every flags value selects the same fields. The optional ones follow them.
19
21
  */
20
22
  declare const standardPulseOximeterDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
21
23
  /**
22
24
  * Heart Rate Service 0x180D, Heart Rate Measurement 0x2A37.
23
25
  *
24
26
  * Both heart-rate layouts are declared. A contact-not-detected frame is idle, so it cannot
25
- * become a false reading while the strap is off the body.
27
+ * become a false reading while the strap is off the body. RR intervals, a list of any
28
+ * length, are read from the frame by the decorator and reported as `rrIntervals`.
26
29
  */
27
30
  declare const standardHeartRateDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
28
31
  export { standardBloodPressureDevice, standardGlucoseDevice, standardHeartRateDevice, standardPulseOximeterDevice, standardThermometerDevice, standardWeightScaleDevice, };
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.devices.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AA2CjC,8DAA8D;AAC9D,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBA4DA,CAAC;AAEJ,yEAAyE;AACzE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBA4CC,CAAC;AAKL;;;;GAIG;AACH,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBAgCC,CAAC;AAEL;;;;;GAKG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBAWC,CAAC;AAYL;;;;;GAKG;AACH,QAAA,MAAM,uBAAuB,GAC3B,QAAQ,oBAAoB,KAC3B,sBA8BC,CAAC;AAEL,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"standard-gatt.devices.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAWjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AA+DjC,8DAA8D;AAC9D,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBA6BC,CAAC;AAEL,yEAAyE;AACzE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBA6CC,CAAC;AAKL;;;;;GAKG;AACH,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBAiCC,CAAC;AAEL;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBAYC,CAAC;AAYL;;;;;;GAMG;AACH,QAAA,MAAM,uBAAuB,GAC3B,QAAQ,oBAAoB,KAC3B,sBA+BC,CAAC;AAEL,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** The Bluetooth SIG Date Time characteristic is seven bytes long. */
2
+ declare const DATE_TIME_BYTES = 7;
3
+ /** The byte at `index` of a record that starts at `offset`; undefined when the frame ends first. */
4
+ declare const byteAt: (frame: readonly string[], index: number, offset: number) => number | undefined;
5
+ /** Reads a SIG Date Time at `index` as a phone-local date; undefined for missing or impossible fields. */
6
+ declare const dateTimeAt: (frame: readonly string[], index: number, offset?: number) => Date | undefined;
7
+ /** `reading` plus each of `metadata` that has a value. */
8
+ declare const withDefinedMetadata: <T extends object>(reading: T, metadata: Readonly<Record<string, unknown>>) => T;
9
+ export { byteAt, DATE_TIME_BYTES, dateTimeAt, withDefinedMetadata };
10
+ //# sourceMappingURL=standard-gatt.frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.frame.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,QAAA,MAAM,eAAe,IAAI,CAAC;AAE1B,oGAAoG;AACpG,QAAA,MAAM,MAAM,GACV,OAAO,SAAS,MAAM,EAAE,EACxB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAAM,GAAG,SAMX,CAAC;AAEF,0GAA0G;AAC1G,QAAA,MAAM,UAAU,GACd,OAAO,SAAS,MAAM,EAAE,EACxB,OAAO,MAAM,EACb,eAAU,KACT,IAAI,GAAG,SAgCT,CAAC;AAEF,0DAA0D;AAC1D,QAAA,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,EAC3C,SAAS,CAAC,EACV,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAC1C,CAKD,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
@@ -20,6 +20,8 @@ interface ProfileSpec {
20
20
  /** Shortest frame the profile guarantees, which bounds every field a case may read. */
21
21
  minLengthBytes: number;
22
22
  measurementTypeKey: MeasurementTypeKey;
23
+ /** Adds what the declared fields cannot carry, such as the timestamp or the device user; runs before the caller's. */
24
+ decorateReading?: CustomReadingDecorator;
23
25
  /** Flags-byte values whose layout matches `fields`, in canonical units. */
24
26
  selectors: readonly string[];
25
27
  /** Per-flag field variants, used when the profile reports a convertible unit. */
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.profile.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAKrF,UAAU,oBAAoB;IAE5B,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,iFAAiF;IACjF,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAEvB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,2EAA2E;IAC3E,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;IAExE,6FAA6F;IAC7F,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,QAAQ,CACvB,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CACtE,CAAC;CACH;AAED;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAClB,QAAQ,oBAAoB,EAC5B,SAAS,WAAW,KACnB,sBAsCA,CAAC;AAEJ,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,aAAa,MAAM,EAAE,EACrB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,UAAU,CAAC,KACpC,eAMD,CAAC;AAcH,oEAAoE;AACpE,QAAA,MAAM,gCAAgC,GACpC,OAAO,SAAS,MAAM,EAAE,EACxB,eAAU,KACT,IAAI,GAAG,SAmCT,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,sBAyDnC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,gCAAgC,GACjC,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"standard-gatt.profile.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAMrF,UAAU,oBAAoB;IAE5B,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,iFAAiF;IACjF,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAEvB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,sHAAsH;IACtH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC,2EAA2E;IAC3E,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;IAExE,6FAA6F;IAC7F,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,QAAQ,CACvB,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CACtE,CAAC;CACH;AAkBD;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAClB,QAAQ,oBAAoB,EAC5B,SAAS,WAAW,KACnB,sBA2CA,CAAC;AAEJ,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,aAAa,MAAM,EAAE,EACrB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,UAAU,CAAC,KACpC,eAMD,CAAC;AAEH,oEAAoE;AACpE,QAAA,MAAM,gCAAgC,GACpC,OAAO,SAAS,MAAM,EAAE,EACxB,eAAU,KACT,IAAI,GAAG,SAMT,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,sBA4DnC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,gCAAgC,GACjC,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC"}
@@ -14,5 +14,11 @@ export interface DeviceResultPolicy {
14
14
  default?: ResultPolicy;
15
15
  /** Policy overrides per measurement type. */
16
16
  byMeasurement?: ResultPolicyByMeasurement;
17
+ /**
18
+ * The device users whose readings are reported, by memory slot (a multi-user device reports its user as
19
+ * `memorySlot`, starting at 1). Readings of other users are dropped; a reading that names no device user is kept.
20
+ * Without it every user's readings are reported.
21
+ */
22
+ acceptedMemorySlots?: readonly number[];
17
23
  }
18
24
  //# sourceMappingURL=result-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/result-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,mBAAmB,GACnB,uCAAuC;AAEzC;;;GAGG;GACD,QAAQ,CAAC;AAEb,0CAA0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CACzC,CAAC;AAEF,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IAEjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC3C"}
1
+ {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/result-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,mBAAmB,GACnB,uCAAuC;AAEzC;;;GAGG;GACD,QAAQ,CAAC;AAEb,0CAA0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CACzC,CAAC;AAEF,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IAEjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAE1C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC"}
@@ -0,0 +1,6 @@
1
+ /** The memory slot of a SIG device user: users count from 0, slots from 1; the unknown user has none. */
2
+ declare const memorySlotForDeviceUser: (userId: number) => number | undefined;
3
+ /** Whether a reading is from one of the device users `slots`; a reading that names no device user is kept. */
4
+ declare const isFromAcceptedMemorySlot: (reading: object, slots: readonly number[]) => boolean;
5
+ export { isFromAcceptedMemorySlot, memorySlotForDeviceUser };
6
+ //# sourceMappingURL=device-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-user.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/device-user.ts"],"names":[],"mappings":"AAGA,yGAAyG;AACzG,QAAA,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SACF,CAAC;AAE1D,8GAA8G;AAC9G,QAAA,MAAM,wBAAwB,GAC5B,SAAS,MAAM,EACf,OAAO,SAAS,MAAM,EAAE,KACvB,OAIF,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Millimetres of mercury in one kilopascal. */
2
+ declare const KPA_TO_MMHG = 7.50062;
3
+ export { KPA_TO_MMHG };
4
+ //# sourceMappingURL=kpa-to-mmhg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kpa-to-mmhg.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/kpa-to-mmhg.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,QAAA,MAAM,WAAW,UAAU,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** An RR-Interval count from a Heart Rate Measurement, in milliseconds. */
2
+ declare const rrIntervalMilliseconds: (counts: number) => number;
3
+ export { rrIntervalMilliseconds };
4
+ //# sourceMappingURL=rr-interval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rr-interval.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/rr-interval.ts"],"names":[],"mappings":"AAOA,2EAA2E;AAC3E,QAAA,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,MAK9C,CAAC;AAEJ,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Where on the body a thermometer took its reading: the Bluetooth SIG Temperature Type. */
2
+ type TemperatureType = "armpit" | "body" | "ear" | "finger" | "gastrointestinal-tract" | "mouth" | "rectum" | "toe" | "tympanum";
3
+ /** The body site for a Temperature Type code; undefined for a reserved or unknown code. */
4
+ declare const temperatureTypeFromCode: (code: number) => TemperatureType | undefined;
5
+ export { temperatureTypeFromCode };
6
+ export type { TemperatureType };
7
+ //# sourceMappingURL=temperature-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temperature-type.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/temperature-type.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,KAAK,eAAe,GAChB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,wBAAwB,GACxB,OAAO,GACP,QAAQ,GACR,KAAK,GACL,UAAU,CAAC;AAef,2FAA2F;AAC3F,QAAA,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,eAAe,GAAG,SACrC,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -19,7 +19,7 @@ export { defineDevice } from "./devices";
19
19
  export type { DeviceDefinition, DeviceMatch, DeviceSupport } from "./devices";
20
20
  export type { DeviceEvent, DeviceProtocol, Driver } from "./driver";
21
21
  export type { Link } from "./link";
22
- export { dailyTotalsOnly, everyReading, firstReadingPerKind, keepReadings, policyByKind } from "./result-policy";
22
+ export { acceptedMemorySlots, dailyTotalsOnly, everyReading, firstReadingPerKind, keepReadings, policyByKind, } from "./result-policy";
23
23
  export type { ResultPolicy } from "./result-policy";
24
24
  export { SIG_PROTOCOLS } from "./sig-profiles";
25
25
  export { bleManagerScanner } from "./ble-plx/ble-scanner";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjH,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -8,10 +8,15 @@ declare const everyReading: ResultPolicy;
8
8
  declare const firstReadingPerKind: ResultPolicy;
9
9
  /** Activity totals count only once their day has closed, and each day only once. */
10
10
  declare const dailyTotalsOnly: ResultPolicy;
11
+ /**
12
+ * Keeps the readings of the device users in `slots` (a multi-user device reports its user as `memorySlot`, starting at
13
+ * 1), and drops the others. A reading that names no device user is kept.
14
+ */
15
+ declare const acceptedMemorySlots: (slots: readonly number[]) => ResultPolicy;
11
16
  /** Applies a policy per measurement type, and `fallback` to the other types. */
12
17
  declare const policyByKind: (policies: Partial<Record<MeasurementTypeKey, ResultPolicy>>, fallback?: ResultPolicy) => ResultPolicy;
13
18
  /** A driver's events minus the readings `policy` drops. */
14
19
  declare function keepReadings(events: AsyncIterable<DeviceEvent>, policy: ResultPolicy): AsyncIterable<DeviceEvent>;
15
- export { dailyTotalsOnly, everyReading, firstReadingPerKind, keepReadings, policyByKind };
20
+ export { acceptedMemorySlots, dailyTotalsOnly, everyReading, firstReadingPerKind, keepReadings, policyByKind };
16
21
  export type { ResultPolicy };
17
22
  //# sourceMappingURL=result-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/result-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,sEAAsE;AACtE,KAAK,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAE5D,2BAA2B;AAC3B,QAAA,MAAM,YAAY,EAAE,YAA+B,CAAC;AAEpD,uEAAuE;AACvE,QAAA,MAAM,mBAAmB,EAAE,YAY1B,CAAC;AAEF,oFAAoF;AACpF,QAAA,MAAM,eAAe,EAAE,YAoBtB,CAAC;AAEF,gFAAgF;AAChF,QAAA,MAAM,YAAY,GAChB,UAAU,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAC3D,WAAU,YAA2B,KACpC,YAkBA,CAAC;AAEJ,2DAA2D;AAC3D,iBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAQjH;AAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC1F,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/result-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,sEAAsE;AACtE,KAAK,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAE5D,2BAA2B;AAC3B,QAAA,MAAM,YAAY,EAAE,YAA+B,CAAC;AAEpD,uEAAuE;AACvE,QAAA,MAAM,mBAAmB,EAAE,YAY1B,CAAC;AAEF,oFAAoF;AACpF,QAAA,MAAM,eAAe,EAAE,YAoBtB,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,mBAAmB,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,YACK,CAAC;AAE9D,gFAAgF;AAChF,QAAA,MAAM,YAAY,GAChB,UAAU,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAC3D,WAAU,YAA2B,KACpC,YAkBA,CAAC;AAEJ,2DAA2D;AAC3D,iBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAQjH;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/G,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sig-profiles.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/sig-profiles.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAA2B,OAAO,EAA2C,MAAM,cAAc,CAAC;AAkEzG,kDAAkD;AAClD,QAAA,MAAM,aAAa,EAAE,OAmBpB,CAAC;AAEF,kDAAkD;AAClD,QAAA,MAAM,WAAW,EAAE,OAclB,CAAC;AAEF,+CAA+C;AAC/C,QAAA,MAAM,UAAU,EAAE,OAcjB,CAAC;AAEF,yCAAyC;AACzC,QAAA,MAAM,aAAa,EAAE,OAgBpB,CAAC;AAEF,uFAAuF;AACvF,QAAA,MAAM,SAAS,EAAE,OAahB,CAAC;AAaF,mEAAmE;AACnE,QAAA,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAMrD,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"sig-profiles.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/sig-profiles.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAA2B,OAAO,EAA2C,MAAM,cAAc,CAAC;AAgFzG,kDAAkD;AAClD,QAAA,MAAM,aAAa,EAAE,OAmBpB,CAAC;AAEF,kDAAkD;AAClD,QAAA,MAAM,WAAW,EAAE,OAoBlB,CAAC;AAEF,+CAA+C;AAC/C,QAAA,MAAM,UAAU,EAAE,OAoBjB,CAAC;AAEF,yCAAyC;AACzC,QAAA,MAAM,aAAa,EAAE,OAgBpB,CAAC;AAOF,uFAAuF;AACvF,QAAA,MAAM,SAAS,EAAE,OAiBhB,CAAC;AAaF,mEAAmE;AACnE,QAAA,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAMrD,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"}
@@ -30,6 +30,8 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
30
30
  private dataProcessor;
31
31
  private readonly oneReadingPerConnection;
32
32
  private readonly resultPolicy;
33
+ /** A policy that picks how results are delivered replaces `oneReadingPerConnection`; a user filter does not. */
34
+ private readonly policyPicksDelivery;
33
35
  private resultReportedThisConnection;
34
36
  private historyTransferActive;
35
37
  private bondedEventReported;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.blood-pressure-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,4BAA4B,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,qBAAgB,KACf,MAAM,GAAG,SA2BX,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"standard-gatt.blood-pressure-status.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,4BAA4B,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,qBAAgB,KACf,MAAM,GAAG,SA2BX,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CustomReadingDecorator } from "../../../types/custom-device-definition";
2
+ /** Temperature Measurement 0x2A1C: the device's own timestamp and where on the body it measured. */
3
+ declare const decorateThermometerReading: CustomReadingDecorator;
4
+ /** Weight Measurement 0x2A9D: withholds an unsuccessful weight, adds the timestamp and the device user. */
5
+ declare const decorateWeightReading: CustomReadingDecorator;
6
+ /** PLX Spot-Check Measurement 0x2A5E: the device's own timestamp. */
7
+ declare const decoratePulseOximeterReading: CustomReadingDecorator;
8
+ /** Heart Rate Measurement 0x2A37: the RR intervals, when the strap sends them. */
9
+ declare const decorateHeartRateReading: CustomReadingDecorator;
10
+ export { decorateHeartRateReading, decoratePulseOximeterReading, decorateThermometerReading, decorateWeightReading, };
11
+ //# sourceMappingURL=standard-gatt.decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.decorators.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAoDjF,oGAAoG;AACpG,QAAA,MAAM,0BAA0B,EAAE,sBA4BjC,CAAC;AAEF,2GAA2G;AAC3G,QAAA,MAAM,qBAAqB,EAAE,sBA+B5B,CAAC;AAEF,qEAAqE;AACrE,QAAA,MAAM,4BAA4B,EAAE,sBAcnC,CAAC;AA0BF,kFAAkF;AAClF,QAAA,MAAM,wBAAwB,EAAE,sBAc/B,CAAC;AAEF,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,GACtB,CAAC"}
@@ -9,20 +9,23 @@ declare const standardThermometerDevice: (params: StandardDeviceParams) => Custo
9
9
  * Weight Scale Service 0x181D, Weight Measurement 0x2A9D.
10
10
  *
11
11
  * The reading is a scaled integer rather than a float, so the resolution is applied here.
12
+ * A weight of 0xFFFF means the measurement failed, so it yields no reading.
12
13
  */
13
14
  declare const standardWeightScaleDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
14
15
  /**
15
16
  * Pulse Oximeter Service 0x1822, PLX Spot-Check Measurement 0x2A5E.
16
17
  *
17
18
  * Saturation and pulse rate are both required by the catalog, which matches the
18
- * specification: a spot-check measurement always carries both.
19
+ * specification: a spot-check measurement always carries both, at bytes 1-4 whatever the
20
+ * flags say, so every flags value selects the same fields. The optional ones follow them.
19
21
  */
20
22
  declare const standardPulseOximeterDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
21
23
  /**
22
24
  * Heart Rate Service 0x180D, Heart Rate Measurement 0x2A37.
23
25
  *
24
26
  * Both heart-rate layouts are declared. A contact-not-detected frame is idle, so it cannot
25
- * become a false reading while the strap is off the body.
27
+ * become a false reading while the strap is off the body. RR intervals, a list of any
28
+ * length, are read from the frame by the decorator and reported as `rrIntervals`.
26
29
  */
27
30
  declare const standardHeartRateDevice: (params: StandardDeviceParams) => CustomDeviceDefinition;
28
31
  export { standardBloodPressureDevice, standardGlucoseDevice, standardHeartRateDevice, standardPulseOximeterDevice, standardThermometerDevice, standardWeightScaleDevice, };
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.devices.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AA2CjC,8DAA8D;AAC9D,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBA4DA,CAAC;AAEJ,yEAAyE;AACzE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBA4CC,CAAC;AAKL;;;;GAIG;AACH,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBAgCC,CAAC;AAEL;;;;;GAKG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBAWC,CAAC;AAYL;;;;;GAKG;AACH,QAAA,MAAM,uBAAuB,GAC3B,QAAQ,oBAAoB,KAC3B,sBA8BC,CAAC;AAEL,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"standard-gatt.devices.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAWjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAIL,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AA+DjC,8DAA8D;AAC9D,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBA6BC,CAAC;AAEL,yEAAyE;AACzE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBA6CC,CAAC;AAKL;;;;;GAKG;AACH,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,oBAAoB,KAC3B,sBAiCC,CAAC;AAEL;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,oBAAoB,KAC3B,sBAYC,CAAC;AAYL;;;;;;GAMG;AACH,QAAA,MAAM,uBAAuB,GAC3B,QAAQ,oBAAoB,KAC3B,sBA+BC,CAAC;AAEL,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** The Bluetooth SIG Date Time characteristic is seven bytes long. */
2
+ declare const DATE_TIME_BYTES = 7;
3
+ /** The byte at `index` of a record that starts at `offset`; undefined when the frame ends first. */
4
+ declare const byteAt: (frame: readonly string[], index: number, offset: number) => number | undefined;
5
+ /** Reads a SIG Date Time at `index` as a phone-local date; undefined for missing or impossible fields. */
6
+ declare const dateTimeAt: (frame: readonly string[], index: number, offset?: number) => Date | undefined;
7
+ /** `reading` plus each of `metadata` that has a value. */
8
+ declare const withDefinedMetadata: <T extends object>(reading: T, metadata: Readonly<Record<string, unknown>>) => T;
9
+ export { byteAt, DATE_TIME_BYTES, dateTimeAt, withDefinedMetadata };
10
+ //# sourceMappingURL=standard-gatt.frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.frame.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,QAAA,MAAM,eAAe,IAAI,CAAC;AAE1B,oGAAoG;AACpG,QAAA,MAAM,MAAM,GACV,OAAO,SAAS,MAAM,EAAE,EACxB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAAM,GAAG,SAMX,CAAC;AAEF,0GAA0G;AAC1G,QAAA,MAAM,UAAU,GACd,OAAO,SAAS,MAAM,EAAE,EACxB,OAAO,MAAM,EACb,eAAU,KACT,IAAI,GAAG,SAgCT,CAAC;AAEF,0DAA0D;AAC1D,QAAA,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,EAC3C,SAAS,CAAC,EACV,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAC1C,CAKD,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
@@ -20,6 +20,8 @@ interface ProfileSpec {
20
20
  /** Shortest frame the profile guarantees, which bounds every field a case may read. */
21
21
  minLengthBytes: number;
22
22
  measurementTypeKey: MeasurementTypeKey;
23
+ /** Adds what the declared fields cannot carry, such as the timestamp or the device user; runs before the caller's. */
24
+ decorateReading?: CustomReadingDecorator;
23
25
  /** Flags-byte values whose layout matches `fields`, in canonical units. */
24
26
  selectors: readonly string[];
25
27
  /** Per-flag field variants, used when the profile reports a convertible unit. */
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.profile.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAKrF,UAAU,oBAAoB;IAE5B,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,iFAAiF;IACjF,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAEvB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,2EAA2E;IAC3E,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;IAExE,6FAA6F;IAC7F,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,QAAQ,CACvB,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CACtE,CAAC;CACH;AAED;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAClB,QAAQ,oBAAoB,EAC5B,SAAS,WAAW,KACnB,sBAsCA,CAAC;AAEJ,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,aAAa,MAAM,EAAE,EACrB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,UAAU,CAAC,KACpC,eAMD,CAAC;AAcH,oEAAoE;AACpE,QAAA,MAAM,gCAAgC,GACpC,OAAO,SAAS,MAAM,EAAE,EACxB,eAAU,KACT,IAAI,GAAG,SAmCT,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,sBAyDnC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,gCAAgC,GACjC,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"standard-gatt.profile.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAMrF,UAAU,oBAAoB;IAE5B,qFAAqF;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,iFAAiF;IACjF,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAEvB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,sHAAsH;IACtH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC,2EAA2E;IAC3E,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC,CAAC;IAExE,6FAA6F;IAC7F,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,QAAQ,CACvB,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CACtE,CAAC;CACH;AAkBD;;;;;GAKG;AACH,QAAA,MAAM,cAAc,GAClB,QAAQ,oBAAoB,EAC5B,SAAS,WAAW,KACnB,sBA2CA,CAAC;AAEJ,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,aAAa,MAAM,EAAE,EACrB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,UAAU,CAAC,KACpC,eAMD,CAAC;AAEH,oEAAoE;AACpE,QAAA,MAAM,gCAAgC,GACpC,OAAO,SAAS,MAAM,EAAE,EACxB,eAAU,KACT,IAAI,GAAG,SAMT,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,sBA4DnC,CAAC;AAEF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,gCAAgC,GACjC,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC"}
@@ -14,5 +14,11 @@ export interface DeviceResultPolicy {
14
14
  default?: ResultPolicy;
15
15
  /** Policy overrides per measurement type. */
16
16
  byMeasurement?: ResultPolicyByMeasurement;
17
+ /**
18
+ * The device users whose readings are reported, by memory slot (a multi-user device reports its user as
19
+ * `memorySlot`, starting at 1). Readings of other users are dropped; a reading that names no device user is kept.
20
+ * Without it every user's readings are reported.
21
+ */
22
+ acceptedMemorySlots?: readonly number[];
17
23
  }
18
24
  //# sourceMappingURL=result-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/result-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,mBAAmB,GACnB,uCAAuC;AAEzC;;;GAGG;GACD,QAAQ,CAAC;AAEb,0CAA0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CACzC,CAAC;AAEF,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IAEjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC3C"}
1
+ {"version":3,"file":"result-policy.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/result-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,mBAAmB,GACnB,uCAAuC;AAEzC;;;GAGG;GACD,QAAQ,CAAC;AAEb,0CAA0C;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CACzC,CAAC;AAEF,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IAEjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAE1C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC"}
@@ -0,0 +1,6 @@
1
+ /** The memory slot of a SIG device user: users count from 0, slots from 1; the unknown user has none. */
2
+ declare const memorySlotForDeviceUser: (userId: number) => number | undefined;
3
+ /** Whether a reading is from one of the device users `slots`; a reading that names no device user is kept. */
4
+ declare const isFromAcceptedMemorySlot: (reading: object, slots: readonly number[]) => boolean;
5
+ export { isFromAcceptedMemorySlot, memorySlotForDeviceUser };
6
+ //# sourceMappingURL=device-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-user.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/device-user.ts"],"names":[],"mappings":"AAGA,yGAAyG;AACzG,QAAA,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SACF,CAAC;AAE1D,8GAA8G;AAC9G,QAAA,MAAM,wBAAwB,GAC5B,SAAS,MAAM,EACf,OAAO,SAAS,MAAM,EAAE,KACvB,OAIF,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Millimetres of mercury in one kilopascal. */
2
+ declare const KPA_TO_MMHG = 7.50062;
3
+ export { KPA_TO_MMHG };
4
+ //# sourceMappingURL=kpa-to-mmhg.d.ts.map