@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.
- package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js +4 -4
- package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +13 -9
- package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +7 -2
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +11 -6
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js +4 -2
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +30 -6
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +16 -27
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +26 -33
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.main-services.js +1 -1
- package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/use-bt-device.js +4 -4
- package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/use-paired-devices.js +13 -9
- package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +7 -2
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +11 -6
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js +3 -2
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-builders.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +31 -7
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +16 -26
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +27 -34
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.main-services.js +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +4 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +3 -6
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +7 -17
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +5 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +4 -2
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-builders.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +3 -6
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +7 -17
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +5 -2
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts +1 -1
- 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.
|
|
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
|
|
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
|
-
*
|
|
35
|
-
*
|
|
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,
|
|
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
|
|
80
|
-
*
|
|
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"
|
|
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":"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","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
|
|
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 = () =>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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 =
|
|
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","
|
|
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":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAQA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMQ,UAAU,SAASC,gCAAe,CAAyB;EAC5DC,aAAa,GAAeA,CAAA,KAAM;IAC1C,IAAI,CAACC,kBAAkB,CAACC,KAAK,CAAC,CAAC;EACjC,CAAC;EAEgBD,kBAAkB,GAAG,IAAIE,GAAG,CAAS,CAAC;EAE7CC,YAAY,GAAeC,kCAAgB;EAC3CC,WAAW,GAAoB,IAAIC,gCAAe,CAAC,CAAC;;EAE9D;AACF;AACA;AACA;AACA;AACA;EACYC,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,CAACX,kBAAkB,CAACC,KAAK,CAAC,CAAC;MAE/B,OAAO,IAAIW,0CAAoB,CAC7B;QACEC,KAAK,EAAE;UACLC,WAAW,EAAEV,kCAAgB,CAAC,CAAC,CAAC,CAAEW,IAAI;UACtCC,kBAAkB,EAAEZ,kCAAgB,CAAC,CAAC,CAAC,CAAEa,SAAS,CAAEF;QACtD,CAAC;QACDG,OAAO,EAAGC,MAAM,IAAK,IAAI,CAACD,OAAO,GAAG,IAAIE,KAAK,CAAC,UAAUD,MAAM,EAAE,CAAC,CAAC;QAClEE,SAAS,EAAEX,MAAM,CAACW,SAAS;QAC3BC,kBAAkB,EAAEZ,MAAM,CAACY;MAC7B,CAAC,EACDZ,MAAM,CAACW,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,GAAG,IAAAC,oBAAS,EAACH,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAMI,SAAS,GAAGC,iCAAgB,CAACH,MAAM,CAACI,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExE,IAAIH,SAAS,KAAKI,SAAS,EAAE;MAC3B,OAAO,KAAK;IACd;IAEA,OAAOR,GAAG,CAACC,MAAM,IAAIG,SAAS;EAChC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYK,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,EAAEC,kBAAQ,CAACC;MAAM;IAC/D,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACYC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;EAEQL,eAAeA,CAACD,KAAwB,EAAQ;IACtD,MAAMO,MAAM,GAAG,IAAAC,gCAAe,EAACR,KAAK,CAAC;IAErC,IAAI,CAACO,MAAM,EAAE;MACX;IACF;IAEA,MAAME,cAAc,GAAGC,mCAAkB,CAACC,MAAM,CAE9C,CAACC,GAAG,EAAEC,OAAO,KAAK;MAClB,MAAMC,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAACF,OAAO,CAAC;MAEpC,IAAIC,KAAK,KAAKjB,SAAS,EAAE;QACvBe,GAAG,CAACC,OAAO,CAAC,GAAGC,KAAK;MACtB;MAEA,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAII,MAAM,CAACC,IAAI,CAACR,cAAc,CAAC,CAACnB,MAAM,KAAK,CAAC,EAAE;MAC5C,IAAI,CAACR,OAAO,GAAG,sDAAsD,CAAC;MAEtE;IACF;IAEA,MAAMoC,SAAS,GAAGX,MAAM,CAACW,SAAS,CAACC,OAAO,CAAC,CAAC;IAE5C,IAAI,IAAI,CAACvD,kBAAkB,CAACwD,GAAG,CAACF,SAAS,CAAC,EAAE;MAC1C;IACF;IAEA,IAAI,CAACtD,kBAAkB,CAACyD,GAAG,CAACH,SAAS,CAAC;IAEtC,MAAMI,OAAO,GAAG;MACdnB,QAAQ,EAAEC,kBAAQ,CAACmB,MAAM;MACzBC,kBAAkB,EAAEC,wBAAkB,CAACC,QAAQ;MAC/CC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAErB,MAAM,CAACW,SAAS;MAC5B,GAAGT;IACL,CAEC;IAED,IAAI,CAACoB,QAAQ,GAAGP,OAAO,CAAC;EAC1B;AACF;AAACQ,OAAA,CAAArE,UAAA,GAAAA,UAAA","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
|
|
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
|
|
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.
|
|
59
|
+
if (autoConnectedRef.current.has(selected.device)) {
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
-
autoConnectedRef.current.add(selected.
|
|
62
|
+
autoConnectedRef.current.add(selected.device);
|
|
63
63
|
void selected.device.connect().catch(() => {
|
|
64
|
-
autoConnectedRef.current.delete(selected.
|
|
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","
|
|
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
|
|
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.
|
|
49
|
+
if (!autoPairRef.current || !pairedRef.current.includes(device.id) || autoConnectedRef.current.has(device.device)) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
autoConnectedRef.current.add(device.
|
|
52
|
+
autoConnectedRef.current.add(device.device);
|
|
53
53
|
void device.device.connect().catch(() => {
|
|
54
|
-
autoConnectedRef.current.delete(device.
|
|
54
|
+
autoConnectedRef.current.delete(device.device);
|
|
55
55
|
});
|
|
56
56
|
}, []);
|
|
57
57
|
React.useEffect(() => {
|
|
58
58
|
if (!autoPair) {
|
|
59
|
-
autoConnectedRef.current
|
|
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
|
-
|
|
68
|
-
|
|
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","
|
|
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":[]}
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js
CHANGED
|
@@ -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?.
|
|
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
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
277
|
-
|
|
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;
|