@ovok/native 1.1.0 → 1.3.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/lib/commonjs/modules/bt-device/constants/supported-devices.js +9 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +67 -7
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/index.js +33 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-ble-manager.js +27 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-ble-manager.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +31 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +98 -0
- package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +19 -4
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +25 -0
- package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/background-sync.js +6 -0
- package/lib/commonjs/modules/bt-management/types/background-sync.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js +9 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +67 -7
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/index.js +3 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-ble-manager.js +22 -0
- package/lib/module/modules/bt-management/services/background-sync/background-ble-manager.js.map +1 -0
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +26 -0
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -0
- package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +94 -0
- package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -0
- package/lib/module/modules/bt-management/services/bt-manager.js +19 -4
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +22 -0
- package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -0
- package/lib/module/modules/bt-management/types/background-sync.js +4 -0
- package/lib/module/modules/bt-management/types/background-sync.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +25 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +8 -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/uebe/visomat.comfort-soft-bt.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts +13 -0
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +25 -0
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +8 -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/uebe/visomat.comfort-soft-bt.d.ts +22 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeBlePlx","_index","_sentryLogger","_deviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","constructor","bleManager","acceptedDevices","deviceCreator","DeviceCreator","destroy","sentryLogger","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","onStateChange","state","State","PoweredOn","index","indexOf","splice","startDeviceScan","scanMode","ScanMode","Balanced","onScanResult","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeBlePlx","_index","_sentryLogger","_deviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","constructor","bleManager","acceptedDevices","options","deviceCreator","DeviceCreator","destroy","sentryLogger","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","onStateChange","state","State","PoweredOn","index","indexOf","splice","serviceUUIDs","Platform","OS","backgroundEnabled","length","error","Promise","resolve","startDeviceScan","scanMode","ScanMode","LowPower","Balanced","onScanResult","catch","Error","String","Linking","sendIntent","push","stopDeviceScan","sub","restoreDevices","onDeviceFound","callback","onError","onDeviceStatusChanged","onResult","message","slog","advertisedName","name","trim","localName","has","id","deviceName","getDeviceName","size","deviceId","currentSize","deviceClass","createDevice","bind","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","get","delete","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.visomatComfortSoftBtMonitor = exports.VISOMAT_COMFORT_SOFT_BT_NAME_MATCH = void 0;
|
|
7
|
+
var _standardGattDevices = require("../standard-gatt/standard-gatt.devices.js");
|
|
8
|
+
/** The product name used by the visomat comfort soft BT monitor while advertising. */
|
|
9
|
+
const VISOMAT_COMFORT_SOFT_BT_NAME_MATCH = exports.VISOMAT_COMFORT_SOFT_BT_NAME_MATCH = /^visomat\s+comfort\s+soft\s+bt$/i;
|
|
10
|
+
/**
|
|
11
|
+
* Declares the visomat comfort soft BT upper-arm monitor.
|
|
12
|
+
*
|
|
13
|
+
* The monitor uses the Bluetooth SIG Blood Pressure Service and Measurement characteristic,
|
|
14
|
+
* so the shared profile handles the 0x2A35 measurement without a vendor-specific command or
|
|
15
|
+
* pairing flow.
|
|
16
|
+
*/
|
|
17
|
+
const visomatComfortSoftBtMonitor = params => (0, _standardGattDevices.standardBloodPressureDevice)({
|
|
18
|
+
id: params.id,
|
|
19
|
+
nameMatch: params.nameMatch ?? VISOMAT_COMFORT_SOFT_BT_NAME_MATCH,
|
|
20
|
+
...(params.stuckDataTimeoutMs === undefined ? {} : {
|
|
21
|
+
stuckDataTimeoutMs: params.stuckDataTimeoutMs
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
exports.visomatComfortSoftBtMonitor = visomatComfortSoftBtMonitor;
|
|
25
|
+
//# sourceMappingURL=visomat.comfort-soft-bt.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_standardGattDevices","require","VISOMAT_COMFORT_SOFT_BT_NAME_MATCH","exports","visomatComfortSoftBtMonitor","params","standardBloodPressureDevice","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.ts"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,kCAAkC,GAAAC,OAAA,CAAAD,kCAAA,GAAG,kCAAkC;AAc7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,2BAA2B,GAC/BC,MAAkC,IAElC,IAAAC,gDAA2B,EAAC;EAC1BC,EAAE,EAAEF,MAAM,CAACE,EAAE;EACbC,SAAS,EAAEH,MAAM,CAACG,SAAS,IAAIN,kCAAkC;EACjE,IAAIG,MAAM,CAACI,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEJ,MAAM,CAACI;EAAmB,CAAC;AACvD,CAAC,CAAC;AAACN,OAAA,CAAAC,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/background-sync.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ const verovalEcgImage = "https://img.hartmann.info/cdn-cgi/image/width%3D412%2Ch
|
|
|
6
6
|
const verovalBpu26Image = "https://cdn.hartmann.info/product/40938_43.jpg";
|
|
7
7
|
const verovalBpw26Image = "https://cdn.hartmann.info/product/40385_43.jpg";
|
|
8
8
|
const bosoMedicusSystemImage = "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
|
|
9
|
+
const visomatComfortSoftBtImage = "https://www.visomat.de/wp-content/uploads/2023/10/prd_slider_comfort-soft-BT.jpg";
|
|
9
10
|
|
|
10
11
|
// Official Bluetooth SIG combination mark downloaded from the Bluetooth media kit.
|
|
11
12
|
const bluetoothSigLogo = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0ibG9nbyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzYwIDE0NCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA4MmZjOwogICAgICB9CgogICAgICAuY2xzLTIsIC5jbHMtMyB7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iQmx1ZXRvb3RoIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTk0LjE3LDc1LjE5aDMuMjZjNi4wMiwwLDguMywzLjAxLDguMyw5LjAzcy0xLjk1LDkuMDMtNy4zMiw5LjAzaC00LjIzdi0xOC4wN2gwWk05NC4xNyw1MS4xaDMuODNjNC40OCwwLDYuNTksMi44NSw2LjU5LDguMywwLDQuODgtMi45Myw3LjQ5LTYuNzUsNy40OWgtMy42NnYtMTUuNzloMFpNODQuMDgsMTAxLjU2aDE1Ljk1YzExLjQ3LDAsMTUuNzktNy4zMiwxNS43OS0xNy4wMSwwLTcuNTctMy4wMS0xMS42NC04LjE0LTEzLjkyLDQuODgtMS45NSw3LTcuMjQsNy0xMi4yOSwwLTEwLjAxLTQuOC0xNS41NC0xNS42My0xNS41NGgtMTQuOTd2NTguNzZoMFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTI4LjkyIDEwMS41NiAxMjguOTIgNDIuOCAxMTkuODEgNDIuOCAxMTkuODEgMTAxLjU2IDEyOC45MiAxMDEuNTYgMTI4LjkyIDEwMS41NiIvPgogICAgPHBhdGggZD0iTTE1My4zMyw1Ny43N3YzNC4zNGMtMi4xMiwxLjU1LTMuOTEsMi43Ny01Ljg2LDIuNzdzLTMuMjYtLjk4LTMuMjYtMy4xN3YtMzMuOTRoLTkuMTF2MzUuNGMwLDUuNywyLjg1LDkuMiw3LjY1LDkuMiw1LjI5LDAsNy4yNC0xLjk1LDExLjA3LTUuMjF2NC4zOWg4LjYzdi00My43OGgtOS4xMVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE3Ny4xNiw3My44OXYtMi4yOGMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djIuMjhoLTEwLjA5Wk0xOTYuMzcsNzMuMjRjMC05LjYtMy43NC0xNi4yOC0xNC4xNi0xNi4yOHMtMTQuMTYsNi42Ny0xNC4xNiwxNi4yOHYxMi44NmMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LTYuMzUsMTQtMTUuNjNoLTkuMTF2Ljk4YzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di02LjM1aDE5LjIxdi04LjE0aDBaIi8+CiAgICA8cGF0aCBkPSJNMzUzLjg4LDQ5LjA5YzAsMy40OC0yLjk2LDYuNDEtNi40NCw2LjQxcy02LjQxLTIuODEtNi40MS02LjQxLDIuODctNi40MSw2LjQxLTYuNDEsNi40NCwyLjc4LDYuNDQsNi40MVpNMzQyLjQ2LDQ5LjAzYzAsMi43NSwyLjIzLDUuMTMsNC45OCw1LjEzczQuOTgtMi4yNiw0Ljk4LTUuMDEtMi4yLTUuMTMtNC45OC01LjEzLTQuOTgsMi4yNi00Ljk4LDUuMDFaTTM0OC42Myw1Mi41N2wtMS45NS0zLjExaC0uMDl2My4xMWgtMS4yMnYtNy4wNWgyLjE0YzEuNjgsMCwyLjM1LjcsMi4zNSwxLjc3LDAsMS4xOS0uNzMsMS45Mi0xLjg2LDIuMDUuMTUuMTguNDMuNTguNywxLjAxbDEuNDYsMi4yM2gtMS41M1pNMzQ3LjM4LDQ2LjVoLS43OXYyLjE3aC40OWMxLjEzLDAsMS41LS42NCwxLjUtMS4yMiwwLS42Ny0uMy0uOTUtMS4xOS0uOTVaIi8+CiAgICA8cGF0aCBkPSJNMjA0LjQxLDY1LjI2djI3LjI2YzAsNi42NywzLjgyLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjExdjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQyLjY0LDg3LjcyYzAsNS4wNS0xLjc5LDcuMTYtNS4wNSw3LjE2cy01LjA1LTIuMTItNS4wNS03LjE2di0xNi4xMWMwLTUuMDUsMS43OS03LjE2LDUuMDUtNy4xNnM1LjA1LDIuMTIsNS4wNSw3LjE2djE2LjExaDBaTTIyMy40Myw4Ni4wOWMwLDkuNiwzLjc0LDE2LjI4LDE0LjE2LDE2LjI4czE0LjE2LTYuNjcsMTQuMTYtMTYuMjh2LTEyLjg2YzAtOS42LTMuNzQtMTYuMjgtMTQuMTYtMTYuMjhzLTE0LjE2LDYuNjctMTQuMTYsMTYuMjh2MTIuODZoMFoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI3NS43NCw4Ny43MmMwLDUuMDUtMS43OSw3LjE2LTUuMDUsNy4xNnMtNS4wNS0yLjEyLTUuMDUtNy4xNnYtMTYuMTFjMC01LjA1LDEuNzktNy4xNiw1LjA1LTcuMTZzNS4wNSwyLjEyLDUuMDUsNy4xNnYxNi4xMWgwWk0yNTYuNTQsODYuMDljMCw5LjYsMy43NCwxNi4yOCwxNC4xNiwxNi4yOHMxNC4xNi02LjY3LDE0LjE2LTE2LjI4di0xMi44NmMwLTkuNi0zLjc0LTE2LjI4LTE0LjE2LTE2LjI4cy0xNC4xNiw2LjY3LTE0LjE2LDE2LjI4djEyLjg2aDBaIi8+CiAgICA8cGF0aCBkPSJNMjkyLjY1LDY1LjI2djI3LjI2YzAsNi42NywzLjgzLDkuODUsMTAuNjYsOS44NSwyLjI4LDAsMy4zNC0uMTYsNC41Ni0uNDl2LTcuODFoLTMuMDFjLTIuMTIsMC0zLjA5LTEuMy0zLjA5LTMuNTh2LTI1LjIzaDYuMXYtNy40OWgtNi4xdi0xMS44aC05LjEydjExLjhoLTUuMDV2Ny40OWg1LjA1WiIvPgogICAgPHBhdGggZD0iTTMyMi42NiwxMDEuNTZ2LTM0LjM0YzIuMTItMS41NSwzLjkxLTIuNzcsNS44Ni0yLjc3czMuMjYuOTgsMy4yNiwzLjE3djMzLjk0aDkuMTF2LTM1LjRjMC01LjctMi44NS05LjItNy42NS05LjItNS4yOSwwLTcuMjQsMS45NS0xMC41OCw0Ljg4di0xOS4wNGgtOS4xMnY1OC43Nmg5LjEyWiIvPgogIDwvZz4KICA8ZyBpZD0iQnVnIj4KICAgIDxlbGxpcHNlIGNsYXNzPSJjbHMtMSIgY3g9IjM4LjQxIiBjeT0iNzEuNzgiIHJ4PSIyNC4zMSIgcnk9IjQwLjIyIi8+CiAgICA8cGF0aCBpZD0iQnVnLTIiIGRhdGEtbmFtZT0iQnVnIiBjbGFzcz0iY2xzLTIiIGQ9Ik00MS44Miw1MC42MWw3LjA0LDcuMDQtNy4wMyw3LjAzdi0xNC4wN2gwWk00MS44Miw5My43MWw3LjA0LTcuMDQtNy4wMy03LjAzdjE0LjA3aDBaTTM0LjMxLDcyLjE2bC0xNS4yMi0xNS4yNiw0LjQxLTQuNDEsMTIuMTMsMTIuMTN2LTI5LjA2bDIyLjA1LDIyLjA1LTE0LjU2LDE0LjU2LDE0LjU2LDE0LjU2LTIyLjA1LDIyLjA1di0yOS4wNmwtMTIuMTMsMTIuMTMtNC40MS00LjQxLDE1LjIyLTE1LjI2aDBaTTM4LjM5LDExNC43M2MxOC41OSwwLDMxLjQtOC44MywzMS40LTQyLjU3cy0xMi44MS00Mi41Ny0zMS40LTM0LjU3UzYuOTgsMzguNDIsNi45OCw3Mi4xNnMxMi44Miw0Mi41NywzMS40MSw0Mi41N2gwWiIvPgogIDwvZz4KPC9zdmc+";
|
|
@@ -16,6 +17,7 @@ const hartmannEcgCredit = "HARTMANN official product image: https://www.hartmann
|
|
|
16
17
|
const hartmannBpu26Credit = "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";
|
|
17
18
|
const hartmannBpw26Credit = "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";
|
|
18
19
|
const bosoMedicusSystemCredit = "boso official product image: https://www.boso.de/en/products-for-home-users/blood-pressure-instruments/boso-medicus-system";
|
|
20
|
+
const visomatComfortSoftBtCredit = "visomat official product image: https://www.visomat.de/produkte/comfort-soft-bt/";
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
23
|
* Concrete devices and device families supported by the Bluetooth module.
|
|
@@ -88,6 +90,13 @@ export const Devices = [{
|
|
|
88
90
|
manufacturerKey: "devices.catalog.manufacturers.boso",
|
|
89
91
|
logo: bosoMedicusSystemImage,
|
|
90
92
|
creditsForImage: bosoMedicusSystemCredit
|
|
93
|
+
}, {
|
|
94
|
+
name: "visomat comfort soft BT",
|
|
95
|
+
nameKey: "devices.catalog.visomat-comfort-soft-bt.name",
|
|
96
|
+
manufacturer: "UEBE Medical GmbH",
|
|
97
|
+
manufacturerKey: "devices.catalog.manufacturers.uebe",
|
|
98
|
+
logo: visomatComfortSoftBtImage,
|
|
99
|
+
creditsForImage: visomatComfortSoftBtCredit
|
|
91
100
|
}, {
|
|
92
101
|
name: "AOJ-20A",
|
|
93
102
|
nameKey: "devices.catalog.aoj-20a.name",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["deviceImages","verovalDuoControlImage","verovalEcgImage","verovalBpu26Image","verovalBpw26Image","bosoMedicusSystemImage","bluetoothSigLogo","bundledAssetCredit","bluetoothSigAssetCredit","hartmannDuoControlCredit","hartmannEcgCredit","hartmannBpu26Credit","hartmannBpw26Credit","bosoMedicusSystemCredit","Devices","name","nameKey","manufacturer","manufacturerKey","logo","viatomWellueArmfitDeviceImage","creditsForImage","viatomScaleDeviceImage","viatomWellueOxySmartDeviceImage","bc401DeviceImage","aoj20aDeviceImage","viatomDeviceSmallImage","viatomWellueOxyfitDeviceImage","viatomEcgButtonDeviceImage"],"sourceRoot":"../../../../../src","sources":["modules/bt-device/constants/supported-devices.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,oBAAiB;AAW9C,MAAMC,sBAAsB,GAC1B,sIAAsI;AAExI,MAAMC,eAAe,GACnB,sIAAsI;AAExI,MAAMC,iBAAiB,GAAG,gDAAgD;AAE1E,MAAMC,iBAAiB,GAAG,gDAAgD;AAE1E,MAAMC,sBAAsB,GAC1B,sFAAsF;;
|
|
1
|
+
{"version":3,"names":["deviceImages","verovalDuoControlImage","verovalEcgImage","verovalBpu26Image","verovalBpw26Image","bosoMedicusSystemImage","visomatComfortSoftBtImage","bluetoothSigLogo","bundledAssetCredit","bluetoothSigAssetCredit","hartmannDuoControlCredit","hartmannEcgCredit","hartmannBpu26Credit","hartmannBpw26Credit","bosoMedicusSystemCredit","visomatComfortSoftBtCredit","Devices","name","nameKey","manufacturer","manufacturerKey","logo","viatomWellueArmfitDeviceImage","creditsForImage","viatomScaleDeviceImage","viatomWellueOxySmartDeviceImage","bc401DeviceImage","aoj20aDeviceImage","viatomDeviceSmallImage","viatomWellueOxyfitDeviceImage","viatomEcgButtonDeviceImage"],"sourceRoot":"../../../../../src","sources":["modules/bt-device/constants/supported-devices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,9 @@ import * as React from "react";
|
|
|
4
4
|
import { AppState } from "react-native";
|
|
5
5
|
import { useDeviceList } from "../../bt-device/components/hooks/use-device-list.js";
|
|
6
6
|
import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
|
|
7
|
+
import { getRestoredBleState } from "../services/background-sync/background-ble-manager.js";
|
|
8
|
+
import { getBackgroundServiceUUIDs } from "../services/background-sync/background-service-uuids.js";
|
|
9
|
+
import { BackgroundSyncCoordinator } from "../services/background-sync/background-sync-coordinator.js";
|
|
7
10
|
import { BTManager } from "../services/bt-manager.js";
|
|
8
11
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
9
12
|
export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
@@ -13,25 +16,49 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
|
13
16
|
onDeviceFound,
|
|
14
17
|
onError,
|
|
15
18
|
onDeviceStatusChanged,
|
|
16
|
-
onResult
|
|
19
|
+
onResult,
|
|
20
|
+
backgroundSync
|
|
17
21
|
}) => {
|
|
18
22
|
const btManagerRef = React.useRef(null);
|
|
23
|
+
const backgroundSyncRef = React.useRef(backgroundSync);
|
|
24
|
+
const backgroundSyncCoordinatorRef = React.useRef(null);
|
|
19
25
|
const {
|
|
20
26
|
setDeviceListItems
|
|
21
27
|
} = useDeviceList();
|
|
28
|
+
backgroundSyncRef.current = backgroundSync;
|
|
22
29
|
React.useEffect(() => {
|
|
23
30
|
if (!acceptedDevices.length) {
|
|
24
31
|
return;
|
|
25
32
|
}
|
|
26
33
|
sentryLogger("info", "Creating BTManager");
|
|
27
|
-
const
|
|
34
|
+
const currentBackgroundSync = backgroundSyncRef.current;
|
|
35
|
+
const isBackgroundEnabled = currentBackgroundSync?.enabled === true;
|
|
36
|
+
const backgroundOptions = isBackgroundEnabled ? {
|
|
37
|
+
backgroundEnabled: true,
|
|
38
|
+
serviceUUIDs: getBackgroundServiceUUIDs(acceptedDevices, currentBackgroundSync.serviceUUIDs)
|
|
39
|
+
} : undefined;
|
|
40
|
+
const btManager = backgroundOptions ? new BTManager(bleManager, acceptedDevices, backgroundOptions) : new BTManager(bleManager, acceptedDevices);
|
|
41
|
+
const coordinator = isBackgroundEnabled && currentBackgroundSync ? new BackgroundSyncCoordinator({
|
|
42
|
+
...currentBackgroundSync,
|
|
43
|
+
enabled: true,
|
|
44
|
+
onResult: async result => {
|
|
45
|
+
const latest = backgroundSyncRef.current;
|
|
46
|
+
if (!latest?.enabled) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
await latest.onResult(result);
|
|
50
|
+
}
|
|
51
|
+
}) : null;
|
|
28
52
|
btManagerRef.current = btManager;
|
|
53
|
+
backgroundSyncCoordinatorRef.current = coordinator;
|
|
29
54
|
btManager.startScan();
|
|
30
55
|
return () => {
|
|
31
56
|
sentryLogger("info", "Destroying scan service");
|
|
57
|
+
backgroundSyncCoordinatorRef.current = null;
|
|
58
|
+
btManagerRef.current = null;
|
|
32
59
|
btManager.destroy();
|
|
33
60
|
};
|
|
34
|
-
}, [acceptedDevices, bleManager]);
|
|
61
|
+
}, [acceptedDevices, backgroundSync?.enabled, backgroundSync?.maxRetries, backgroundSync?.retryBackoffMs, backgroundSync?.serviceUUIDs, backgroundSync?.storage, backgroundSync?.storageKey, bleManager]);
|
|
35
62
|
React.useEffect(() => {
|
|
36
63
|
if (!onDeviceFound || !acceptedDevices.length) {
|
|
37
64
|
return;
|
|
@@ -51,14 +78,28 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
|
51
78
|
};
|
|
52
79
|
}, [onError, acceptedDevices]);
|
|
53
80
|
React.useEffect(() => {
|
|
54
|
-
if (!
|
|
81
|
+
if (!acceptedDevices.length) {
|
|
55
82
|
return;
|
|
56
83
|
}
|
|
57
|
-
|
|
84
|
+
const callback = backgroundSync?.enabled === true ? data => {
|
|
85
|
+
onResult?.(data);
|
|
86
|
+
const coordinator = backgroundSyncCoordinatorRef.current;
|
|
87
|
+
if (coordinator) {
|
|
88
|
+
void coordinator.enqueue(data).catch(error => {
|
|
89
|
+
onError?.({
|
|
90
|
+
error: error instanceof Error ? error : String(error)
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
} : onResult;
|
|
95
|
+
if (!callback) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
btManagerRef.current?.onResult(callback);
|
|
58
99
|
return () => {
|
|
59
100
|
btManagerRef.current?.onResult(undefined);
|
|
60
101
|
};
|
|
61
|
-
}, [onResult, acceptedDevices]);
|
|
102
|
+
}, [backgroundSync?.enabled, onError, onResult, acceptedDevices]);
|
|
62
103
|
React.useEffect(() => {
|
|
63
104
|
if (!onDeviceStatusChanged || !acceptedDevices.length) {
|
|
64
105
|
return;
|
|
@@ -90,17 +131,36 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
|
|
|
90
131
|
btManagerRef.current?.onDeviceStatusChanged(undefined);
|
|
91
132
|
};
|
|
92
133
|
}, [onDeviceStatusChanged, acceptedDevices, setDeviceListItems]);
|
|
134
|
+
React.useEffect(() => {
|
|
135
|
+
if (!acceptedDevices.length || backgroundSync?.enabled !== true) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const restoredState = getRestoredBleState(backgroundSync.restoreStateIdentifier);
|
|
139
|
+
if (restoredState?.connectedPeripherals.length) {
|
|
140
|
+
btManagerRef.current?.restoreDevices(restoredState.connectedPeripherals);
|
|
141
|
+
}
|
|
142
|
+
void backgroundSyncCoordinatorRef.current?.flush().catch(error => {
|
|
143
|
+
onError?.({
|
|
144
|
+
error: error instanceof Error ? error : String(error)
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}, [acceptedDevices, backgroundSync?.enabled, backgroundSync?.restoreStateIdentifier, onError]);
|
|
93
148
|
React.useEffect(() => {
|
|
94
149
|
const listener = AppState.addEventListener("change", state => {
|
|
95
150
|
if (state !== "active") {
|
|
96
151
|
return;
|
|
97
152
|
}
|
|
98
153
|
btManagerRef.current?.startScan();
|
|
154
|
+
void backgroundSyncCoordinatorRef.current?.flush().catch(error => {
|
|
155
|
+
onError?.({
|
|
156
|
+
error: error instanceof Error ? error : String(error)
|
|
157
|
+
});
|
|
158
|
+
});
|
|
99
159
|
});
|
|
100
160
|
return () => {
|
|
101
161
|
listener.remove();
|
|
102
162
|
};
|
|
103
|
-
}, []);
|
|
163
|
+
}, [onError]);
|
|
104
164
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
105
165
|
children: children
|
|
106
166
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AppState","useDeviceList","sentryLogger","BTManager","Fragment","_Fragment","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","onDeviceFound","onError","onDeviceStatusChanged","onResult","btManagerRef","useRef","setDeviceListItems","useEffect","length","btManager","
|
|
1
|
+
{"version":3,"names":["React","AppState","useDeviceList","sentryLogger","getRestoredBleState","getBackgroundServiceUUIDs","BackgroundSyncCoordinator","BTManager","Fragment","_Fragment","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","onDeviceFound","onError","onDeviceStatusChanged","onResult","backgroundSync","btManagerRef","useRef","backgroundSyncRef","backgroundSyncCoordinatorRef","setDeviceListItems","current","useEffect","length","currentBackgroundSync","isBackgroundEnabled","enabled","backgroundOptions","backgroundEnabled","serviceUUIDs","undefined","btManager","coordinator","result","latest","startScan","destroy","maxRetries","retryBackoffMs","storage","storageKey","callback","data","enqueue","catch","error","Error","String","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name","restoredState","restoreStateIdentifier","connectedPeripherals","restoreDevices","flush","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,aAAa,QAAQ,qDAAkD;AAChF,SAASC,YAAY,QAAQ,sCAAmC;AAChE,SAASC,mBAAmB,QAAQ,uDAAoD;AACxF,SAASC,yBAAyB,QAAQ,yDAAsD;AAChG,SAASC,yBAAyB,QAAQ,4DAAyD;AACnG,SAASC,SAAS,QAAQ,2BAAwB;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAKnD,OAAO,MAAMC,sBAAsB,gBAAGZ,KAAK,CAACa,IAAI,CAC9C,CAAsC;EACpCC,UAAU;EACVC,eAAe,GAAG,EAAkB;EACpCC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,qBAAqB;EACrBC,QAAQ;EACRC;AACuD,CAAC,KAAK;EAC7D,MAAMC,YAAY,GAAGtB,KAAK,CAACuB,MAAM,CAAsB,IAAI,CAAC;EAC5D,MAAMC,iBAAiB,GAAGxB,KAAK,CAACuB,MAAM,CAACF,cAAc,CAAC;EAEtD,MAAMI,4BAA4B,GAAGzB,KAAK,CAACuB,MAAM,CAE/C,IAAI,CAAC;EAEP,MAAM;IAAEG;EAAmB,CAAC,GAAGxB,aAAa,CAAC,CAAC;EAE9CsB,iBAAiB,CAACG,OAAO,GAAGN,cAAc;EAE1CrB,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACb,eAAe,CAACc,MAAM,EAAE;MAC3B;IACF;IACA1B,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAE1C,MAAM2B,qBAAqB,GAAGN,iBAAiB,CAACG,OAAO;IACvD,MAAMI,mBAAmB,GAAGD,qBAAqB,EAAEE,OAAO,KAAK,IAAI;IAEnE,MAAMC,iBAAiB,GAAGF,mBAAmB,GACzC;MACEG,iBAAiB,EAAE,IAAI;MACvBC,YAAY,EAAE9B,yBAAyB,CACrCU,eAAe,EACfe,qBAAqB,CAACK,YACxB;IACF,CAAC,GACDC,SAAS;IAEb,MAAMC,SAAS,GAAGJ,iBAAiB,GAC/B,IAAI1B,SAAS,CAACO,UAAU,EAAEC,eAAe,EAAEkB,iBAAiB,CAAC,GAC7D,IAAI1B,SAAS,CAACO,UAAU,EAAEC,eAAe,CAAC;IAE9C,MAAMuB,WAAW,GAAGP,mBAAmB,IAAID,qBAAqB,GAC5D,IAAIxB,yBAAyB,CAAiB;MAC5C,GAAGwB,qBAAqB;MACxBE,OAAO,EAAE,IAAI;MACbZ,QAAQ,EAAE,MAAOmB,MAAM,IAAK;QAC1B,MAAMC,MAAM,GAAGhB,iBAAiB,CAACG,OAAO;QAExC,IAAI,CAACa,MAAM,EAAER,OAAO,EAAE;UACpB;QACF;QAEA,MAAMQ,MAAM,CAACpB,QAAQ,CAACmB,MAAM,CAAC;MAC/B;IACF,CAAC,CAAC,GACF,IAAI;IAERjB,YAAY,CAACK,OAAO,GAAGU,SAAS;IAChCZ,4BAA4B,CAACE,OAAO,GAAGW,WAAW;IAElDD,SAAS,CAACI,SAAS,CAAC,CAAC;IAErB,OAAO,MAAM;MACXtC,YAAY,CAAC,MAAM,EAAE,yBAAyB,CAAC;MAC/CsB,4BAA4B,CAACE,OAAO,GAAG,IAAI;MAC3CL,YAAY,CAACK,OAAO,GAAG,IAAI;MAC3BU,SAAS,CAACK,OAAO,CAAC,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CACD3B,eAAe,EACfM,cAAc,EAAEW,OAAO,EACvBX,cAAc,EAAEsB,UAAU,EAC1BtB,cAAc,EAAEuB,cAAc,EAC9BvB,cAAc,EAAEc,YAAY,EAC5Bd,cAAc,EAAEwB,OAAO,EACvBxB,cAAc,EAAEyB,UAAU,EAC1BhC,UAAU,CACX,CAAC;EAEFd,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACX,aAAa,IAAI,CAACF,eAAe,CAACc,MAAM,EAAE;MAC7C;IACF;IACAP,YAAY,CAACK,OAAO,EAAEV,aAAa,CAACA,aAAa,CAAC;IAElD,OAAO,MAAM;MACXK,YAAY,CAACK,OAAO,EAAEV,aAAa,CAACmB,SAAS,CAAC;IAChD,CAAC;EACH,CAAC,EAAE,CAACnB,aAAa,EAAEF,eAAe,CAAC,CAAC;EAEpCf,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACV,OAAO,IAAI,CAACH,eAAe,CAACc,MAAM,EAAE;MACvC;IACF;IACAP,YAAY,CAACK,OAAO,EAAET,OAAO,CAACA,OAAO,CAAC;IAEtC,OAAO,MAAM;MACXI,YAAY,CAACK,OAAO,EAAET,OAAO,CAACkB,SAAS,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,CAAClB,OAAO,EAAEH,eAAe,CAAC,CAAC;EAE9Bf,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACb,eAAe,CAACc,MAAM,EAAE;MAC3B;IACF;IAEA,MAAMkB,QAAQ,GACZ1B,cAAc,EAAEW,OAAO,KAAK,IAAI,GAC3BgB,IAA4E,IAAK;MAChF5B,QAAQ,GAAG4B,IAAI,CAAC;MAChB,MAAMV,WAAW,GAAGb,4BAA4B,CAACE,OAAO;MAExD,IAAIW,WAAW,EAAE;QACf,KAAKA,WAAW,CAACW,OAAO,CAACD,IAAI,CAAC,CAACE,KAAK,CAAEC,KAAc,IAAK;UACvDjC,OAAO,GAAG;YACRiC,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;UACtD,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC,GACD/B,QAAQ;IAEd,IAAI,CAAC2B,QAAQ,EAAE;MACb;IACF;IAEAzB,YAAY,CAACK,OAAO,EAAEP,QAAQ,CAAC2B,QAAQ,CAAC;IAExC,OAAO,MAAM;MACXzB,YAAY,CAACK,OAAO,EAAEP,QAAQ,CAACgB,SAAS,CAAC;IAC3C,CAAC;EACH,CAAC,EAAE,CAACf,cAAc,EAAEW,OAAO,EAAEd,OAAO,EAAEE,QAAQ,EAAEL,eAAe,CAAC,CAAC;EAEjEf,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACT,qBAAqB,IAAI,CAACJ,eAAe,CAACc,MAAM,EAAE;MACrD;IACF;IAEAP,YAAY,CAACK,OAAO,EAAER,qBAAqB,CACzC,CAAC;MAAEmC,MAAM;MAAEC,UAAU;MAAEC;IAAmB,CAAC,KAAK;MAC9C9B,kBAAkB,CAAE+B,IAAI,IAAK;QAC3B,MAAMC,OAAO,GAAG,CAAC,GAAGD,IAAI,CAAC;QAEzB,MAAME,KAAK,GAAGD,OAAO,CAACE,SAAS,CAC5BC,IAAI,IAAKA,IAAI,CAACC,UAAU,KAAKP,UAAU,CAACQ,IAC3C,CAAC;QAED,IAAIJ,KAAK,KAAK,CAAC,CAAC,IAAI,CAACD,OAAO,CAACC,KAAK,CAAC,EAAE;UACnC,OAAOD,OAAO;QAChB;QAEAA,OAAO,CAACC,KAAK,CAAC,GAAG;UAAE,GAAGD,OAAO,CAACC,KAAK,CAAC;UAAEL;QAAO,CAAC;QAE9C,OAAOI,OAAO;MAChB,CAAC,CAAC;MAEFvC,qBAAqB,CAAC;QAAEmC,MAAM;QAAEC,UAAU;QAAEC;MAAmB,CAAC,CAAC;IACnE,CACF,CAAC;IAED,OAAO,MAAM;MACXlC,YAAY,CAACK,OAAO,EAAER,qBAAqB,CAACiB,SAAS,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACjB,qBAAqB,EAAEJ,eAAe,EAAEW,kBAAkB,CAAC,CAAC;EAEhE1B,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,IAAI,CAACb,eAAe,CAACc,MAAM,IAAIR,cAAc,EAAEW,OAAO,KAAK,IAAI,EAAE;MAC/D;IACF;IAEA,MAAMgC,aAAa,GAAG5D,mBAAmB,CACvCiB,cAAc,CAAC4C,sBACjB,CAAC;IAED,IAAID,aAAa,EAAEE,oBAAoB,CAACrC,MAAM,EAAE;MAC9CP,YAAY,CAACK,OAAO,EAAEwC,cAAc,CAACH,aAAa,CAACE,oBAAoB,CAAC;IAC1E;IAEA,KAAKzC,4BAA4B,CAACE,OAAO,EAAEyC,KAAK,CAAC,CAAC,CAAClB,KAAK,CAAEC,KAAc,IAAK;MAC3EjC,OAAO,GAAG;QACRiC,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACDpC,eAAe,EACfM,cAAc,EAAEW,OAAO,EACvBX,cAAc,EAAE4C,sBAAsB,EACtC/C,OAAO,CACR,CAAC;EAEFlB,KAAK,CAAC4B,SAAS,CAAC,MAAM;IACpB,MAAMyC,QAAQ,GAAGpE,QAAQ,CAACqE,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC9D,IAAIA,KAAK,KAAK,QAAQ,EAAE;QACtB;MACF;MACAjD,YAAY,CAACK,OAAO,EAAEc,SAAS,CAAC,CAAC;MACjC,KAAKhB,4BAA4B,CAACE,OAAO,EAAEyC,KAAK,CAAC,CAAC,CAAClB,KAAK,CAAEC,KAAc,IAAK;QAC3EjC,OAAO,GAAG;UACRiC,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;QACtD,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAM;MACXkB,QAAQ,CAACG,MAAM,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,CAACtD,OAAO,CAAC,CAAC;EAEb,oBAAOP,IAAA,CAAAF,SAAA;IAAAO,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CACF,CAEsB","ignoreList":[]}
|
|
@@ -28,15 +28,18 @@ export * from "./types/service.type.js";
|
|
|
28
28
|
export * from "./types/device-status.js";
|
|
29
29
|
export * from "./types/btprovider-props.js";
|
|
30
30
|
export * from "./types/btprovider-children-props.js";
|
|
31
|
+
export * from "./types/background-sync.js";
|
|
31
32
|
export * from "./types/result-callback.js";
|
|
32
33
|
export * from "./types/error-callback.js";
|
|
33
34
|
export * from "./types/device-status-change-callback.js";
|
|
34
35
|
export * from "./services/devices/bt-managed-device.js";
|
|
35
36
|
export * from "./services/devices/custom/custom.device.js";
|
|
36
37
|
export * from "./services/bt-manager.js";
|
|
38
|
+
export * from "./services/background-sync/background-ble-manager.js";
|
|
37
39
|
export * from "./services/custom/define-custom-device.js";
|
|
38
40
|
export * from "./services/devices/standard-gatt/standard-gatt.devices.js";
|
|
39
41
|
export * from "./services/devices/boso/boso.medicus.js";
|
|
42
|
+
export * from "./services/devices/uebe/visomat.comfort-soft-bt.js";
|
|
40
43
|
export * from "./services/devices/veroval/veroval.bp-monitors.js";
|
|
41
44
|
export * from "./services/devices/veroval/veroval.duo-control-device.js";
|
|
42
45
|
export * from "./services/devices/veroval/veroval.ecg-device.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":";;AAAA,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,gCAA6B;AAC3C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,wBAAqB;AACnC,cAAc,0BAAuB;AACrC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,yBAAsB;AACpC,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,sCAAmC;AACjD,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,0CAAuC;AAErD,cAAc,yCAAsC;AACpD,cAAc,4CAAyC;AACvD,cAAc,0BAAuB;AACrC,cAAc,2CAAwC;AACtD,cAAc,2DAAwD;AACtE,cAAc,yCAAsC;AACpD,cAAc,mDAAgD;AAC9D,cAAc,0DAAuD;AACrE,cAAc,kDAA+C;AAC7D,cAAc,mDAAgD;AAC9D,cAAc,4CAAyC;AACvD,cAAc,4CAAyC;AACvD,cAAc,iDAA8C;AAC5D,cAAc,+CAA4C;AAC1D,cAAc,mDAAgD;AAC9D,cAAc,2CAAwC;AACtD,cAAc,8CAA2C;AACzD,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,6CAA0C;AACxD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAE1D,cAAc,0CAAuC;AAErD,cAAc,6BAA0B;AACxC,cAAc,6CAA0C;AACxD,cAAc,oCAAiC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":";;AAAA,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,gCAA6B;AAC3C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,wBAAqB;AACnC,cAAc,0BAAuB;AACrC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,yBAAsB;AACpC,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,sCAAmC;AACjD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,0CAAuC;AAErD,cAAc,yCAAsC;AACpD,cAAc,4CAAyC;AACvD,cAAc,0BAAuB;AACrC,cAAc,sDAAmD;AACjE,cAAc,2CAAwC;AACtD,cAAc,2DAAwD;AACtE,cAAc,yCAAsC;AACpD,cAAc,oDAAiD;AAC/D,cAAc,mDAAgD;AAC9D,cAAc,0DAAuD;AACrE,cAAc,kDAA+C;AAC7D,cAAc,mDAAgD;AAC9D,cAAc,4CAAyC;AACvD,cAAc,4CAAyC;AACvD,cAAc,iDAA8C;AAC5D,cAAc,+CAA4C;AAC1D,cAAc,mDAAgD;AAC9D,cAAc,2CAAwC;AACtD,cAAc,8CAA2C;AACzD,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,6CAA0C;AACxD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAE1D,cAAc,0CAAuC;AAErD,cAAc,6BAA0B;AACxC,cAAc,6CAA0C;AACxD,cAAc,oCAAiC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BleManager } from "react-native-ble-plx";
|
|
4
|
+
const DEFAULT_RESTORE_STATE_IDENTIFIER = "com.ovok.native.background-sync";
|
|
5
|
+
const restoredStates = new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Creates a BLE manager configured for iOS CoreBluetooth state restoration. The returned
|
|
8
|
+
* manager must be created once at module scope, not inside a React render.
|
|
9
|
+
*/
|
|
10
|
+
const createBackgroundBleManager = ({
|
|
11
|
+
restoreStateIdentifier = DEFAULT_RESTORE_STATE_IDENTIFIER,
|
|
12
|
+
onRestoreState
|
|
13
|
+
} = {}) => new BleManager({
|
|
14
|
+
restoreStateIdentifier,
|
|
15
|
+
restoreStateFunction: state => {
|
|
16
|
+
restoredStates.set(restoreStateIdentifier, state);
|
|
17
|
+
onRestoreState?.(state);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const getRestoredBleState = (restoreStateIdentifier = DEFAULT_RESTORE_STATE_IDENTIFIER) => restoredStates.get(restoreStateIdentifier);
|
|
21
|
+
export { DEFAULT_RESTORE_STATE_IDENTIFIER, createBackgroundBleManager, getRestoredBleState };
|
|
22
|
+
//# sourceMappingURL=background-ble-manager.js.map
|
package/lib/module/modules/bt-management/services/background-sync/background-ble-manager.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BleManager","DEFAULT_RESTORE_STATE_IDENTIFIER","restoredStates","Map","createBackgroundBleManager","restoreStateIdentifier","onRestoreState","restoreStateFunction","state","set","getRestoredBleState","get"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-ble-manager.ts"],"mappings":";;AAAA,SACEA,UAAU,QAGL,sBAAsB;AAE7B,MAAMC,gCAAgC,GACpC,iCAAiC;AAEnC,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAkC,CAAC;AAOjE;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,GAAGA,CAAC;EAClCC,sBAAsB,GAAGJ,gCAAgC;EACzDK;AAC2B,CAAC,GAAG,CAAC,CAAC,KACjC,IAAIN,UAAU,CAAC;EACbK,sBAAsB;EACtBE,oBAAoB,EAAGC,KAAK,IAAK;IAC/BN,cAAc,CAACO,GAAG,CAACJ,sBAAsB,EAAEG,KAAK,CAAC;IACjDF,cAAc,GAAGE,KAAK,CAAC;EACzB;AACF,CAAC,CAAC;AAEJ,MAAME,mBAAmB,GAAGA,CAC1BL,sBAAsB,GAAGJ,gCAAgC,KAEzDC,cAAc,CAACS,GAAG,CAACN,sBAAsB,CAAC;AAE5C,SAEEJ,gCAAgC,EAChCG,0BAA0B,EAC1BM,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { IntegratedDevices } from "../../types/integrated-devices.js";
|
|
4
|
+
import { bc01MainServices } from "../devices/bc01/bc01.main-services.js";
|
|
5
|
+
import { bp2MainServices } from "../devices/bp2/bp2.main-services.js";
|
|
6
|
+
import { f4MainServices } from "../devices/f4/f4.main-services.js";
|
|
7
|
+
import { spo2MainServices } from "../devices/spo/spo2.main-services.js";
|
|
8
|
+
const normalize = uuid => uuid.toLowerCase();
|
|
9
|
+
const serviceUUIDs = services => services.map(service => normalize(service.uuid));
|
|
10
|
+
const BUILT_IN_SERVICE_UUIDS = {
|
|
11
|
+
[IntegratedDevices.BP2]: serviceUUIDs(bp2MainServices),
|
|
12
|
+
[IntegratedDevices.F4]: serviceUUIDs(f4MainServices),
|
|
13
|
+
[IntegratedDevices.PC60WF]: serviceUUIDs(spo2MainServices),
|
|
14
|
+
[IntegratedDevices.BC01]: serviceUUIDs(bc01MainServices),
|
|
15
|
+
[IntegratedDevices.VEROVAL_DUO_CONTROL]: ["5d4b8aa6-a26a-4a1b-99f5-cd4473c786e3"],
|
|
16
|
+
[IntegratedDevices.VEROVAL_ECG]: ["0000a000-0000-1000-8000-00805f9b34fb"]
|
|
17
|
+
};
|
|
18
|
+
export const getBackgroundServiceUUIDs = (acceptedDevices, additionalServiceUUIDs = []) => {
|
|
19
|
+
const uuids = new Set(additionalServiceUUIDs.map(normalize));
|
|
20
|
+
acceptedDevices.forEach(acceptedDevice => {
|
|
21
|
+
const deviceUUIDs = typeof acceptedDevice === "string" ? BUILT_IN_SERVICE_UUIDS[acceptedDevice] : serviceUUIDs(acceptedDevice.mainServices);
|
|
22
|
+
deviceUUIDs?.forEach(uuid => uuids.add(normalize(uuid)));
|
|
23
|
+
});
|
|
24
|
+
return [...uuids];
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=background-service-uuids.js.map
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","bc01MainServices","bp2MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","PC60WF","BC01","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,eAAe,QAAQ,qCAAkC;AAClE,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,CAACZ,iBAAiB,CAACa,GAAG,GAAGL,YAAY,CAACN,eAAe,CAAC;EACtD,CAACF,iBAAiB,CAACc,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACH,iBAAiB,CAACe,MAAM,GAAGP,YAAY,CAACJ,gBAAgB,CAAC;EAC1D,CAACJ,iBAAiB,CAACgB,IAAI,GAAGR,YAAY,CAACP,gBAAgB,CAAC;EACxD,CAACD,iBAAiB,CAACiB,mBAAmB,GAAG,CACvC,sCAAsC,CACvC;EACD,CAACjB,iBAAiB,CAACkB,WAAW,GAAG,CAC/B,sCAAsC;AAE1C,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,eAA0C,EAC1CC,sBAAyC,GAAG,EAAE,KACjC;EACb,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,sBAAsB,CAACX,GAAG,CAACL,SAAS,CAAC,CAAC;EAE5De,eAAe,CAACI,OAAO,CAAEC,cAAc,IAAK;IAC1C,MAAMC,WAAW,GACf,OAAOD,cAAc,KAAK,QAAQ,GAC9Bb,sBAAsB,CAACa,cAAc,CAAC,GACtCjB,YAAY,CAAEiB,cAAc,CAA4BE,YAAY,CAAC;IAE3ED,WAAW,EAAEF,OAAO,CAAElB,IAAI,IAAKgB,KAAK,CAACM,GAAG,CAACvB,SAAS,CAACC,IAAI,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGgB,KAAK,CAAC;AACnB,CAAC","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_QUEUE_KEY = "@ovok/native/background-sync/results";
|
|
4
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
5
|
+
const DEFAULT_RETRY_BACKOFF_MS = 30_000;
|
|
6
|
+
let resultSequence = 0;
|
|
7
|
+
const createResultId = () => {
|
|
8
|
+
resultSequence += 1;
|
|
9
|
+
return `${Date.now()}-${resultSequence}-${Math.random().toString(36).slice(2, 10)}`;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A small durable, at-least-once queue. The result is written before delivery and removed only
|
|
14
|
+
* after the consumer resolves. A process death between those two operations can deliver a
|
|
15
|
+
* result twice, so consumers should de-duplicate by `id`.
|
|
16
|
+
*/
|
|
17
|
+
class BackgroundSyncCoordinator {
|
|
18
|
+
operation = Promise.resolve();
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.storageKey = options.storageKey ?? DEFAULT_QUEUE_KEY;
|
|
22
|
+
this.maxRetries = Math.max(1, options.maxRetries ?? DEFAULT_MAX_RETRIES);
|
|
23
|
+
this.retryBackoffMs = Math.max(1, options.retryBackoffMs ?? DEFAULT_RETRY_BACKOFF_MS);
|
|
24
|
+
}
|
|
25
|
+
enqueue = result => this.runExclusive(async () => {
|
|
26
|
+
const queue = await this.readQueue();
|
|
27
|
+
queue.push({
|
|
28
|
+
id: createResultId(),
|
|
29
|
+
queuedAt: new Date().toISOString(),
|
|
30
|
+
attempt: 0,
|
|
31
|
+
nextAttemptAt: 0,
|
|
32
|
+
result
|
|
33
|
+
});
|
|
34
|
+
await this.writeQueue(queue);
|
|
35
|
+
await this.flushQueue(queue);
|
|
36
|
+
});
|
|
37
|
+
flush = () => this.runExclusive(async () => {
|
|
38
|
+
await this.flushQueue(await this.readQueue());
|
|
39
|
+
});
|
|
40
|
+
runExclusive = operation => {
|
|
41
|
+
const next = this.operation.then(operation, operation);
|
|
42
|
+
this.operation = next.catch(() => undefined);
|
|
43
|
+
return next;
|
|
44
|
+
};
|
|
45
|
+
readQueue = async () => {
|
|
46
|
+
const serialized = await this.options.storage.getItem(this.storageKey);
|
|
47
|
+
if (!serialized) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(serialized);
|
|
52
|
+
if (!Array.isArray(parsed)) {
|
|
53
|
+
throw new Error("Background sync queue is not an array");
|
|
54
|
+
}
|
|
55
|
+
return parsed;
|
|
56
|
+
} catch (error) {
|
|
57
|
+
await this.options.storage.setItem(this.storageKey, "[]");
|
|
58
|
+
throw new Error(`Background sync queue could not be read: ${error instanceof Error ? error.message : String(error)}`);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
writeQueue = async queue => {
|
|
62
|
+
await this.options.storage.setItem(this.storageKey, JSON.stringify(queue));
|
|
63
|
+
};
|
|
64
|
+
flushQueue = async queue => {
|
|
65
|
+
let changed = false;
|
|
66
|
+
const now = Date.now();
|
|
67
|
+
for (const item of [...queue]) {
|
|
68
|
+
if (item.exhausted || item.nextAttemptAt > now) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const attempt = item.attempt + 1;
|
|
72
|
+
try {
|
|
73
|
+
await this.options.onResult({
|
|
74
|
+
...item.result,
|
|
75
|
+
id: item.id,
|
|
76
|
+
queuedAt: item.queuedAt,
|
|
77
|
+
attempt
|
|
78
|
+
});
|
|
79
|
+
queue.splice(queue.indexOf(item), 1);
|
|
80
|
+
changed = true;
|
|
81
|
+
} catch {
|
|
82
|
+
item.attempt = attempt;
|
|
83
|
+
item.exhausted = attempt >= this.maxRetries;
|
|
84
|
+
item.nextAttemptAt = item.exhausted ? Number.MAX_SAFE_INTEGER : Date.now() + this.retryBackoffMs * 2 ** (attempt - 1);
|
|
85
|
+
changed = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (changed) {
|
|
89
|
+
await this.writeQueue(queue);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export { BackgroundSyncCoordinator, DEFAULT_QUEUE_KEY };
|
|
94
|
+
//# sourceMappingURL=background-sync-coordinator.js.map
|
package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_QUEUE_KEY","DEFAULT_MAX_RETRIES","DEFAULT_RETRY_BACKOFF_MS","resultSequence","createResultId","Date","now","Math","random","toString","slice","BackgroundSyncCoordinator","operation","Promise","resolve","constructor","options","storageKey","maxRetries","max","retryBackoffMs","enqueue","result","runExclusive","queue","readQueue","push","id","queuedAt","toISOString","attempt","nextAttemptAt","writeQueue","flushQueue","flush","next","then","catch","undefined","serialized","storage","getItem","parsed","JSON","parse","Array","isArray","Error","error","setItem","message","String","stringify","changed","item","exhausted","onResult","splice","indexOf","Number","MAX_SAFE_INTEGER"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,9 +10,10 @@ export class BTManager {
|
|
|
10
10
|
static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
|
|
11
11
|
devices = new Map();
|
|
12
12
|
eventSubscriptions = [];
|
|
13
|
-
constructor(bleManager, acceptedDevices) {
|
|
13
|
+
constructor(bleManager, acceptedDevices, options = {}) {
|
|
14
14
|
this.bleManager = bleManager;
|
|
15
15
|
this.acceptedDevices = acceptedDevices;
|
|
16
|
+
this.options = options;
|
|
16
17
|
this.deviceCreator = new DeviceCreator(this.acceptedDevices);
|
|
17
18
|
}
|
|
18
19
|
destroy = () => {
|
|
@@ -51,9 +52,20 @@ export class BTManager {
|
|
|
51
52
|
}
|
|
52
53
|
this.stateChangeListener?.remove();
|
|
53
54
|
this.stateChangeListener = undefined;
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const serviceUUIDs = this.options.serviceUUIDs ?? [];
|
|
56
|
+
if (Platform.OS === "ios" && this.options.backgroundEnabled && !serviceUUIDs.length) {
|
|
57
|
+
this.onErrorCallback?.({
|
|
58
|
+
error: "Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."
|
|
59
|
+
});
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
void Promise.resolve(this.bleManager.startDeviceScan(this.options.backgroundEnabled ? [...serviceUUIDs] : null, {
|
|
63
|
+
scanMode: this.options.backgroundEnabled ? ScanMode.LowPower : ScanMode.Balanced
|
|
64
|
+
}, this.onScanResult)).catch(error => {
|
|
65
|
+
this.onErrorCallback?.({
|
|
66
|
+
error: error instanceof Error ? error : String(error)
|
|
67
|
+
});
|
|
68
|
+
});
|
|
57
69
|
sentryLogger("info", "BT_MANAGER: Scan started (continuous mode)");
|
|
58
70
|
return;
|
|
59
71
|
}
|
|
@@ -92,6 +104,9 @@ export class BTManager {
|
|
|
92
104
|
});
|
|
93
105
|
this.devices.clear();
|
|
94
106
|
};
|
|
107
|
+
restoreDevices = devices => {
|
|
108
|
+
devices.forEach(device => this.onScanResult(null, device));
|
|
109
|
+
};
|
|
95
110
|
onDeviceFound = callback => {
|
|
96
111
|
sentryLogger("info", "BT_MANAGER: Setting onDeviceFound callback");
|
|
97
112
|
this.onDeviceFoundCallback = callback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","DeviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","constructor","bleManager","acceptedDevices","deviceCreator","destroy","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","onStateChange","state","PoweredOn","index","indexOf","splice","startDeviceScan","scanMode","Balanced","onScanResult","
|
|
1
|
+
{"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","DeviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","constructor","bleManager","acceptedDevices","options","deviceCreator","destroy","stopScan","stateChangeListener","remove","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","onStateChange","state","PoweredOn","index","indexOf","splice","serviceUUIDs","OS","backgroundEnabled","length","error","Promise","resolve","startDeviceScan","scanMode","LowPower","Balanced","onScanResult","catch","Error","String","sendIntent","push","stopDeviceScan","sub","restoreDevices","onDeviceFound","callback","onError","onDeviceStatusChanged","onResult","message","advertisedName","name","trim","localName","has","id","deviceName","getDeviceName","size","deviceId","currentSize","deviceClass","createDevice","bind","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","get","delete"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
|