@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
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.parseBc01Record = exports.isBc01Record = exports.BC01_URS_OPCODE = exports.BC01_RECORD_LENGTH = exports.BC01_PAGED_URS_OPCODE = exports.BC01_LAST_OF_SET_BIT = exports.BC01_ANALYTE_VALUES = exports.BC01_ANALYTE_ORDER = void 0;
6
+ exports.parseBc01Record = exports.BC01_URS_OPCODE = exports.BC01_RECORD_LENGTH = exports.BC01_PAGED_URS_OPCODE = exports.BC01_LAST_OF_SET_BIT = exports.BC01_ANALYTE_VALUES = exports.BC01_ANALYTE_ORDER = void 0;
7
7
  var _hexToByte = require("../../../utils/hex-to-byte.js");
8
+ var _bc01CommandBuilders = require("./bc01-command-builders.js");
8
9
  /** BC401 stored-record frame is always sixteen bytes: header, timestamp, analytes, checksum. */
9
10
  const BC01_RECORD_LENGTH = exports.BC01_RECORD_LENGTH = 16;
10
11
 
11
- /** The two opcodes the firmware uses for a stored URS-7 record. */
12
+ /** The two opcodes the firmware uses for a stored BC401 strip record. */
12
13
  const BC01_URS_OPCODE = exports.BC01_URS_OPCODE = 0xe1;
13
14
  const BC01_PAGED_URS_OPCODE = exports.BC01_PAGED_URS_OPCODE = 0xe2;
14
15
 
@@ -31,16 +32,14 @@ const MINUTE_MASK = 0x3f;
31
32
  const SECOND_MASK = 0x3f;
32
33
 
33
34
  /**
34
- * URS-7 pad names, in the exact order they occupy the packed 3-bit slots
35
- * across bytes 8..14 (see M1/a.java). The eleventh slot is a Contec-firmware
36
- * field the vendor's own catalog calls "vc" and no other name is documented.
35
+ * Pad names, in the exact order they occupy the packed 3-bit slots across
36
+ * bytes 8..14 (see PHMS M1/a.java), covering both 11- and 14-pad strips.
37
37
  */
38
- const BC01_ANALYTE_ORDER = exports.BC01_ANALYTE_ORDER = ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc"];
38
+ const BC01_ANALYTE_ORDER = exports.BC01_ANALYTE_ORDER = ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc", "mal", "cr", "uca"];
39
39
  /**
40
40
  * BC401's packed values are colour-chart indexes, not measurements. These
41
41
  * values mirror the tables in Contec's BC401 integration (PHMS M1/a.java):
42
42
  * the index is zero-based and `7` remains the device's unmeasured sentinel.
43
- * The pH table is the URS-7 strip scale, which includes half-point readings.
44
43
  */
45
44
  const BC01_ANALYTE_VALUES = exports.BC01_ANALYTE_VALUES = {
46
45
  uro: [0.2, 2, 4, 8],
@@ -49,11 +48,14 @@ const BC01_ANALYTE_VALUES = exports.BC01_ANALYTE_VALUES = {
49
48
  ket: [0, 15, 40, 80],
50
49
  glu: [0, 50, 100, 250, 500, 1000],
51
50
  pro: [0, 15, 30, 100, 300],
52
- ph: [5, 6, 6.5, 7, 7.5, 8, 8.5],
51
+ ph: [5, 6, 7, 8, 9],
53
52
  nit: [0, 1],
54
53
  leu: [0, 15, 70, 125, 500],
55
54
  sg: [1.005, 1.01, 1.015, 1.02, 1.025, 1.03],
56
- vc: [0, 10, 25, 50, 100]
55
+ vc: [0, 10, 25, 50, 100],
56
+ mal: [1, 3, 8, 15],
57
+ cr: [10, 50, 100, 200, 300],
58
+ uca: [2, 5, 15, 50]
57
59
  };
58
60
 
59
61
  /** Where the packed analyte pairs start in a 16-byte E1/E2 frame. */
@@ -76,10 +78,8 @@ const readPad = (packed, slot) => slot === 0 ? packed & 0x07 : packed >> 3 & 0x0
76
78
  * frame is a record or a heartbeat, and a frame that fails these checks is
77
79
  * skipped rather than parsed into a plausible-looking wrong reading.
78
80
  *
79
- * The checksum byte is not verified here: the SDK's read path already ensures
80
- * frame integrity before the parser sees the bytes, and a URS-7 pad value can
81
- * only land in [0, 7] anyway — a corrupt payload would fail the pad-value
82
- * check before it made it into a measurement.
81
+ * The checksum byte is verified before any value is exposed; individual
82
+ * packed indexes could otherwise decode into plausible but incorrect results.
83
83
  */
84
84
  const parseBc01Record = frame => {
85
85
  if (frame.length < BC01_RECORD_LENGTH) {
@@ -89,6 +89,9 @@ const parseBc01Record = frame => {
89
89
  if (opcode !== BC01_URS_OPCODE && opcode !== BC01_PAGED_URS_OPCODE) {
90
90
  return undefined;
91
91
  }
92
+ if (!(0, _bc01CommandBuilders.bc401ChecksumMatches)(frame.map(_hexToByte.hexToByte))) {
93
+ return undefined;
94
+ }
92
95
  const flags = (0, _hexToByte.hexToByte)(frame[1] ?? "");
93
96
  const yy = (0, _hexToByte.hexToByte)(frame[2] ?? "") + YEAR_BASE;
94
97
  const mm = (0, _hexToByte.hexToByte)(frame[3] ?? "") & MONTH_MASK;
@@ -118,19 +121,5 @@ const parseBc01Record = frame => {
118
121
  values
119
122
  };
120
123
  };
121
-
122
- /**
123
- * True when the buffer holds a complete BC401 stored record. Used by the
124
- * driver's `validatePackage` hook so the SDK's read path only advances once
125
- * the notification carries a whole 16-byte frame.
126
- */
127
124
  exports.parseBc01Record = parseBc01Record;
128
- const isBc01Record = frame => {
129
- if (frame.length < BC01_RECORD_LENGTH) {
130
- return false;
131
- }
132
- const opcode = (0, _hexToByte.hexToByte)(frame[0] ?? "");
133
- return opcode === BC01_URS_OPCODE || opcode === BC01_PAGED_URS_OPCODE;
134
- };
135
- exports.isBc01Record = isBc01Record;
136
125
  //# sourceMappingURL=bc01-frame-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_hexToByte","require","BC01_RECORD_LENGTH","exports","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","hexToByte","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","require","_bc01CommandBuilders","BC01_RECORD_LENGTH","exports","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","hexToByte","bc401ChecksumMatches","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,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAEA;AACA,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,EAAE;;AAE7B;AACA,MAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,IAAI;AAC5B,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,IAAI;;AAElC;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,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,GAAAX,OAAA,CAAAW,kBAAA,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,GAAAZ,OAAA,CAAAY,mBAAA,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,GAAGlC,kBAAkB,EAAE;IACrC,OAAOmC,SAAS;EAClB;EAEA,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EAExC,IAAIG,MAAM,KAAKlC,eAAe,IAAIkC,MAAM,KAAKjC,qBAAqB,EAAE;IAClE,OAAOgC,SAAS;EAClB;EAEA,IAAI,CAAC,IAAAG,yCAAoB,EAACL,KAAK,CAACM,GAAG,CAACF,oBAAS,CAAC,CAAC,EAAE;IAC/C,OAAOF,SAAS;EAClB;EAEA,MAAMK,KAAK,GAAG,IAAAH,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EACvC,MAAMQ,EAAE,GAAG,IAAAJ,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG3B,SAAS;EAChD,MAAMoC,EAAE,GAAG,IAAAL,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG1B,UAAU;EACjD,MAAMoC,EAAE,GAAG,IAAAN,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGzB,QAAQ;EAC/C,MAAMoC,EAAE,GAAG,IAAAP,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGxB,SAAS;EAChD,MAAMoC,EAAE,GAAG,IAAAR,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGvB,WAAW;EAClD,MAAMoC,EAAE,GAAG,IAAAT,oBAAS,EAACJ,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAGtB,WAAW;EAElD,MAAMoC,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;EAE7CrC,kBAAkB,CAACsC,OAAO,CAAC,CAACC,OAAO,EAAEC,QAAQ,KAAK;IAChD,MAAMC,SAAS,GAAGzB,cAAc,GAAG0B,IAAI,CAACC,KAAK,CAACH,QAAQ,GAAG,CAAC,CAAC;IAC3D,MAAMrB,IAAI,GAAIqB,QAAQ,GAAG,CAAW;IACpC,MAAMtB,MAAM,GAAG,IAAAO,oBAAS,EAACJ,KAAK,CAACoB,SAAS,CAAC,IAAI,EAAE,CAAC;IAChD,MAAMG,KAAK,GAAG3B,OAAO,CAACC,MAAM,EAAEC,IAAI,CAAC;IAEnC,IAAIyB,KAAK,KAAKnD,UAAU,EAAE;MACxB;IACF;IAEA,MAAMoD,KAAK,GAAG5C,mBAAmB,CAACsC,OAAO,CAAC,CAACK,KAAK,CAAC;IAEjD,IAAIC,KAAK,KAAKtB,SAAS,EAAE;MACvBc,MAAM,CAACE,OAAO,CAAC,GAAGM,KAAK;IACzB;EACF,CAAC,CAAC;EAEF,OAAO;IACLV,SAAS;IACTW,SAAS,EAAE,CAAClB,KAAK,GAAGpC,oBAAoB,MAAM,CAAC;IAC/CuD,SAAS,EAAEnB,KAAK,GAAG,IAAI;IACvBS;EACF,CAAC;AACH,CAAC;AAAChD,OAAA,CAAA+B,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -12,27 +12,6 @@ var _bc01CommandSequencer = require("./bc01-command-sequencer.js");
12
12
  var _bc01FrameParser = require("./bc01-frame-parser.js");
13
13
  var _bc01FrameReader = require("./bc01.frame-reader.js");
14
14
  var _bc01MainServices = require("./bc01.main-services.js");
15
- /** Minimum bytes a complete frame carries, keyed by its opening opcode. */
16
- const BC01_FRAME_MIN_LENGTH = {
17
- 0xf0: 2,
18
- // ACK
19
- 0xf2: 8,
20
- // Version reply (variable — 8 is the minimum PHMS reads before answering)
21
- 0xf3: 3,
22
- // Time-sync ack
23
- 0xe0: 7,
24
- // Record-count reply
25
- 0xe1: 16,
26
- // Stored URS record
27
- 0xe2: 16,
28
- // Paginated URS record
29
- 0xe3: 3,
30
- // Finish
31
- 0xe4: 36,
32
- // Quantitative record (optional path)
33
- 0xe5: 36 // Quantitative record (optional path)
34
- };
35
-
36
15
  /**
37
16
  * Contec BC401 (BC01) urine analyzer driver.
38
17
  *
@@ -44,12 +23,15 @@ const BC01_FRAME_MIN_LENGTH = {
44
23
  * 16-byte E1/E2 frame on 0xFF02.
45
24
  */
46
25
  class BC01Device extends _btManagedDevice.BTManagedDevice {
47
- onStreamStart = () => {};
26
+ onStreamStart = () => {
27
+ this.reportedTimestamps.clear();
28
+ };
29
+ reportedTimestamps = new Set();
48
30
  mainServices = _bc01MainServices.bc01MainServices;
49
31
  frameReader = new _bc01FrameReader.Bc01FrameReader();
50
32
 
51
33
  /**
52
- * 90 s covers the maximum firmware-side reagent-pad settle time on a URS-7
34
+ * 90 s covers the maximum firmware-side reagent-pad settle time on a
53
35
  * strip and leaves headroom for a bulk memory dump of every stored record.
54
36
  * If the device does not push a frame within that window the data processor
55
37
  * times out and the driver surfaces "device unreachable".
@@ -65,14 +47,18 @@ class BC01Device extends _btManagedDevice.BTManagedDevice {
65
47
  * set. The parent's default `pollingSequencerFor` would only re-send the
66
48
  * declared reset forever, which the firmware ignores after the first one.
67
49
  */
68
- this.createCommandSequencer = () => new _bc01CommandSequencer.Bc01CommandSequencer({
69
- write: {
70
- serviceUuid: _bc01MainServices.bc01MainServices[0].uuid,
71
- characteristicUuid: _bc01MainServices.bc01MainServices[0].writeUuid.uuid
72
- },
73
- onRefused: reason => this.onError?.(new Error(`BC401 handshake: ${reason}`)),
74
- clockSync: params.clockSync
75
- }, params.clockSync?.now);
50
+ this.createCommandSequencer = () => {
51
+ this.reportedTimestamps.clear();
52
+ return new _bc01CommandSequencer.Bc01CommandSequencer({
53
+ write: {
54
+ serviceUuid: _bc01MainServices.bc01MainServices[0].uuid,
55
+ characteristicUuid: _bc01MainServices.bc01MainServices[0].writeUuid.uuid
56
+ },
57
+ onError: reason => this.onError?.(new Error(`BC401: ${reason}`)),
58
+ clockSync: params.clockSync,
59
+ clearDeviceHistory: params.clearDeviceHistory
60
+ }, params.clockSync?.now);
61
+ };
76
62
  }
77
63
 
78
64
  /**
@@ -86,7 +72,7 @@ class BC01Device extends _btManagedDevice.BTManagedDevice {
86
72
  return false;
87
73
  }
88
74
  const opcode = (0, _hexToByte.hexToByte)(pkg[0] ?? "");
89
- const minLength = BC01_FRAME_MIN_LENGTH[opcode];
75
+ const minLength = _bc01FrameReader.bc01FrameLengths[opcode.toString(16).padStart(2, "0")];
90
76
  if (minLength === undefined) {
91
77
  return false;
92
78
  }
@@ -117,7 +103,9 @@ class BC01Device extends _btManagedDevice.BTManagedDevice {
117
103
  /**
118
104
  * Nothing to do here for the BC401. Every reading arrives through the
119
105
  * dependent-result path, and the state machine sees only the `OTHER`-typed
120
- * echo we return from `handleDependentResult`.
106
+ * echo we return from `handleDependentResult`. Records are deduplicated by
107
+ * their second-resolution device timestamp for this transfer because a
108
+ * paged-group retry resends the earlier frames.
121
109
  */
122
110
  handleSuccessResult() {
123
111
  return;
@@ -138,6 +126,11 @@ class BC01Device extends _btManagedDevice.BTManagedDevice {
138
126
  this.onError?.("feedback-messages.measurement.disturb-detected-error");
139
127
  return;
140
128
  }
129
+ const timestamp = parsed.timestamp.getTime();
130
+ if (this.reportedTimestamps.has(timestamp)) {
131
+ return;
132
+ }
133
+ this.reportedTimestamps.add(timestamp);
141
134
  const reading = {
142
135
  caseType: _caseType.CaseType.RESULT,
143
136
  measurementTypeKey: _core.MeasurementTypeKey.uricAcid,
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_caseType","_hexToByte","_btManagedDevice","_bc01CommandSequencer","_bc01FrameParser","_bc01FrameReader","_bc01MainServices","BC01_FRAME_MIN_LENGTH","BC01Device","BTManagedDevice","onStreamStart","mainServices","bc01MainServices","frameReader","Bc01FrameReader","stuckDataTimeout","constructor","device","params","createCommandSequencer","Bc01CommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onRefused","reason","onError","Error","clockSync","now","validatePackage","pkg","length","opcode","hexToByte","minLength","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","CaseType","OTHER","handleSuccessResult","parsed","parseBc01Record","measuredValues","BC01_ANALYTE_ORDER","reduce","acc","analyte","value","values","Object","keys","reading","RESULT","measurementTypeKey","MeasurementTypeKey","uricAcid","urineValues","recordedAt","timestamp","onResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_caseType","_hexToByte","_btManagedDevice","_bc01CommandSequencer","_bc01FrameParser","_bc01FrameReader","_bc01MainServices","BC01Device","BTManagedDevice","onStreamStart","reportedTimestamps","clear","Set","mainServices","bc01MainServices","frameReader","Bc01FrameReader","stuckDataTimeout","constructor","device","params","createCommandSequencer","Bc01CommandSequencer","write","serviceUuid","uuid","characteristicUuid","writeUuid","onError","reason","Error","clockSync","clearDeviceHistory","now","validatePackage","pkg","length","opcode","hexToByte","minLength","bc01FrameLengths","toString","padStart","undefined","handleDependentResult","data","frame","reportUrsRecord","parsingCase","caseType","CaseType","OTHER","handleSuccessResult","parsed","parseBc01Record","measuredValues","BC01_ANALYTE_ORDER","reduce","acc","analyte","value","values","Object","keys","timestamp","getTime","has","add","reading","RESULT","measurementTypeKey","MeasurementTypeKey","uricAcid","urineValues","recordedAt","onResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.device.ts"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ var _caseType = require("../../../types/case-type.js");
10
10
  * Contec BC401 (a.k.a. BC01) urine analyzer — GATT profile.
11
11
  *
12
12
  * The BC401 uses Contec's proprietary FF12 service, shared across their
13
- * consumer medical devices. Every stored URS-7 measurement is pushed as a
13
+ * consumer medical devices. Every stored urine-strip measurement is pushed as a
14
14
  * 16-byte record on 0xFF02 after the host has walked the handshake documented
15
15
  * in `bc01-command-sequencer.ts`.
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"names":["React","jsx","_jsx","RuntimeContext","createContext","createBluetoothRuntime","bleManager","initialBackgroundScanEnabled","listeners","Map","currentManager","currentDevices","backgroundScanEnabled","backgroundScanInitialized","undefined","bluetoothState","subscribers","Set","currentSnapshot","devices","managerReady","publishState","forEach","notify","pairedState","connectionIds","resultConnectionIds","WeakMap","getPairedState","storageKey","current","get","next","revision","set","notifyPairedDevices","value","callback","manager","getSnapshot","getBackgroundScanEnabled","initializeBackgroundScanEnabled","enabled","setBackgroundScanEnabled","setBluetoothState","state","subscribe","event","eventListeners","add","delete","subscribeState","hasListeners","size","emit","setManager","setAutoConnect","delayMs","onDeviceSelectionRequired","getPairedDeviceIds","loadPairedDeviceIds","load","Promise","resolve","loading","then","finally","setPairedDeviceIds","ids","length","every","id","index","upsertDevice","device","existing","findIndex","item","previous","deviceData","status","latestResult","results","events","map","setDeviceResult","result","some","slice","getResultConnectionId","clearResults","setDeviceConnectionEvent","kind","setDeviceStatus","BluetoothRuntimeProvider","runtime","children","Provider","useBluetoothRuntime","useContext","Error","useRuntimeEvent","callbackRef","useRef","useEffect","useBluetoothSelector","selector","isEqual","Object","is","selectorRef","equalityRef","selectionRef","hasValue","getSelection","useCallback","useSyncExternalStore"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/runtime-context.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","jsx","_jsx","RuntimeContext","createContext","createBluetoothRuntime","bleManager","initialBackgroundScanEnabled","listeners","Map","currentManager","currentDevices","backgroundScanEnabled","backgroundScanInitialized","undefined","bluetoothState","subscribers","Set","currentSnapshot","devices","managerReady","publishState","forEach","notify","pairedState","connectionIds","resultConnectionIds","WeakMap","getPairedState","storageKey","current","get","next","revision","set","notifyPairedDevices","value","callback","manager","getSnapshot","getBackgroundScanEnabled","initializeBackgroundScanEnabled","enabled","setBackgroundScanEnabled","setBluetoothState","state","subscribe","event","eventListeners","add","delete","subscribeState","hasListeners","size","emit","setManager","setAutoConnect","delayMs","onDeviceSelectionRequired","getPairedDeviceIds","loadPairedDeviceIds","load","Promise","resolve","loading","then","finally","setPairedDeviceIds","ids","length","every","id","index","upsertDevice","device","existing","findIndex","item","previous","deviceData","status","latestResult","results","events","map","setDeviceResult","result","some","slice","getResultConnectionId","clearResults","setDeviceConnectionEvent","kind","setDeviceStatus","BluetoothRuntimeProvider","runtime","children","Provider","useBluetoothRuntime","useContext","Error","useRuntimeEvent","callbackRef","useRef","useEffect","useBluetoothSelector","selector","isEqual","Object","is","selectorRef","equalityRef","selectionRef","hasValue","getSelection","useCallback","useSyncExternalStore"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/runtime-context.tsx"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,7 @@ const useBTDevice = (model, {
43
43
  const selectedIdRef = React.useRef(selectedId);
44
44
  const matchesRef = React.useRef(matches);
45
45
  const modelRef = React.useRef(model);
46
- const autoConnectedRef = React.useRef(new Set());
46
+ const autoConnectedRef = React.useRef(new WeakSet());
47
47
  selectedIdRef.current = selectedId;
48
48
  matchesRef.current = matches;
49
49
  modelRef.current = model;
@@ -56,12 +56,12 @@ const useBTDevice = (model, {
56
56
  if (!autoConnect || !selected) {
57
57
  return;
58
58
  }
59
- if (autoConnectedRef.current.has(selected.id)) {
59
+ if (autoConnectedRef.current.has(selected.device)) {
60
60
  return;
61
61
  }
62
- autoConnectedRef.current.add(selected.id);
62
+ autoConnectedRef.current.add(selected.device);
63
63
  void selected.device.connect().catch(() => {
64
- autoConnectedRef.current.delete(selected.id);
64
+ autoConnectedRef.current.delete(selected.device);
65
65
  });
66
66
  }, [autoConnect, selected]);
67
67
  const select = React.useCallback(deviceId => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","snapshot","devices","filter","deviceData","next","length","every","item","index","candidate","selected","find","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","Set","useEffect","has","add","connect","select","useCallback","some","currentMatches","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","snapshot","devices","filter","deviceData","next","length","every","item","index","candidate","selected","find","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","WeakSet","useEffect","has","add","connect","select","useCallback","some","currentMatches","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ export const usePairedDevices = ({
12
12
  const runtime = useBluetoothRuntime();
13
13
  const [paired, setPaired] = React.useState(() => runtime.getPairedDeviceIds(storageKey) ?? []);
14
14
  const pairedRef = React.useRef(paired);
15
- const autoConnectedRef = React.useRef(new Set());
15
+ const autoConnectedRef = React.useRef(new WeakSet());
16
16
  const storageRef = React.useRef(storage);
17
17
  const autoPairRef = React.useRef(autoPair);
18
18
  storageRef.current = storage;
@@ -46,17 +46,17 @@ export const usePairedDevices = ({
46
46
  });
47
47
  }, [runtime, storage, storageKey]);
48
48
  const connectIfPaired = React.useCallback(device => {
49
- if (!autoPairRef.current || !pairedRef.current.includes(device.id) || autoConnectedRef.current.has(device.id)) {
49
+ if (!autoPairRef.current || !pairedRef.current.includes(device.id) || autoConnectedRef.current.has(device.device)) {
50
50
  return;
51
51
  }
52
- autoConnectedRef.current.add(device.id);
52
+ autoConnectedRef.current.add(device.device);
53
53
  void device.device.connect().catch(() => {
54
- autoConnectedRef.current.delete(device.id);
54
+ autoConnectedRef.current.delete(device.device);
55
55
  });
56
56
  }, []);
57
57
  React.useEffect(() => {
58
58
  if (!autoPair) {
59
- autoConnectedRef.current.clear();
59
+ autoConnectedRef.current = new WeakSet();
60
60
  return;
61
61
  }
62
62
  runtime.devices.forEach(connectIfPaired);
@@ -64,11 +64,15 @@ export const usePairedDevices = ({
64
64
  }, [autoPair, connectIfPaired, paired, runtime]);
65
65
  const pair = React.useCallback(device => save([...new Set([...pairedRef.current, device.id])]), [save]);
66
66
  const forget = React.useCallback(async id => {
67
- if (!runtime.manager) {
68
- throw new Error("Bluetooth manager is not ready; try forgetting the device again.");
67
+ const device = runtime.devices.find(candidate => candidate.id === id);
68
+ if (device) {
69
+ autoConnectedRef.current.delete(device.device);
70
+ }
71
+ if (runtime.manager) {
72
+ await runtime.manager.disconnectDevice(id);
73
+ } else if (device) {
74
+ await device.device.disconnect();
69
75
  }
70
- await runtime.manager.forget(id);
71
- autoConnectedRef.current.delete(id);
72
76
  await save(pairedRef.current.filter(candidate => candidate !== id));
73
77
  }, [runtime, save]);
74
78
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","usePairedDevices","storage","storageKey","autoPair","runtime","paired","setPaired","useState","getPairedDeviceIds","pairedRef","useRef","autoConnectedRef","Set","storageRef","autoPairRef","current","save","useCallback","next","setPairedDeviceIds","setItem","JSON","stringify","useEffect","subscribe","event","loadPairedDeviceIds","value","getItem","parsed","parse","Array","isArray","filter","id","then","connectIfPaired","device","includes","has","add","connect","catch","delete","clear","devices","forEach","pair","forget","manager","Error","candidate"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-paired-devices.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","usePairedDevices","storage","storageKey","autoPair","runtime","paired","setPaired","useState","getPairedDeviceIds","pairedRef","useRef","autoConnectedRef","WeakSet","storageRef","autoPairRef","current","save","useCallback","next","setPairedDeviceIds","setItem","JSON","stringify","useEffect","subscribe","event","loadPairedDeviceIds","value","getItem","parsed","parse","Array","isArray","filter","id","then","connectIfPaired","device","includes","has","add","connect","catch","delete","devices","forEach","pair","Set","forget","find","candidate","manager","disconnectDevice","disconnect"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-paired-devices.ts"],"mappings":"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","ignoreList":[]}
@@ -26,10 +26,15 @@ const BUILT_IN_SERVICE_UUIDS = {
26
26
  };
27
27
  export const getBackgroundServiceUUIDs = (acceptedDevices, additionalServiceUUIDs = []) => {
28
28
  const uuids = new Set(additionalServiceUUIDs.map(normalize));
29
+ let hasUnfilterableDevice = false;
29
30
  acceptedDevices.forEach(acceptedDevice => {
30
31
  const deviceUUIDs = typeof acceptedDevice === "string" ? BUILT_IN_SERVICE_UUIDS[acceptedDevice] : serviceUUIDs(acceptedDevice.mainServices);
31
- deviceUUIDs?.forEach(uuid => uuids.add(normalize(uuid)));
32
+ if (!deviceUUIDs?.length) {
33
+ hasUnfilterableDevice = true;
34
+ return;
35
+ }
36
+ deviceUUIDs.forEach(uuid => uuids.add(normalize(uuid)));
32
37
  });
33
- return [...uuids];
38
+ return hasUnfilterableDevice && !additionalServiceUUIDs.length ? null : [...uuids];
34
39
  };
35
40
  //# sourceMappingURL=background-service-uuids.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","forEach","acceptedDevice","deviceUUIDs","mainServices","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":";;AAEA,SAASA,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,sCAAmC;AAEpE,MAAMC,SAAS,GAAIC,IAAY,IAAaA,IAAI,CAACC,WAAW,CAAC,CAAC;AAE9D,MAAMC,YAAY,GAAIC,QAA6B,IACjDA,QAAQ,CAACC,GAAG,CAAEC,OAAO,IAAKN,SAAS,CAACM,OAAO,CAACL,IAAI,CAAC,CAAC;AAEpD,MAAMM,sBAAoE,GAAG;EAC3E,CAACd,iBAAiB,CAACe,GAAG,GAAGL,YAAY,CAACP,eAAe,CAAC;EACtD,CAACH,iBAAiB,CAACgB,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACiB,EAAE,GAAGP,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACkB,aAAa,GAAGR,YAAY,CAACL,cAAc,CAAC;EAC/D,CAACL,iBAAiB,CAACmB,aAAa,GAAG,CACjC,sCAAsC,CACvC;EACD,CAACnB,iBAAiB,CAACoB,MAAM,GAAGV,YAAY,CAACJ,gBAAgB,CAAC;EAC1D,CAACN,iBAAiB,CAACqB,IAAI,GAAGX,YAAY,CAACR,gBAAgB,CAAC;EACxD,CAACF,iBAAiB,CAACsB,UAAU,GAAGZ,YAAY,CAACT,gBAAgB,CAAC;EAC9D,CAACD,iBAAiB,CAACuB,IAAI,GAAGb,YAAY,CAACN,gBAAgB,CAAC;EACxD,CAACJ,iBAAiB,CAACwB,MAAM,GAAG,CAC1B,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAACxB,iBAAiB,CAACyB,IAAI,GAAG,CACxB,sCAAsC,CACvC;EACD,CAACzB,iBAAiB,CAAC0B,mBAAmB,GAAG,CACvC,sCAAsC,CACvC;EACD,CAAC1B,iBAAiB,CAAC2B,WAAW,GAAG,CAC/B,sCAAsC;AAE1C,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,eAA0C,EAC1CC,sBAAyC,GAAG,EAAE,KACjC;EACb,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,sBAAsB,CAAClB,GAAG,CAACL,SAAS,CAAC,CAAC;EAE5DsB,eAAe,CAACI,OAAO,CAAEC,cAAc,IAAK;IAC1C,MAAMC,WAAW,GACf,OAAOD,cAAc,KAAK,QAAQ,GAC9BpB,sBAAsB,CAACoB,cAAc,CAAC,GACtCxB,YAAY,CAAEwB,cAAc,CAA4BE,YAAY,CAAC;IAE3ED,WAAW,EAAEF,OAAO,CAAEzB,IAAI,IAAKuB,KAAK,CAACM,GAAG,CAAC9B,SAAS,CAACC,IAAI,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGuB,KAAK,CAAC;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","hasUnfilterableDevice","forEach","acceptedDevice","deviceUUIDs","mainServices","length","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":";;AAEA,SAASA,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,sCAAmC;AAEpE,MAAMC,SAAS,GAAIC,IAAY,IAAaA,IAAI,CAACC,WAAW,CAAC,CAAC;AAE9D,MAAMC,YAAY,GAAIC,QAA6B,IACjDA,QAAQ,CAACC,GAAG,CAAEC,OAAO,IAAKN,SAAS,CAACM,OAAO,CAACL,IAAI,CAAC,CAAC;AAEpD,MAAMM,sBAAoE,GAAG;EAC3E,CAACd,iBAAiB,CAACe,GAAG,GAAGL,YAAY,CAACP,eAAe,CAAC;EACtD,CAACH,iBAAiB,CAACgB,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACiB,EAAE,GAAGP,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACkB,aAAa,GAAGR,YAAY,CAACL,cAAc,CAAC;EAC/D,CAACL,iBAAiB,CAACmB,aAAa,GAAG,CACjC,sCAAsC,CACvC;EACD,CAACnB,iBAAiB,CAACoB,MAAM,GAAGV,YAAY,CAACJ,gBAAgB,CAAC;EAC1D,CAACN,iBAAiB,CAACqB,IAAI,GAAGX,YAAY,CAACR,gBAAgB,CAAC;EACxD,CAACF,iBAAiB,CAACsB,UAAU,GAAGZ,YAAY,CAACT,gBAAgB,CAAC;EAC9D,CAACD,iBAAiB,CAACuB,IAAI,GAAGb,YAAY,CAACN,gBAAgB,CAAC;EACxD,CAACJ,iBAAiB,CAACwB,MAAM,GAAG,CAC1B,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAACxB,iBAAiB,CAACyB,IAAI,GAAG,CACxB,sCAAsC,CACvC;EACD,CAACzB,iBAAiB,CAAC0B,mBAAmB,GAAG,CACvC,sCAAsC,CACvC;EACD,CAAC1B,iBAAiB,CAAC2B,WAAW,GAAG,CAC/B,sCAAsC;AAE1C,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,eAA0C,EAC1CC,sBAAyC,GAAG,EAAE,KAC1B;EACpB,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,sBAAsB,CAAClB,GAAG,CAACL,SAAS,CAAC,CAAC;EAC5D,IAAI0B,qBAAqB,GAAG,KAAK;EAEjCJ,eAAe,CAACK,OAAO,CAAEC,cAAc,IAAK;IAC1C,MAAMC,WAAW,GACf,OAAOD,cAAc,KAAK,QAAQ,GAC9BrB,sBAAsB,CAACqB,cAAc,CAAC,GACtCzB,YAAY,CAAEyB,cAAc,CAA4BE,YAAY,CAAC;IAE3E,IAAI,CAACD,WAAW,EAAEE,MAAM,EAAE;MACxBL,qBAAqB,GAAG,IAAI;MAE5B;IACF;IAEAG,WAAW,CAACF,OAAO,CAAE1B,IAAI,IAAKuB,KAAK,CAACQ,GAAG,CAAChC,SAAS,CAACC,IAAI,CAAC,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEF,OAAOyB,qBAAqB,IAAI,CAACH,sBAAsB,CAACQ,MAAM,GAC1D,IAAI,GACJ,CAAC,GAAGP,KAAK,CAAC;AAChB,CAAC","ignoreList":[]}
@@ -231,9 +231,9 @@ class BTManager {
231
231
  if (this.destroyed || generation !== this.scanGeneration || this.scanActive || this.scanStarting) {
232
232
  return;
233
233
  }
234
- const serviceUUIDs = this.options.serviceUUIDs ?? [];
235
- const scanServiceUUIDs = Platform.OS === "android" && this.backgroundScanEnabled ? null : [...serviceUUIDs];
236
- if (Platform.OS === "ios" && this.backgroundScanEnabled && !serviceUUIDs.length) {
234
+ const serviceUUIDs = this.options.serviceUUIDs;
235
+ const scanServiceUUIDs = Platform.OS === "android" && this.backgroundScanEnabled && !serviceUUIDs?.length ? null : [...(serviceUUIDs ?? [])];
236
+ if (Platform.OS === "ios" && this.backgroundScanEnabled && !serviceUUIDs?.length) {
237
237
  this.onErrorCallback?.(bluetoothErrorCallback("Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."));
238
238
  return;
239
239
  }
@@ -273,9 +273,8 @@ class BTManager {
273
273
  });
274
274
  };
275
275
 
276
- /** Disconnects one device and prevents it from being re-created by later advertisements. */
277
- forget = async deviceId => {
278
- this.forgottenDeviceIds.add(deviceId);
276
+ /** Disconnects one device so it can be rediscovered by a later advertisement. */
277
+ disconnectDevice = async deviceId => {
279
278
  this.autoConnectCandidates.delete(deviceId);
280
279
  const device = this.devices.get(deviceId);
281
280
  if (!device) {
@@ -284,6 +283,12 @@ class BTManager {
284
283
  this.devices.delete(deviceId);
285
284
  await device.disconnect();
286
285
  };
286
+
287
+ /** Disconnects one device and ignores later advertisements for this manager's lifetime. */
288
+ forget = async deviceId => {
289
+ this.forgottenDeviceIds.add(deviceId);
290
+ await this.disconnectDevice(deviceId);
291
+ };
287
292
  onDeviceFound = callback => {
288
293
  sentryLogger("info", "BT_MANAGER: Setting onDeviceFound callback");
289
294
  this.onDeviceFoundCallback = callback;