@ovok/native 1.0.0 → 1.1.0
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/LICENSE +8 -667
- package/lib/commonjs/modules/bt-device/components/btdevice-list.js +3 -1
- package/lib/commonjs/modules/bt-device/components/btdevice-list.js.map +1 -1
- package/lib/commonjs/modules/bt-device/components/item/status.js +17 -5
- package/lib/commonjs/modules/bt-device/components/item/status.js.map +1 -1
- package/lib/commonjs/modules/bt-device/components/supported-device-list.js +93 -0
- package/lib/commonjs/modules/bt-device/components/supported-device-list.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +173 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -0
- package/lib/commonjs/modules/bt-device/index.js +33 -0
- package/lib/commonjs/modules/bt-device/index.js.map +1 -1
- package/lib/commonjs/modules/bt-device/types/supported-device-list-props.js +6 -0
- package/lib/commonjs/modules/bt-device/types/supported-device-list-props.js.map +1 -0
- package/lib/commonjs/modules/bt-management/index.js +11 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +15 -13
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js +7 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +184 -0
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +114 -0
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +113 -51
- 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 +41 -77
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.main-services.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js +29 -0
- package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +24 -12
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/module/modules/bt-device/components/btdevice-list.js +3 -1
- package/lib/module/modules/bt-device/components/btdevice-list.js.map +1 -1
- package/lib/module/modules/bt-device/components/item/status.js +17 -5
- package/lib/module/modules/bt-device/components/item/status.js.map +1 -1
- package/lib/module/modules/bt-device/components/supported-device-list.js +87 -0
- package/lib/module/modules/bt-device/components/supported-device-list.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js +169 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -0
- package/lib/module/modules/bt-device/index.js +3 -0
- package/lib/module/modules/bt-device/index.js.map +1 -1
- package/lib/module/modules/bt-device/types/supported-device-list-props.js +4 -0
- package/lib/module/modules/bt-device/types/supported-device-list-props.js.map +1 -0
- package/lib/module/modules/bt-management/index.js +1 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +15 -13
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-creator.js +7 -1
- package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js +180 -0
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-command-sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +110 -0
- package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +113 -51
- 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 +41 -77
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.main-services.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js +26 -0
- package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +24 -12
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/components/btdevice-list.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/components/item/status.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/components/supported-device-list.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-device/components/supported-device-list.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +158 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/types/supported-device-list-props.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/bt-device/types/supported-device-list-props.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +0 -1
- 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/device-creator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +53 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +53 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +33 -13
- 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 +11 -17
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +0 -25
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/components/btdevice-list.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/components/item/status.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/components/supported-device-list.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-device/components/supported-device-list.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +158 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/index.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/types/supported-device-list-props.d.ts +6 -0
- package/lib/typescript/module/src/modules/bt-device/types/supported-device-list-props.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +0 -1
- 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/device-creator.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts +53 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-command-sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +53 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts +33 -13
- 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 +11 -17
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.main-services.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +0 -25
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -5,93 +5,57 @@ import { CaseType } from "../../../types/case-type.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Contec BC401 (a.k.a. BC01) urine analyzer — GATT profile.
|
|
7
7
|
*
|
|
8
|
-
* The BC401 uses Contec's proprietary FF12 service, shared across their
|
|
9
|
-
* medical devices.
|
|
10
|
-
*
|
|
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
|
|
10
|
+
* 16-byte record on 0xFF02 after the host has walked the handshake documented
|
|
11
|
+
* in `bc01-command-sequencer.ts`.
|
|
11
12
|
*
|
|
12
13
|
* Service 0xFF12
|
|
13
|
-
* Notify (result)
|
|
14
|
-
* Write (command)
|
|
14
|
+
* Notify (result) 0xFF02 — CCCD 0x2902 must be written 01 00 to enable
|
|
15
|
+
* Write (command) 0xFF01 — RESET / SET_TIME / GET_COUNT / GET_RECORDS
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* [5..15] values one byte per analyte, encoding the discrete
|
|
22
|
-
* level index into diagnosticResults[key]
|
|
23
|
-
* [16] checksum xor over [2..15]
|
|
24
|
-
*
|
|
25
|
-
* Byte positions calibrated against PHMS 3.0.03 Android app; older firmware
|
|
26
|
-
* (< 1.2.x) uses a different command byte and is not supported by this driver
|
|
27
|
-
* (the validator will reject those frames).
|
|
17
|
+
* On the wire a stored URS record opens with 0xE1 (single) or 0xE2 (paginated).
|
|
18
|
+
* The remaining fifteen bytes carry the flags nibble, timestamp, seven bytes of
|
|
19
|
+
* packed 3-bit analyte indices, and a checksum. `bc01-frame-parser.ts` decodes
|
|
20
|
+
* them; this file just declares the GATT surface and hands every E1/E2 frame
|
|
21
|
+
* to the driver's dependent-result path so the parser can run.
|
|
28
22
|
*/
|
|
29
23
|
export const bc01MainServices = [{
|
|
30
24
|
uuid: "0000ff12-0000-1000-8000-00805f9b34fb",
|
|
31
|
-
|
|
25
|
+
/**
|
|
26
|
+
* PHMS 3.0.03 writes `[0x80, 0x00]` to 0xFF01 the moment its GATT
|
|
27
|
+
* subscription is up — decompiled at L1/f.java:694 ("发送复位命令" — "send
|
|
28
|
+
* reset command"). The device answers nothing until this reset lands. The
|
|
29
|
+
* `Bc01CommandSequencer` returns the same reset from `initialCommands()`
|
|
30
|
+
* so the SDK sends it whether or not the polling default is in play.
|
|
31
|
+
*/
|
|
32
|
+
writeUuid: {
|
|
32
33
|
uuid: "0000ff01-0000-1000-8000-00805f9b34fb",
|
|
34
|
+
mainCommandUuid: "8000"
|
|
35
|
+
},
|
|
36
|
+
monitorUuids: [{
|
|
37
|
+
uuid: "0000ff02-0000-1000-8000-00805f9b34fb",
|
|
38
|
+
/**
|
|
39
|
+
* We key on the first byte only. A `DEPENDENT` case fires
|
|
40
|
+
* `handleDependentResult` in the driver, which runs the real decoder
|
|
41
|
+
* (`parseBc01Record`) against the raw frame bytes and calls
|
|
42
|
+
* `onResult` directly. The parsing case itself carries no field
|
|
43
|
+
* definitions — the packed 3-bits-per-pad layout is not expressible
|
|
44
|
+
* with the ordinary declaration parser and would need the vendor's
|
|
45
|
+
* own decoding table pinned in a declaration to be so.
|
|
46
|
+
*/
|
|
33
47
|
parsingModel: {
|
|
34
|
-
caseValuePosition: [0
|
|
48
|
+
caseValuePosition: [0],
|
|
35
49
|
cases: [{
|
|
36
50
|
measurementTypeKey: MeasurementTypeKey.uricAcid,
|
|
37
|
-
caseType: CaseType.
|
|
38
|
-
caseValue: "
|
|
39
|
-
parseDefinitions: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
name: "bld",
|
|
46
|
-
parseType: "number",
|
|
47
|
-
byteIndexes: [6],
|
|
48
|
-
parseReference: 16
|
|
49
|
-
}, {
|
|
50
|
-
name: "bil",
|
|
51
|
-
parseType: "number",
|
|
52
|
-
byteIndexes: [7],
|
|
53
|
-
parseReference: 16
|
|
54
|
-
}, {
|
|
55
|
-
name: "ket",
|
|
56
|
-
parseType: "number",
|
|
57
|
-
byteIndexes: [8],
|
|
58
|
-
parseReference: 16
|
|
59
|
-
}, {
|
|
60
|
-
name: "glu",
|
|
61
|
-
parseType: "number",
|
|
62
|
-
byteIndexes: [9],
|
|
63
|
-
parseReference: 16
|
|
64
|
-
}, {
|
|
65
|
-
name: "pro",
|
|
66
|
-
parseType: "number",
|
|
67
|
-
byteIndexes: [10],
|
|
68
|
-
parseReference: 16
|
|
69
|
-
}, {
|
|
70
|
-
name: "ph",
|
|
71
|
-
parseType: "number",
|
|
72
|
-
byteIndexes: [11],
|
|
73
|
-
parseReference: 16
|
|
74
|
-
}, {
|
|
75
|
-
name: "nit",
|
|
76
|
-
parseType: "number",
|
|
77
|
-
byteIndexes: [12],
|
|
78
|
-
parseReference: 16
|
|
79
|
-
}, {
|
|
80
|
-
name: "leu",
|
|
81
|
-
parseType: "number",
|
|
82
|
-
byteIndexes: [13],
|
|
83
|
-
parseReference: 16
|
|
84
|
-
}, {
|
|
85
|
-
name: "sg",
|
|
86
|
-
parseType: "number",
|
|
87
|
-
byteIndexes: [14],
|
|
88
|
-
parseReference: 16
|
|
89
|
-
}, {
|
|
90
|
-
name: "vc",
|
|
91
|
-
parseType: "number",
|
|
92
|
-
byteIndexes: [15],
|
|
93
|
-
parseReference: 16
|
|
94
|
-
}]
|
|
51
|
+
caseType: CaseType.DEPENDENT,
|
|
52
|
+
caseValue: "e1",
|
|
53
|
+
parseDefinitions: []
|
|
54
|
+
}, {
|
|
55
|
+
measurementTypeKey: MeasurementTypeKey.uricAcid,
|
|
56
|
+
caseType: CaseType.DEPENDENT,
|
|
57
|
+
caseValue: "e2",
|
|
58
|
+
parseDefinitions: []
|
|
95
59
|
}]
|
|
96
60
|
}
|
|
97
61
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeasurementTypeKey","CaseType","bc01MainServices","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","uricAcid","caseType","
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","CaseType","bc01MainServices","uuid","writeUuid","mainCommandUuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","uricAcid","caseType","DEPENDENT","caseValue","parseDefinitions"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01.main-services.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAA4B,GAAG,CAC1C;EACEC,IAAI,EAAE,sCAAsC;EAE5C;AACJ;AACA;AACA;AACA;AACA;AACA;EACIC,SAAS,EAAE;IACTD,IAAI,EAAE,sCAAsC;IAC5CE,eAAe,EAAE;EACnB,CAAC;EACDC,YAAY,EAAE,CACZ;IACEH,IAAI,EAAE,sCAAsC;IAE5C;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQI,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAEV,kBAAkB,CAACW,QAAQ;QAC/CC,QAAQ,EAAEX,QAAQ,CAACY,SAAS;QAC5BC,SAAS,EAAE,IAAI;QACfC,gBAAgB,EAAE;MACpB,CAAC,EACD;QACEL,kBAAkB,EAAEV,kBAAkB,CAACW,QAAQ;QAC/CC,QAAQ,EAAEX,QAAQ,CAACY,SAAS;QAC5BC,SAAS,EAAE,IAAI;QACfC,gBAAgB,EAAE;MACpB,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { standardBloodPressureDevice } from "../standard-gatt/standard-gatt.devices.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The boso medicus system uses the Bluetooth SIG Blood Pressure Service and Measurement
|
|
7
|
+
* characteristic. Its vendor-specific identity is the advertised name, which carries a
|
|
8
|
+
* six-character hexadecimal suffix, for example `boso medicus 312B5D`.
|
|
9
|
+
*/
|
|
10
|
+
const BOSO_MEDICUS_NAME_MATCH = /^boso medicus [0-9a-f]{6}$/i;
|
|
11
|
+
/**
|
|
12
|
+
* Declares a boso medicus system monitor.
|
|
13
|
+
*
|
|
14
|
+
* The monitor stores readings and sends them through the standard 0x1810/0x2A35 profile after
|
|
15
|
+
* pairing. The shared profile declaration handles mmHg, optional timestamps, pulse rate and
|
|
16
|
+
* the profile's user/status bytes without inventing a boso-specific wire format.
|
|
17
|
+
*/
|
|
18
|
+
const bosoMedicusMonitor = params => standardBloodPressureDevice({
|
|
19
|
+
id: params.id,
|
|
20
|
+
nameMatch: params.nameMatch ?? BOSO_MEDICUS_NAME_MATCH,
|
|
21
|
+
...(params.stuckDataTimeoutMs === undefined ? {} : {
|
|
22
|
+
stuckDataTimeoutMs: params.stuckDataTimeoutMs
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
export { BOSO_MEDICUS_NAME_MATCH, bosoMedicusMonitor };
|
|
26
|
+
//# sourceMappingURL=boso.medicus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["standardBloodPressureDevice","BOSO_MEDICUS_NAME_MATCH","bosoMedicusMonitor","params","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/boso/boso.medicus.ts"],"mappings":";;AACA,SAASA,2BAA2B,QAAQ,2CAAwC;;AAEpF;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,6BAA6B;AAc7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GACtBC,MAAyB,IAEzBH,2BAA2B,CAAC;EAC1BI,EAAE,EAAED,MAAM,CAACC,EAAE;EACbC,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAIJ,uBAAuB;EACtD,IAAIE,MAAM,CAACG,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEH,MAAM,CAACG;EAAmB,CAAC;AACvD,CAAC,CAAC;AAEJ,SAASL,uBAAuB,EAAEC,kBAAkB","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js
CHANGED
|
@@ -28,26 +28,38 @@ import { declareProfile, littleEndian } from "./standard-gatt.profile.js";
|
|
|
28
28
|
* at all, so it is read at byte 7 in one shape and byte 14 in the other, and each shape
|
|
29
29
|
* declares the length it needs. A device that reports no pulse still decodes, because the
|
|
30
30
|
* flags value it sends selects a case that never looks for one.
|
|
31
|
+
*
|
|
32
|
+
* Bit 3 (user id, 0x08) and bit 4 (measurement status, 0x10) follow the pulse, so neither
|
|
33
|
+
* moves it. Each shape is declared again with those bits set. Bit 0 (kPa) stays undeclared.
|
|
31
34
|
*/
|
|
35
|
+
/** Bit 2 set, bit 1 clear: the pulse follows the mean pressure. */
|
|
36
|
+
const pulseAfterMeanPressure = {
|
|
37
|
+
fields: [littleEndian("heartRate", [7, 8], "bpm", "sfloat")],
|
|
38
|
+
minLengthBytes: 9
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** Bit 1 and bit 2 set: the pulse follows the seven-byte timestamp. */
|
|
42
|
+
const pulseAfterTimestamp = {
|
|
43
|
+
fields: [littleEndian("heartRate", [14, 15], "bpm", "sfloat")],
|
|
44
|
+
minLengthBytes: 16
|
|
45
|
+
};
|
|
32
46
|
const standardBloodPressureDevice = params => declareProfile(params, {
|
|
33
47
|
service: "1810",
|
|
34
48
|
characteristic: "2a35",
|
|
35
49
|
minLengthBytes: 7,
|
|
36
50
|
measurementTypeKey: MeasurementTypeKey.bloodPressure,
|
|
37
|
-
/** mmHg,
|
|
38
|
-
selectors: ["00", "02", "04", "06"],
|
|
51
|
+
/** mmHg. 0x08, 0x10 and 0x18 repeat each shape with bit 3, bit 4, or both. */
|
|
52
|
+
selectors: ["00", "08", "10", "18", "02", "0a", "12", "1a", "04", "0c", "14", "1c", "06", "0e", "16", "1e"],
|
|
39
53
|
fields: [littleEndian("systolic", [1, 2], "mmHg", "sfloat"), littleEndian("diastolic", [3, 4], "mmHg", "sfloat")],
|
|
40
54
|
optionalFields: {
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
minLengthBytes: 16
|
|
50
|
-
}
|
|
55
|
+
"04": pulseAfterMeanPressure,
|
|
56
|
+
"0c": pulseAfterMeanPressure,
|
|
57
|
+
"14": pulseAfterMeanPressure,
|
|
58
|
+
"1c": pulseAfterMeanPressure,
|
|
59
|
+
"06": pulseAfterTimestamp,
|
|
60
|
+
"0e": pulseAfterTimestamp,
|
|
61
|
+
"16": pulseAfterTimestamp,
|
|
62
|
+
"1e": pulseAfterTimestamp
|
|
51
63
|
}
|
|
52
64
|
});
|
|
53
65
|
|
package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeasurementTypeKey","declareProfile","littleEndian","standardBloodPressureDevice","params","service","characteristic","
|
|
1
|
+
{"version":3,"names":["MeasurementTypeKey","declareProfile","littleEndian","pulseAfterMeanPressure","fields","minLengthBytes","pulseAfterTimestamp","standardBloodPressureDevice","params","service","characteristic","measurementTypeKey","bloodPressure","selectors","optionalFields","standardThermometerDevice","temperature","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","scale","decimals","standardPulseOximeterDevice","bloodOxygenPulseRate","standardHeartRateDevice","heartRate","name","byteIndexes","encoding","unit"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btdevice-list.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/components/btdevice-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,eAAO,MAAM,YAAY,GAAI,yBAAyB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"btdevice-list.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/components/btdevice-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,eAAO,MAAM,YAAY,GAAI,yBAAyB,iBAAiB,sBAkDtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-device/components/item/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-device/components/item/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAQ,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,eAAe,EAAE,sBAG/C,uBAAuB,CAAC,CAAC,CAAC,sBAmC5B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { SupportedDeviceListProps } from "../types/supported-device-list-props";
|
|
3
|
+
export declare const SupportedDeviceList: ({ renderItem, contentContainerStyle, ...props }: SupportedDeviceListProps) => React.JSX.Element;
|
|
4
|
+
//# sourceMappingURL=supported-device-list.d.ts.map
|
package/lib/typescript/commonjs/src/modules/bt-device/components/supported-device-list.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supported-device-list.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/components/supported-device-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAIhF,eAAO,MAAM,mBAAmB,GAAI,iDAIjC,wBAAwB,sBAkD1B,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
export type SupportedDevice = {
|
|
2
|
+
name: string;
|
|
3
|
+
nameKey: string;
|
|
4
|
+
manufacturer: string;
|
|
5
|
+
manufacturerKey: string;
|
|
6
|
+
logo: string;
|
|
7
|
+
creditsForImage: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Concrete devices and device families supported by the Bluetooth module.
|
|
11
|
+
*
|
|
12
|
+
* The standard Bluetooth SIG entries are included because the SDK exposes factories for
|
|
13
|
+
* those profiles; the application supplies the advertised device name when registering one.
|
|
14
|
+
* Every entry has an image value. Existing product assets are reused where available, while
|
|
15
|
+
* official manufacturer and standards-organization images cover the remaining entries.
|
|
16
|
+
*/
|
|
17
|
+
export declare const Devices: readonly [{
|
|
18
|
+
readonly name: "Viatom BP2";
|
|
19
|
+
readonly nameKey: "devices.catalog.viatom-bp2.name";
|
|
20
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
21
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
22
|
+
readonly logo: string;
|
|
23
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "Viatom F4 / Lescale";
|
|
26
|
+
readonly nameKey: "devices.catalog.viatom-f4-lescale.name";
|
|
27
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
28
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
29
|
+
readonly logo: string;
|
|
30
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "Viatom OxySmart / PC60WF";
|
|
33
|
+
readonly nameKey: "devices.catalog.viatom-oxysmart-pc60wf.name";
|
|
34
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
35
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
36
|
+
readonly logo: string;
|
|
37
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
38
|
+
}, {
|
|
39
|
+
readonly name: "Contec BC401 / BC01";
|
|
40
|
+
readonly nameKey: "devices.catalog.contec-bc401-bc01.name";
|
|
41
|
+
readonly manufacturer: "Contec Medical Systems";
|
|
42
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.contec";
|
|
43
|
+
readonly logo: string;
|
|
44
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
45
|
+
}, {
|
|
46
|
+
readonly name: "Veroval duo control";
|
|
47
|
+
readonly nameKey: "devices.catalog.veroval-duo-control.name";
|
|
48
|
+
readonly manufacturer: "HARTMANN";
|
|
49
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
|
|
50
|
+
readonly logo: "https://img.hartmann.info/cdn-cgi/image/width%3D412%2Cheight%3D412%2Cquality%3D95%2Cfit%3Dcrop%2Cgravity%3Dauto/product/44853_4K.jpg";
|
|
51
|
+
readonly creditsForImage: "HARTMANN official product image: https://www.hartmann.info/en-za/products/diagnostics/blood-pressure-monitors/upper-arm-products/veroval%C2%AE-duo-control";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "Veroval ECG";
|
|
54
|
+
readonly nameKey: "devices.catalog.veroval-ecg.name";
|
|
55
|
+
readonly manufacturer: "HARTMANN";
|
|
56
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
|
|
57
|
+
readonly logo: "https://img.hartmann.info/cdn-cgi/image/width%3D412%2Cheight%3D412%2Cquality%3D95%2Cfit%3Dcrop%2Cgravity%3Dauto/product/46955_4K.jpg";
|
|
58
|
+
readonly creditsForImage: "HARTMANN official product image: https://www.hartmann.info/es-es/productos/monitorizaci%C3%B3n/electrocardiograma/veroval%C2%AE-ecg";
|
|
59
|
+
}, {
|
|
60
|
+
readonly name: "Veroval compact+ BPU26";
|
|
61
|
+
readonly nameKey: "devices.catalog.veroval-compact-bpu26.name";
|
|
62
|
+
readonly manufacturer: "HARTMANN";
|
|
63
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
|
|
64
|
+
readonly logo: "https://cdn.hartmann.info/product/40938_43.jpg";
|
|
65
|
+
readonly creditsForImage: "HARTMANN official product image: https://www.hartmann.info/en/products/diagnostics/blood-pressure-monitors/upper-arm-products/veroval%C2%AE-compact-%2C-pl-%2C-upper-arm-blood-pressure-monitor";
|
|
66
|
+
}, {
|
|
67
|
+
readonly name: "Veroval compact+ BPW26";
|
|
68
|
+
readonly nameKey: "devices.catalog.veroval-compact-bpw26.name";
|
|
69
|
+
readonly manufacturer: "HARTMANN";
|
|
70
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
|
|
71
|
+
readonly logo: "https://cdn.hartmann.info/product/40385_43.jpg";
|
|
72
|
+
readonly creditsForImage: "HARTMANN official product image: https://www.hartmann.info/en/products/diagnostics/blood-pressure-monitors/wrist-products/veroval%C2%AE-compact-%2C-pl-%2C-wrist-blood-pressure-monitor";
|
|
73
|
+
}, {
|
|
74
|
+
readonly name: "boso medicus system";
|
|
75
|
+
readonly nameKey: "devices.catalog.boso-medicus-system.name";
|
|
76
|
+
readonly manufacturer: "BOSCH + SOHN GmbH u. Co. KG";
|
|
77
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.boso";
|
|
78
|
+
readonly logo: "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
|
|
79
|
+
readonly creditsForImage: "boso official product image: https://www.boso.de/en/products-for-home-users/blood-pressure-instruments/boso-medicus-system";
|
|
80
|
+
}, {
|
|
81
|
+
readonly name: "AOJ-20A";
|
|
82
|
+
readonly nameKey: "devices.catalog.aoj-20a.name";
|
|
83
|
+
readonly manufacturer: "AOJ Medical";
|
|
84
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.aoj";
|
|
85
|
+
readonly logo: string;
|
|
86
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
87
|
+
}, {
|
|
88
|
+
readonly name: "Viatom BP2A / BP2T / BP2W";
|
|
89
|
+
readonly nameKey: "devices.catalog.viatom-bp2-family.name";
|
|
90
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
91
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
92
|
+
readonly logo: string;
|
|
93
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
94
|
+
}, {
|
|
95
|
+
readonly name: "Viatom BP3 series";
|
|
96
|
+
readonly nameKey: "devices.catalog.viatom-bp3-series.name";
|
|
97
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
98
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
99
|
+
readonly logo: string;
|
|
100
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
101
|
+
}, {
|
|
102
|
+
readonly name: "Viatom O2Ring / Oxyfit / KidsO2 / BabyO2";
|
|
103
|
+
readonly nameKey: "devices.catalog.viatom-oximeters.name";
|
|
104
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
105
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
106
|
+
readonly logo: string;
|
|
107
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
108
|
+
}, {
|
|
109
|
+
readonly name: "Viatom ER1 / ER2 / ER3";
|
|
110
|
+
readonly nameKey: "devices.catalog.viatom-er-family.name";
|
|
111
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
112
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
113
|
+
readonly logo: string;
|
|
114
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
115
|
+
}, {
|
|
116
|
+
readonly name: "Viatom Lepod / LepodPro";
|
|
117
|
+
readonly nameKey: "devices.catalog.viatom-lepod-family.name";
|
|
118
|
+
readonly manufacturer: "Viatom (Lepu Medical)";
|
|
119
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.viatom";
|
|
120
|
+
readonly logo: string;
|
|
121
|
+
readonly creditsForImage: "OVOK Mobile SDK bundled image asset: src/modules/bt-device/constants/device-images.ts";
|
|
122
|
+
}, {
|
|
123
|
+
readonly name: "Bluetooth SIG blood-pressure devices";
|
|
124
|
+
readonly nameKey: "devices.catalog.bluetooth-sig.blood-pressure.name";
|
|
125
|
+
readonly manufacturer: "Any compliant manufacturer";
|
|
126
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.any-compliant";
|
|
127
|
+
readonly logo: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
128
|
+
readonly creditsForImage: "Bluetooth SIG official brand assets: https://www.bluetooth.com/media/";
|
|
129
|
+
}, {
|
|
130
|
+
readonly name: "Bluetooth SIG thermometers";
|
|
131
|
+
readonly nameKey: "devices.catalog.bluetooth-sig.thermometers.name";
|
|
132
|
+
readonly manufacturer: "Any compliant manufacturer";
|
|
133
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.any-compliant";
|
|
134
|
+
readonly logo: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
135
|
+
readonly creditsForImage: "Bluetooth SIG official brand assets: https://www.bluetooth.com/media/";
|
|
136
|
+
}, {
|
|
137
|
+
readonly name: "Bluetooth SIG weight scales";
|
|
138
|
+
readonly nameKey: "devices.catalog.bluetooth-sig.weight-scales.name";
|
|
139
|
+
readonly manufacturer: "Any compliant manufacturer";
|
|
140
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.any-compliant";
|
|
141
|
+
readonly logo: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
142
|
+
readonly creditsForImage: "Bluetooth SIG official brand assets: https://www.bluetooth.com/media/";
|
|
143
|
+
}, {
|
|
144
|
+
readonly name: "Bluetooth SIG pulse oximeters";
|
|
145
|
+
readonly nameKey: "devices.catalog.bluetooth-sig.pulse-oximeters.name";
|
|
146
|
+
readonly manufacturer: "Any compliant manufacturer";
|
|
147
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.any-compliant";
|
|
148
|
+
readonly logo: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
149
|
+
readonly creditsForImage: "Bluetooth SIG official brand assets: https://www.bluetooth.com/media/";
|
|
150
|
+
}, {
|
|
151
|
+
readonly name: "Bluetooth SIG heart-rate monitors";
|
|
152
|
+
readonly nameKey: "devices.catalog.bluetooth-sig.heart-rate.name";
|
|
153
|
+
readonly manufacturer: "Any compliant manufacturer";
|
|
154
|
+
readonly manufacturerKey: "devices.catalog.manufacturers.any-compliant";
|
|
155
|
+
readonly logo: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
156
|
+
readonly creditsForImage: "Bluetooth SIG official brand assets: https://www.bluetooth.com/media/";
|
|
157
|
+
}];
|
|
158
|
+
//# sourceMappingURL=supported-devices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAwCF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiK2B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./components/btdevice-list";
|
|
2
|
+
export * from "./components/supported-device-list";
|
|
2
3
|
export * from "./components/btdevice-instruction";
|
|
3
4
|
export * from "./components/item/btdevice-item";
|
|
4
5
|
export * from "./components/device-list-provider";
|
|
@@ -7,6 +8,8 @@ export * from "./contexts/device-list-context";
|
|
|
7
8
|
export * from "./constants/device-list-items";
|
|
8
9
|
export * from "./constants/device-instruction-pdfs";
|
|
9
10
|
export * from "./constants/device-images";
|
|
11
|
+
export * from "./constants/supported-devices";
|
|
10
12
|
export * from "./types/device-list-item";
|
|
13
|
+
export * from "./types/supported-device-list-props";
|
|
11
14
|
export * from "./types/btdevice-instruction-props";
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-device/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-device/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlatListProps } from "react-native";
|
|
2
|
+
import { SupportedDevice } from "../constants/supported-devices";
|
|
3
|
+
export type SupportedDeviceListProps = Omit<FlatListProps<SupportedDevice>, "data" | "renderItem"> & {
|
|
4
|
+
renderItem?: FlatListProps<SupportedDevice>["renderItem"];
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=supported-device-list-props.d.ts.map
|
package/lib/typescript/commonjs/src/modules/bt-device/types/supported-device-list-props.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supported-device-list-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/types/supported-device-list-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,aAAa,CAAC,eAAe,CAAC,EAC9B,MAAM,GAAG,YAAY,CACtB,GAAG;IACF,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC;CAC3D,CAAC"}
|
|
@@ -34,6 +34,7 @@ export * from "./services/devices/custom/custom.device";
|
|
|
34
34
|
export * from "./services/bt-manager";
|
|
35
35
|
export * from "./services/custom/define-custom-device";
|
|
36
36
|
export * from "./services/devices/standard-gatt/standard-gatt.devices";
|
|
37
|
+
export * from "./services/devices/boso/boso.medicus";
|
|
37
38
|
export * from "./services/devices/veroval/veroval.bp-monitors";
|
|
38
39
|
export * from "./services/devices/veroval/veroval.duo-control-device";
|
|
39
40
|
export * from "./services/devices/veroval/veroval.ecg-device";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
|
|
@@ -13,7 +13,6 @@ export declare class BTManager<T extends readonly AcceptedDevice[]> {
|
|
|
13
13
|
private stateChangeListener;
|
|
14
14
|
private eventSubscriptions;
|
|
15
15
|
private deviceCreator;
|
|
16
|
-
private lastScanTimestamp;
|
|
17
16
|
constructor(bleManager: BleManager, acceptedDevices: T);
|
|
18
17
|
destroy: () => void;
|
|
19
18
|
startScan: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAUtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;gBAGrB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAuBZ;IAEK,SAAS,aAuDd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAIzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CA+ElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAMrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AA6D9D,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAKhD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEvC,mBAAmB,EAAE,CAAC;IAI5C,aAAa,GAAI,WAAW,MAAM,KAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAkBpE;IAEK,YAAY,CAAC,CAAC,SAAS,SAAS,EACrC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAMrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AA6D9D,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAKhD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEvC,mBAAmB,EAAE,CAAC;IAI5C,aAAa,GAAI,WAAW,MAAM,KAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAkBpE;IAEK,YAAY,CAAC,CAAC,SAAS,SAAS,EACrC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC;IAwCd,OAAO,aAEZ;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CAmBrB;IAEF,OAAO,CAAC,eAAe;CAexB"}
|