react-native-ble-nitro 1.5.0 → 1.6.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/README.md +29 -1
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +4 -2
- package/ios/BleNitroBleManager.swift +1 -1
- package/lib/commonjs/manager.d.ts +34 -12
- package/lib/commonjs/manager.d.ts.map +1 -1
- package/lib/commonjs/manager.js +63 -13
- package/lib/commonjs/manager.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
- package/lib/manager.d.ts +34 -12
- package/lib/manager.js +62 -13
- package/lib/specs/NativeBleNitro.nitro.d.ts +1 -1
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +3 -3
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +3 -3
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +9 -0
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +2 -2
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +2 -2
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +1 -1
- package/package.json +1 -1
- package/src/__tests__/index.test.ts +17 -17
- package/src/manager.ts +66 -13
- package/src/specs/NativeBleNitro.nitro.ts +1 -1
package/README.md
CHANGED
|
@@ -145,6 +145,21 @@ const deviceId = await ble.connect(deviceId, (deviceId, interrupted, error) => {
|
|
|
145
145
|
// Connect without disconnect callback
|
|
146
146
|
const deviceId = await ble.connect(deviceId);
|
|
147
147
|
|
|
148
|
+
// You can also use findAndConnect to scan and connect in one step
|
|
149
|
+
// This could be useful for reconnecting after app restart or when device was disconnected unexpectedly
|
|
150
|
+
const deviceId = await ble.findAndConnect(deviceId, {
|
|
151
|
+
scanTimeout: 4000, // default 5000ms
|
|
152
|
+
onDisconnect: (deviceId, interrupted, error) => {
|
|
153
|
+
if (interrupted) {
|
|
154
|
+
console.log('Connection interrupted:', error);
|
|
155
|
+
// Handle unexpected disconnection (out of range, etc.)
|
|
156
|
+
} else {
|
|
157
|
+
console.log('Disconnected intentionally');
|
|
158
|
+
// Handle normal disconnection
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
148
163
|
// Disconnect from a device
|
|
149
164
|
await ble.disconnect(deviceId);
|
|
150
165
|
|
|
@@ -185,6 +200,10 @@ const characteristics = ble.getCharacteristics(deviceId, serviceUUID);
|
|
|
185
200
|
const characteristics1 = ble.getCharacteristics(deviceId, '180d'); // Short form
|
|
186
201
|
const characteristics2 = ble.getCharacteristics(deviceId, '0000180d-0000-1000-8000-00805f9b34fb'); // Long form
|
|
187
202
|
// Both work identically - conversion handled automatically
|
|
203
|
+
|
|
204
|
+
// Get services with their characteristics
|
|
205
|
+
const servicesWithCharacteristics = await ble.getServicesWithCharacteristics(deviceId);
|
|
206
|
+
// Returns: [{ uuid: '0000180d-0000-1000-8000-00805f9b34fb', characteristics: ['00002a37-0000-1000-8000-00805f9b34fb', ...] }, ...]
|
|
188
207
|
```
|
|
189
208
|
|
|
190
209
|
#### 📖 Reading Characteristics
|
|
@@ -256,7 +275,16 @@ const HEART_RATE_SERVICE = '180d';
|
|
|
256
275
|
const HEART_RATE_MEASUREMENT = '2a37';
|
|
257
276
|
|
|
258
277
|
// Connect and subscribe to heart rate
|
|
259
|
-
const
|
|
278
|
+
const autoConnectOnAndroid = true; // Optional: auto-reconnect on Android
|
|
279
|
+
const deviceId = await ble.connect(
|
|
280
|
+
heartRateDeviceId,
|
|
281
|
+
(deviceId, interrupted, error) => {
|
|
282
|
+
console.log('Device got Disconnected');
|
|
283
|
+
console.log('Was Interrupted?', interrupted);
|
|
284
|
+
console.log('Error:', error);
|
|
285
|
+
},
|
|
286
|
+
autoConnectOnAndroid,
|
|
287
|
+
);
|
|
260
288
|
await ble.discoverServices(deviceId);
|
|
261
289
|
|
|
262
290
|
const subscription = ble.subscribeToCharacteristic(
|
|
@@ -503,7 +503,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
503
503
|
override fun connect(
|
|
504
504
|
deviceId: String,
|
|
505
505
|
callback: (success: Boolean, deviceId: String, error: String) -> Unit,
|
|
506
|
-
disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)
|
|
506
|
+
disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?,
|
|
507
|
+
autoConnectAndroid: Boolean?
|
|
507
508
|
) {
|
|
508
509
|
try {
|
|
509
510
|
initializeBluetoothIfNeeded()
|
|
@@ -531,7 +532,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
531
532
|
// Connect to device
|
|
532
533
|
val context = appContext
|
|
533
534
|
if (context != null) {
|
|
534
|
-
val
|
|
535
|
+
val autoConnect = autoConnectAndroid ?: false
|
|
536
|
+
val gatt = device.connectGatt(context, autoConnect, gattCallback)
|
|
535
537
|
connectedDevices[deviceId] = gatt
|
|
536
538
|
} else {
|
|
537
539
|
callback(false, deviceId, "Context not available")
|
|
@@ -192,7 +192,7 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
// MARK: - Connection Management
|
|
195
|
-
public func connect(deviceId: String, callback: @escaping (Bool, String, String) -> Void, disconnectCallback: ((String, Bool, String) -> Void)?) throws {
|
|
195
|
+
public func connect(deviceId: String, callback: @escaping (Bool, String, String) -> Void, disconnectCallback: ((String, Bool, String) -> Void)?, autoConnectAndroid: Bool?) throws {
|
|
196
196
|
// Find peripheral by identifier
|
|
197
197
|
guard let peripheral = findPeripheral(by: deviceId) else {
|
|
198
198
|
callback(false, "", "Peripheral not found")
|
|
@@ -72,17 +72,17 @@ export declare class BleNitroManager {
|
|
|
72
72
|
* Start scanning for Bluetooth devices
|
|
73
73
|
* @param filter Optional scan filter
|
|
74
74
|
* @param callback Callback function called when a device is found
|
|
75
|
-
* @returns
|
|
75
|
+
* @returns void
|
|
76
76
|
*/
|
|
77
77
|
startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
|
|
78
78
|
/**
|
|
79
79
|
* Stop scanning for Bluetooth devices
|
|
80
|
-
* @returns
|
|
80
|
+
* @returns void
|
|
81
81
|
*/
|
|
82
82
|
stopScan(): void;
|
|
83
83
|
/**
|
|
84
84
|
* Check if currently scanning for devices
|
|
85
|
-
* @returns
|
|
85
|
+
* @returns Boolean indicating if currently scanning
|
|
86
86
|
*/
|
|
87
87
|
isScanning(): boolean;
|
|
88
88
|
/**
|
|
@@ -95,9 +95,20 @@ export declare class BleNitroManager {
|
|
|
95
95
|
* Connect to a Bluetooth device
|
|
96
96
|
* @param deviceId ID of the device to connect to
|
|
97
97
|
* @param onDisconnect Optional callback for disconnect events
|
|
98
|
-
* @returns Promise resolving when connected
|
|
98
|
+
* @returns Promise resolving deviceId when connected
|
|
99
99
|
*/
|
|
100
|
-
connect(deviceId: string, onDisconnect?: DisconnectEventCallback): Promise<string>;
|
|
100
|
+
connect(deviceId: string, onDisconnect?: DisconnectEventCallback, autoConnectAndroid?: boolean): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Scans for a device and connects to it
|
|
103
|
+
* @param deviceId ID of the device to connect to
|
|
104
|
+
* @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
|
|
105
|
+
* @returns Promise resolving deviceId when connected
|
|
106
|
+
*/
|
|
107
|
+
findAndConnect(deviceId: string, options?: {
|
|
108
|
+
scanTimeout?: number;
|
|
109
|
+
autoConnectAndroid?: boolean;
|
|
110
|
+
onDisconnect?: DisconnectEventCallback;
|
|
111
|
+
}): Promise<string>;
|
|
101
112
|
/**
|
|
102
113
|
* Disconnect from a Bluetooth device
|
|
103
114
|
* @param deviceId ID of the device to disconnect from
|
|
@@ -107,7 +118,7 @@ export declare class BleNitroManager {
|
|
|
107
118
|
/**
|
|
108
119
|
* Check if connected to a device
|
|
109
120
|
* @param deviceId ID of the device to check
|
|
110
|
-
* @returns
|
|
121
|
+
* @returns Boolean indicating if device is connected
|
|
111
122
|
*/
|
|
112
123
|
isConnected(deviceId: string): boolean;
|
|
113
124
|
/**
|
|
@@ -139,15 +150,26 @@ export declare class BleNitroManager {
|
|
|
139
150
|
* Get characteristics for a service
|
|
140
151
|
* @param deviceId ID of the device
|
|
141
152
|
* @param serviceId ID of the service
|
|
142
|
-
* @returns
|
|
153
|
+
* @returns array of characteristic UUIDs
|
|
143
154
|
*/
|
|
144
155
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
156
|
+
/**
|
|
157
|
+
* Get services and characteristics for a connected device
|
|
158
|
+
* @param deviceId ID of the device
|
|
159
|
+
* @returns Promise resolving to array of service and characteristic UUIDs
|
|
160
|
+
* @see getServices
|
|
161
|
+
* @see getCharacteristics
|
|
162
|
+
*/
|
|
163
|
+
getServicesWithCharacteristics(deviceId: string): Promise<{
|
|
164
|
+
uuid: string;
|
|
165
|
+
characteristics: string[];
|
|
166
|
+
}[]>;
|
|
145
167
|
/**
|
|
146
168
|
* Read a characteristic value
|
|
147
169
|
* @param deviceId ID of the device
|
|
148
170
|
* @param serviceId ID of the service
|
|
149
171
|
* @param characteristicId ID of the characteristic
|
|
150
|
-
* @returns Promise resolving to the characteristic data as
|
|
172
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
151
173
|
*/
|
|
152
174
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
153
175
|
/**
|
|
@@ -166,7 +188,7 @@ export declare class BleNitroManager {
|
|
|
166
188
|
* @param serviceId ID of the service
|
|
167
189
|
* @param characteristicId ID of the characteristic
|
|
168
190
|
* @param callback Callback function called when notification is received
|
|
169
|
-
* @returns
|
|
191
|
+
* @returns Subscription
|
|
170
192
|
*/
|
|
171
193
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Subscription;
|
|
172
194
|
/**
|
|
@@ -179,7 +201,7 @@ export declare class BleNitroManager {
|
|
|
179
201
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<void>;
|
|
180
202
|
/**
|
|
181
203
|
* Check if Bluetooth is enabled
|
|
182
|
-
* @returns
|
|
204
|
+
* @returns returns Boolean according to Bluetooth state
|
|
183
205
|
*/
|
|
184
206
|
isBluetoothEnabled(): boolean;
|
|
185
207
|
/**
|
|
@@ -189,7 +211,7 @@ export declare class BleNitroManager {
|
|
|
189
211
|
requestBluetoothEnable(): Promise<boolean>;
|
|
190
212
|
/**
|
|
191
213
|
* Get the current Bluetooth state
|
|
192
|
-
* @returns
|
|
214
|
+
* @returns Bluetooth state
|
|
193
215
|
* @see BLEState
|
|
194
216
|
*/
|
|
195
217
|
state(): BLEState;
|
|
@@ -197,7 +219,7 @@ export declare class BleNitroManager {
|
|
|
197
219
|
* Subscribe to Bluetooth state changes
|
|
198
220
|
* @param callback Callback function called when state changes
|
|
199
221
|
* @param emitInitial Whether to emit initial state callback
|
|
200
|
-
* @returns
|
|
222
|
+
* @returns Subscription
|
|
201
223
|
* @see BLEState
|
|
202
224
|
*/
|
|
203
225
|
subscribeToStateChange(callback: (state: BLEState) => void, emitInitial?: boolean): Subscription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
|
package/lib/commonjs/manager.js
CHANGED
|
@@ -115,7 +115,7 @@ class BleNitroManager {
|
|
|
115
115
|
* Start scanning for Bluetooth devices
|
|
116
116
|
* @param filter Optional scan filter
|
|
117
117
|
* @param callback Callback function called when a device is found
|
|
118
|
-
* @returns
|
|
118
|
+
* @returns void
|
|
119
119
|
*/
|
|
120
120
|
startScan(filter = {}, callback, onError) {
|
|
121
121
|
var _a, _b, _c;
|
|
@@ -147,7 +147,7 @@ class BleNitroManager {
|
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* Stop scanning for Bluetooth devices
|
|
150
|
-
* @returns
|
|
150
|
+
* @returns void
|
|
151
151
|
*/
|
|
152
152
|
stopScan() {
|
|
153
153
|
if (!this._isScanning) {
|
|
@@ -158,7 +158,7 @@ class BleNitroManager {
|
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
160
|
* Check if currently scanning for devices
|
|
161
|
-
* @returns
|
|
161
|
+
* @returns Boolean indicating if currently scanning
|
|
162
162
|
*/
|
|
163
163
|
isScanning() {
|
|
164
164
|
this._isScanning = NativeBleNitro_1.default.isScanning();
|
|
@@ -178,9 +178,9 @@ class BleNitroManager {
|
|
|
178
178
|
* Connect to a Bluetooth device
|
|
179
179
|
* @param deviceId ID of the device to connect to
|
|
180
180
|
* @param onDisconnect Optional callback for disconnect events
|
|
181
|
-
* @returns Promise resolving when connected
|
|
181
|
+
* @returns Promise resolving deviceId when connected
|
|
182
182
|
*/
|
|
183
|
-
connect(deviceId, onDisconnect) {
|
|
183
|
+
connect(deviceId, onDisconnect, autoConnectAndroid) {
|
|
184
184
|
return new Promise((resolve, reject) => {
|
|
185
185
|
// Check if already connected
|
|
186
186
|
if (this._connectedDevices[deviceId]) {
|
|
@@ -199,7 +199,40 @@ class BleNitroManager {
|
|
|
199
199
|
// Remove from connected devices when disconnected
|
|
200
200
|
delete this._connectedDevices[deviceId];
|
|
201
201
|
onDisconnect(deviceId, interrupted, error);
|
|
202
|
-
} : undefined);
|
|
202
|
+
} : undefined, autoConnectAndroid !== null && autoConnectAndroid !== void 0 ? autoConnectAndroid : false);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Scans for a device and connects to it
|
|
207
|
+
* @param deviceId ID of the device to connect to
|
|
208
|
+
* @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
|
|
209
|
+
* @returns Promise resolving deviceId when connected
|
|
210
|
+
*/
|
|
211
|
+
findAndConnect(deviceId, options) {
|
|
212
|
+
const isConnected = this.isConnected(deviceId);
|
|
213
|
+
if (isConnected) {
|
|
214
|
+
return Promise.resolve(deviceId);
|
|
215
|
+
}
|
|
216
|
+
if (this._isScanning) {
|
|
217
|
+
this.stopScan();
|
|
218
|
+
}
|
|
219
|
+
return new Promise((resolve, reject) => {
|
|
220
|
+
var _a;
|
|
221
|
+
const timeoutScan = setTimeout(() => {
|
|
222
|
+
this.stopScan();
|
|
223
|
+
reject(new Error('Scan timed out'));
|
|
224
|
+
}, (_a = options === null || options === void 0 ? void 0 : options.scanTimeout) !== null && _a !== void 0 ? _a : 5000);
|
|
225
|
+
this.startScan(undefined, (device) => {
|
|
226
|
+
if (device.id === deviceId) {
|
|
227
|
+
this.stopScan();
|
|
228
|
+
clearTimeout(timeoutScan);
|
|
229
|
+
this.connect(deviceId, options === null || options === void 0 ? void 0 : options.onDisconnect, options === null || options === void 0 ? void 0 : options.autoConnectAndroid).then(async (connectedDeviceId) => {
|
|
230
|
+
resolve(connectedDeviceId);
|
|
231
|
+
}).catch((error) => {
|
|
232
|
+
reject(error);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
});
|
|
203
236
|
});
|
|
204
237
|
}
|
|
205
238
|
/**
|
|
@@ -228,7 +261,7 @@ class BleNitroManager {
|
|
|
228
261
|
/**
|
|
229
262
|
* Check if connected to a device
|
|
230
263
|
* @param deviceId ID of the device to check
|
|
231
|
-
* @returns
|
|
264
|
+
* @returns Boolean indicating if device is connected
|
|
232
265
|
*/
|
|
233
266
|
isConnected(deviceId) {
|
|
234
267
|
return NativeBleNitro_1.default.isConnected(deviceId);
|
|
@@ -313,7 +346,7 @@ class BleNitroManager {
|
|
|
313
346
|
* Get characteristics for a service
|
|
314
347
|
* @param deviceId ID of the device
|
|
315
348
|
* @param serviceId ID of the service
|
|
316
|
-
* @returns
|
|
349
|
+
* @returns array of characteristic UUIDs
|
|
317
350
|
*/
|
|
318
351
|
getCharacteristics(deviceId, serviceId) {
|
|
319
352
|
if (!this._connectedDevices[deviceId]) {
|
|
@@ -322,12 +355,29 @@ class BleNitroManager {
|
|
|
322
355
|
const characteristics = NativeBleNitro_1.default.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
|
|
323
356
|
return BleNitroManager.normalizeGattUUIDs(characteristics);
|
|
324
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Get services and characteristics for a connected device
|
|
360
|
+
* @param deviceId ID of the device
|
|
361
|
+
* @returns Promise resolving to array of service and characteristic UUIDs
|
|
362
|
+
* @see getServices
|
|
363
|
+
* @see getCharacteristics
|
|
364
|
+
*/
|
|
365
|
+
async getServicesWithCharacteristics(deviceId) {
|
|
366
|
+
await this.discoverServices(deviceId);
|
|
367
|
+
const services = await this.getServices(deviceId);
|
|
368
|
+
return services.map((service) => {
|
|
369
|
+
return {
|
|
370
|
+
uuid: service,
|
|
371
|
+
characteristics: this.getCharacteristics(deviceId, service),
|
|
372
|
+
};
|
|
373
|
+
});
|
|
374
|
+
}
|
|
325
375
|
/**
|
|
326
376
|
* Read a characteristic value
|
|
327
377
|
* @param deviceId ID of the device
|
|
328
378
|
* @param serviceId ID of the service
|
|
329
379
|
* @param characteristicId ID of the characteristic
|
|
330
|
-
* @returns Promise resolving to the characteristic data as
|
|
380
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
331
381
|
*/
|
|
332
382
|
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
333
383
|
return new Promise((resolve, reject) => {
|
|
@@ -380,7 +430,7 @@ class BleNitroManager {
|
|
|
380
430
|
* @param serviceId ID of the service
|
|
381
431
|
* @param characteristicId ID of the characteristic
|
|
382
432
|
* @param callback Callback function called when notification is received
|
|
383
|
-
* @returns
|
|
433
|
+
* @returns Subscription
|
|
384
434
|
*/
|
|
385
435
|
subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
386
436
|
// Check if connected first
|
|
@@ -431,7 +481,7 @@ class BleNitroManager {
|
|
|
431
481
|
}
|
|
432
482
|
/**
|
|
433
483
|
* Check if Bluetooth is enabled
|
|
434
|
-
* @returns
|
|
484
|
+
* @returns returns Boolean according to Bluetooth state
|
|
435
485
|
*/
|
|
436
486
|
isBluetoothEnabled() {
|
|
437
487
|
return this.state() === BLEState.PoweredOn;
|
|
@@ -454,7 +504,7 @@ class BleNitroManager {
|
|
|
454
504
|
}
|
|
455
505
|
/**
|
|
456
506
|
* Get the current Bluetooth state
|
|
457
|
-
* @returns
|
|
507
|
+
* @returns Bluetooth state
|
|
458
508
|
* @see BLEState
|
|
459
509
|
*/
|
|
460
510
|
state() {
|
|
@@ -464,7 +514,7 @@ class BleNitroManager {
|
|
|
464
514
|
* Subscribe to Bluetooth state changes
|
|
465
515
|
* @param callback Callback function called when state changes
|
|
466
516
|
* @param emitInitial Whether to emit initial state callback
|
|
467
|
-
* @returns
|
|
517
|
+
* @returns Subscription
|
|
468
518
|
* @see BLEState
|
|
469
519
|
*/
|
|
470
520
|
subscribeToStateChange(callback, emitInitial = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":";;;;;;AA8EA,kEAUC;AAED,8FAQC;AAED,8EAWC;AAED,wDAEC;AAED,wDAEC;AAvHD,4EAAoD;AACpD,2DAMgC;AAmDhC,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,uCAA2B,CAAA;IAC3B,yCAA6B,CAAA;IAC7B,qCAAyB,CAAA;IACzB,mCAAuB,CAAA;AACzB,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB;AAAA,CAAC;AAEF,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;IACrB,wCAAqB,CAAA;IACrB,kDAA+B,CAAA;AACjC,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAMD,SAAgB,2BAA2B,CAAC,WAA2B;IACrE,MAAM,GAAG,GAAG;QACV,CAAC,EAAE,QAAQ,CAAC,OAAO;QACnB,CAAC,EAAE,QAAQ,CAAC,SAAS;QACrB,CAAC,EAAE,QAAQ,CAAC,WAAW;QACvB,CAAC,EAAE,QAAQ,CAAC,YAAY;QACxB,CAAC,EAAE,QAAQ,CAAC,UAAU;QACtB,CAAC,EAAE,QAAQ,CAAC,SAAS;KACtB,CAAC;IACF,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,yCAAyC,CAAC,QAAyB;IACjF,MAAM,GAAG,GAAG;QACV,UAAU,EAAE,gCAAqB,CAAC,UAAU;QAC5C,QAAQ,EAAE,gCAAqB,CAAC,QAAQ;QACxC,QAAQ,EAAE,gCAAqB,CAAC,QAAQ;QACxC,aAAa,EAAE,gCAAqB,CAAC,aAAa;KACnD,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,iCAAiC,CAAC,eAAgC;IAChF,OAAO;QACL,GAAG,eAAe;QAClB,YAAY,EAAE,eAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9E,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,eAAe,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpF,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;aACzC,CAAC,CAAC;SACJ;KACF,CAAA;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAmB;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAe;IACpD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC;AAED,MAAa,eAAe;IAO1B,YAAY,OAAgC;QANpC,gBAAW,GAAY,KAAK,CAAC;QAC7B,sBAAiB,GAAoC,EAAE,CAAC;QAExD,2BAAsB,GAAgC,IAAI,CAAC;QAC3D,mBAAc,GAAuB,IAAI,CAAC;QAGhD,IAAI,CAAC,sBAAsB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,IAAI,CAAC;QAC/D,wBAAc,CAAC,uBAAuB,CAAC,CAAC,WAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7H,CAAC;IAEO,4BAA4B,CAAC,WAA8B;QACjE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC;QAClG,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACnC,CAAC;IACH,CAAC;IAEM,eAAe,CAAC,QAA8B;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,+BAA+B;QAC/B,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,sCAAsC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,GAAG,MAAM,8BAA8B,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,KAAe;QAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACI,SAAS,CACd,SAAqB,EAAE,EACvB,QAAsB,EACtB,OAAiC;;QAEjC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAqB;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,aAAa,EAAE,MAAA,MAAM,CAAC,aAAa,mCAAI,CAAC,GAAG;YAC3C,eAAe,EAAE,MAAA,MAAM,CAAC,eAAe,mCAAI,KAAK;YAChD,eAAe,EAAE,yCAAyC,CAAC,MAAA,MAAM,CAAC,eAAe,mCAAI,eAAe,CAAC,QAAQ,CAAC;SAC/G,CAAC;QAEF,0BAA0B;QAC1B,MAAM,YAAY,GAAuB,CAAC,MAA8B,EAAE,KAAoB,EAAE,EAAE;YAChG,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,MAAO,CAAC,CAAC,+DAA+D;YACjF,2CAA2C;YAC3C,MAAM,eAAe,GAAc,iCAAiC,CAAC,MAAM,CAAC,CAAC;YAC7E,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,aAAa;QACb,wBAAc,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,wBAAc,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,IAAI,CAAC,WAAW,GAAG,wBAAc,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,QAAmB;QAC5C,MAAM,OAAO,GAAG,wBAAc,CAAC,mBAAmB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACnE,4EAA4E;QAC5E,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACI,OAAO,CACZ,QAAgB,EAChB,YAAsC,EACtC,kBAA4B;QAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,6BAA6B;YAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,OAAO,CACpB,QAAQ,EACR,CAAC,OAAgB,EAAE,iBAAyB,EAAE,KAAa,EAAE,EAAE;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACxC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,EACD,YAAY,CAAC,CAAC,CAAC,CAAC,QAAgB,EAAE,WAAoB,EAAE,KAAa,EAAE,EAAE;gBACvE,kDAAkD;gBAClD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC,CAAC,SAAS,EACb,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,KAAK,CAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,QAAgB,EAAE,OAAwG;QAC9I,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtC,CAAC,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnC,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE;wBAC1G,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,gCAAgC;YAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,UAAU,CACvB,QAAQ,EACR,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgB;QACjC,OAAO,wBAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,QAAgB,EAAE,GAAW;QAC7C,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,wBAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,QAAgB;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,QAAQ,CACrB,QAAQ,EACR,CAAC,OAAgB,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;gBAChD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,QAAgB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,gBAAgB,CAC7B,QAAQ,EACR,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgB;QACjC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,wBAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,kBAAkB,CACvB,QAAgB,EAChB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,eAAe,GAAG,wBAAc,CAAC,kBAAkB,CACvD,QAAQ,EACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAC7C,CAAC;QACF,OAAO,eAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,8BAA8B,CAAC,QAAgB;QAC1D,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,kBAAkB,CACvB,QAAgB,EAChB,SAAiB,EACjB,gBAAwB;QAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,kBAAkB,CAC/B,QAAQ,EACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC5C,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACnD,CAAC,OAAgB,EAAE,IAAiB,EAAE,KAAa,EAAE,EAAE;gBACrD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,mBAAmB,CACxB,QAAgB,EAChB,SAAiB,EACjB,gBAAwB,EACxB,IAAe,EACf,eAAwB,IAAI;QAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,mBAAmB,CAChC,QAAQ,EACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC5C,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACnD,sBAAsB,CAAC,IAAI,CAAC,EAC5B,YAAY,EACZ,CAAC,OAAgB,EAAE,YAAyB,EAAE,KAAa,EAAE,EAAE;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,4CAA4C;oBAC5C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;oBAC/D,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,yBAAyB,CAC9B,QAAgB,EAChB,SAAiB,EACjB,gBAAwB,EACxB,QAAsC;QAEtC,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,wBAAc,CAAC,yBAAyB,CACtC,QAAQ,EACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC5C,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACnD,CAAC,MAAc,EAAE,IAAiB,EAAE,EAAE;YACpC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC,EACD,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACjB,QAAQ,GAAG,OAAO,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,6BAA6B,CAChC,QAAQ,EACR,SAAS,EACT,gBAAgB,CACjB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,6BAA6B,CAClC,QAAgB,EAChB,SAAiB,EACjB,gBAAwB;QAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAc,CAAC,6BAA6B,CAC1C,QAAQ,EACR,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC5C,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EACnD,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,sBAAsB;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,wBAAc,CAAC,sBAAsB,CACnC,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK;QACV,OAAO,2BAA2B,CAAC,wBAAc,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACI,sBAAsB,CAAC,QAAmC,EAAE,WAAW,GAAG,KAAK;QAClF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,wBAAc,CAAC,sBAAsB,CAAC,CAAC,WAA2B,EAAE,EAAE;YACpE,QAAQ,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,GAAG,EAAE;gBACX,wBAAc,CAAC,0BAA0B,EAAE,CAAC;YAC9C,CAAC;SACF,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,OAAO,wBAAc,CAAC,YAAY,EAAE,CAAC;IACvC,CAAC;CACF;AA1kBD,0CA0kBC"}
|
|
@@ -65,7 +65,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
65
65
|
stopScan(): boolean;
|
|
66
66
|
isScanning(): boolean;
|
|
67
67
|
getConnectedDevices(services: string[]): BLEDevice[];
|
|
68
|
-
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
|
|
68
|
+
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
|
|
69
69
|
disconnect(deviceId: string, callback: OperationCallback): void;
|
|
70
70
|
isConnected(deviceId: string): boolean;
|
|
71
71
|
requestMTU(deviceId: string, mtu: number): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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"}
|
package/lib/manager.d.ts
CHANGED
|
@@ -72,17 +72,17 @@ export declare class BleNitroManager {
|
|
|
72
72
|
* Start scanning for Bluetooth devices
|
|
73
73
|
* @param filter Optional scan filter
|
|
74
74
|
* @param callback Callback function called when a device is found
|
|
75
|
-
* @returns
|
|
75
|
+
* @returns void
|
|
76
76
|
*/
|
|
77
77
|
startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
|
|
78
78
|
/**
|
|
79
79
|
* Stop scanning for Bluetooth devices
|
|
80
|
-
* @returns
|
|
80
|
+
* @returns void
|
|
81
81
|
*/
|
|
82
82
|
stopScan(): void;
|
|
83
83
|
/**
|
|
84
84
|
* Check if currently scanning for devices
|
|
85
|
-
* @returns
|
|
85
|
+
* @returns Boolean indicating if currently scanning
|
|
86
86
|
*/
|
|
87
87
|
isScanning(): boolean;
|
|
88
88
|
/**
|
|
@@ -95,9 +95,20 @@ export declare class BleNitroManager {
|
|
|
95
95
|
* Connect to a Bluetooth device
|
|
96
96
|
* @param deviceId ID of the device to connect to
|
|
97
97
|
* @param onDisconnect Optional callback for disconnect events
|
|
98
|
-
* @returns Promise resolving when connected
|
|
98
|
+
* @returns Promise resolving deviceId when connected
|
|
99
99
|
*/
|
|
100
|
-
connect(deviceId: string, onDisconnect?: DisconnectEventCallback): Promise<string>;
|
|
100
|
+
connect(deviceId: string, onDisconnect?: DisconnectEventCallback, autoConnectAndroid?: boolean): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Scans for a device and connects to it
|
|
103
|
+
* @param deviceId ID of the device to connect to
|
|
104
|
+
* @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
|
|
105
|
+
* @returns Promise resolving deviceId when connected
|
|
106
|
+
*/
|
|
107
|
+
findAndConnect(deviceId: string, options?: {
|
|
108
|
+
scanTimeout?: number;
|
|
109
|
+
autoConnectAndroid?: boolean;
|
|
110
|
+
onDisconnect?: DisconnectEventCallback;
|
|
111
|
+
}): Promise<string>;
|
|
101
112
|
/**
|
|
102
113
|
* Disconnect from a Bluetooth device
|
|
103
114
|
* @param deviceId ID of the device to disconnect from
|
|
@@ -107,7 +118,7 @@ export declare class BleNitroManager {
|
|
|
107
118
|
/**
|
|
108
119
|
* Check if connected to a device
|
|
109
120
|
* @param deviceId ID of the device to check
|
|
110
|
-
* @returns
|
|
121
|
+
* @returns Boolean indicating if device is connected
|
|
111
122
|
*/
|
|
112
123
|
isConnected(deviceId: string): boolean;
|
|
113
124
|
/**
|
|
@@ -139,15 +150,26 @@ export declare class BleNitroManager {
|
|
|
139
150
|
* Get characteristics for a service
|
|
140
151
|
* @param deviceId ID of the device
|
|
141
152
|
* @param serviceId ID of the service
|
|
142
|
-
* @returns
|
|
153
|
+
* @returns array of characteristic UUIDs
|
|
143
154
|
*/
|
|
144
155
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
156
|
+
/**
|
|
157
|
+
* Get services and characteristics for a connected device
|
|
158
|
+
* @param deviceId ID of the device
|
|
159
|
+
* @returns Promise resolving to array of service and characteristic UUIDs
|
|
160
|
+
* @see getServices
|
|
161
|
+
* @see getCharacteristics
|
|
162
|
+
*/
|
|
163
|
+
getServicesWithCharacteristics(deviceId: string): Promise<{
|
|
164
|
+
uuid: string;
|
|
165
|
+
characteristics: string[];
|
|
166
|
+
}[]>;
|
|
145
167
|
/**
|
|
146
168
|
* Read a characteristic value
|
|
147
169
|
* @param deviceId ID of the device
|
|
148
170
|
* @param serviceId ID of the service
|
|
149
171
|
* @param characteristicId ID of the characteristic
|
|
150
|
-
* @returns Promise resolving to the characteristic data as
|
|
172
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
151
173
|
*/
|
|
152
174
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
153
175
|
/**
|
|
@@ -166,7 +188,7 @@ export declare class BleNitroManager {
|
|
|
166
188
|
* @param serviceId ID of the service
|
|
167
189
|
* @param characteristicId ID of the characteristic
|
|
168
190
|
* @param callback Callback function called when notification is received
|
|
169
|
-
* @returns
|
|
191
|
+
* @returns Subscription
|
|
170
192
|
*/
|
|
171
193
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Subscription;
|
|
172
194
|
/**
|
|
@@ -179,7 +201,7 @@ export declare class BleNitroManager {
|
|
|
179
201
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<void>;
|
|
180
202
|
/**
|
|
181
203
|
* Check if Bluetooth is enabled
|
|
182
|
-
* @returns
|
|
204
|
+
* @returns returns Boolean according to Bluetooth state
|
|
183
205
|
*/
|
|
184
206
|
isBluetoothEnabled(): boolean;
|
|
185
207
|
/**
|
|
@@ -189,7 +211,7 @@ export declare class BleNitroManager {
|
|
|
189
211
|
requestBluetoothEnable(): Promise<boolean>;
|
|
190
212
|
/**
|
|
191
213
|
* Get the current Bluetooth state
|
|
192
|
-
* @returns
|
|
214
|
+
* @returns Bluetooth state
|
|
193
215
|
* @see BLEState
|
|
194
216
|
*/
|
|
195
217
|
state(): BLEState;
|
|
@@ -197,7 +219,7 @@ export declare class BleNitroManager {
|
|
|
197
219
|
* Subscribe to Bluetooth state changes
|
|
198
220
|
* @param callback Callback function called when state changes
|
|
199
221
|
* @param emitInitial Whether to emit initial state callback
|
|
200
|
-
* @returns
|
|
222
|
+
* @returns Subscription
|
|
201
223
|
* @see BLEState
|
|
202
224
|
*/
|
|
203
225
|
subscribeToStateChange(callback: (state: BLEState) => void, emitInitial?: boolean): Subscription;
|
package/lib/manager.js
CHANGED
|
@@ -104,7 +104,7 @@ export class BleNitroManager {
|
|
|
104
104
|
* Start scanning for Bluetooth devices
|
|
105
105
|
* @param filter Optional scan filter
|
|
106
106
|
* @param callback Callback function called when a device is found
|
|
107
|
-
* @returns
|
|
107
|
+
* @returns void
|
|
108
108
|
*/
|
|
109
109
|
startScan(filter = {}, callback, onError) {
|
|
110
110
|
if (this._isScanning) {
|
|
@@ -135,7 +135,7 @@ export class BleNitroManager {
|
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
137
137
|
* Stop scanning for Bluetooth devices
|
|
138
|
-
* @returns
|
|
138
|
+
* @returns void
|
|
139
139
|
*/
|
|
140
140
|
stopScan() {
|
|
141
141
|
if (!this._isScanning) {
|
|
@@ -146,7 +146,7 @@ export class BleNitroManager {
|
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
148
|
* Check if currently scanning for devices
|
|
149
|
-
* @returns
|
|
149
|
+
* @returns Boolean indicating if currently scanning
|
|
150
150
|
*/
|
|
151
151
|
isScanning() {
|
|
152
152
|
this._isScanning = BleNitroNative.isScanning();
|
|
@@ -166,9 +166,9 @@ export class BleNitroManager {
|
|
|
166
166
|
* Connect to a Bluetooth device
|
|
167
167
|
* @param deviceId ID of the device to connect to
|
|
168
168
|
* @param onDisconnect Optional callback for disconnect events
|
|
169
|
-
* @returns Promise resolving when connected
|
|
169
|
+
* @returns Promise resolving deviceId when connected
|
|
170
170
|
*/
|
|
171
|
-
connect(deviceId, onDisconnect) {
|
|
171
|
+
connect(deviceId, onDisconnect, autoConnectAndroid) {
|
|
172
172
|
return new Promise((resolve, reject) => {
|
|
173
173
|
// Check if already connected
|
|
174
174
|
if (this._connectedDevices[deviceId]) {
|
|
@@ -187,7 +187,39 @@ export class BleNitroManager {
|
|
|
187
187
|
// Remove from connected devices when disconnected
|
|
188
188
|
delete this._connectedDevices[deviceId];
|
|
189
189
|
onDisconnect(deviceId, interrupted, error);
|
|
190
|
-
} : undefined);
|
|
190
|
+
} : undefined, autoConnectAndroid ?? false);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Scans for a device and connects to it
|
|
195
|
+
* @param deviceId ID of the device to connect to
|
|
196
|
+
* @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
|
|
197
|
+
* @returns Promise resolving deviceId when connected
|
|
198
|
+
*/
|
|
199
|
+
findAndConnect(deviceId, options) {
|
|
200
|
+
const isConnected = this.isConnected(deviceId);
|
|
201
|
+
if (isConnected) {
|
|
202
|
+
return Promise.resolve(deviceId);
|
|
203
|
+
}
|
|
204
|
+
if (this._isScanning) {
|
|
205
|
+
this.stopScan();
|
|
206
|
+
}
|
|
207
|
+
return new Promise((resolve, reject) => {
|
|
208
|
+
const timeoutScan = setTimeout(() => {
|
|
209
|
+
this.stopScan();
|
|
210
|
+
reject(new Error('Scan timed out'));
|
|
211
|
+
}, options?.scanTimeout ?? 5000);
|
|
212
|
+
this.startScan(undefined, (device) => {
|
|
213
|
+
if (device.id === deviceId) {
|
|
214
|
+
this.stopScan();
|
|
215
|
+
clearTimeout(timeoutScan);
|
|
216
|
+
this.connect(deviceId, options?.onDisconnect, options?.autoConnectAndroid).then(async (connectedDeviceId) => {
|
|
217
|
+
resolve(connectedDeviceId);
|
|
218
|
+
}).catch((error) => {
|
|
219
|
+
reject(error);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
191
223
|
});
|
|
192
224
|
}
|
|
193
225
|
/**
|
|
@@ -216,7 +248,7 @@ export class BleNitroManager {
|
|
|
216
248
|
/**
|
|
217
249
|
* Check if connected to a device
|
|
218
250
|
* @param deviceId ID of the device to check
|
|
219
|
-
* @returns
|
|
251
|
+
* @returns Boolean indicating if device is connected
|
|
220
252
|
*/
|
|
221
253
|
isConnected(deviceId) {
|
|
222
254
|
return BleNitroNative.isConnected(deviceId);
|
|
@@ -301,7 +333,7 @@ export class BleNitroManager {
|
|
|
301
333
|
* Get characteristics for a service
|
|
302
334
|
* @param deviceId ID of the device
|
|
303
335
|
* @param serviceId ID of the service
|
|
304
|
-
* @returns
|
|
336
|
+
* @returns array of characteristic UUIDs
|
|
305
337
|
*/
|
|
306
338
|
getCharacteristics(deviceId, serviceId) {
|
|
307
339
|
if (!this._connectedDevices[deviceId]) {
|
|
@@ -310,12 +342,29 @@ export class BleNitroManager {
|
|
|
310
342
|
const characteristics = BleNitroNative.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
|
|
311
343
|
return BleNitroManager.normalizeGattUUIDs(characteristics);
|
|
312
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Get services and characteristics for a connected device
|
|
347
|
+
* @param deviceId ID of the device
|
|
348
|
+
* @returns Promise resolving to array of service and characteristic UUIDs
|
|
349
|
+
* @see getServices
|
|
350
|
+
* @see getCharacteristics
|
|
351
|
+
*/
|
|
352
|
+
async getServicesWithCharacteristics(deviceId) {
|
|
353
|
+
await this.discoverServices(deviceId);
|
|
354
|
+
const services = await this.getServices(deviceId);
|
|
355
|
+
return services.map((service) => {
|
|
356
|
+
return {
|
|
357
|
+
uuid: service,
|
|
358
|
+
characteristics: this.getCharacteristics(deviceId, service),
|
|
359
|
+
};
|
|
360
|
+
});
|
|
361
|
+
}
|
|
313
362
|
/**
|
|
314
363
|
* Read a characteristic value
|
|
315
364
|
* @param deviceId ID of the device
|
|
316
365
|
* @param serviceId ID of the service
|
|
317
366
|
* @param characteristicId ID of the characteristic
|
|
318
|
-
* @returns Promise resolving to the characteristic data as
|
|
367
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
319
368
|
*/
|
|
320
369
|
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
321
370
|
return new Promise((resolve, reject) => {
|
|
@@ -368,7 +417,7 @@ export class BleNitroManager {
|
|
|
368
417
|
* @param serviceId ID of the service
|
|
369
418
|
* @param characteristicId ID of the characteristic
|
|
370
419
|
* @param callback Callback function called when notification is received
|
|
371
|
-
* @returns
|
|
420
|
+
* @returns Subscription
|
|
372
421
|
*/
|
|
373
422
|
subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
374
423
|
// Check if connected first
|
|
@@ -419,7 +468,7 @@ export class BleNitroManager {
|
|
|
419
468
|
}
|
|
420
469
|
/**
|
|
421
470
|
* Check if Bluetooth is enabled
|
|
422
|
-
* @returns
|
|
471
|
+
* @returns returns Boolean according to Bluetooth state
|
|
423
472
|
*/
|
|
424
473
|
isBluetoothEnabled() {
|
|
425
474
|
return this.state() === BLEState.PoweredOn;
|
|
@@ -442,7 +491,7 @@ export class BleNitroManager {
|
|
|
442
491
|
}
|
|
443
492
|
/**
|
|
444
493
|
* Get the current Bluetooth state
|
|
445
|
-
* @returns
|
|
494
|
+
* @returns Bluetooth state
|
|
446
495
|
* @see BLEState
|
|
447
496
|
*/
|
|
448
497
|
state() {
|
|
@@ -452,7 +501,7 @@ export class BleNitroManager {
|
|
|
452
501
|
* Subscribe to Bluetooth state changes
|
|
453
502
|
* @param callback Callback function called when state changes
|
|
454
503
|
* @param emitInitial Whether to emit initial state callback
|
|
455
|
-
* @returns
|
|
504
|
+
* @returns Subscription
|
|
456
505
|
* @see BLEState
|
|
457
506
|
*/
|
|
458
507
|
subscribeToStateChange(callback, emitInitial = false) {
|
|
@@ -65,7 +65,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
65
65
|
stopScan(): boolean;
|
|
66
66
|
isScanning(): boolean;
|
|
67
67
|
getConnectedDevices(services: string[]): BLEDevice[];
|
|
68
|
-
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
|
|
68
|
+
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
|
|
69
69
|
disconnect(deviceId: string, callback: OperationCallback): void;
|
|
70
70
|
isConnected(deviceId: string): boolean;
|
|
71
71
|
requestMTU(deviceId: string, mtu: number): number;
|
|
@@ -123,9 +123,9 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
123
123
|
return __vector;
|
|
124
124
|
}();
|
|
125
125
|
}
|
|
126
|
-
void JHybridNativeBleNitroSpec::connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) {
|
|
127
|
-
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */)>("connect_cxx");
|
|
128
|
-
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_std__string_cxx::fromCpp(callback), disconnectCallback.has_value() ? JFunc_void_std__string_bool_std__string_cxx::fromCpp(disconnectCallback.value()) : nullptr);
|
|
126
|
+
void JHybridNativeBleNitroSpec::connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) {
|
|
127
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string_std__string::javaobject> /* callback */, jni::alias_ref<JFunc_void_std__string_bool_std__string::javaobject> /* disconnectCallback */, jni::alias_ref<jni::JBoolean> /* autoConnectAndroid */)>("connect_cxx");
|
|
128
|
+
method(_javaPart, jni::make_jstring(deviceId), JFunc_void_bool_std__string_std__string_cxx::fromCpp(callback), disconnectCallback.has_value() ? JFunc_void_std__string_bool_std__string_cxx::fromCpp(disconnectCallback.value()) : nullptr, autoConnectAndroid.has_value() ? jni::JBoolean::valueOf(autoConnectAndroid.value()) : nullptr);
|
|
129
129
|
}
|
|
130
130
|
void JHybridNativeBleNitroSpec::disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
131
131
|
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("disconnect_cxx");
|
|
@@ -58,7 +58,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
58
58
|
bool stopScan() override;
|
|
59
59
|
bool isScanning() override;
|
|
60
60
|
std::vector<BLEDevice> getConnectedDevices(const std::vector<std::string>& services) override;
|
|
61
|
-
void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) override;
|
|
61
|
+
void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) override;
|
|
62
62
|
void disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
63
63
|
bool isConnected(const std::string& deviceId) override;
|
|
64
64
|
double requestMTU(const std::string& deviceId, double mtu) override;
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt
CHANGED
|
@@ -70,12 +70,12 @@ abstract class HybridNativeBleNitroSpec: HybridObject() {
|
|
|
70
70
|
@Keep
|
|
71
71
|
abstract fun getConnectedDevices(services: Array<String>): Array<BLEDevice>
|
|
72
72
|
|
|
73
|
-
abstract fun connect(deviceId: String, callback: (success: Boolean, deviceId: String, error: String) -> Unit, disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?): Unit
|
|
73
|
+
abstract fun connect(deviceId: String, callback: (success: Boolean, deviceId: String, error: String) -> Unit, disconnectCallback: ((deviceId: String, interrupted: Boolean, error: String) -> Unit)?, autoConnectAndroid: Boolean?): Unit
|
|
74
74
|
|
|
75
75
|
@DoNotStrip
|
|
76
76
|
@Keep
|
|
77
|
-
private fun connect_cxx(deviceId: String, callback: Func_void_bool_std__string_std__string, disconnectCallback: Func_void_std__string_bool_std__string?): Unit {
|
|
78
|
-
val __result = connect(deviceId, callback, disconnectCallback?.let { it })
|
|
77
|
+
private fun connect_cxx(deviceId: String, callback: Func_void_bool_std__string_std__string, disconnectCallback: Func_void_std__string_bool_std__string?, autoConnectAndroid: Boolean?): Unit {
|
|
78
|
+
val __result = connect(deviceId, callback, disconnectCallback?.let { it }, autoConnectAndroid)
|
|
79
79
|
return __result
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -202,6 +202,15 @@ namespace margelo::nitro::co::zyke::ble::bridge::swift {
|
|
|
202
202
|
return std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>(value);
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
+
// pragma MARK: std::optional<bool>
|
|
206
|
+
/**
|
|
207
|
+
* Specialized version of `std::optional<bool>`.
|
|
208
|
+
*/
|
|
209
|
+
using std__optional_bool_ = std::optional<bool>;
|
|
210
|
+
inline std::optional<bool> create_std__optional_bool_(const bool& value) {
|
|
211
|
+
return std::optional<bool>(value);
|
|
212
|
+
}
|
|
213
|
+
|
|
205
214
|
// pragma MARK: std::function<void(bool /* success */, const std::string& /* error */)>
|
|
206
215
|
/**
|
|
207
216
|
* Specialized version of `std::function<void(bool, const std::string&)>`.
|
|
@@ -123,8 +123,8 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
123
123
|
auto __value = std::move(__result.value());
|
|
124
124
|
return __value;
|
|
125
125
|
}
|
|
126
|
-
inline void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) override {
|
|
127
|
-
auto __result = _swiftPart.connect(deviceId, callback, disconnectCallback);
|
|
126
|
+
inline void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) override {
|
|
127
|
+
auto __result = _swiftPart.connect(deviceId, callback, disconnectCallback, autoConnectAndroid);
|
|
128
128
|
if (__result.hasError()) [[unlikely]] {
|
|
129
129
|
std::rethrow_exception(__result.error());
|
|
130
130
|
}
|
|
@@ -19,7 +19,7 @@ public protocol HybridNativeBleNitroSpec_protocol: HybridObject {
|
|
|
19
19
|
func stopScan() throws -> Bool
|
|
20
20
|
func isScanning() throws -> Bool
|
|
21
21
|
func getConnectedDevices(services: [String]) throws -> [BLEDevice]
|
|
22
|
-
func connect(deviceId: String, callback: @escaping (_ success: Bool, _ deviceId: String, _ error: String) -> Void, disconnectCallback: ((_ deviceId: String, _ interrupted: Bool, _ error: String) -> Void)?) throws -> Void
|
|
22
|
+
func connect(deviceId: String, callback: @escaping (_ success: Bool, _ deviceId: String, _ error: String) -> Void, disconnectCallback: ((_ deviceId: String, _ interrupted: Bool, _ error: String) -> Void)?, autoConnectAndroid: Bool?) throws -> Void
|
|
23
23
|
func disconnect(deviceId: String, callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
24
24
|
func isConnected(deviceId: String) throws -> Bool
|
|
25
25
|
func requestMTU(deviceId: String, mtu: Double) throws -> Double
|
|
@@ -202,7 +202,7 @@ open class HybridNativeBleNitroSpec_cxx {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
@inline(__always)
|
|
205
|
-
public final func connect(deviceId: std.string, callback: bridge.Func_void_bool_std__string_std__string, disconnectCallback: bridge.std__optional_std__function_void_const_std__string_____deviceId_____bool____interrupted_____const_std__string_____error______) -> bridge.Result_void_ {
|
|
205
|
+
public final func connect(deviceId: std.string, callback: bridge.Func_void_bool_std__string_std__string, disconnectCallback: bridge.std__optional_std__function_void_const_std__string_____deviceId_____bool____interrupted_____const_std__string_____error______, autoConnectAndroid: bridge.std__optional_bool_) -> bridge.Result_void_ {
|
|
206
206
|
do {
|
|
207
207
|
try self.__implementation.connect(deviceId: String(deviceId), callback: { () -> (Bool, String, String) -> Void in
|
|
208
208
|
let __wrappedFunction = bridge.wrap_Func_void_bool_std__string_std__string(callback)
|
|
@@ -220,7 +220,7 @@ open class HybridNativeBleNitroSpec_cxx {
|
|
|
220
220
|
} else {
|
|
221
221
|
return nil
|
|
222
222
|
}
|
|
223
|
-
}())
|
|
223
|
+
}(), autoConnectAndroid: autoConnectAndroid.value)
|
|
224
224
|
return bridge.create_Result_void_()
|
|
225
225
|
} catch (let __error) {
|
|
226
226
|
let __exceptionPtr = __error.toCpp()
|
|
@@ -71,7 +71,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
71
71
|
virtual bool stopScan() = 0;
|
|
72
72
|
virtual bool isScanning() = 0;
|
|
73
73
|
virtual std::vector<BLEDevice> getConnectedDevices(const std::vector<std::string>& services) = 0;
|
|
74
|
-
virtual void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) = 0;
|
|
74
|
+
virtual void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback, std::optional<bool> autoConnectAndroid) = 0;
|
|
75
75
|
virtual void disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
|
|
76
76
|
virtual bool isConnected(const std::string& deviceId) = 0;
|
|
77
77
|
virtual double requestMTU(const std::string& deviceId, double mtu) = 0;
|
package/package.json
CHANGED
|
@@ -97,8 +97,8 @@ describe('BleNitro', () => {
|
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
const result = await BleManager.connect(deviceId);
|
|
100
|
-
|
|
101
|
-
expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), undefined);
|
|
100
|
+
|
|
101
|
+
expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), undefined, false);
|
|
102
102
|
expect(result).toBe(deviceId);
|
|
103
103
|
});
|
|
104
104
|
|
|
@@ -142,7 +142,7 @@ describe('BleNitro', () => {
|
|
|
142
142
|
|
|
143
143
|
const data = [1, 2, 3];
|
|
144
144
|
const result = await BleManager.writeCharacteristic('device-write', 'service', 'char', data, false);
|
|
145
|
-
|
|
145
|
+
|
|
146
146
|
expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
|
|
147
147
|
'device-write',
|
|
148
148
|
'0service-0000-1000-8000-00805f9b34fb',
|
|
@@ -170,7 +170,7 @@ describe('BleNitro', () => {
|
|
|
170
170
|
|
|
171
171
|
const data = [1, 2, 3];
|
|
172
172
|
const result = await BleManager.writeCharacteristic('device-write-resp', 'service', 'char', data, true);
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
|
|
175
175
|
'device-write-resp',
|
|
176
176
|
'0service-0000-1000-8000-00805f9b34fb',
|
|
@@ -196,15 +196,15 @@ describe('BleNitro', () => {
|
|
|
196
196
|
});
|
|
197
197
|
|
|
198
198
|
const result = await BleManager.readCharacteristic('device', 'service', 'char');
|
|
199
|
-
|
|
199
|
+
|
|
200
200
|
// UUIDs should be normalized in the call
|
|
201
201
|
expect(mockNative.readCharacteristic).toHaveBeenCalledWith(
|
|
202
|
-
'device',
|
|
202
|
+
'device',
|
|
203
203
|
'0service-0000-1000-8000-00805f9b34fb', // 'service' padded to 8 chars
|
|
204
204
|
'0000char-0000-1000-8000-00805f9b34fb', // 'char' padded to 8 chars
|
|
205
205
|
expect.any(Function)
|
|
206
206
|
);
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
// Result should be number array (ByteArray)
|
|
209
209
|
expect(Array.isArray(result)).toBe(true);
|
|
210
210
|
expect(result).toEqual([85]);
|
|
@@ -223,7 +223,7 @@ describe('BleNitro', () => {
|
|
|
223
223
|
});
|
|
224
224
|
|
|
225
225
|
const result = await BleManager.disconnect('device');
|
|
226
|
-
|
|
226
|
+
|
|
227
227
|
expect(mockNative.disconnect).toHaveBeenCalledWith('device', expect.any(Function));
|
|
228
228
|
expect(result).toBe(undefined);
|
|
229
229
|
});
|
|
@@ -245,10 +245,10 @@ describe('BleNitro', () => {
|
|
|
245
245
|
|
|
246
246
|
const notificationCallback = jest.fn();
|
|
247
247
|
const subscription = BleManager.subscribeToCharacteristic('device', 'service', 'char', notificationCallback);
|
|
248
|
-
|
|
248
|
+
|
|
249
249
|
expect(mockNative.subscribeToCharacteristic).toHaveBeenCalled();
|
|
250
250
|
expect(notificationCallback).toHaveBeenCalledWith('char-id', [1, 2, 3]);
|
|
251
|
-
|
|
251
|
+
|
|
252
252
|
// Verify subscription object
|
|
253
253
|
expect(subscription).toHaveProperty('remove');
|
|
254
254
|
expect(typeof subscription.remove).toBe('function');
|
|
@@ -257,10 +257,10 @@ describe('BleNitro', () => {
|
|
|
257
257
|
test('connect with disconnect event callback', async () => {
|
|
258
258
|
const deviceId = 'test-device-2'; // Use different device ID to avoid state conflicts
|
|
259
259
|
const onDisconnect = jest.fn();
|
|
260
|
-
|
|
260
|
+
|
|
261
261
|
mockNative.connect.mockImplementation((id: string, callback: (success: boolean, deviceId: string, error: string) => void, disconnectCallback?: (deviceId: string, interrupted: boolean, error: string) => void) => {
|
|
262
262
|
callback(true, id, '');
|
|
263
|
-
// Simulate a disconnect event later
|
|
263
|
+
// Simulate a disconnect event later
|
|
264
264
|
if (disconnectCallback) {
|
|
265
265
|
setTimeout(() => {
|
|
266
266
|
disconnectCallback(id, true, 'Connection lost'); // interrupted = true
|
|
@@ -269,10 +269,10 @@ describe('BleNitro', () => {
|
|
|
269
269
|
});
|
|
270
270
|
|
|
271
271
|
const result = await BleManager.connect(deviceId, onDisconnect);
|
|
272
|
-
|
|
273
|
-
expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), expect.any(Function));
|
|
272
|
+
|
|
273
|
+
expect(mockNative.connect).toHaveBeenCalledWith(deviceId, expect.any(Function), expect.any(Function), false);
|
|
274
274
|
expect(result).toBe(deviceId);
|
|
275
|
-
|
|
275
|
+
|
|
276
276
|
// Wait for disconnect callback
|
|
277
277
|
await new Promise(resolve => setTimeout(resolve, 30));
|
|
278
278
|
expect(onDisconnect).toHaveBeenCalledWith(deviceId, true, 'Connection lost');
|
|
@@ -297,7 +297,7 @@ describe('BleNitro', () => {
|
|
|
297
297
|
});
|
|
298
298
|
|
|
299
299
|
const rssi = await BleManager.readRSSI('device-rssi');
|
|
300
|
-
|
|
300
|
+
|
|
301
301
|
expect(mockNative.readRSSI).toHaveBeenCalledWith(
|
|
302
302
|
'device-rssi',
|
|
303
303
|
expect.any(Function)
|
|
@@ -318,7 +318,7 @@ describe('BleNitro', () => {
|
|
|
318
318
|
});
|
|
319
319
|
|
|
320
320
|
await expect(BleManager.readRSSI('device-rssi-fail')).rejects.toThrow('RSSI read failed');
|
|
321
|
-
|
|
321
|
+
|
|
322
322
|
expect(mockNative.readRSSI).toHaveBeenCalledWith(
|
|
323
323
|
'device-rssi-fail',
|
|
324
324
|
expect.any(Function)
|
package/src/manager.ts
CHANGED
|
@@ -176,7 +176,7 @@ export class BleNitroManager {
|
|
|
176
176
|
* Start scanning for Bluetooth devices
|
|
177
177
|
* @param filter Optional scan filter
|
|
178
178
|
* @param callback Callback function called when a device is found
|
|
179
|
-
* @returns
|
|
179
|
+
* @returns void
|
|
180
180
|
*/
|
|
181
181
|
public startScan(
|
|
182
182
|
filter: ScanFilter = {},
|
|
@@ -215,7 +215,7 @@ export class BleNitroManager {
|
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
217
|
* Stop scanning for Bluetooth devices
|
|
218
|
-
* @returns
|
|
218
|
+
* @returns void
|
|
219
219
|
*/
|
|
220
220
|
public stopScan(): void {
|
|
221
221
|
if (!this._isScanning) {
|
|
@@ -228,7 +228,7 @@ export class BleNitroManager {
|
|
|
228
228
|
|
|
229
229
|
/**
|
|
230
230
|
* Check if currently scanning for devices
|
|
231
|
-
* @returns
|
|
231
|
+
* @returns Boolean indicating if currently scanning
|
|
232
232
|
*/
|
|
233
233
|
public isScanning(): boolean {
|
|
234
234
|
this._isScanning = BleNitroNative.isScanning();
|
|
@@ -250,11 +250,12 @@ export class BleNitroManager {
|
|
|
250
250
|
* Connect to a Bluetooth device
|
|
251
251
|
* @param deviceId ID of the device to connect to
|
|
252
252
|
* @param onDisconnect Optional callback for disconnect events
|
|
253
|
-
* @returns Promise resolving when connected
|
|
253
|
+
* @returns Promise resolving deviceId when connected
|
|
254
254
|
*/
|
|
255
255
|
public connect(
|
|
256
256
|
deviceId: string,
|
|
257
|
-
onDisconnect?: DisconnectEventCallback
|
|
257
|
+
onDisconnect?: DisconnectEventCallback,
|
|
258
|
+
autoConnectAndroid?: boolean,
|
|
258
259
|
): Promise<string> {
|
|
259
260
|
return new Promise((resolve, reject) => {
|
|
260
261
|
// Check if already connected
|
|
@@ -277,11 +278,45 @@ export class BleNitroManager {
|
|
|
277
278
|
// Remove from connected devices when disconnected
|
|
278
279
|
delete this._connectedDevices[deviceId];
|
|
279
280
|
onDisconnect(deviceId, interrupted, error);
|
|
280
|
-
} : undefined
|
|
281
|
+
} : undefined,
|
|
282
|
+
autoConnectAndroid ?? false,
|
|
281
283
|
);
|
|
282
284
|
});
|
|
283
285
|
}
|
|
284
286
|
|
|
287
|
+
/**
|
|
288
|
+
* Scans for a device and connects to it
|
|
289
|
+
* @param deviceId ID of the device to connect to
|
|
290
|
+
* @param scanTimeout Optional timeout for the scan in milliseconds (default: 5000ms)
|
|
291
|
+
* @returns Promise resolving deviceId when connected
|
|
292
|
+
*/
|
|
293
|
+
public findAndConnect(deviceId: string, options?: { scanTimeout?: number, autoConnectAndroid?: boolean, onDisconnect?: DisconnectEventCallback }): Promise<string> {
|
|
294
|
+
const isConnected = this.isConnected(deviceId);
|
|
295
|
+
if (isConnected) {
|
|
296
|
+
return Promise.resolve(deviceId);
|
|
297
|
+
}
|
|
298
|
+
if (this._isScanning) {
|
|
299
|
+
this.stopScan();
|
|
300
|
+
}
|
|
301
|
+
return new Promise((resolve, reject) => {
|
|
302
|
+
const timeoutScan = setTimeout(() => {
|
|
303
|
+
this.stopScan();
|
|
304
|
+
reject(new Error('Scan timed out'));
|
|
305
|
+
}, options?.scanTimeout ?? 5000);
|
|
306
|
+
this.startScan(undefined, (device) => {
|
|
307
|
+
if (device.id === deviceId) {
|
|
308
|
+
this.stopScan();
|
|
309
|
+
clearTimeout(timeoutScan);
|
|
310
|
+
this.connect(deviceId, options?.onDisconnect, options?.autoConnectAndroid).then(async (connectedDeviceId) => {
|
|
311
|
+
resolve(connectedDeviceId);
|
|
312
|
+
}).catch((error) => {
|
|
313
|
+
reject(error);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
|
|
285
320
|
/**
|
|
286
321
|
* Disconnect from a Bluetooth device
|
|
287
322
|
* @param deviceId ID of the device to disconnect from
|
|
@@ -312,7 +347,7 @@ export class BleNitroManager {
|
|
|
312
347
|
/**
|
|
313
348
|
* Check if connected to a device
|
|
314
349
|
* @param deviceId ID of the device to check
|
|
315
|
-
* @returns
|
|
350
|
+
* @returns Boolean indicating if device is connected
|
|
316
351
|
*/
|
|
317
352
|
public isConnected(deviceId: string): boolean {
|
|
318
353
|
return BleNitroNative.isConnected(deviceId);
|
|
@@ -409,7 +444,7 @@ export class BleNitroManager {
|
|
|
409
444
|
* Get characteristics for a service
|
|
410
445
|
* @param deviceId ID of the device
|
|
411
446
|
* @param serviceId ID of the service
|
|
412
|
-
* @returns
|
|
447
|
+
* @returns array of characteristic UUIDs
|
|
413
448
|
*/
|
|
414
449
|
public getCharacteristics(
|
|
415
450
|
deviceId: string,
|
|
@@ -426,12 +461,30 @@ export class BleNitroManager {
|
|
|
426
461
|
return BleNitroManager.normalizeGattUUIDs(characteristics);
|
|
427
462
|
}
|
|
428
463
|
|
|
464
|
+
/**
|
|
465
|
+
* Get services and characteristics for a connected device
|
|
466
|
+
* @param deviceId ID of the device
|
|
467
|
+
* @returns Promise resolving to array of service and characteristic UUIDs
|
|
468
|
+
* @see getServices
|
|
469
|
+
* @see getCharacteristics
|
|
470
|
+
*/
|
|
471
|
+
public async getServicesWithCharacteristics(deviceId: string): Promise<{ uuid: string; characteristics: string[] }[]> {
|
|
472
|
+
await this.discoverServices(deviceId);
|
|
473
|
+
const services = await this.getServices(deviceId);
|
|
474
|
+
return services.map((service) => {
|
|
475
|
+
return {
|
|
476
|
+
uuid: service,
|
|
477
|
+
characteristics: this.getCharacteristics(deviceId, service),
|
|
478
|
+
};
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
|
|
429
482
|
/**
|
|
430
483
|
* Read a characteristic value
|
|
431
484
|
* @param deviceId ID of the device
|
|
432
485
|
* @param serviceId ID of the service
|
|
433
486
|
* @param characteristicId ID of the characteristic
|
|
434
|
-
* @returns Promise resolving to the characteristic data as
|
|
487
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
435
488
|
*/
|
|
436
489
|
public readCharacteristic(
|
|
437
490
|
deviceId: string,
|
|
@@ -508,7 +561,7 @@ export class BleNitroManager {
|
|
|
508
561
|
* @param serviceId ID of the service
|
|
509
562
|
* @param characteristicId ID of the characteristic
|
|
510
563
|
* @param callback Callback function called when notification is received
|
|
511
|
-
* @returns
|
|
564
|
+
* @returns Subscription
|
|
512
565
|
*/
|
|
513
566
|
public subscribeToCharacteristic(
|
|
514
567
|
deviceId: string,
|
|
@@ -588,7 +641,7 @@ export class BleNitroManager {
|
|
|
588
641
|
|
|
589
642
|
/**
|
|
590
643
|
* Check if Bluetooth is enabled
|
|
591
|
-
* @returns
|
|
644
|
+
* @returns returns Boolean according to Bluetooth state
|
|
592
645
|
*/
|
|
593
646
|
public isBluetoothEnabled(): boolean {
|
|
594
647
|
return this.state() === BLEState.PoweredOn;
|
|
@@ -614,7 +667,7 @@ export class BleNitroManager {
|
|
|
614
667
|
|
|
615
668
|
/**
|
|
616
669
|
* Get the current Bluetooth state
|
|
617
|
-
* @returns
|
|
670
|
+
* @returns Bluetooth state
|
|
618
671
|
* @see BLEState
|
|
619
672
|
*/
|
|
620
673
|
public state(): BLEState {
|
|
@@ -625,7 +678,7 @@ export class BleNitroManager {
|
|
|
625
678
|
* Subscribe to Bluetooth state changes
|
|
626
679
|
* @param callback Callback function called when state changes
|
|
627
680
|
* @param emitInitial Whether to emit initial state callback
|
|
628
|
-
* @returns
|
|
681
|
+
* @returns Subscription
|
|
629
682
|
* @see BLEState
|
|
630
683
|
*/
|
|
631
684
|
public subscribeToStateChange(callback: (state: BLEState) => void, emitInitial = false): Subscription {
|
|
@@ -81,7 +81,7 @@ export interface NativeBleNitro extends HybridObject<{ ios: 'swift'; android: 'k
|
|
|
81
81
|
getConnectedDevices(services: string[]): BLEDevice[];
|
|
82
82
|
|
|
83
83
|
// Connection management
|
|
84
|
-
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
|
|
84
|
+
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback, autoConnectAndroid?: boolean): void;
|
|
85
85
|
disconnect(deviceId: string, callback: OperationCallback): void;
|
|
86
86
|
isConnected(deviceId: string): boolean;
|
|
87
87
|
requestMTU(deviceId: string, mtu: number): number;
|