@ovok/native 1.6.51 → 1.6.53

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 (69) hide show
  1. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  2. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js +4 -4
  3. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js.map +1 -1
  4. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +13 -9
  5. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  6. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +7 -2
  7. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  8. package/lib/commonjs/modules/bt-management/services/bt-manager.js +11 -6
  9. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  10. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js +4 -2
  11. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -1
  12. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +30 -6
  13. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
  14. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +16 -27
  15. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  16. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +26 -33
  17. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  18. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.main-services.js +1 -1
  19. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  20. package/lib/module/modules/bt-management/hooks/use-bt-device.js +4 -4
  21. package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -1
  22. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +13 -9
  23. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  24. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +7 -2
  25. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  26. package/lib/module/modules/bt-management/services/bt-manager.js +11 -6
  27. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  28. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js +3 -2
  29. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -1
  30. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +31 -7
  31. package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
  32. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +16 -26
  33. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  34. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +27 -34
  35. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  36. package/lib/module/modules/bt-management/services/devices/bc01/bc01.main-services.js +1 -1
  37. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  38. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +1 -1
  41. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +4 -2
  43. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +2 -1
  45. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +3 -6
  47. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +7 -17
  49. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +5 -2
  51. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts +1 -1
  53. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  54. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  56. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +1 -1
  57. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  58. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +4 -2
  59. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  60. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +2 -1
  61. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -1
  62. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +3 -6
  63. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
  64. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +7 -17
  65. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  66. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +5 -2
  67. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  68. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts +1 -1
  69. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","DeviceCreator","bluetoothErrorCallback","error","normalized","originalError","translationKey","Error","code","SCAN_RETRY_DELAY_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","forEach","device","disconnect","startScan","stateChangeListener","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","clearScanTimers","removeStateChangeListener","sub","remove","pauseScan","resumeScan","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","forget","deviceId","add","get","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","advertisedName","name","trim","localName","has","deviceName","getDeviceName","size","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","model","queueAutoConnect","values","candidate","connect","select","selected","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","DeviceCreator","bluetoothErrorCallback","error","normalized","originalError","translationKey","Error","code","SCAN_RETRY_DELAY_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","forEach","device","disconnect","startScan","stateChangeListener","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","clearScanTimers","removeStateChangeListener","sub","remove","pauseScan","resumeScan","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","disconnectDevice","deviceId","get","forget","add","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","advertisedName","name","trim","localName","has","deviceName","getDeviceName","size","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","model","queueAutoConnect","values","candidate","connect","select","selected","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -28,6 +28,7 @@ const RECORD_FLAGS_INDEX = 1;
28
28
  const RECORD_LAST_OF_SET_BIT = 0x40;
29
29
  const asHex = byte => (byte & 0xff).toString(16).padStart(2, "0");
30
30
  const bc401Checksum = bytes => bytes.reduce((acc, byte) => acc + (byte & 0x7f), 0) & 0x7f;
31
+ const bc401ChecksumMatches = bytes => bytes.length > 1 && bytes[bytes.length - 1] === bc401Checksum(bytes.slice(0, -1));
31
32
  const buildCommand = (opcode, arg) => [opcode, arg, bc401Checksum([opcode, arg])];
32
33
  const buildResetCommand = () => [OP_RESET, 0x00];
33
34
  const buildRequestVersionCommand = () => [OP_REQUEST_VERSION, bc401Checksum([OP_REQUEST_VERSION])];
@@ -49,9 +50,9 @@ const buildSetTimeCommand = (now, timezone = "local") => {
49
50
  seconds: now.getSeconds(),
50
51
  milliseconds: now.getMilliseconds()
51
52
  };
52
- const payload = [OP_SET_TIME, parts.year - 2000, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, parts.milliseconds & 0xff, parts.milliseconds >> 8 & 0xff];
53
+ const payload = [OP_SET_TIME, parts.year - 2000, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, parts.milliseconds & 0x7f, parts.milliseconds >> 8 & 0x7f];
53
54
  return [...payload, bc401Checksum(payload)];
54
55
  };
55
56
  const buildDeleteCommand = () => [0x93, 0x13];
56
- export { ACK_LAST_OF_SET, asHex, bc401Checksum, buildCommand, buildDeleteCommand, buildRequestVersionCommand, buildResetCommand, buildSetTimeCommand, FINAL_RECORD_DELAY_MS, OP_REQUEST_COUNT, OP_REQUEST_QUANTITATIVE_RECORDS, OP_REQUEST_RECORDS, RECORD_FLAGS_INDEX, RECORD_LAST_OF_SET_BIT, REQUEST_ALL, REQUEST_NEXT_RECORD_GROUP, RESET_DELAY_MS, RETRY_RECORD_GROUP, RX };
57
+ export { ACK_LAST_OF_SET, asHex, bc401Checksum, bc401ChecksumMatches, buildCommand, buildDeleteCommand, buildRequestVersionCommand, buildResetCommand, buildSetTimeCommand, FINAL_RECORD_DELAY_MS, OP_REQUEST_COUNT, OP_REQUEST_QUANTITATIVE_RECORDS, OP_REQUEST_RECORDS, RECORD_FLAGS_INDEX, RECORD_LAST_OF_SET_BIT, REQUEST_ALL, REQUEST_NEXT_RECORD_GROUP, RESET_DELAY_MS, RETRY_RECORD_GROUP, RX };
57
58
  //# sourceMappingURL=bc01-command-builders.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OP_RESET","OP_REQUEST_VERSION","OP_SET_TIME","OP_REQUEST_COUNT","OP_REQUEST_RECORDS","OP_REQUEST_QUANTITATIVE_RECORDS","ACK_LAST_OF_SET","REQUEST_ALL","REQUEST_NEXT_RECORD_GROUP","RETRY_RECORD_GROUP","FINAL_RECORD_DELAY_MS","RESET_DELAY_MS","RX","ACK","VERSION_REPLY","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","STORED_RECORD_PAGED","FINISH","STORED_QUANTITATIVE","STORED_QUANTITATIVE_PAGED","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","asHex","byte","toString","padStart","bc401Checksum","bytes","reduce","acc","buildCommand","opcode","arg","buildResetCommand","buildRequestVersionCommand","buildSetTimeCommand","now","timezone","parts","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","payload","buildDeleteCommand"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-builders.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OP_RESET","OP_REQUEST_VERSION","OP_SET_TIME","OP_REQUEST_COUNT","OP_REQUEST_RECORDS","OP_REQUEST_QUANTITATIVE_RECORDS","ACK_LAST_OF_SET","REQUEST_ALL","REQUEST_NEXT_RECORD_GROUP","RETRY_RECORD_GROUP","FINAL_RECORD_DELAY_MS","RESET_DELAY_MS","RX","ACK","VERSION_REPLY","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","STORED_RECORD_PAGED","FINISH","STORED_QUANTITATIVE","STORED_QUANTITATIVE_PAGED","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","asHex","byte","toString","padStart","bc401Checksum","bytes","reduce","acc","bc401ChecksumMatches","length","slice","buildCommand","opcode","arg","buildResetCommand","buildRequestVersionCommand","buildSetTimeCommand","now","timezone","parts","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","payload","buildDeleteCommand"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-builders.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { isClockSyncEnabled } from "../../../types/clock-sync.js";
6
6
  import { hexToByte } from "../../../utils/hex-to-byte.js";
7
- import { ACK_LAST_OF_SET, asHex, bc401Checksum, buildCommand, buildDeleteCommand, buildRequestVersionCommand, buildResetCommand, buildSetTimeCommand, FINAL_RECORD_DELAY_MS, OP_REQUEST_COUNT, OP_REQUEST_QUANTITATIVE_RECORDS, OP_REQUEST_RECORDS, RECORD_FLAGS_INDEX, RECORD_LAST_OF_SET_BIT, REQUEST_ALL, REQUEST_NEXT_RECORD_GROUP, RESET_DELAY_MS, RETRY_RECORD_GROUP, RX } from "./bc01-command-builders.js";
7
+ import { ACK_LAST_OF_SET, asHex, bc401Checksum, bc401ChecksumMatches, buildCommand, buildDeleteCommand, buildRequestVersionCommand, buildResetCommand, buildSetTimeCommand, FINAL_RECORD_DELAY_MS, OP_REQUEST_COUNT, OP_REQUEST_QUANTITATIVE_RECORDS, OP_REQUEST_RECORDS, RECORD_FLAGS_INDEX, RECORD_LAST_OF_SET_BIT, REQUEST_ALL, REQUEST_NEXT_RECORD_GROUP, RESET_DELAY_MS, RETRY_RECORD_GROUP, RX } from "./bc01-command-builders.js";
8
8
  /**
9
9
  * Walks the BC401 through its post-reset handshake and pulls every stored
10
10
  * record.
@@ -30,6 +30,7 @@ export class Bc01CommandSequencer {
30
30
 
31
31
  /** Five quantitative pages per request group; 5 means a new group. */
32
32
  quantitativePage = 5;
33
+ sawQuantitativeRecord = false;
33
34
 
34
35
  /** Injectable for tests; production reads `Date.now()`. */
35
36
 
@@ -43,14 +44,36 @@ export class Bc01CommandSequencer {
43
44
  return undefined;
44
45
  }
45
46
  const opcode = hexToByte(frame[0] ?? "0");
47
+ if (!bc401ChecksumMatches(frame.map(hexToByte))) {
48
+ this.params.onError?.(`BC401 checksum failed for frame ${asHex(opcode)}`);
49
+ if (opcode === RX.STORED_RECORD_PAGED) {
50
+ this.standardPage = 10;
51
+ return [this.commandFor(buildCommand(OP_REQUEST_RECORDS, RETRY_RECORD_GROUP))];
52
+ }
53
+ if (opcode === RX.STORED_QUANTITATIVE_PAGED) {
54
+ this.quantitativePage = 5;
55
+ return [this.commandFor(buildCommand(OP_REQUEST_QUANTITATIVE_RECORDS, RETRY_RECORD_GROUP))];
56
+ }
57
+ this.isDone = true;
58
+ return undefined;
59
+ }
46
60
  switch (opcode) {
47
61
  case RX.ACK:
48
62
  return [this.commandFor(buildRequestVersionCommand())];
49
63
  case RX.VERSION_REPLY:
50
64
  return [this.commandFor(isClockSyncEnabled(this.params.clockSync) ? buildSetTimeCommand(this.clock(), this.params.clockSync?.timezone) : buildCommand(OP_REQUEST_COUNT, REQUEST_ALL))];
51
65
  case RX.TIME_SYNC_ACK:
66
+ if (hexToByte(frame[1] ?? "0") !== 0) {
67
+ this.params.onError?.("BC401 rejected the time synchronization");
68
+ this.isDone = true;
69
+ return undefined;
70
+ }
52
71
  return [this.commandFor(buildCommand(OP_REQUEST_COUNT, REQUEST_ALL))];
53
72
  case RX.COUNT_REPLY:
73
+ if ((hexToByte(frame[4] ?? "0") & 0x7f | (hexToByte(frame[5] ?? "0") & 0x7f) << 7) === 0) {
74
+ this.isDone = true;
75
+ return undefined;
76
+ }
54
77
  return [this.commandFor(buildCommand(OP_REQUEST_RECORDS, REQUEST_ALL))];
55
78
  case RX.STORED_RECORD_URS:
56
79
  case RX.STORED_RECORD_PAGED:
@@ -68,7 +91,7 @@ export class Bc01CommandSequencer {
68
91
  answerStoredRecord = (opcode, frame) => {
69
92
  const flags = hexToByte(frame[RECORD_FLAGS_INDEX] ?? "0");
70
93
  if (opcode === RX.STORED_RECORD_URS) {
71
- return this.finishStoredRecords(OP_REQUEST_RECORDS);
94
+ return this.finishStoredRecords();
72
95
  }
73
96
  const page = flags & 0x0f;
74
97
  if (this.standardPage === 10) {
@@ -86,12 +109,13 @@ export class Bc01CommandSequencer {
86
109
  return undefined;
87
110
  }
88
111
  this.standardPage = 10;
89
- return this.finishStoredRecords(OP_REQUEST_RECORDS);
112
+ return this.finishStoredRecords();
90
113
  };
91
114
  answerQuantitativeRecord = (opcode, frame) => {
115
+ this.sawQuantitativeRecord = true;
92
116
  const flags = hexToByte(frame[RECORD_FLAGS_INDEX] ?? "0");
93
117
  if (opcode === RX.STORED_QUANTITATIVE) {
94
- return this.finishStoredRecords(OP_REQUEST_QUANTITATIVE_RECORDS);
118
+ return this.finishStoredRecords();
95
119
  }
96
120
  const page = flags & 0x0f;
97
121
  if (this.quantitativePage === 5) {
@@ -109,11 +133,11 @@ export class Bc01CommandSequencer {
109
133
  return undefined;
110
134
  }
111
135
  this.quantitativePage = 5;
112
- return this.finishStoredRecords(OP_REQUEST_QUANTITATIVE_RECORDS);
136
+ return this.finishStoredRecords();
113
137
  };
114
- finishStoredRecords = opcode => {
138
+ finishStoredRecords = () => {
115
139
  this.isDone = true;
116
- return [this.commandFor(buildCommand(opcode, ACK_LAST_OF_SET)), this.commandFor(buildDeleteCommand(), FINAL_RECORD_DELAY_MS)];
140
+ return [this.commandFor(buildCommand(OP_REQUEST_RECORDS, ACK_LAST_OF_SET)), ...(this.params.clearDeviceHistory && !this.sawQuantitativeRecord ? [this.commandFor(buildDeleteCommand(), FINAL_RECORD_DELAY_MS)] : [])];
117
141
  };
118
142
  commandFor = (bytes, delayBeforeWriteMs = 0) => ({
119
143
  ...this.params.write,
@@ -1 +1 @@
1
- {"version":3,"names":["isClockSyncEnabled","hexToByte","ACK_LAST_OF_SET","asHex","bc401Checksum","buildCommand","buildDeleteCommand","buildRequestVersionCommand","buildResetCommand","buildSetTimeCommand","FINAL_RECORD_DELAY_MS","OP_REQUEST_COUNT","OP_REQUEST_QUANTITATIVE_RECORDS","OP_REQUEST_RECORDS","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","REQUEST_ALL","REQUEST_NEXT_RECORD_GROUP","RESET_DELAY_MS","RETRY_RECORD_GROUP","RX","Bc01CommandSequencer","isDone","standardPage","quantitativePage","constructor","params","clock","clockSync","now","Date","initialCommands","commandFor","nextCommand","frame","length","undefined","opcode","ACK","VERSION_REPLY","timezone","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","STORED_RECORD_PAGED","answerStoredRecord","STORED_QUANTITATIVE","STORED_QUANTITATIVE_PAGED","answerQuantitativeRecord","FINISH","flags","finishStoredRecords","page","bytes","delayBeforeWriteMs","write","map","bc01CommandSequencerInternals"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-sequencer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isClockSyncEnabled","hexToByte","ACK_LAST_OF_SET","asHex","bc401Checksum","bc401ChecksumMatches","buildCommand","buildDeleteCommand","buildRequestVersionCommand","buildResetCommand","buildSetTimeCommand","FINAL_RECORD_DELAY_MS","OP_REQUEST_COUNT","OP_REQUEST_QUANTITATIVE_RECORDS","OP_REQUEST_RECORDS","RECORD_FLAGS_INDEX","RECORD_LAST_OF_SET_BIT","REQUEST_ALL","REQUEST_NEXT_RECORD_GROUP","RESET_DELAY_MS","RETRY_RECORD_GROUP","RX","Bc01CommandSequencer","isDone","standardPage","quantitativePage","sawQuantitativeRecord","constructor","params","clock","clockSync","now","Date","initialCommands","commandFor","nextCommand","frame","length","undefined","opcode","map","onError","STORED_RECORD_PAGED","STORED_QUANTITATIVE_PAGED","ACK","VERSION_REPLY","timezone","TIME_SYNC_ACK","COUNT_REPLY","STORED_RECORD_URS","answerStoredRecord","STORED_QUANTITATIVE","answerQuantitativeRecord","FINISH","flags","finishStoredRecords","page","clearDeviceHistory","bytes","delayBeforeWriteMs","write","bc01CommandSequencerInternals"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-command-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { hexToByte } from "../../../utils/hex-to-byte.js";
4
+ import { bc401ChecksumMatches } from "./bc01-command-builders.js";
4
5
 
5
6
  /** BC401 stored-record frame is always sixteen bytes: header, timestamp, analytes, checksum. */
6
7
  const BC01_RECORD_LENGTH = 16;
7
8
 
8
- /** The two opcodes the firmware uses for a stored URS-7 record. */
9
+ /** The two opcodes the firmware uses for a stored BC401 strip record. */
9
10
  const BC01_URS_OPCODE = 0xe1;
10
11
  const BC01_PAGED_URS_OPCODE = 0xe2;
11
12
 
@@ -28,16 +29,14 @@ const MINUTE_MASK = 0x3f;
28
29
  const SECOND_MASK = 0x3f;
29
30
 
30
31
  /**
31
- * URS-7 pad names, in the exact order they occupy the packed 3-bit slots
32
- * across bytes 8..14 (see M1/a.java). The eleventh slot is a Contec-firmware
33
- * field the vendor's own catalog calls "vc" and no other name is documented.
32
+ * Pad names, in the exact order they occupy the packed 3-bit slots across
33
+ * bytes 8..14 (see PHMS M1/a.java), covering both 11- and 14-pad strips.
34
34
  */
35
- const BC01_ANALYTE_ORDER = ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc"];
35
+ const BC01_ANALYTE_ORDER = ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc", "mal", "cr", "uca"];
36
36
  /**
37
37
  * BC401's packed values are colour-chart indexes, not measurements. These
38
38
  * values mirror the tables in Contec's BC401 integration (PHMS M1/a.java):
39
39
  * the index is zero-based and `7` remains the device's unmeasured sentinel.
40
- * The pH table is the URS-7 strip scale, which includes half-point readings.
41
40
  */
42
41
  const BC01_ANALYTE_VALUES = {
43
42
  uro: [0.2, 2, 4, 8],
@@ -46,11 +45,14 @@ const BC01_ANALYTE_VALUES = {
46
45
  ket: [0, 15, 40, 80],
47
46
  glu: [0, 50, 100, 250, 500, 1000],
48
47
  pro: [0, 15, 30, 100, 300],
49
- ph: [5, 6, 6.5, 7, 7.5, 8, 8.5],
48
+ ph: [5, 6, 7, 8, 9],
50
49
  nit: [0, 1],
51
50
  leu: [0, 15, 70, 125, 500],
52
51
  sg: [1.005, 1.01, 1.015, 1.02, 1.025, 1.03],
53
- vc: [0, 10, 25, 50, 100]
52
+ vc: [0, 10, 25, 50, 100],
53
+ mal: [1, 3, 8, 15],
54
+ cr: [10, 50, 100, 200, 300],
55
+ uca: [2, 5, 15, 50]
54
56
  };
55
57
 
56
58
  /** Where the packed analyte pairs start in a 16-byte E1/E2 frame. */
@@ -73,10 +75,8 @@ const readPad = (packed, slot) => slot === 0 ? packed & 0x07 : packed >> 3 & 0x0
73
75
  * frame is a record or a heartbeat, and a frame that fails these checks is
74
76
  * skipped rather than parsed into a plausible-looking wrong reading.
75
77
  *
76
- * The checksum byte is not verified here: the SDK's read path already ensures
77
- * frame integrity before the parser sees the bytes, and a URS-7 pad value can
78
- * only land in [0, 7] anyway — a corrupt payload would fail the pad-value
79
- * check before it made it into a measurement.
78
+ * The checksum byte is verified before any value is exposed; individual
79
+ * packed indexes could otherwise decode into plausible but incorrect results.
80
80
  */
81
81
  const parseBc01Record = frame => {
82
82
  if (frame.length < BC01_RECORD_LENGTH) {
@@ -86,6 +86,9 @@ const parseBc01Record = frame => {
86
86
  if (opcode !== BC01_URS_OPCODE && opcode !== BC01_PAGED_URS_OPCODE) {
87
87
  return undefined;
88
88
  }
89
+ if (!bc401ChecksumMatches(frame.map(hexToByte))) {
90
+ return undefined;
91
+ }
89
92
  const flags = hexToByte(frame[1] ?? "");
90
93
  const yy = hexToByte(frame[2] ?? "") + YEAR_BASE;
91
94
  const mm = hexToByte(frame[3] ?? "") & MONTH_MASK;
@@ -115,18 +118,5 @@ const parseBc01Record = frame => {
115
118
  values
116
119
  };
117
120
  };
118
-
119
- /**
120
- * True when the buffer holds a complete BC401 stored record. Used by the
121
- * driver's `validatePackage` hook so the SDK's read path only advances once
122
- * the notification carries a whole 16-byte frame.
123
- */
124
- const isBc01Record = frame => {
125
- if (frame.length < BC01_RECORD_LENGTH) {
126
- return false;
127
- }
128
- const opcode = hexToByte(frame[0] ?? "");
129
- return opcode === BC01_URS_OPCODE || opcode === BC01_PAGED_URS_OPCODE;
130
- };
131
- export { BC01_ANALYTE_ORDER, BC01_ANALYTE_VALUES, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, isBc01Record, parseBc01Record };
121
+ export { BC01_ANALYTE_ORDER, BC01_ANALYTE_VALUES, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, parseBc01Record };
132
122
  //# sourceMappingURL=bc01-frame-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["hexToByte","BC01_RECORD_LENGTH","BC01_URS_OPCODE","BC01_PAGED_URS_OPCODE","BC01_LAST_OF_SET_BIT","UNMEASURED","YEAR_BASE","MONTH_MASK","DAY_MASK","HOUR_MASK","MINUTE_MASK","SECOND_MASK","BC01_ANALYTE_ORDER","BC01_ANALYTE_VALUES","uro","bld","bil","ket","glu","pro","ph","nit","leu","sg","vc","ANALYTES_START","readPad","packed","slot","parseBc01Record","frame","length","undefined","opcode","flags","yy","mm","dd","hh","mi","ss","timestamp","Date","values","forEach","analyte","position","byteIndex","Math","floor","level","value","lastOfSet","pageIndex","isBc01Record"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["hexToByte","bc401ChecksumMatches","BC01_RECORD_LENGTH","BC01_URS_OPCODE","BC01_PAGED_URS_OPCODE","BC01_LAST_OF_SET_BIT","UNMEASURED","YEAR_BASE","MONTH_MASK","DAY_MASK","HOUR_MASK","MINUTE_MASK","SECOND_MASK","BC01_ANALYTE_ORDER","BC01_ANALYTE_VALUES","uro","bld","bil","ket","glu","pro","ph","nit","leu","sg","vc","mal","cr","uca","ANALYTES_START","readPad","packed","slot","parseBc01Record","frame","length","undefined","opcode","map","flags","yy","mm","dd","hh","mi","ss","timestamp","Date","values","forEach","analyte","position","byteIndex","Math","floor","level","value","lastOfSet","pageIndex"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"mappings":";;AAEA,SAASA,SAAS,QAAQ,+BAA4B;AAEtD,SAASC,oBAAoB,QAAQ,4BAAyB;;AAE9D;AACA,MAAMC,kBAAkB,GAAG,EAAE;;AAE7B;AACA,MAAMC,eAAe,GAAG,IAAI;AAC5B,MAAMC,qBAAqB,GAAG,IAAI;;AAElC;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,IAAI;;AAEjC;AACA;AACA;AACA;AACA,MAAMC,UAAU,GAAG,CAAC;AAEpB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,UAAU,GAAG,IAAI;AACvB,MAAMC,QAAQ,GAAG,IAAI;AACrB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,WAAW,GAAG,IAAI;AACxB,MAAMC,WAAW,GAAG,IAAI;;AAExB;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,CACzB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,CACwD;AAI/D;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAA2D,GAAG;EAClEC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACnBC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;EACzBC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACjBC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACpBC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;EACjCC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;EAC1BC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACnBC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACXC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;EAC1BC,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;EAC3CC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;EACxBC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;EAClBC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EAC3BC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACpB,CAAC;;AAED;AACA,MAAMC,cAAc,GAAG,CAAC;;AAExB;;AAmBA;AACA;AACA;AACA;AACA;AACA,MAAMC,OAAO,GAAGA,CAACC,MAAc,EAAEC,IAAW,KAC1CA,IAAI,KAAK,CAAC,GAAGD,MAAM,GAAG,IAAI,GAAIA,MAAM,IAAI,CAAC,GAAI,IAAI;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,eAAe,GACnBC,KAAwB,IACS;EACjC,IAAIA,KAAK,CAACC,MAAM,GAAGjC,kBAAkB,EAAE;IACrC,OAAOkC,SAAS;EAClB;EAEA,MAAMC,MAAM,GAAGrC,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EAExC,IAAIG,MAAM,KAAKlC,eAAe,IAAIkC,MAAM,KAAKjC,qBAAqB,EAAE;IAClE,OAAOgC,SAAS;EAClB;EAEA,IAAI,CAACnC,oBAAoB,CAACiC,KAAK,CAACI,GAAG,CAACtC,SAAS,CAAC,CAAC,EAAE;IAC/C,OAAOoC,SAAS;EAClB;EAEA,MAAMG,KAAK,GAAGvC,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EACvC,MAAMM,EAAE,GAAGxC,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG3B,SAAS;EAChD,MAAMkC,EAAE,GAAGzC,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG1B,UAAU;EACjD,MAAMkC,EAAE,GAAG1C,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGzB,QAAQ;EAC/C,MAAMkC,EAAE,GAAG3C,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGxB,SAAS;EAChD,MAAMkC,EAAE,GAAG5C,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGvB,WAAW;EAClD,MAAMkC,EAAE,GAAG7C,SAAS,CAACkC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGtB,WAAW;EAElD,MAAMkC,SAAS,GAAG,IAAIC,IAAI,CAACP,EAAE,EAAEC,EAAE,GAAG,CAAC,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,CAAC,CAAC;EAEzD,MAAMG,MAAkC,GAAG,CAAC,CAAC;EAE7CnC,kBAAkB,CAACoC,OAAO,CAAC,CAACC,OAAO,EAAEC,QAAQ,KAAK;IAChD,MAAMC,SAAS,GAAGvB,cAAc,GAAGwB,IAAI,CAACC,KAAK,CAACH,QAAQ,GAAG,CAAC,CAAC;IAC3D,MAAMnB,IAAI,GAAImB,QAAQ,GAAG,CAAW;IACpC,MAAMpB,MAAM,GAAG/B,SAAS,CAACkC,KAAK,CAACkB,SAAS,CAAC,IAAI,EAAE,CAAC;IAChD,MAAMG,KAAK,GAAGzB,OAAO,CAACC,MAAM,EAAEC,IAAI,CAAC;IAEnC,IAAIuB,KAAK,KAAKjD,UAAU,EAAE;MACxB;IACF;IAEA,MAAMkD,KAAK,GAAG1C,mBAAmB,CAACoC,OAAO,CAAC,CAACK,KAAK,CAAC;IAEjD,IAAIC,KAAK,KAAKpB,SAAS,EAAE;MACvBY,MAAM,CAACE,OAAO,CAAC,GAAGM,KAAK;IACzB;EACF,CAAC,CAAC;EAEF,OAAO;IACLV,SAAS;IACTW,SAAS,EAAE,CAAClB,KAAK,GAAGlC,oBAAoB,MAAM,CAAC;IAC/CqD,SAAS,EAAEnB,KAAK,GAAG,IAAI;IACvBS;EACF,CAAC;AACH,CAAC;AAED,SACEnC,kBAAkB,EAClBC,mBAAmB,EACnBT,oBAAoB,EACpBD,qBAAqB,EACrBF,kBAAkB,EAClBC,eAAe,EAEf8B,eAAe","ignoreList":[]}
@@ -6,30 +6,9 @@ import { hexToByte } from "../../../utils/hex-to-byte.js";
6
6
  import { BTManagedDevice } from "../bt-managed-device.js";
7
7
  import { Bc01CommandSequencer } from "./bc01-command-sequencer.js";
8
8
  import { BC01_ANALYTE_ORDER, parseBc01Record } from "./bc01-frame-parser.js";
9
- import { Bc01FrameReader } from "./bc01.frame-reader.js";
9
+ import { Bc01FrameReader, bc01FrameLengths } from "./bc01.frame-reader.js";
10
10
  import { bc01MainServices } from "./bc01.main-services.js";
11
11
 
12
- /** Minimum bytes a complete frame carries, keyed by its opening opcode. */
13
- const BC01_FRAME_MIN_LENGTH = {
14
- 0xf0: 2,
15
- // ACK
16
- 0xf2: 8,
17
- // Version reply (variable — 8 is the minimum PHMS reads before answering)
18
- 0xf3: 3,
19
- // Time-sync ack
20
- 0xe0: 7,
21
- // Record-count reply
22
- 0xe1: 16,
23
- // Stored URS record
24
- 0xe2: 16,
25
- // Paginated URS record
26
- 0xe3: 3,
27
- // Finish
28
- 0xe4: 36,
29
- // Quantitative record (optional path)
30
- 0xe5: 36 // Quantitative record (optional path)
31
- };
32
-
33
12
  /**
34
13
  * Contec BC401 (BC01) urine analyzer driver.
35
14
  *
@@ -41,12 +20,15 @@ const BC01_FRAME_MIN_LENGTH = {
41
20
  * 16-byte E1/E2 frame on 0xFF02.
42
21
  */
43
22
  export class BC01Device extends BTManagedDevice {
44
- onStreamStart = () => {};
23
+ onStreamStart = () => {
24
+ this.reportedTimestamps.clear();
25
+ };
26
+ reportedTimestamps = new Set();
45
27
  mainServices = bc01MainServices;
46
28
  frameReader = new Bc01FrameReader();
47
29
 
48
30
  /**
49
- * 90 s covers the maximum firmware-side reagent-pad settle time on a URS-7
31
+ * 90 s covers the maximum firmware-side reagent-pad settle time on a
50
32
  * strip and leaves headroom for a bulk memory dump of every stored record.
51
33
  * If the device does not push a frame within that window the data processor
52
34
  * times out and the driver surfaces "device unreachable".
@@ -62,14 +44,18 @@ export class BC01Device extends BTManagedDevice {
62
44
  * set. The parent's default `pollingSequencerFor` would only re-send the
63
45
  * declared reset forever, which the firmware ignores after the first one.
64
46
  */
65
- this.createCommandSequencer = () => new Bc01CommandSequencer({
66
- write: {
67
- serviceUuid: bc01MainServices[0].uuid,
68
- characteristicUuid: bc01MainServices[0].writeUuid.uuid
69
- },
70
- onRefused: reason => this.onError?.(new Error(`BC401 handshake: ${reason}`)),
71
- clockSync: params.clockSync
72
- }, params.clockSync?.now);
47
+ this.createCommandSequencer = () => {
48
+ this.reportedTimestamps.clear();
49
+ return new Bc01CommandSequencer({
50
+ write: {
51
+ serviceUuid: bc01MainServices[0].uuid,
52
+ characteristicUuid: bc01MainServices[0].writeUuid.uuid
53
+ },
54
+ onError: reason => this.onError?.(new Error(`BC401: ${reason}`)),
55
+ clockSync: params.clockSync,
56
+ clearDeviceHistory: params.clearDeviceHistory
57
+ }, params.clockSync?.now);
58
+ };
73
59
  }
74
60
 
75
61
  /**
@@ -83,7 +69,7 @@ export class BC01Device extends BTManagedDevice {
83
69
  return false;
84
70
  }
85
71
  const opcode = hexToByte(pkg[0] ?? "");
86
- const minLength = BC01_FRAME_MIN_LENGTH[opcode];
72
+ const minLength = bc01FrameLengths[opcode.toString(16).padStart(2, "0")];
87
73
  if (minLength === undefined) {
88
74
  return false;
89
75
  }
@@ -114,7 +100,9 @@ export class BC01Device extends BTManagedDevice {
114
100
  /**
115
101
  * Nothing to do here for the BC401. Every reading arrives through the
116
102
  * dependent-result path, and the state machine sees only the `OTHER`-typed
117
- * echo we return from `handleDependentResult`.
103
+ * echo we return from `handleDependentResult`. Records are deduplicated by
104
+ * their second-resolution device timestamp for this transfer because a
105
+ * paged-group retry resends the earlier frames.
118
106
  */
119
107
  handleSuccessResult() {
120
108
  return;
@@ -135,6 +123,11 @@ export class BC01Device extends BTManagedDevice {
135
123
  this.onError?.("feedback-messages.measurement.disturb-detected-error");
136
124
  return;
137
125
  }
126
+ const timestamp = parsed.timestamp.getTime();
127
+ if (this.reportedTimestamps.has(timestamp)) {
128
+ return;
129
+ }
130
+ this.reportedTimestamps.add(timestamp);
138
131
  const reading = {
139
132
  caseType: CaseType.RESULT,
140
133
  measurementTypeKey: MeasurementTypeKey.uricAcid,
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","CaseType","hexToByte","BTManagedDevice","Bc01CommandSequencer","BC01_ANALYTE_ORDER","parseBc01Record","Bc01FrameReader","bc01MainServices","BC01_FRAME_MIN_LENGTH","BC01Device","onStreamStart","mainServices","frameReader","stuckDataTimeout","constructor","device","params","createCommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onRefused","reason","onError","Error","clockSync","now","validatePackage","pkg","length","opcode","minLength","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","OTHER","handleSuccessResult","parsed","measuredValues","reduce","acc","analyte","value","values","Object","keys","reading","RESULT","measurementTypeKey","uricAcid","urineValues","recordedAt","timestamp","onResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAiC,YAAY;AAGxE,SAASC,QAAQ,QAAQ,6BAA0B;AAQnD,SAASC,SAAS,QAAQ,+BAA4B;AACtD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,oBAAoB,QAAQ,6BAA0B;AAC/D,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,wBAAqB;AACzE,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,gBAAgB,QAAQ,yBAAsB;;AAEvD;AACA,MAAMC,qBAA6C,GAAG;EACpD,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,CAAC;EAAE;EACT,IAAI,EAAE,EAAE;EAAE;EACV,IAAI,EAAE,EAAE,CAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASP,eAAe,CAAyB;EAC5DQ,aAAa,GAAeA,CAAA,KAAM,CAAC,CAAC;EAEpCC,YAAY,GAAeJ,gBAAgB;EAC3CK,WAAW,GAAoB,IAAIN,eAAe,CAAC,CAAC;;EAE9D;AACF;AACA;AACA;AACA;AACA;EACYO,gBAAgB,GAAG,MAAM;EAEnCC,WAAWA,CAACC,MAAc,EAAEC,MAAkD,EAAE;IAC9E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;;IAErB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAId,oBAAoB,CACtB;MACEe,KAAK,EAAE;QACLC,WAAW,EAAEZ,gBAAgB,CAAC,CAAC,CAAC,CAAEa,IAAI;QACtCC,kBAAkB,EAAEd,gBAAgB,CAAC,CAAC,CAAC,CAAEe,SAAS,CAAEF;MACtD,CAAC;MACDG,SAAS,EAAGC,MAAM,IAChB,IAAI,CAACC,OAAO,GAAG,IAAIC,KAAK,CAAC,oBAAoBF,MAAM,EAAE,CAAC,CAAC;MACzDG,SAAS,EAAEX,MAAM,CAACW;IACpB,CAAC,EACDX,MAAM,CAACW,SAAS,EAAEC,GACpB,CAAC;EACL;;EAEA;AACF;AACA;AACA;AACA;AACA;EACYC,eAAe,GAAgCC,GAAG,IAAK;IAC/D,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,MAAMC,MAAM,GAAG/B,SAAS,CAAC6B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAMG,SAAS,GAAGzB,qBAAqB,CAACwB,MAAM,CAAC;IAE/C,IAAIC,SAAS,KAAKC,SAAS,EAAE;MAC3B,OAAO,KAAK;IACd;IAEA,OAAOJ,GAAG,CAACC,MAAM,IAAIE,SAAS;EAChC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYE,qBAAqB,GAC7BC,IAEC,IAGE;IACH,IAAIA,IAAI,CAACC,KAAK,EAAE;MACd,IAAI,CAACC,eAAe,CAACF,IAAI,CAACC,KAAK,CAAC;IAClC;IAEA,OAAO;MACL,GAAGD,IAAI;MACPG,WAAW,EAAE;QAAE,GAAGH,IAAI,CAACG,WAAW;QAAEC,QAAQ,EAAExC,QAAQ,CAACyC;MAAM;IAC/D,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;EACYC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;EAEQJ,eAAeA,CAACD,KAAwB,EAAQ;IACtD,MAAMM,MAAM,GAAGtC,eAAe,CAACgC,KAAK,CAAC;IAErC,IAAI,CAACM,MAAM,EAAE;MACX;IACF;IAEA,MAAMC,cAAc,GAAGxC,kBAAkB,CAACyC,MAAM,CAE9C,CAACC,GAAG,EAAEC,OAAO,KAAK;MAClB,MAAMC,KAAK,GAAGL,MAAM,CAACM,MAAM,CAACF,OAAO,CAAC;MAEpC,IAAIC,KAAK,KAAKd,SAAS,EAAE;QACvBY,GAAG,CAACC,OAAO,CAAC,GAAGC,KAAK;MACtB;MAEA,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAII,MAAM,CAACC,IAAI,CAACP,cAAc,CAAC,CAACb,MAAM,KAAK,CAAC,EAAE;MAC5C,IAAI,CAACN,OAAO,GAAG,sDAAsD,CAAC;MAEtE;IACF;IAEA,MAAM2B,OAAO,GAAG;MACdZ,QAAQ,EAAExC,QAAQ,CAACqD,MAAM;MACzBC,kBAAkB,EAAEvD,kBAAkB,CAACwD,QAAQ;MAC/CC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAEd,MAAM,CAACe,SAAS;MAC5B,GAAGd;IACL,CAEC;IAED,IAAI,CAACe,QAAQ,GAAGP,OAAO,CAAC;EAC1B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","hexToByte","BTManagedDevice","Bc01CommandSequencer","BC01_ANALYTE_ORDER","parseBc01Record","Bc01FrameReader","bc01FrameLengths","bc01MainServices","BC01Device","onStreamStart","reportedTimestamps","clear","Set","mainServices","frameReader","stuckDataTimeout","constructor","device","params","createCommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onError","reason","Error","clockSync","clearDeviceHistory","now","validatePackage","pkg","length","opcode","minLength","toString","padStart","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","OTHER","handleSuccessResult","parsed","measuredValues","reduce","acc","analyte","value","values","Object","keys","timestamp","getTime","has","add","reading","RESULT","measurementTypeKey","uricAcid","urineValues","recordedAt","onResult"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAiC,YAAY;AAGxE,SAASC,QAAQ,QAAQ,6BAA0B;AAQnD,SAASC,SAAS,QAAQ,+BAA4B;AACtD,SAASC,eAAe,QAAQ,yBAAsB;AAEtD,SAASC,oBAAoB,QAAQ,6BAA0B;AAC/D,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,wBAAqB;AACzE,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAqB;AACvE,SAASC,gBAAgB,QAAQ,yBAAsB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASP,eAAe,CAAyB;EAC5DQ,aAAa,GAAeA,CAAA,KAAM;IAC1C,IAAI,CAACC,kBAAkB,CAACC,KAAK,CAAC,CAAC;EACjC,CAAC;EAEgBD,kBAAkB,GAAG,IAAIE,GAAG,CAAS,CAAC;EAE7CC,YAAY,GAAeN,gBAAgB;EAC3CO,WAAW,GAAoB,IAAIT,eAAe,CAAC,CAAC;;EAE9D;AACF;AACA;AACA;AACA;AACA;EACYU,gBAAgB,GAAG,MAAM;EAEnCC,WAAWA,CAACC,MAAc,EAAEC,MAAkD,EAAE;IAC9E,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;;IAErB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,sBAAsB,GAAG,MAAwB;MACpD,IAAI,CAACT,kBAAkB,CAACC,KAAK,CAAC,CAAC;MAE/B,OAAO,IAAIT,oBAAoB,CAC7B;QACEkB,KAAK,EAAE;UACLC,WAAW,EAAEd,gBAAgB,CAAC,CAAC,CAAC,CAAEe,IAAI;UACtCC,kBAAkB,EAAEhB,gBAAgB,CAAC,CAAC,CAAC,CAAEiB,SAAS,CAAEF;QACtD,CAAC;QACDG,OAAO,EAAGC,MAAM,IAAK,IAAI,CAACD,OAAO,GAAG,IAAIE,KAAK,CAAC,UAAUD,MAAM,EAAE,CAAC,CAAC;QAClEE,SAAS,EAAEV,MAAM,CAACU,SAAS;QAC3BC,kBAAkB,EAAEX,MAAM,CAACW;MAC7B,CAAC,EACDX,MAAM,CAACU,SAAS,EAAEE,GACpB,CAAC;IACH,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACYC,eAAe,GAAgCC,GAAG,IAAK;IAC/D,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,MAAMC,MAAM,GAAGlC,SAAS,CAACgC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAMG,SAAS,GAAG7B,gBAAgB,CAAC4B,MAAM,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExE,IAAIF,SAAS,KAAKG,SAAS,EAAE;MAC3B,OAAO,KAAK;IACd;IAEA,OAAON,GAAG,CAACC,MAAM,IAAIE,SAAS;EAChC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYI,qBAAqB,GAC7BC,IAEC,IAGE;IACH,IAAIA,IAAI,CAACC,KAAK,EAAE;MACd,IAAI,CAACC,eAAe,CAACF,IAAI,CAACC,KAAK,CAAC;IAClC;IAEA,OAAO;MACL,GAAGD,IAAI;MACPG,WAAW,EAAE;QAAE,GAAGH,IAAI,CAACG,WAAW;QAAEC,QAAQ,EAAE7C,QAAQ,CAAC8C;MAAM;IAC/D,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACYC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;EAEQJ,eAAeA,CAACD,KAAwB,EAAQ;IACtD,MAAMM,MAAM,GAAG3C,eAAe,CAACqC,KAAK,CAAC;IAErC,IAAI,CAACM,MAAM,EAAE;MACX;IACF;IAEA,MAAMC,cAAc,GAAG7C,kBAAkB,CAAC8C,MAAM,CAE9C,CAACC,GAAG,EAAEC,OAAO,KAAK;MAClB,MAAMC,KAAK,GAAGL,MAAM,CAACM,MAAM,CAACF,OAAO,CAAC;MAEpC,IAAIC,KAAK,KAAKd,SAAS,EAAE;QACvBY,GAAG,CAACC,OAAO,CAAC,GAAGC,KAAK;MACtB;MAEA,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAII,MAAM,CAACC,IAAI,CAACP,cAAc,CAAC,CAACf,MAAM,KAAK,CAAC,EAAE;MAC5C,IAAI,CAACR,OAAO,GAAG,sDAAsD,CAAC;MAEtE;IACF;IAEA,MAAM+B,SAAS,GAAGT,MAAM,CAACS,SAAS,CAACC,OAAO,CAAC,CAAC;IAE5C,IAAI,IAAI,CAAC/C,kBAAkB,CAACgD,GAAG,CAACF,SAAS,CAAC,EAAE;MAC1C;IACF;IAEA,IAAI,CAAC9C,kBAAkB,CAACiD,GAAG,CAACH,SAAS,CAAC;IAEtC,MAAMI,OAAO,GAAG;MACdhB,QAAQ,EAAE7C,QAAQ,CAAC8D,MAAM;MACzBC,kBAAkB,EAAEhE,kBAAkB,CAACiE,QAAQ;MAC/CC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAElB,MAAM,CAACS,SAAS;MAC5B,GAAGR;IACL,CAEC;IAED,IAAI,CAACkB,QAAQ,GAAGN,OAAO,CAAC;EAC1B;AACF","ignoreList":[]}
@@ -6,7 +6,7 @@ import { CaseType } from "../../../types/case-type.js";
6
6
  * Contec BC401 (a.k.a. BC01) urine analyzer — GATT profile.
7
7
  *
8
8
  * The BC401 uses Contec's proprietary FF12 service, shared across their
9
- * consumer medical devices. Every stored URS-7 measurement is pushed as a
9
+ * consumer medical devices. Every stored urine-strip measurement is pushed as a
10
10
  * 16-byte record on 0xFF02 after the host has walked the handshake documented
11
11
  * in `bc01-command-sequencer.ts`.
12
12
  *
@@ -72,7 +72,7 @@ export interface BluetoothRuntime {
72
72
  status: DeviceStatus;
73
73
  }) => void;
74
74
  }
75
- export type BluetoothRuntimeManager = Pick<BTManager<readonly never[]>, "setBackgroundScanEnabled" | "pauseScan" | "resumeScan" | "forget" | "setAutoConnect">;
75
+ export type BluetoothRuntimeManager = Pick<BTManager<readonly never[]>, "setBackgroundScanEnabled" | "pauseScan" | "resumeScan" | "forget" | "disconnectDevice" | "setAutoConnect">;
76
76
  export declare const createBluetoothRuntime: (bleManager?: BleManager, initialBackgroundScanEnabled?: boolean) => BluetoothRuntime;
77
77
  export declare const BluetoothRuntimeProvider: ({ runtime, children, }: React.PropsWithChildren<{
78
78
  runtime: BluetoothRuntime;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-context.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/hooks/runtime-context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-context.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/hooks/runtime-context.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-paired-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/hooks/use-paired-devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,GAAI,oCAI9B,uBAAuB,KAAG;IAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAuGvC,CAAC"}
1
+ {"version":3,"file":"use-paired-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/hooks/use-paired-devices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,GAAI,oCAI9B,uBAAuB,KAAG;IAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CA6GvC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { AcceptedDevice } from "../../types/accepted-device";
2
- export declare const getBackgroundServiceUUIDs: (acceptedDevices: readonly AcceptedDevice[], additionalServiceUUIDs?: readonly string[]) => string[];
2
+ export declare const getBackgroundServiceUUIDs: (acceptedDevices: readonly AcceptedDevice[], additionalServiceUUIDs?: readonly string[]) => string[] | null;
3
3
  //# sourceMappingURL=background-service-uuids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"background-service-uuids.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-service-uuids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA2C7D,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,SAAS,cAAc,EAAE,EAC1C,yBAAwB,SAAS,MAAM,EAAO,KAC7C,MAAM,EAaR,CAAC"}
1
+ {"version":3,"file":"background-service-uuids.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-service-uuids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA2C7D,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,SAAS,cAAc,EAAE,EAC1C,yBAAwB,SAAS,MAAM,EAAO,KAC7C,MAAM,EAAE,GAAG,IAsBb,CAAC"}
@@ -10,7 +10,7 @@ import { DeviceResultPolicy } from "../types/result-policy";
10
10
  import { BTManagedDevice } from "./devices/bt-managed-device";
11
11
  interface BTManagerOptions {
12
12
  backgroundEnabled?: boolean;
13
- serviceUUIDs?: readonly string[];
13
+ serviceUUIDs?: readonly string[] | null;
14
14
  oneReadingPerConnection?: boolean;
15
15
  deliveredEcgFileNames?: readonly string[];
16
16
  deliveredFileNames?: readonly string[];
@@ -78,7 +78,9 @@ declare class BTManager<T extends readonly AcceptedDevice[]> {
78
78
  private removeStateChangeListener;
79
79
  private startDeviceScan;
80
80
  restoreDevices: (devices: readonly Device[]) => void;
81
- /** Disconnects one device and prevents it from being re-created by later advertisements. */
81
+ /** Disconnects one device so it can be rediscovered by a later advertisement. */
82
+ disconnectDevice: (deviceId: string) => Promise<void>;
83
+ /** Disconnects one device and ignores later advertisements for this manager's lifetime. */
82
84
  forget: (deviceId: string) => Promise<void>;
83
85
  onDeviceFound: (callback?: (device: BTManagedDevice<DeviceKeyOf<T>>, manager: BTManager<T>) => Promise<void>) => void;
84
86
  onError: (callback?: (data: ErrorCallback) => void) => void;