react-native-ble-nitro 1.8.0 → 1.9.1
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 +6 -2
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +164 -53
- package/ios/BleNitroBleManager.swift +8 -6
- package/lib/commonjs/manager.d.ts +2 -2
- package/lib/commonjs/manager.d.ts.map +1 -1
- package/lib/commonjs/manager.js +21 -20
- 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 +2 -2
- package/lib/manager.js +21 -20
- package/lib/specs/NativeBleNitro.nitro.d.ts +1 -1
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +7 -8
- 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 -9
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +5 -7
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +9 -5
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +4 -4
- package/package.json +1 -1
- package/src/__tests__/index.test.ts +5 -5
- package/src/manager.ts +34 -34
- package/src/specs/NativeBleNitro.nitro.ts +1 -1
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ npx pod-install # iOS only
|
|
|
69
69
|
### Basic Setup
|
|
70
70
|
|
|
71
71
|
```typescript
|
|
72
|
-
import { BleNitro, BLEState, AndroidScanMode, type BLEDevice } from 'react-native-ble-nitro';
|
|
72
|
+
import { BleNitro, BleNitroManager, BLEState, AndroidScanMode, type BLEDevice } from 'react-native-ble-nitro';
|
|
73
73
|
|
|
74
74
|
// Get the singleton instance
|
|
75
75
|
const ble = BleNitro.instance();
|
|
@@ -258,10 +258,14 @@ const emptyResult = await ble.writeCharacteristic(
|
|
|
258
258
|
|
|
259
259
|
> [!CAUTION]
|
|
260
260
|
> From version 1.8.0 on the returned subscription object has the type `AsyncSubscription` instead of `Subscription` to indicate that the `remove` method is now async and returns a Promise for better multi-platform compatibility.
|
|
261
|
+
> From version 1.9.0 on the `subscribeToCharacteristic` method is async, so use await when calling it. This was introduced to fix the handling of gatt queuing on Android.
|
|
262
|
+
|
|
263
|
+
> [!IMPORTANT]
|
|
264
|
+
> It is only possible to have one active notification subscription per specific characteristic. If you call `subscribeToCharacteristic` again for the same characteristic, the previous subscription won't receive any more updates and should be removed previously.
|
|
261
265
|
|
|
262
266
|
```typescript
|
|
263
267
|
// Subscribe to characteristic notifications
|
|
264
|
-
const subscription = ble.subscribeToCharacteristic(
|
|
268
|
+
const subscription = await ble.subscribeToCharacteristic( // before 1.9.0 this was synchronous
|
|
265
269
|
deviceId,
|
|
266
270
|
serviceUUID,
|
|
267
271
|
characteristicUUID,
|
|
@@ -53,11 +53,22 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
53
53
|
private val connectedDevices = ConcurrentHashMap<String, BluetoothGatt>()
|
|
54
54
|
private val deviceCallbacks = ConcurrentHashMap<String, DeviceCallbacks>()
|
|
55
55
|
|
|
56
|
+
// Read callback storage for proper response handling (key: deviceId:characteristicId)
|
|
57
|
+
private val readCallbacks = ConcurrentHashMap<String, (Boolean, ArrayBuffer, String) -> Unit>()
|
|
58
|
+
|
|
56
59
|
// Write callback storage for proper response handling (key: deviceId:characteristicId)
|
|
57
60
|
private val writeCallbacks = ConcurrentHashMap<String, (Boolean, ArrayBuffer, String) -> Unit>()
|
|
58
|
-
|
|
61
|
+
|
|
59
62
|
// RSSI callback storage (key: deviceId)
|
|
60
63
|
private val rssiCallbacks = ConcurrentHashMap<String, (Boolean, Double, String) -> Unit>()
|
|
64
|
+
|
|
65
|
+
// GATT operation queue for sequential descriptor writes (Android BLE requirement)
|
|
66
|
+
private val gattOperationQueue = java.util.concurrent.LinkedBlockingQueue<GattOperation>()
|
|
67
|
+
private var isGattOperationInProgress = false
|
|
68
|
+
private val gattOperationLock = Any()
|
|
69
|
+
|
|
70
|
+
// Descriptor write callback storage (key: deviceId:descriptorUuid)
|
|
71
|
+
private val descriptorWriteCallbacks = ConcurrentHashMap<String, (Boolean, String) -> Unit>()
|
|
61
72
|
|
|
62
73
|
// Helper class to store device callbacks
|
|
63
74
|
private data class DeviceCallbacks(
|
|
@@ -66,6 +77,17 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
66
77
|
var serviceDiscoveryCallback: ((success: Boolean, error: String) -> Unit)? = null,
|
|
67
78
|
var characteristicSubscriptions: MutableMap<String, (characteristicId: String, data: ArrayBuffer) -> Unit> = mutableMapOf()
|
|
68
79
|
)
|
|
80
|
+
|
|
81
|
+
// Sealed class for GATT operations that need to be queued
|
|
82
|
+
private sealed class GattOperation {
|
|
83
|
+
data class WriteDescriptor(
|
|
84
|
+
val gatt: BluetoothGatt,
|
|
85
|
+
val descriptor: BluetoothGattDescriptor,
|
|
86
|
+
val value: ByteArray,
|
|
87
|
+
val deviceId: String,
|
|
88
|
+
val callback: (Boolean, String) -> Unit
|
|
89
|
+
) : GattOperation()
|
|
90
|
+
}
|
|
69
91
|
|
|
70
92
|
init {
|
|
71
93
|
// Try to get context from React Native application context
|
|
@@ -275,17 +297,23 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
275
297
|
|
|
276
298
|
override fun onCharacteristicRead(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
|
|
277
299
|
// Handle characteristic read result
|
|
278
|
-
val
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
300
|
+
val deviceId = gatt.device.address
|
|
301
|
+
val characteristicId = characteristic.uuid.toString()
|
|
302
|
+
val callbackKey = "$deviceId:$characteristicId"
|
|
303
|
+
|
|
304
|
+
readCallbacks.remove(callbackKey)?.let { callback ->
|
|
305
|
+
if (status == BluetoothGatt.GATT_SUCCESS) {
|
|
306
|
+
val value = characteristic.value ?: byteArrayOf()
|
|
307
|
+
// Create direct ByteBuffer as required by ArrayBuffer.wrap()
|
|
308
|
+
val directBuffer = java.nio.ByteBuffer.allocateDirect(value.size)
|
|
309
|
+
directBuffer.put(value)
|
|
310
|
+
directBuffer.flip()
|
|
311
|
+
val data = ArrayBuffer.wrap(directBuffer)
|
|
312
|
+
callback(true, data, "")
|
|
313
|
+
} else {
|
|
314
|
+
callback(false, ArrayBuffer.allocate(0), "Read failed with status: $status")
|
|
315
|
+
}
|
|
287
316
|
}
|
|
288
|
-
// This will be handled by pending operations
|
|
289
317
|
}
|
|
290
318
|
|
|
291
319
|
override fun onCharacteristicWrite(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
|
|
@@ -339,6 +367,68 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
339
367
|
|
|
340
368
|
override fun onDescriptorWrite(gatt: BluetoothGatt, descriptor: BluetoothGattDescriptor, status: Int) {
|
|
341
369
|
// Handle descriptor write (for enabling/disabling notifications)
|
|
370
|
+
val deviceId = gatt.device.address
|
|
371
|
+
val descriptorUuid = descriptor.uuid.toString()
|
|
372
|
+
val callbackKey = "$deviceId:$descriptorUuid"
|
|
373
|
+
|
|
374
|
+
// Get and invoke the stored callback
|
|
375
|
+
descriptorWriteCallbacks.remove(callbackKey)?.let { callback ->
|
|
376
|
+
if (status == BluetoothGatt.GATT_SUCCESS) {
|
|
377
|
+
callback(true, "")
|
|
378
|
+
} else {
|
|
379
|
+
callback(false, "Descriptor write failed with status: $status")
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Process next queued operation
|
|
384
|
+
processNextGattOperation()
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Enqueue a GATT operation to be executed sequentially.
|
|
391
|
+
* Android BLE requires that only one GATT operation runs at a time.
|
|
392
|
+
*/
|
|
393
|
+
private fun enqueueGattOperation(operation: GattOperation) {
|
|
394
|
+
gattOperationQueue.add(operation)
|
|
395
|
+
processNextGattOperation()
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Process the next GATT operation in the queue if none is currently running.
|
|
400
|
+
*/
|
|
401
|
+
private fun processNextGattOperation() {
|
|
402
|
+
synchronized(gattOperationLock) {
|
|
403
|
+
if (isGattOperationInProgress) {
|
|
404
|
+
return
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
val operation = gattOperationQueue.poll() ?: return
|
|
408
|
+
isGattOperationInProgress = true
|
|
409
|
+
|
|
410
|
+
when (operation) {
|
|
411
|
+
is GattOperation.WriteDescriptor -> {
|
|
412
|
+
val callbackKey = "${operation.deviceId}:${operation.descriptor.uuid}"
|
|
413
|
+
descriptorWriteCallbacks[callbackKey] = { success, error ->
|
|
414
|
+
synchronized(gattOperationLock) {
|
|
415
|
+
isGattOperationInProgress = false
|
|
416
|
+
}
|
|
417
|
+
operation.callback(success, error)
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
operation.descriptor.value = operation.value
|
|
421
|
+
val success = operation.gatt.writeDescriptor(operation.descriptor)
|
|
422
|
+
if (!success) {
|
|
423
|
+
descriptorWriteCallbacks.remove(callbackKey)
|
|
424
|
+
synchronized(gattOperationLock) {
|
|
425
|
+
isGattOperationInProgress = false
|
|
426
|
+
}
|
|
427
|
+
operation.callback(false, "Failed to initiate descriptor write")
|
|
428
|
+
// Try next operation
|
|
429
|
+
processNextGattOperation()
|
|
430
|
+
}
|
|
431
|
+
}
|
|
342
432
|
}
|
|
343
433
|
}
|
|
344
434
|
}
|
|
@@ -672,34 +762,32 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
672
762
|
callback(false, ArrayBuffer.allocate(0), "Device not connected")
|
|
673
763
|
return
|
|
674
764
|
}
|
|
675
|
-
|
|
765
|
+
|
|
676
766
|
val service = gatt.getService(UUID.fromString(serviceId))
|
|
677
767
|
if (service == null) {
|
|
678
768
|
callback(false, ArrayBuffer.allocate(0), "Service not found")
|
|
679
769
|
return
|
|
680
770
|
}
|
|
681
|
-
|
|
771
|
+
|
|
682
772
|
val characteristic = service.getCharacteristic(UUID.fromString(characteristicId))
|
|
683
773
|
if (characteristic == null) {
|
|
684
774
|
callback(false, ArrayBuffer.allocate(0), "Characteristic not found")
|
|
685
775
|
return
|
|
686
776
|
}
|
|
687
|
-
|
|
777
|
+
|
|
778
|
+
// Store callback for when read completes in onCharacteristicRead
|
|
779
|
+
val callbackKey = "$deviceId:$characteristicId"
|
|
780
|
+
readCallbacks[callbackKey] = callback
|
|
781
|
+
|
|
782
|
+
// Initiate the read operation
|
|
688
783
|
val success = gatt.readCharacteristic(characteristic)
|
|
689
784
|
if (!success) {
|
|
690
|
-
|
|
785
|
+
// Remove callback and report failure immediately
|
|
786
|
+
readCallbacks.remove(callbackKey)
|
|
787
|
+
callback(false, ArrayBuffer.allocate(0), "Failed to initiate read operation")
|
|
691
788
|
}
|
|
692
|
-
//
|
|
693
|
-
|
|
694
|
-
val data = characteristic.value?.let { value ->
|
|
695
|
-
// Create direct ByteBuffer as required by ArrayBuffer.wrap()
|
|
696
|
-
val directBuffer = java.nio.ByteBuffer.allocateDirect(value.size)
|
|
697
|
-
directBuffer.put(value)
|
|
698
|
-
directBuffer.flip()
|
|
699
|
-
ArrayBuffer.wrap(directBuffer)
|
|
700
|
-
} ?: ArrayBuffer.allocate(0)
|
|
701
|
-
callback(success, data, if (success) "" else "Read operation failed")
|
|
702
|
-
|
|
789
|
+
// If success, wait for onCharacteristicRead callback
|
|
790
|
+
|
|
703
791
|
} catch (e: Exception) {
|
|
704
792
|
callback(false, ArrayBuffer.allocate(0), "Read error: ${e.message}")
|
|
705
793
|
}
|
|
@@ -772,47 +860,61 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
772
860
|
deviceId: String,
|
|
773
861
|
serviceId: String,
|
|
774
862
|
characteristicId: String,
|
|
775
|
-
updateCallback: (characteristicId: String, data: ArrayBuffer) -> Unit
|
|
776
|
-
|
|
863
|
+
updateCallback: (characteristicId: String, data: ArrayBuffer) -> Unit,
|
|
864
|
+
completionCallback: (success: Boolean, error: String) -> Unit
|
|
865
|
+
) {
|
|
777
866
|
try {
|
|
778
867
|
val gatt = connectedDevices[deviceId]
|
|
779
868
|
if (gatt == null) {
|
|
780
|
-
|
|
869
|
+
completionCallback(false, "Device not connected")
|
|
870
|
+
return
|
|
781
871
|
}
|
|
782
872
|
|
|
783
873
|
val service = gatt.getService(UUID.fromString(serviceId))
|
|
784
874
|
if (service == null) {
|
|
785
|
-
|
|
875
|
+
completionCallback(false, "Service not found")
|
|
876
|
+
return
|
|
786
877
|
}
|
|
787
878
|
|
|
788
879
|
val characteristic = service.getCharacteristic(UUID.fromString(characteristicId))
|
|
789
880
|
if (characteristic == null) {
|
|
790
|
-
|
|
881
|
+
completionCallback(false, "Characteristic not found")
|
|
882
|
+
return
|
|
791
883
|
}
|
|
792
884
|
|
|
793
|
-
// Enable notifications
|
|
885
|
+
// Enable notifications locally
|
|
794
886
|
val success = gatt.setCharacteristicNotification(characteristic, true)
|
|
795
887
|
if (!success) {
|
|
796
|
-
|
|
888
|
+
completionCallback(false, "Failed to enable notifications")
|
|
889
|
+
return
|
|
797
890
|
}
|
|
798
891
|
|
|
799
|
-
// Store the callback
|
|
892
|
+
// Store the update callback
|
|
800
893
|
val callbacks = deviceCallbacks[deviceId]
|
|
801
894
|
if (callbacks != null) {
|
|
802
895
|
callbacks.characteristicSubscriptions[characteristicId] = updateCallback
|
|
803
896
|
}
|
|
804
897
|
|
|
805
|
-
// Write to the descriptor to enable notifications on the device
|
|
898
|
+
// Write to the CCCD descriptor to enable notifications on the remote device
|
|
899
|
+
// This must be queued to ensure sequential GATT operations
|
|
806
900
|
val descriptor = characteristic.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"))
|
|
807
901
|
if (descriptor != null) {
|
|
808
|
-
|
|
809
|
-
|
|
902
|
+
enqueueGattOperation(
|
|
903
|
+
GattOperation.WriteDescriptor(
|
|
904
|
+
gatt = gatt,
|
|
905
|
+
descriptor = descriptor,
|
|
906
|
+
value = BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE,
|
|
907
|
+
deviceId = deviceId,
|
|
908
|
+
callback = completionCallback
|
|
909
|
+
)
|
|
910
|
+
)
|
|
911
|
+
} else {
|
|
912
|
+
// No CCCD descriptor - some characteristics may not need it
|
|
913
|
+
completionCallback(true, "")
|
|
810
914
|
}
|
|
811
915
|
|
|
812
|
-
return OperationResult(success = true, error = null)
|
|
813
|
-
|
|
814
916
|
} catch (e: Exception) {
|
|
815
|
-
|
|
917
|
+
completionCallback(false, "Subscription error: ${e.message}")
|
|
816
918
|
}
|
|
817
919
|
}
|
|
818
920
|
|
|
@@ -828,39 +930,48 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
828
930
|
callback(false, "Device not connected")
|
|
829
931
|
return
|
|
830
932
|
}
|
|
831
|
-
|
|
933
|
+
|
|
832
934
|
val service = gatt.getService(UUID.fromString(serviceId))
|
|
833
935
|
if (service == null) {
|
|
834
936
|
callback(false, "Service not found")
|
|
835
937
|
return
|
|
836
938
|
}
|
|
837
|
-
|
|
939
|
+
|
|
838
940
|
val characteristic = service.getCharacteristic(UUID.fromString(characteristicId))
|
|
839
941
|
if (characteristic == null) {
|
|
840
942
|
callback(false, "Characteristic not found")
|
|
841
943
|
return
|
|
842
944
|
}
|
|
843
|
-
|
|
844
|
-
// Disable notifications
|
|
945
|
+
|
|
946
|
+
// Disable notifications locally
|
|
845
947
|
val success = gatt.setCharacteristicNotification(characteristic, false)
|
|
846
948
|
if (!success) {
|
|
847
949
|
callback(false, "Failed to disable notifications")
|
|
848
950
|
return
|
|
849
951
|
}
|
|
850
|
-
|
|
851
|
-
// Remove the callback
|
|
952
|
+
|
|
953
|
+
// Remove the update callback
|
|
852
954
|
val callbacks = deviceCallbacks[deviceId]
|
|
853
955
|
callbacks?.characteristicSubscriptions?.remove(characteristicId)
|
|
854
|
-
|
|
855
|
-
// Write to the descriptor to disable notifications on the device
|
|
956
|
+
|
|
957
|
+
// Write to the CCCD descriptor to disable notifications on the remote device
|
|
958
|
+
// This must be queued to ensure sequential GATT operations
|
|
856
959
|
val descriptor = characteristic.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb"))
|
|
857
960
|
if (descriptor != null) {
|
|
858
|
-
|
|
859
|
-
|
|
961
|
+
enqueueGattOperation(
|
|
962
|
+
GattOperation.WriteDescriptor(
|
|
963
|
+
gatt = gatt,
|
|
964
|
+
descriptor = descriptor,
|
|
965
|
+
value = BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE,
|
|
966
|
+
deviceId = deviceId,
|
|
967
|
+
callback = callback
|
|
968
|
+
)
|
|
969
|
+
)
|
|
970
|
+
} else {
|
|
971
|
+
// No CCCD descriptor - some characteristics may not need it
|
|
972
|
+
callback(true, "")
|
|
860
973
|
}
|
|
861
|
-
|
|
862
|
-
callback(true, "")
|
|
863
|
-
|
|
974
|
+
|
|
864
975
|
} catch (e: Exception) {
|
|
865
976
|
callback(false, "Unsubscription error: ${e.message}")
|
|
866
977
|
}
|
|
@@ -389,22 +389,24 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
389
389
|
deviceId: String,
|
|
390
390
|
serviceId: String,
|
|
391
391
|
characteristicId: String,
|
|
392
|
-
updateCallback: @escaping (String, ArrayBuffer) -> Void
|
|
393
|
-
|
|
392
|
+
updateCallback: @escaping (String, ArrayBuffer) -> Void,
|
|
393
|
+
completionCallback: @escaping (Bool, String) -> Void
|
|
394
|
+
) throws {
|
|
394
395
|
guard let characteristic = findCharacteristic(deviceId: deviceId, serviceId: serviceId, characteristicId: characteristicId) else {
|
|
395
|
-
|
|
396
|
+
completionCallback(false, "Characteristic not found")
|
|
397
|
+
return
|
|
396
398
|
}
|
|
397
399
|
|
|
398
400
|
// Ensure peripheral delegate exists
|
|
399
401
|
guard let delegate = peripheralDelegates[deviceId] else {
|
|
400
|
-
|
|
402
|
+
completionCallback(false, "Device not properly connected or delegate not found")
|
|
403
|
+
return
|
|
401
404
|
}
|
|
402
405
|
|
|
403
406
|
delegate.notificationCallbacks[characteristic.uuid] = updateCallback
|
|
407
|
+
delegate.subscriptionCallbacks[characteristic.uuid] = completionCallback
|
|
404
408
|
|
|
405
409
|
characteristic.service?.peripheral?.setNotifyValue(true, for: characteristic)
|
|
406
|
-
|
|
407
|
-
return OperationResult(success: true, error: nil)
|
|
408
410
|
}
|
|
409
411
|
|
|
410
412
|
public func unsubscribeFromCharacteristic(
|
|
@@ -200,9 +200,9 @@ export declare class BleNitroManager {
|
|
|
200
200
|
* @param serviceId ID of the service
|
|
201
201
|
* @param characteristicId ID of the characteristic
|
|
202
202
|
* @param callback Callback function called when notification is received
|
|
203
|
-
* @returns
|
|
203
|
+
* @returns Promise resolving to AsyncSubscription when subscription is established
|
|
204
204
|
*/
|
|
205
|
-
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): AsyncSubscription
|
|
205
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Promise<AsyncSubscription>;
|
|
206
206
|
/**
|
|
207
207
|
* Unsubscribe from characteristic notifications
|
|
208
208
|
* @param deviceId ID of the device
|
|
@@ -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
|
@@ -444,29 +444,30 @@ class BleNitroManager {
|
|
|
444
444
|
* @param serviceId ID of the service
|
|
445
445
|
* @param characteristicId ID of the characteristic
|
|
446
446
|
* @param callback Callback function called when notification is received
|
|
447
|
-
* @returns
|
|
447
|
+
* @returns Promise resolving to AsyncSubscription when subscription is established
|
|
448
448
|
*/
|
|
449
|
-
subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
const sub = {
|
|
462
|
-
remove: async () => {
|
|
463
|
-
if (!_success) {
|
|
449
|
+
async subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
450
|
+
return new Promise((resolve, reject) => {
|
|
451
|
+
// Check if connected first
|
|
452
|
+
if (!this._connectedDevices[deviceId]) {
|
|
453
|
+
reject(new Error('Device not connected'));
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
this.Instance.subscribeToCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
457
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
458
|
+
}, (success, error) => {
|
|
459
|
+
if (!success) {
|
|
460
|
+
reject(new Error(error || 'Failed to subscribe to characteristic'));
|
|
464
461
|
return;
|
|
465
462
|
}
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
463
|
+
const sub = {
|
|
464
|
+
remove: async () => {
|
|
465
|
+
await this.unsubscribeFromCharacteristic(deviceId, serviceId, characteristicId).catch(() => { });
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
resolve(sub);
|
|
469
|
+
});
|
|
470
|
+
});
|
|
470
471
|
}
|
|
471
472
|
/**
|
|
472
473
|
* Unsubscribe from characteristic notifications
|
|
@@ -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":"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"}
|
|
@@ -77,7 +77,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
77
77
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
78
78
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
79
79
|
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
80
|
-
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback):
|
|
80
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, completionCallback: OperationCallback): void;
|
|
81
81
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
82
82
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
83
83
|
state(): BLEState;
|
|
@@ -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
|
@@ -200,9 +200,9 @@ export declare class BleNitroManager {
|
|
|
200
200
|
* @param serviceId ID of the service
|
|
201
201
|
* @param characteristicId ID of the characteristic
|
|
202
202
|
* @param callback Callback function called when notification is received
|
|
203
|
-
* @returns
|
|
203
|
+
* @returns Promise resolving to AsyncSubscription when subscription is established
|
|
204
204
|
*/
|
|
205
|
-
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): AsyncSubscription
|
|
205
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Promise<AsyncSubscription>;
|
|
206
206
|
/**
|
|
207
207
|
* Unsubscribe from characteristic notifications
|
|
208
208
|
* @param deviceId ID of the device
|
package/lib/manager.js
CHANGED
|
@@ -430,29 +430,30 @@ export class BleNitroManager {
|
|
|
430
430
|
* @param serviceId ID of the service
|
|
431
431
|
* @param characteristicId ID of the characteristic
|
|
432
432
|
* @param callback Callback function called when notification is received
|
|
433
|
-
* @returns
|
|
433
|
+
* @returns Promise resolving to AsyncSubscription when subscription is established
|
|
434
434
|
*/
|
|
435
|
-
subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
const sub = {
|
|
448
|
-
remove: async () => {
|
|
449
|
-
if (!_success) {
|
|
435
|
+
async subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
436
|
+
return new Promise((resolve, reject) => {
|
|
437
|
+
// Check if connected first
|
|
438
|
+
if (!this._connectedDevices[deviceId]) {
|
|
439
|
+
reject(new Error('Device not connected'));
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
this.Instance.subscribeToCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
443
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
444
|
+
}, (success, error) => {
|
|
445
|
+
if (!success) {
|
|
446
|
+
reject(new Error(error || 'Failed to subscribe to characteristic'));
|
|
450
447
|
return;
|
|
451
448
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
449
|
+
const sub = {
|
|
450
|
+
remove: async () => {
|
|
451
|
+
await this.unsubscribeFromCharacteristic(deviceId, serviceId, characteristicId).catch(() => { });
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
resolve(sub);
|
|
455
|
+
});
|
|
456
|
+
});
|
|
456
457
|
}
|
|
457
458
|
/**
|
|
458
459
|
* Unsubscribe from characteristic notifications
|
|
@@ -77,7 +77,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
77
77
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
78
78
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
79
79
|
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
80
|
-
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback):
|
|
80
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, completionCallback: OperationCallback): void;
|
|
81
81
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
82
82
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
83
83
|
state(): BLEState;
|
|
@@ -15,10 +15,10 @@ namespace margelo::nitro::co::zyke::ble { struct ManufacturerData; }
|
|
|
15
15
|
namespace margelo::nitro::co::zyke::ble { struct ManufacturerDataEntry; }
|
|
16
16
|
// Forward declaration of `ArrayBuffer` to properly resolve imports.
|
|
17
17
|
namespace NitroModules { class ArrayBuffer; }
|
|
18
|
-
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
19
|
-
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
20
18
|
// Forward declaration of `BLEState` to properly resolve imports.
|
|
21
19
|
namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
|
|
20
|
+
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
21
|
+
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
22
22
|
// Forward declaration of `ScanFilter` to properly resolve imports.
|
|
23
23
|
namespace margelo::nitro::co::zyke::ble { struct ScanFilter; }
|
|
24
24
|
// Forward declaration of `AndroidScanMode` to properly resolve imports.
|
|
@@ -36,10 +36,10 @@ namespace margelo::nitro::co::zyke::ble { enum class AndroidScanMode; }
|
|
|
36
36
|
#include <NitroModules/ArrayBuffer.hpp>
|
|
37
37
|
#include <NitroModules/JArrayBuffer.hpp>
|
|
38
38
|
#include <NitroModules/JUnit.hpp>
|
|
39
|
-
#include "OperationResult.hpp"
|
|
40
|
-
#include "JOperationResult.hpp"
|
|
41
39
|
#include "BLEState.hpp"
|
|
42
40
|
#include "JBLEState.hpp"
|
|
41
|
+
#include "OperationResult.hpp"
|
|
42
|
+
#include "JOperationResult.hpp"
|
|
43
43
|
#include <NitroModules/Promise.hpp>
|
|
44
44
|
#include <NitroModules/JPromise.hpp>
|
|
45
45
|
#include <functional>
|
|
@@ -193,10 +193,9 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
193
193
|
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JArrayBuffer::javaobject> /* data */, jboolean /* withResponse */, jni::alias_ref<JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("writeCharacteristic_cxx");
|
|
194
194
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JArrayBuffer::wrap(data), withResponse, JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string_cxx::fromCpp(callback));
|
|
195
195
|
}
|
|
196
|
-
|
|
197
|
-
static const auto method = javaClassStatic()->getMethod<
|
|
198
|
-
|
|
199
|
-
return __result->toCpp();
|
|
196
|
+
void JHybridNativeBleNitroSpec::subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) {
|
|
197
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_std__string_std__shared_ptr_ArrayBuffer_::javaobject> /* updateCallback */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* completionCallback */)>("subscribeToCharacteristic_cxx");
|
|
198
|
+
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JFunc_void_std__string_std__shared_ptr_ArrayBuffer__cxx::fromCpp(updateCallback), JFunc_void_bool_std__string_cxx::fromCpp(completionCallback));
|
|
200
199
|
}
|
|
201
200
|
void JHybridNativeBleNitroSpec::unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) {
|
|
202
201
|
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* deviceId */, jni::alias_ref<jni::JString> /* serviceId */, jni::alias_ref<jni::JString> /* characteristicId */, jni::alias_ref<JFunc_void_bool_std__string::javaobject> /* callback */)>("unsubscribeFromCharacteristic_cxx");
|
|
@@ -69,7 +69,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
69
69
|
std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) override;
|
|
70
70
|
void readCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* error */)>& callback) override;
|
|
71
71
|
void writeCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::shared_ptr<ArrayBuffer>& data, bool withResponse, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* responseData */, const std::string& /* error */)>& callback) override;
|
|
72
|
-
|
|
72
|
+
void subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) override;
|
|
73
73
|
void unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
74
74
|
void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
|
75
75
|
BLEState state() override;
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt
CHANGED
|
@@ -144,12 +144,12 @@ abstract class HybridNativeBleNitroSpec: HybridObject() {
|
|
|
144
144
|
return __result
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
abstract fun subscribeToCharacteristic(deviceId: String, serviceId: String, characteristicId: String, updateCallback: (characteristicId: String, data: ArrayBuffer) -> Unit):
|
|
147
|
+
abstract fun subscribeToCharacteristic(deviceId: String, serviceId: String, characteristicId: String, updateCallback: (characteristicId: String, data: ArrayBuffer) -> Unit, completionCallback: (success: Boolean, error: String) -> Unit): Unit
|
|
148
148
|
|
|
149
149
|
@DoNotStrip
|
|
150
150
|
@Keep
|
|
151
|
-
private fun subscribeToCharacteristic_cxx(deviceId: String, serviceId: String, characteristicId: String, updateCallback: Func_void_std__string_std__shared_ptr_ArrayBuffer_):
|
|
152
|
-
val __result = subscribeToCharacteristic(deviceId, serviceId, characteristicId, updateCallback)
|
|
151
|
+
private fun subscribeToCharacteristic_cxx(deviceId: String, serviceId: String, characteristicId: String, updateCallback: Func_void_std__string_std__shared_ptr_ArrayBuffer_, completionCallback: Func_void_bool_std__string): Unit {
|
|
152
|
+
val __result = subscribeToCharacteristic(deviceId, serviceId, characteristicId, updateCallback, completionCallback)
|
|
153
153
|
return __result
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -464,15 +464,6 @@ namespace margelo::nitro::co::zyke::ble::bridge::swift {
|
|
|
464
464
|
return Result<std::vector<std::string>>::withError(error);
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
// pragma MARK: Result<OperationResult>
|
|
468
|
-
using Result_OperationResult_ = Result<OperationResult>;
|
|
469
|
-
inline Result_OperationResult_ create_Result_OperationResult_(const OperationResult& value) noexcept {
|
|
470
|
-
return Result<OperationResult>::withValue(value);
|
|
471
|
-
}
|
|
472
|
-
inline Result_OperationResult_ create_Result_OperationResult_(const std::exception_ptr& error) noexcept {
|
|
473
|
-
return Result<OperationResult>::withError(error);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
467
|
// pragma MARK: Result<BLEState>
|
|
477
468
|
using Result_BLEState_ = Result<BLEState>;
|
|
478
469
|
inline Result_BLEState_ create_Result_BLEState_(BLEState value) noexcept {
|
|
@@ -482,6 +473,15 @@ namespace margelo::nitro::co::zyke::ble::bridge::swift {
|
|
|
482
473
|
return Result<BLEState>::withError(error);
|
|
483
474
|
}
|
|
484
475
|
|
|
476
|
+
// pragma MARK: Result<OperationResult>
|
|
477
|
+
using Result_OperationResult_ = Result<OperationResult>;
|
|
478
|
+
inline Result_OperationResult_ create_Result_OperationResult_(const OperationResult& value) noexcept {
|
|
479
|
+
return Result<OperationResult>::withValue(value);
|
|
480
|
+
}
|
|
481
|
+
inline Result_OperationResult_ create_Result_OperationResult_(const std::exception_ptr& error) noexcept {
|
|
482
|
+
return Result<OperationResult>::withError(error);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
485
|
// pragma MARK: Result<std::shared_ptr<Promise<void>>>
|
|
486
486
|
using Result_std__shared_ptr_Promise_void___ = Result<std::shared_ptr<Promise<void>>>;
|
|
487
487
|
inline Result_std__shared_ptr_Promise_void___ create_Result_std__shared_ptr_Promise_void___(const std::shared_ptr<Promise<void>>& value) noexcept {
|
|
@@ -26,10 +26,10 @@ namespace NitroModules { class ArrayBufferHolder; }
|
|
|
26
26
|
namespace margelo::nitro::co::zyke::ble { struct ScanFilter; }
|
|
27
27
|
// Forward declaration of `AndroidScanMode` to properly resolve imports.
|
|
28
28
|
namespace margelo::nitro::co::zyke::ble { enum class AndroidScanMode; }
|
|
29
|
-
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
30
|
-
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
31
29
|
// Forward declaration of `BLEState` to properly resolve imports.
|
|
32
30
|
namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
|
|
31
|
+
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
32
|
+
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
33
33
|
|
|
34
34
|
#include <string>
|
|
35
35
|
#include <optional>
|
|
@@ -42,8 +42,8 @@ namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
|
|
|
42
42
|
#include <NitroModules/ArrayBufferHolder.hpp>
|
|
43
43
|
#include "ScanFilter.hpp"
|
|
44
44
|
#include "AndroidScanMode.hpp"
|
|
45
|
-
#include "OperationResult.hpp"
|
|
46
45
|
#include "BLEState.hpp"
|
|
46
|
+
#include "OperationResult.hpp"
|
|
47
47
|
#include <NitroModules/Promise.hpp>
|
|
48
48
|
|
|
49
49
|
#include "BleNitro-Swift-Cxx-Umbrella.hpp"
|
|
@@ -197,13 +197,11 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
197
197
|
std::rethrow_exception(__result.error());
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
inline
|
|
201
|
-
auto __result = _swiftPart.subscribeToCharacteristic(deviceId, serviceId, characteristicId, updateCallback);
|
|
200
|
+
inline void subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) override {
|
|
201
|
+
auto __result = _swiftPart.subscribeToCharacteristic(deviceId, serviceId, characteristicId, updateCallback, completionCallback);
|
|
202
202
|
if (__result.hasError()) [[unlikely]] {
|
|
203
203
|
std::rethrow_exception(__result.error());
|
|
204
204
|
}
|
|
205
|
-
auto __value = std::move(__result.value());
|
|
206
|
-
return __value;
|
|
207
205
|
}
|
|
208
206
|
inline void unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override {
|
|
209
207
|
auto __result = _swiftPart.unsubscribeFromCharacteristic(deviceId, serviceId, characteristicId, callback);
|
|
@@ -29,7 +29,7 @@ public protocol HybridNativeBleNitroSpec_protocol: HybridObject {
|
|
|
29
29
|
func getCharacteristics(deviceId: String, serviceId: String) throws -> [String]
|
|
30
30
|
func readCharacteristic(deviceId: String, serviceId: String, characteristicId: String, callback: @escaping (_ success: Bool, _ data: ArrayBuffer, _ error: String) -> Void) throws -> Void
|
|
31
31
|
func writeCharacteristic(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Bool, callback: @escaping (_ success: Bool, _ responseData: ArrayBuffer, _ error: String) -> Void) throws -> Void
|
|
32
|
-
func subscribeToCharacteristic(deviceId: String, serviceId: String, characteristicId: String, updateCallback: @escaping (_ characteristicId: String, _ data: ArrayBuffer) -> Void) throws ->
|
|
32
|
+
func subscribeToCharacteristic(deviceId: String, serviceId: String, characteristicId: String, updateCallback: @escaping (_ characteristicId: String, _ data: ArrayBuffer) -> Void, completionCallback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
33
33
|
func unsubscribeFromCharacteristic(deviceId: String, serviceId: String, characteristicId: String, callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
34
34
|
func requestBluetoothEnable(callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
35
35
|
func state() throws -> BLEState
|
|
@@ -392,19 +392,23 @@ open class HybridNativeBleNitroSpec_cxx {
|
|
|
392
392
|
}
|
|
393
393
|
|
|
394
394
|
@inline(__always)
|
|
395
|
-
public final func subscribeToCharacteristic(deviceId: std.string, serviceId: std.string, characteristicId: std.string, updateCallback: bridge.Func_void_std__string_std__shared_ptr_ArrayBuffer_) -> bridge.
|
|
395
|
+
public final func subscribeToCharacteristic(deviceId: std.string, serviceId: std.string, characteristicId: std.string, updateCallback: bridge.Func_void_std__string_std__shared_ptr_ArrayBuffer_, completionCallback: bridge.Func_void_bool_std__string) -> bridge.Result_void_ {
|
|
396
396
|
do {
|
|
397
|
-
|
|
397
|
+
try self.__implementation.subscribeToCharacteristic(deviceId: String(deviceId), serviceId: String(serviceId), characteristicId: String(characteristicId), updateCallback: { () -> (String, ArrayBuffer) -> Void in
|
|
398
398
|
let __wrappedFunction = bridge.wrap_Func_void_std__string_std__shared_ptr_ArrayBuffer_(updateCallback)
|
|
399
399
|
return { (__characteristicId: String, __data: ArrayBuffer) -> Void in
|
|
400
400
|
__wrappedFunction.call(std.string(__characteristicId), __data)
|
|
401
401
|
}
|
|
402
|
+
}(), completionCallback: { () -> (Bool, String) -> Void in
|
|
403
|
+
let __wrappedFunction = bridge.wrap_Func_void_bool_std__string(completionCallback)
|
|
404
|
+
return { (__success: Bool, __error: String) -> Void in
|
|
405
|
+
__wrappedFunction.call(__success, std.string(__error))
|
|
406
|
+
}
|
|
402
407
|
}())
|
|
403
|
-
|
|
404
|
-
return bridge.create_Result_OperationResult_(__resultCpp)
|
|
408
|
+
return bridge.create_Result_void_()
|
|
405
409
|
} catch (let __error) {
|
|
406
410
|
let __exceptionPtr = __error.toCpp()
|
|
407
|
-
return bridge.
|
|
411
|
+
return bridge.create_Result_void_(__exceptionPtr)
|
|
408
412
|
}
|
|
409
413
|
}
|
|
410
414
|
|
|
@@ -19,10 +19,10 @@ namespace margelo::nitro::co::zyke::ble { struct BLEDevice; }
|
|
|
19
19
|
namespace margelo::nitro::co::zyke::ble { struct ScanFilter; }
|
|
20
20
|
// Forward declaration of `ArrayBuffer` to properly resolve imports.
|
|
21
21
|
namespace NitroModules { class ArrayBuffer; }
|
|
22
|
-
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
23
|
-
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
24
22
|
// Forward declaration of `BLEState` to properly resolve imports.
|
|
25
23
|
namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
|
|
24
|
+
// Forward declaration of `OperationResult` to properly resolve imports.
|
|
25
|
+
namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
|
|
26
26
|
|
|
27
27
|
#include <string>
|
|
28
28
|
#include <optional>
|
|
@@ -31,8 +31,8 @@ namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
|
|
|
31
31
|
#include <functional>
|
|
32
32
|
#include "ScanFilter.hpp"
|
|
33
33
|
#include <NitroModules/ArrayBuffer.hpp>
|
|
34
|
-
#include "OperationResult.hpp"
|
|
35
34
|
#include "BLEState.hpp"
|
|
35
|
+
#include "OperationResult.hpp"
|
|
36
36
|
#include <NitroModules/Promise.hpp>
|
|
37
37
|
|
|
38
38
|
namespace margelo::nitro::co::zyke::ble {
|
|
@@ -82,7 +82,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
82
82
|
virtual std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) = 0;
|
|
83
83
|
virtual void readCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* data */, const std::string& /* error */)>& callback) = 0;
|
|
84
84
|
virtual void writeCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::shared_ptr<ArrayBuffer>& data, bool withResponse, const std::function<void(bool /* success */, const std::shared_ptr<ArrayBuffer>& /* responseData */, const std::string& /* error */)>& callback) = 0;
|
|
85
|
-
virtual
|
|
85
|
+
virtual void subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::shared_ptr<ArrayBuffer>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& completionCallback) = 0;
|
|
86
86
|
virtual void unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
|
|
87
87
|
virtual void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
|
|
88
88
|
virtual BLEState state() = 0;
|
package/package.json
CHANGED
|
@@ -245,17 +245,17 @@ describe('BleNitro', () => {
|
|
|
245
245
|
});
|
|
246
246
|
await BleManager.connect('device');
|
|
247
247
|
|
|
248
|
-
// Mock subscription - now
|
|
249
|
-
mockNative.subscribeToCharacteristic.mockImplementation((_device: string, _service: string, _char: string, updateCallback: (charId: string, data: ArrayBuffer) => void) => {
|
|
248
|
+
// Mock subscription - now uses completion callback (async)
|
|
249
|
+
mockNative.subscribeToCharacteristic.mockImplementation((_device: string, _service: string, _char: string, updateCallback: (charId: string, data: ArrayBuffer) => void, completionCallback: (success: boolean, error: string) => void) => {
|
|
250
250
|
// Simulate notification
|
|
251
251
|
const testData = new Uint8Array([1, 2, 3]);
|
|
252
252
|
updateCallback('char-id', testData.buffer);
|
|
253
|
-
//
|
|
254
|
-
|
|
253
|
+
// Call completion callback to signal subscription is established
|
|
254
|
+
completionCallback(true, '');
|
|
255
255
|
});
|
|
256
256
|
|
|
257
257
|
const notificationCallback = jest.fn();
|
|
258
|
-
const subscription = BleManager.subscribeToCharacteristic('device', 'service', 'char', notificationCallback);
|
|
258
|
+
const subscription = await BleManager.subscribeToCharacteristic('device', 'service', 'char', notificationCallback);
|
|
259
259
|
|
|
260
260
|
expect(mockNative.subscribeToCharacteristic).toHaveBeenCalled();
|
|
261
261
|
expect(notificationCallback).toHaveBeenCalledWith('char-id', [1, 2, 3]);
|
package/src/manager.ts
CHANGED
|
@@ -581,48 +581,48 @@ export class BleNitroManager {
|
|
|
581
581
|
* @param serviceId ID of the service
|
|
582
582
|
* @param characteristicId ID of the characteristic
|
|
583
583
|
* @param callback Callback function called when notification is received
|
|
584
|
-
* @returns
|
|
584
|
+
* @returns Promise resolving to AsyncSubscription when subscription is established
|
|
585
585
|
*/
|
|
586
|
-
public subscribeToCharacteristic(
|
|
586
|
+
public async subscribeToCharacteristic(
|
|
587
587
|
deviceId: string,
|
|
588
588
|
serviceId: string,
|
|
589
589
|
characteristicId: string,
|
|
590
590
|
callback: CharacteristicUpdateCallback
|
|
591
|
-
): AsyncSubscription {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
deviceId,
|
|
599
|
-
BleNitroManager.normalizeGattUUID(serviceId),
|
|
600
|
-
BleNitroManager.normalizeGattUUID(characteristicId),
|
|
601
|
-
(charId: string, data: ArrayBuffer) => {
|
|
602
|
-
callback(charId, arrayBufferToByteArray(data));
|
|
603
|
-
},
|
|
604
|
-
);
|
|
605
|
-
|
|
606
|
-
const _success = success;
|
|
591
|
+
): Promise<AsyncSubscription> {
|
|
592
|
+
return new Promise((resolve, reject) => {
|
|
593
|
+
// Check if connected first
|
|
594
|
+
if (!this._connectedDevices[deviceId]) {
|
|
595
|
+
reject(new Error('Device not connected'));
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
607
598
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
599
|
+
this.Instance.subscribeToCharacteristic(
|
|
600
|
+
deviceId,
|
|
601
|
+
BleNitroManager.normalizeGattUUID(serviceId),
|
|
602
|
+
BleNitroManager.normalizeGattUUID(characteristicId),
|
|
603
|
+
(charId: string, data: ArrayBuffer) => {
|
|
604
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
605
|
+
},
|
|
606
|
+
(success: boolean, error: string) => {
|
|
607
|
+
if (!success) {
|
|
608
|
+
reject(new Error(error || 'Failed to subscribe to characteristic'));
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
611
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
612
|
+
const sub: AsyncSubscription = {
|
|
613
|
+
remove: async () => {
|
|
614
|
+
await this.unsubscribeFromCharacteristic(
|
|
615
|
+
deviceId,
|
|
616
|
+
serviceId,
|
|
617
|
+
characteristicId
|
|
618
|
+
).catch(() => {});
|
|
619
|
+
}
|
|
620
|
+
};
|
|
621
|
+
|
|
622
|
+
resolve(sub);
|
|
616
623
|
}
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
serviceId,
|
|
620
|
-
characteristicId
|
|
621
|
-
).catch(() => {});
|
|
622
|
-
}
|
|
623
|
-
};
|
|
624
|
-
|
|
625
|
-
return sub;
|
|
624
|
+
);
|
|
625
|
+
});
|
|
626
626
|
}
|
|
627
627
|
|
|
628
628
|
/**
|
|
@@ -97,7 +97,7 @@ export interface NativeBleNitro extends HybridObject<{ ios: 'swift'; android: 'k
|
|
|
97
97
|
// Characteristic operations
|
|
98
98
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
99
99
|
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
100
|
-
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback):
|
|
100
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, completionCallback: OperationCallback): void;
|
|
101
101
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
102
102
|
|
|
103
103
|
// Bluetooth state management
|