react-native-ble-nitro 1.4.0 → 1.4.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 +13 -13
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +42 -7
- package/ios/BleNitroBleManager.swift +11 -4
- package/ios/BlePeripheralDelegate.swift +13 -3
- package/lib/commonjs/manager.d.ts +5 -5
- package/lib/commonjs/manager.d.ts.map +1 -1
- package/lib/commonjs/manager.js +11 -9
- package/lib/commonjs/manager.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +2 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
- package/lib/manager.d.ts +5 -5
- package/lib/manager.js +11 -9
- package/lib/specs/NativeBleNitro.nitro.d.ts +2 -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 +2 -2
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +1 -1
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +5 -5
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +1 -1
- package/package.json +1 -1
- package/src/__tests__/index.test.ts +57 -1
- package/src/manager.ts +13 -11
- package/src/specs/NativeBleNitro.nitro.ts +2 -1
package/README.md
CHANGED
|
@@ -192,8 +192,7 @@ const data = await ble.readCharacteristic(deviceId, serviceUUID, characteristicU
|
|
|
192
192
|
|
|
193
193
|
// Example: Reading battery level
|
|
194
194
|
const batteryData = await ble.readCharacteristic(deviceId, '180f', '2a19');
|
|
195
|
-
const
|
|
196
|
-
const batteryLevel = batteryArray[0]; // First byte is battery percentage
|
|
195
|
+
const batteryLevel = batteryData[0]; // First byte is battery percentage
|
|
197
196
|
console.log('Battery level:', batteryLevel + '%');
|
|
198
197
|
```
|
|
199
198
|
|
|
@@ -201,23 +200,26 @@ console.log('Battery level:', batteryLevel + '%');
|
|
|
201
200
|
|
|
202
201
|
```typescript
|
|
203
202
|
// Write to a characteristic with response
|
|
204
|
-
const data =
|
|
205
|
-
await ble.writeCharacteristic(
|
|
203
|
+
const data = [0x01, 0x02, 0x03];
|
|
204
|
+
const result = await ble.writeCharacteristic(
|
|
206
205
|
deviceId,
|
|
207
206
|
serviceUUID,
|
|
208
207
|
characteristicUUID,
|
|
209
|
-
data
|
|
208
|
+
data, // Data as ArrayBuffer
|
|
210
209
|
true // withResponse = true (default)
|
|
211
210
|
);
|
|
211
|
+
// result is array of integers (may be empty depending on characteristic)
|
|
212
|
+
// Android returns the written data if withResponse=true and characteristic returns no data, on iOS it is an empty array
|
|
212
213
|
|
|
213
214
|
// Write without response (faster, no confirmation)
|
|
214
|
-
await ble.writeCharacteristic(
|
|
215
|
+
const emptyResult = await ble.writeCharacteristic(
|
|
215
216
|
deviceId,
|
|
216
217
|
serviceUUID,
|
|
217
218
|
characteristicUUID,
|
|
218
|
-
data
|
|
219
|
+
data,
|
|
219
220
|
false // withResponse = false
|
|
220
221
|
);
|
|
222
|
+
// emptyResult is always empty array
|
|
221
223
|
```
|
|
222
224
|
|
|
223
225
|
#### 📡 Characteristic Notifications
|
|
@@ -258,8 +260,7 @@ const subscription = ble.subscribeToCharacteristic(
|
|
|
258
260
|
HEART_RATE_SERVICE,
|
|
259
261
|
HEART_RATE_MEASUREMENT,
|
|
260
262
|
(_, data) => {
|
|
261
|
-
const
|
|
262
|
-
const heartRate = dataArray[1]; // Second byte contains BPM
|
|
263
|
+
const heartRate = data[1]; // Second byte contains BPM
|
|
263
264
|
console.log('Heart rate:', heartRate, 'BPM');
|
|
264
265
|
}
|
|
265
266
|
);
|
|
@@ -279,8 +280,7 @@ const batteryData = await ble.readCharacteristic(
|
|
|
279
280
|
BATTERY_SERVICE,
|
|
280
281
|
BATTERY_LEVEL_CHARACTERISTIC
|
|
281
282
|
);
|
|
282
|
-
const
|
|
283
|
-
const batteryPercentage = batteryArray[0];
|
|
283
|
+
const batteryPercentage = batteryData[0];
|
|
284
284
|
console.log('Battery:', batteryPercentage + '%');
|
|
285
285
|
```
|
|
286
286
|
|
|
@@ -291,12 +291,12 @@ const CUSTOM_SERVICE = 'your-custom-service-uuid';
|
|
|
291
291
|
const COMMAND_CHARACTERISTIC = 'your-command-characteristic-uuid';
|
|
292
292
|
|
|
293
293
|
// Send a custom command
|
|
294
|
-
const enableLedCommand =
|
|
294
|
+
const enableLedCommand = [0x01, 0x1f, 0x01]; // Your protocol
|
|
295
295
|
await ble.writeCharacteristic(
|
|
296
296
|
deviceId,
|
|
297
297
|
CUSTOM_SERVICE,
|
|
298
298
|
COMMAND_CHARACTERISTIC,
|
|
299
|
-
enableLedCommand
|
|
299
|
+
enableLedCommand
|
|
300
300
|
);
|
|
301
301
|
```
|
|
302
302
|
|
|
@@ -50,6 +50,9 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
50
50
|
private val connectedDevices = ConcurrentHashMap<String, BluetoothGatt>()
|
|
51
51
|
private val deviceCallbacks = ConcurrentHashMap<String, DeviceCallbacks>()
|
|
52
52
|
|
|
53
|
+
// Write callback storage for proper response handling (key: deviceId:characteristicId)
|
|
54
|
+
private val writeCallbacks = ConcurrentHashMap<String, (Boolean, ArrayBuffer, String) -> Unit>()
|
|
55
|
+
|
|
53
56
|
// Helper class to store device callbacks
|
|
54
57
|
private data class DeviceCallbacks(
|
|
55
58
|
var connectCallback: ((success: Boolean, deviceId: String, error: String) -> Unit)? = null,
|
|
@@ -280,7 +283,23 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
280
283
|
|
|
281
284
|
override fun onCharacteristicWrite(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
|
|
282
285
|
// Handle characteristic write result
|
|
283
|
-
|
|
286
|
+
val deviceId = gatt.device.address
|
|
287
|
+
val characteristicId = characteristic.uuid.toString()
|
|
288
|
+
val callbackKey = "$deviceId:$characteristicId"
|
|
289
|
+
|
|
290
|
+
writeCallbacks.remove(callbackKey)?.let { callback ->
|
|
291
|
+
if (status == BluetoothGatt.GATT_SUCCESS) {
|
|
292
|
+
// Get response data from characteristic value (may be null/empty for acknowledgments)
|
|
293
|
+
val responseData = characteristic.value ?: byteArrayOf()
|
|
294
|
+
val directBuffer = java.nio.ByteBuffer.allocateDirect(responseData.size)
|
|
295
|
+
directBuffer.put(responseData)
|
|
296
|
+
directBuffer.flip()
|
|
297
|
+
val arrayBuffer = ArrayBuffer.wrap(directBuffer)
|
|
298
|
+
callback(true, arrayBuffer, "")
|
|
299
|
+
} else {
|
|
300
|
+
callback(false, ArrayBuffer.allocate(0), "Write failed with status: $status")
|
|
301
|
+
}
|
|
302
|
+
}
|
|
284
303
|
}
|
|
285
304
|
|
|
286
305
|
override fun onCharacteristicChanged(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic) {
|
|
@@ -646,24 +665,24 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
646
665
|
characteristicId: String,
|
|
647
666
|
data: ArrayBuffer,
|
|
648
667
|
withResponse: Boolean,
|
|
649
|
-
callback: (success: Boolean, error: String) -> Unit
|
|
668
|
+
callback: (success: Boolean, responseData: ArrayBuffer, error: String) -> Unit
|
|
650
669
|
) {
|
|
651
670
|
try {
|
|
652
671
|
val gatt = connectedDevices[deviceId]
|
|
653
672
|
if (gatt == null) {
|
|
654
|
-
callback(false, "Device not connected")
|
|
673
|
+
callback(false, ArrayBuffer.allocate(0), "Device not connected")
|
|
655
674
|
return
|
|
656
675
|
}
|
|
657
676
|
|
|
658
677
|
val service = gatt.getService(UUID.fromString(serviceId))
|
|
659
678
|
if (service == null) {
|
|
660
|
-
callback(false, "Service not found")
|
|
679
|
+
callback(false, ArrayBuffer.allocate(0), "Service not found")
|
|
661
680
|
return
|
|
662
681
|
}
|
|
663
682
|
|
|
664
683
|
val characteristic = service.getCharacteristic(UUID.fromString(characteristicId))
|
|
665
684
|
if (characteristic == null) {
|
|
666
|
-
callback(false, "Characteristic not found")
|
|
685
|
+
callback(false, ArrayBuffer.allocate(0), "Characteristic not found")
|
|
667
686
|
return
|
|
668
687
|
}
|
|
669
688
|
|
|
@@ -679,11 +698,27 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
|
|
|
679
698
|
BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
|
|
680
699
|
}
|
|
681
700
|
|
|
701
|
+
if (withResponse) {
|
|
702
|
+
// Store callback for when response comes back
|
|
703
|
+
val callbackKey = "$deviceId:$characteristicId"
|
|
704
|
+
writeCallbacks[callbackKey] = callback
|
|
705
|
+
}
|
|
706
|
+
|
|
682
707
|
val success = gatt.writeCharacteristic(characteristic)
|
|
683
|
-
|
|
708
|
+
|
|
709
|
+
if (!withResponse) {
|
|
710
|
+
// For no response, call callback immediately
|
|
711
|
+
callback(success, ArrayBuffer.allocate(0), if (success) "" else "Write operation failed")
|
|
712
|
+
} else if (!success) {
|
|
713
|
+
// If write initiation failed, remove callback and notify
|
|
714
|
+
val callbackKey = "$deviceId:$characteristicId"
|
|
715
|
+
writeCallbacks.remove(callbackKey)
|
|
716
|
+
callback(false, ArrayBuffer.allocate(0), "Write operation failed to initiate")
|
|
717
|
+
}
|
|
718
|
+
// If withResponse and success, wait for onCharacteristicWrite
|
|
684
719
|
|
|
685
720
|
} catch (e: Exception) {
|
|
686
|
-
callback(false, "Write error: ${e.message}")
|
|
721
|
+
callback(false, ArrayBuffer.allocate(0), "Write error: ${e.message}")
|
|
687
722
|
}
|
|
688
723
|
}
|
|
689
724
|
|
|
@@ -330,10 +330,11 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
|
|
|
330
330
|
characteristicId: String,
|
|
331
331
|
data: ArrayBuffer,
|
|
332
332
|
withResponse: Bool,
|
|
333
|
-
callback: @escaping (Bool, String) -> Void
|
|
333
|
+
callback: @escaping (Bool, ArrayBuffer, String) -> Void
|
|
334
334
|
) throws {
|
|
335
335
|
guard let characteristic = findCharacteristic(deviceId: deviceId, serviceId: serviceId, characteristicId: characteristicId) else {
|
|
336
|
-
|
|
336
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
337
|
+
callback(false, emptyBuffer, "Characteristic not found")
|
|
337
338
|
return
|
|
338
339
|
}
|
|
339
340
|
|
|
@@ -343,16 +344,20 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
|
|
|
343
344
|
if withResponse {
|
|
344
345
|
// Ensure peripheral delegate exists for response handling
|
|
345
346
|
guard let delegate = peripheralDelegates[deviceId] else {
|
|
346
|
-
|
|
347
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
348
|
+
callback(false, emptyBuffer, "Device not properly connected or delegate not found")
|
|
347
349
|
return
|
|
348
350
|
}
|
|
349
351
|
delegate.writeCallbacks[characteristic.uuid] = callback
|
|
352
|
+
// Store written data for comparison
|
|
353
|
+
delegate.writtenData[characteristic.uuid] = writeData
|
|
350
354
|
}
|
|
351
355
|
|
|
352
356
|
characteristic.service?.peripheral?.writeValue(writeData, for: characteristic, type: writeType)
|
|
353
357
|
|
|
354
358
|
if !withResponse {
|
|
355
|
-
|
|
359
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
360
|
+
callback(true, emptyBuffer, "")
|
|
356
361
|
}
|
|
357
362
|
}
|
|
358
363
|
|
|
@@ -432,6 +437,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
|
|
|
432
437
|
let characteristic = service.characteristics?.first(where: { $0.uuid == characteristicUUID }) else {
|
|
433
438
|
return nil
|
|
434
439
|
}
|
|
440
|
+
|
|
441
|
+
|
|
435
442
|
return characteristic
|
|
436
443
|
}
|
|
437
444
|
|
|
@@ -21,10 +21,13 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
21
21
|
|
|
22
22
|
// Operation callbacks - using CBUUID as key for reliable UUID matching
|
|
23
23
|
var readCallbacks: [CBUUID: (Bool, ArrayBuffer, String) -> Void] = [:]
|
|
24
|
-
var writeCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
24
|
+
var writeCallbacks: [CBUUID: (Bool, ArrayBuffer, String) -> Void] = [:]
|
|
25
25
|
var subscriptionCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
26
26
|
var unsubscriptionCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
27
27
|
|
|
28
|
+
// Store written data for comparison
|
|
29
|
+
var writtenData: [CBUUID: Data] = [:]
|
|
30
|
+
|
|
28
31
|
// Notification callbacks
|
|
29
32
|
var notificationCallbacks: [CBUUID: (String, ArrayBuffer) -> Void] = [:]
|
|
30
33
|
|
|
@@ -133,11 +136,17 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
133
136
|
// Handle write callback using CBUUID
|
|
134
137
|
if let writeCallback = writeCallbacks[characteristicUUID] {
|
|
135
138
|
if let error = error {
|
|
136
|
-
|
|
139
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
140
|
+
writeCallback(false, emptyBuffer, error.localizedDescription)
|
|
137
141
|
} else {
|
|
138
|
-
|
|
142
|
+
// For write operations in iOS, didWriteValueFor indicates successful acknowledgment
|
|
143
|
+
// Check if characteristic value was updated (may contain response data or written data)
|
|
144
|
+
let responseData = characteristic.value ?? Data()
|
|
145
|
+
let responseBuffer = try! ArrayBuffer.copy(data: responseData)
|
|
146
|
+
writeCallback(true, responseBuffer, "")
|
|
139
147
|
}
|
|
140
148
|
writeCallbacks.removeValue(forKey: characteristicUUID)
|
|
149
|
+
writtenData.removeValue(forKey: characteristicUUID)
|
|
141
150
|
}
|
|
142
151
|
}
|
|
143
152
|
|
|
@@ -195,6 +204,7 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
195
204
|
characteristicDiscoveryCallbacks.removeAll()
|
|
196
205
|
readCallbacks.removeAll()
|
|
197
206
|
writeCallbacks.removeAll()
|
|
207
|
+
writtenData.removeAll()
|
|
198
208
|
subscriptionCallbacks.removeAll()
|
|
199
209
|
unsubscriptionCallbacks.removeAll()
|
|
200
210
|
notificationCallbacks.removeAll()
|
|
@@ -45,7 +45,7 @@ export declare enum AndroidScanMode {
|
|
|
45
45
|
Opportunistic = "Opportunistic"
|
|
46
46
|
}
|
|
47
47
|
export type BleNitroManagerOptions = {
|
|
48
|
-
|
|
48
|
+
onRestoredState?: RestoreStateCallback;
|
|
49
49
|
};
|
|
50
50
|
export declare function mapNativeBLEStateToBLEState(nativeState: NativeBLEState): BLEState;
|
|
51
51
|
export declare function mapAndroidScanModeToNativeAndroidScanMode(scanMode: AndroidScanMode): NativeAndroidScanMode;
|
|
@@ -55,11 +55,11 @@ export declare function byteArrayToArrayBuffer(data: ByteArray): ArrayBuffer;
|
|
|
55
55
|
export declare class BleNitroManager {
|
|
56
56
|
private _isScanning;
|
|
57
57
|
private _connectedDevices;
|
|
58
|
-
private
|
|
58
|
+
private _restoredStateCallback;
|
|
59
59
|
private _restoredState;
|
|
60
60
|
constructor(options?: BleNitroManagerOptions);
|
|
61
61
|
private onNativeRestoreStateCallback;
|
|
62
|
-
|
|
62
|
+
onRestoredState(callback: RestoreStateCallback): void;
|
|
63
63
|
/**
|
|
64
64
|
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
65
65
|
*
|
|
@@ -151,9 +151,9 @@ export declare class BleNitroManager {
|
|
|
151
151
|
* @param characteristicId ID of the characteristic
|
|
152
152
|
* @param data Data to write as ByteArray (number[])
|
|
153
153
|
* @param withResponse Whether to wait for response
|
|
154
|
-
* @returns Promise resolving
|
|
154
|
+
* @returns Promise resolving with response data (empty ByteArray when withResponse=false)
|
|
155
155
|
*/
|
|
156
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<
|
|
156
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<ByteArray>;
|
|
157
157
|
/**
|
|
158
158
|
* Subscribe to characteristic notifications
|
|
159
159
|
* @param deviceId ID of the device
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,IAAI,eAAe,EAC5B,QAAQ,IAAI,cAAc,EAE1B,eAAe,IAAI,qBAAqB,EACzC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AACvD,MAAM,MAAM,oBAAoB,GAAG,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;AAC/E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AACV,MAAM,MAAM,uBAAuB,GAAG,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AACV,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAC1E,MAAM,MAAM,4BAA4B,GAAG,CACzC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,oBAAY,eAAe;IACzB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
|
package/lib/commonjs/manager.js
CHANGED
|
@@ -70,26 +70,26 @@ class BleNitroManager {
|
|
|
70
70
|
constructor(options) {
|
|
71
71
|
this._isScanning = false;
|
|
72
72
|
this._connectedDevices = {};
|
|
73
|
-
this.
|
|
73
|
+
this._restoredStateCallback = null;
|
|
74
74
|
this._restoredState = null;
|
|
75
|
-
this.
|
|
75
|
+
this._restoredStateCallback = (options === null || options === void 0 ? void 0 : options.onRestoredState) || null;
|
|
76
76
|
NativeBleNitro_1.default.setRestoreStateCallback((peripherals) => this.onNativeRestoreStateCallback(peripherals));
|
|
77
77
|
}
|
|
78
78
|
onNativeRestoreStateCallback(peripherals) {
|
|
79
79
|
const bleDevices = peripherals.map((peripheral) => convertNativeBleDeviceToBleDevice(peripheral));
|
|
80
|
-
if (this.
|
|
81
|
-
this.
|
|
80
|
+
if (this._restoredStateCallback) {
|
|
81
|
+
this._restoredStateCallback(bleDevices);
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
84
|
this._restoredState = bleDevices;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
onRestoredState(callback) {
|
|
88
88
|
if (this._restoredState) {
|
|
89
89
|
callback(this._restoredState);
|
|
90
90
|
this._restoredState = null;
|
|
91
91
|
}
|
|
92
|
-
this.
|
|
92
|
+
this._restoredStateCallback = callback;
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
95
|
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
@@ -331,7 +331,7 @@ class BleNitroManager {
|
|
|
331
331
|
* @param characteristicId ID of the characteristic
|
|
332
332
|
* @param data Data to write as ByteArray (number[])
|
|
333
333
|
* @param withResponse Whether to wait for response
|
|
334
|
-
* @returns Promise resolving
|
|
334
|
+
* @returns Promise resolving with response data (empty ByteArray when withResponse=false)
|
|
335
335
|
*/
|
|
336
336
|
writeCharacteristic(deviceId, serviceId, characteristicId, data, withResponse = true) {
|
|
337
337
|
return new Promise((resolve, reject) => {
|
|
@@ -340,9 +340,11 @@ class BleNitroManager {
|
|
|
340
340
|
reject(new Error('Device not connected'));
|
|
341
341
|
return;
|
|
342
342
|
}
|
|
343
|
-
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
343
|
+
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, responseData, error) => {
|
|
344
344
|
if (success) {
|
|
345
|
-
|
|
345
|
+
// Convert ArrayBuffer response to ByteArray
|
|
346
|
+
const responseByteArray = arrayBufferToByteArray(responseData);
|
|
347
|
+
resolve(responseByteArray);
|
|
346
348
|
}
|
|
347
349
|
else {
|
|
348
350
|
reject(new Error(error));
|
|
@@ -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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"}
|
|
@@ -45,6 +45,7 @@ export type StateCallback = (state: BLEState) => void;
|
|
|
45
45
|
export type BooleanCallback = (result: boolean) => void;
|
|
46
46
|
export type StringArrayCallback = (result: string[]) => void;
|
|
47
47
|
export type ReadCharacteristicCallback = (success: boolean, data: BLEValue, error: string) => void;
|
|
48
|
+
export type WriteCharacteristicCallback = (success: boolean, responseData: BLEValue, error: string) => void;
|
|
48
49
|
export type RestoreCallback = (restoredPeripherals: BLEDevice[]) => void;
|
|
49
50
|
export type OperationResult = {
|
|
50
51
|
success: boolean;
|
|
@@ -71,7 +72,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
71
72
|
getServices(deviceId: string): string[];
|
|
72
73
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
73
74
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
74
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback:
|
|
75
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
75
76
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, resultCallback: OperationCallback): void;
|
|
76
77
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
77
78
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
@@ -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
|
@@ -45,7 +45,7 @@ export declare enum AndroidScanMode {
|
|
|
45
45
|
Opportunistic = "Opportunistic"
|
|
46
46
|
}
|
|
47
47
|
export type BleNitroManagerOptions = {
|
|
48
|
-
|
|
48
|
+
onRestoredState?: RestoreStateCallback;
|
|
49
49
|
};
|
|
50
50
|
export declare function mapNativeBLEStateToBLEState(nativeState: NativeBLEState): BLEState;
|
|
51
51
|
export declare function mapAndroidScanModeToNativeAndroidScanMode(scanMode: AndroidScanMode): NativeAndroidScanMode;
|
|
@@ -55,11 +55,11 @@ export declare function byteArrayToArrayBuffer(data: ByteArray): ArrayBuffer;
|
|
|
55
55
|
export declare class BleNitroManager {
|
|
56
56
|
private _isScanning;
|
|
57
57
|
private _connectedDevices;
|
|
58
|
-
private
|
|
58
|
+
private _restoredStateCallback;
|
|
59
59
|
private _restoredState;
|
|
60
60
|
constructor(options?: BleNitroManagerOptions);
|
|
61
61
|
private onNativeRestoreStateCallback;
|
|
62
|
-
|
|
62
|
+
onRestoredState(callback: RestoreStateCallback): void;
|
|
63
63
|
/**
|
|
64
64
|
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
65
65
|
*
|
|
@@ -151,9 +151,9 @@ export declare class BleNitroManager {
|
|
|
151
151
|
* @param characteristicId ID of the characteristic
|
|
152
152
|
* @param data Data to write as ByteArray (number[])
|
|
153
153
|
* @param withResponse Whether to wait for response
|
|
154
|
-
* @returns Promise resolving
|
|
154
|
+
* @returns Promise resolving with response data (empty ByteArray when withResponse=false)
|
|
155
155
|
*/
|
|
156
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<
|
|
156
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<ByteArray>;
|
|
157
157
|
/**
|
|
158
158
|
* Subscribe to characteristic notifications
|
|
159
159
|
* @param deviceId ID of the device
|
package/lib/manager.js
CHANGED
|
@@ -59,26 +59,26 @@ export class BleNitroManager {
|
|
|
59
59
|
constructor(options) {
|
|
60
60
|
this._isScanning = false;
|
|
61
61
|
this._connectedDevices = {};
|
|
62
|
-
this.
|
|
62
|
+
this._restoredStateCallback = null;
|
|
63
63
|
this._restoredState = null;
|
|
64
|
-
this.
|
|
64
|
+
this._restoredStateCallback = options?.onRestoredState || null;
|
|
65
65
|
BleNitroNative.setRestoreStateCallback((peripherals) => this.onNativeRestoreStateCallback(peripherals));
|
|
66
66
|
}
|
|
67
67
|
onNativeRestoreStateCallback(peripherals) {
|
|
68
68
|
const bleDevices = peripherals.map((peripheral) => convertNativeBleDeviceToBleDevice(peripheral));
|
|
69
|
-
if (this.
|
|
70
|
-
this.
|
|
69
|
+
if (this._restoredStateCallback) {
|
|
70
|
+
this._restoredStateCallback(bleDevices);
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
73
|
this._restoredState = bleDevices;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
onRestoredState(callback) {
|
|
77
77
|
if (this._restoredState) {
|
|
78
78
|
callback(this._restoredState);
|
|
79
79
|
this._restoredState = null;
|
|
80
80
|
}
|
|
81
|
-
this.
|
|
81
|
+
this._restoredStateCallback = callback;
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
@@ -319,7 +319,7 @@ export class BleNitroManager {
|
|
|
319
319
|
* @param characteristicId ID of the characteristic
|
|
320
320
|
* @param data Data to write as ByteArray (number[])
|
|
321
321
|
* @param withResponse Whether to wait for response
|
|
322
|
-
* @returns Promise resolving
|
|
322
|
+
* @returns Promise resolving with response data (empty ByteArray when withResponse=false)
|
|
323
323
|
*/
|
|
324
324
|
writeCharacteristic(deviceId, serviceId, characteristicId, data, withResponse = true) {
|
|
325
325
|
return new Promise((resolve, reject) => {
|
|
@@ -328,9 +328,11 @@ export class BleNitroManager {
|
|
|
328
328
|
reject(new Error('Device not connected'));
|
|
329
329
|
return;
|
|
330
330
|
}
|
|
331
|
-
BleNitroNative.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
331
|
+
BleNitroNative.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, responseData, error) => {
|
|
332
332
|
if (success) {
|
|
333
|
-
|
|
333
|
+
// Convert ArrayBuffer response to ByteArray
|
|
334
|
+
const responseByteArray = arrayBufferToByteArray(responseData);
|
|
335
|
+
resolve(responseByteArray);
|
|
334
336
|
}
|
|
335
337
|
else {
|
|
336
338
|
reject(new Error(error));
|
|
@@ -45,6 +45,7 @@ export type StateCallback = (state: BLEState) => void;
|
|
|
45
45
|
export type BooleanCallback = (result: boolean) => void;
|
|
46
46
|
export type StringArrayCallback = (result: string[]) => void;
|
|
47
47
|
export type ReadCharacteristicCallback = (success: boolean, data: BLEValue, error: string) => void;
|
|
48
|
+
export type WriteCharacteristicCallback = (success: boolean, responseData: BLEValue, error: string) => void;
|
|
48
49
|
export type RestoreCallback = (restoredPeripherals: BLEDevice[]) => void;
|
|
49
50
|
export type OperationResult = {
|
|
50
51
|
success: boolean;
|
|
@@ -71,7 +72,7 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
71
72
|
getServices(deviceId: string): string[];
|
|
72
73
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
73
74
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
74
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback:
|
|
75
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
75
76
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, resultCallback: OperationCallback): void;
|
|
76
77
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
77
78
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
@@ -176,9 +176,9 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
176
176
|
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__shared_ptr_ArrayBuffer__std__string::javaobject> /* callback */)>("readCharacteristic_cxx");
|
|
177
177
|
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string_cxx::fromCpp(callback));
|
|
178
178
|
}
|
|
179
|
-
void JHybridNativeBleNitroSpec::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::string& /* error */)>& callback) {
|
|
180
|
-
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<
|
|
181
|
-
method(_javaPart, jni::make_jstring(deviceId), jni::make_jstring(serviceId), jni::make_jstring(characteristicId), JArrayBuffer::wrap(data), withResponse,
|
|
179
|
+
void JHybridNativeBleNitroSpec::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) {
|
|
180
|
+
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");
|
|
181
|
+
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));
|
|
182
182
|
}
|
|
183
183
|
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 */)>& resultCallback) {
|
|
184
184
|
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> /* resultCallback */)>("subscribeToCharacteristic_cxx");
|
|
@@ -66,7 +66,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
66
66
|
std::vector<std::string> getServices(const std::string& deviceId) override;
|
|
67
67
|
std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) override;
|
|
68
68
|
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;
|
|
69
|
-
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::string& /* error */)>& callback) override;
|
|
69
|
+
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;
|
|
70
70
|
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 */)>& resultCallback) override;
|
|
71
71
|
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;
|
|
72
72
|
void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) override;
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt
CHANGED
|
@@ -122,11 +122,11 @@ abstract class HybridNativeBleNitroSpec: HybridObject() {
|
|
|
122
122
|
return __result
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
abstract fun writeCharacteristic(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Boolean, callback: (success: Boolean, error: String) -> Unit): Unit
|
|
125
|
+
abstract fun writeCharacteristic(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Boolean, callback: (success: Boolean, responseData: ArrayBuffer, error: String) -> Unit): Unit
|
|
126
126
|
|
|
127
127
|
@DoNotStrip
|
|
128
128
|
@Keep
|
|
129
|
-
private fun writeCharacteristic_cxx(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Boolean, callback:
|
|
129
|
+
private fun writeCharacteristic_cxx(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Boolean, callback: Func_void_bool_std__shared_ptr_ArrayBuffer__std__string): Unit {
|
|
130
130
|
val __result = writeCharacteristic(deviceId, serviceId, characteristicId, data, withResponse, callback)
|
|
131
131
|
return __result
|
|
132
132
|
}
|
|
@@ -179,7 +179,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
179
179
|
std::rethrow_exception(__result.error());
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
|
-
inline 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::string& /* error */)>& callback) override {
|
|
182
|
+
inline 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 {
|
|
183
183
|
auto __result = _swiftPart.writeCharacteristic(deviceId, serviceId, characteristicId, ArrayBufferHolder(data), std::forward<decltype(withResponse)>(withResponse), callback);
|
|
184
184
|
if (__result.hasError()) [[unlikely]] {
|
|
185
185
|
std::rethrow_exception(__result.error());
|
|
@@ -27,7 +27,7 @@ public protocol HybridNativeBleNitroSpec_protocol: HybridObject {
|
|
|
27
27
|
func getServices(deviceId: String) throws -> [String]
|
|
28
28
|
func getCharacteristics(deviceId: String, serviceId: String) throws -> [String]
|
|
29
29
|
func readCharacteristic(deviceId: String, serviceId: String, characteristicId: String, callback: @escaping (_ success: Bool, _ data: ArrayBuffer, _ error: String) -> Void) throws -> Void
|
|
30
|
-
func writeCharacteristic(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Bool, callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
30
|
+
func writeCharacteristic(deviceId: String, serviceId: String, characteristicId: String, data: ArrayBuffer, withResponse: Bool, callback: @escaping (_ success: Bool, _ responseData: ArrayBuffer, _ error: String) -> Void) throws -> Void
|
|
31
31
|
func subscribeToCharacteristic(deviceId: String, serviceId: String, characteristicId: String, updateCallback: @escaping (_ characteristicId: String, _ data: ArrayBuffer) -> Void, resultCallback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
32
32
|
func unsubscribeFromCharacteristic(deviceId: String, serviceId: String, characteristicId: String, callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
33
33
|
func requestBluetoothEnable(callback: @escaping (_ success: Bool, _ error: String) -> Void) throws -> Void
|
|
@@ -337,12 +337,12 @@ open class HybridNativeBleNitroSpec_cxx {
|
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
@inline(__always)
|
|
340
|
-
public final func writeCharacteristic(deviceId: std.string, serviceId: std.string, characteristicId: std.string, data: ArrayBuffer, withResponse: Bool, callback: bridge.
|
|
340
|
+
public final func writeCharacteristic(deviceId: std.string, serviceId: std.string, characteristicId: std.string, data: ArrayBuffer, withResponse: Bool, callback: bridge.Func_void_bool_std__shared_ptr_ArrayBuffer__std__string) -> bridge.Result_void_ {
|
|
341
341
|
do {
|
|
342
|
-
try self.__implementation.writeCharacteristic(deviceId: String(deviceId), serviceId: String(serviceId), characteristicId: String(characteristicId), data: data, withResponse: withResponse, callback: { () -> (Bool, String) -> Void in
|
|
343
|
-
let __wrappedFunction = bridge.
|
|
344
|
-
return { (__success: Bool, __error: String) -> Void in
|
|
345
|
-
__wrappedFunction.call(__success, std.string(__error))
|
|
342
|
+
try self.__implementation.writeCharacteristic(deviceId: String(deviceId), serviceId: String(serviceId), characteristicId: String(characteristicId), data: data, withResponse: withResponse, callback: { () -> (Bool, ArrayBuffer, String) -> Void in
|
|
343
|
+
let __wrappedFunction = bridge.wrap_Func_void_bool_std__shared_ptr_ArrayBuffer__std__string(callback)
|
|
344
|
+
return { (__success: Bool, __responseData: ArrayBuffer, __error: String) -> Void in
|
|
345
|
+
__wrappedFunction.call(__success, __responseData, std.string(__error))
|
|
346
346
|
}
|
|
347
347
|
}())
|
|
348
348
|
return bridge.create_Result_void_()
|
|
@@ -79,7 +79,7 @@ namespace margelo::nitro::co::zyke::ble {
|
|
|
79
79
|
virtual std::vector<std::string> getServices(const std::string& deviceId) = 0;
|
|
80
80
|
virtual std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) = 0;
|
|
81
81
|
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;
|
|
82
|
-
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::string& /* error */)>& callback) = 0;
|
|
82
|
+
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;
|
|
83
83
|
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 */)>& resultCallback) = 0;
|
|
84
84
|
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;
|
|
85
85
|
virtual void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
|
package/package.json
CHANGED
|
@@ -121,10 +121,66 @@ describe('BleNitro', () => {
|
|
|
121
121
|
test('writeCharacteristic requires connected device', async () => {
|
|
122
122
|
const data = [1, 2, 3];
|
|
123
123
|
await expect(
|
|
124
|
-
BleManager.writeCharacteristic('device', 'service', 'char',data)
|
|
124
|
+
BleManager.writeCharacteristic('device', 'service', 'char', data)
|
|
125
125
|
).rejects.toThrow('Device not connected');
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
+
test('writeCharacteristic without response returns empty array', async () => {
|
|
129
|
+
// First connect
|
|
130
|
+
mockNative.connect.mockImplementation((id: string, callback: (success: boolean, deviceId: string, error: string) => void, _disconnectCallback?: (deviceId: string, interrupted: boolean, error: string) => void) => {
|
|
131
|
+
callback(true, id, '');
|
|
132
|
+
});
|
|
133
|
+
await BleManager.connect('device-write');
|
|
134
|
+
|
|
135
|
+
// Mock writeCharacteristic with new signature (success, responseData, error)
|
|
136
|
+
mockNative.writeCharacteristic.mockImplementation((_deviceId: string, _serviceId: string, _charId: string, _data: ArrayBuffer, withResponse: boolean, callback: (success: boolean, responseData: ArrayBuffer, error: string) => void) => {
|
|
137
|
+
// For withResponse=false, return empty ArrayBuffer
|
|
138
|
+
const emptyBuffer = new ArrayBuffer(0);
|
|
139
|
+
callback(true, emptyBuffer, '');
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
const data = [1, 2, 3];
|
|
143
|
+
const result = await BleManager.writeCharacteristic('device-write', 'service', 'char', data, false);
|
|
144
|
+
|
|
145
|
+
expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
|
|
146
|
+
'device-write',
|
|
147
|
+
'0service-0000-1000-8000-00805f9b34fb',
|
|
148
|
+
'0000char-0000-1000-8000-00805f9b34fb',
|
|
149
|
+
expect.any(ArrayBuffer),
|
|
150
|
+
false,
|
|
151
|
+
expect.any(Function)
|
|
152
|
+
);
|
|
153
|
+
expect(result).toEqual([]); // Empty ByteArray for no response
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
test('writeCharacteristic with response returns response data', async () => {
|
|
157
|
+
// First connect
|
|
158
|
+
mockNative.connect.mockImplementation((id: string, callback: (success: boolean, deviceId: string, error: string) => void, _disconnectCallback?: (deviceId: string, interrupted: boolean, error: string) => void) => {
|
|
159
|
+
callback(true, id, '');
|
|
160
|
+
});
|
|
161
|
+
await BleManager.connect('device-write-resp');
|
|
162
|
+
|
|
163
|
+
// Mock writeCharacteristic to return response data
|
|
164
|
+
mockNative.writeCharacteristic.mockImplementation((_deviceId: string, _serviceId: string, _charId: string, _data: ArrayBuffer, withResponse: boolean, callback: (success: boolean, responseData: ArrayBuffer, error: string) => void) => {
|
|
165
|
+
// For withResponse=true, return some response data
|
|
166
|
+
const responseData = new Uint8Array([0xAA, 0xBB, 0xCC]).buffer;
|
|
167
|
+
callback(true, responseData, '');
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
const data = [1, 2, 3];
|
|
171
|
+
const result = await BleManager.writeCharacteristic('device-write-resp', 'service', 'char', data, true);
|
|
172
|
+
|
|
173
|
+
expect(mockNative.writeCharacteristic).toHaveBeenCalledWith(
|
|
174
|
+
'device-write-resp',
|
|
175
|
+
'0service-0000-1000-8000-00805f9b34fb',
|
|
176
|
+
'0000char-0000-1000-8000-00805f9b34fb',
|
|
177
|
+
expect.any(ArrayBuffer),
|
|
178
|
+
true,
|
|
179
|
+
expect.any(Function)
|
|
180
|
+
);
|
|
181
|
+
expect(result).toEqual([0xAA, 0xBB, 0xCC]); // Response data as ByteArray
|
|
182
|
+
});
|
|
183
|
+
|
|
128
184
|
test('readCharacteristic works after connection', async () => {
|
|
129
185
|
// First connect
|
|
130
186
|
mockNative.connect.mockImplementation((id: string, callback: (success: boolean, deviceId: string, error: string) => void, _disconnectCallback?: (deviceId: string, interrupted: boolean, error: string) => void) => {
|
package/src/manager.ts
CHANGED
|
@@ -73,7 +73,7 @@ export enum AndroidScanMode {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export type BleNitroManagerOptions = {
|
|
76
|
-
|
|
76
|
+
onRestoredState?: RestoreStateCallback;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export function mapNativeBLEStateToBLEState(nativeState: NativeBLEState): BLEState {
|
|
@@ -123,29 +123,29 @@ export class BleNitroManager {
|
|
|
123
123
|
private _isScanning: boolean = false;
|
|
124
124
|
private _connectedDevices: { [deviceId: string]: boolean } = {};
|
|
125
125
|
|
|
126
|
-
private
|
|
126
|
+
private _restoredStateCallback: RestoreStateCallback | null = null;
|
|
127
127
|
private _restoredState: BLEDevice[] | null = null;
|
|
128
128
|
|
|
129
129
|
constructor(options?: BleNitroManagerOptions) {
|
|
130
|
-
this.
|
|
130
|
+
this._restoredStateCallback = options?.onRestoredState || null;
|
|
131
131
|
BleNitroNative.setRestoreStateCallback((peripherals: NativeBLEDevice[]) => this.onNativeRestoreStateCallback(peripherals));
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
private onNativeRestoreStateCallback(peripherals: NativeBLEDevice[]) {
|
|
135
135
|
const bleDevices = peripherals.map((peripheral) => convertNativeBleDeviceToBleDevice(peripheral));
|
|
136
|
-
if (this.
|
|
137
|
-
this.
|
|
136
|
+
if (this._restoredStateCallback) {
|
|
137
|
+
this._restoredStateCallback(bleDevices);
|
|
138
138
|
} else {
|
|
139
139
|
this._restoredState = bleDevices;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
public
|
|
143
|
+
public onRestoredState(callback: RestoreStateCallback) {
|
|
144
144
|
if (this._restoredState) {
|
|
145
145
|
callback(this._restoredState);
|
|
146
146
|
this._restoredState = null;
|
|
147
147
|
}
|
|
148
|
-
this.
|
|
148
|
+
this._restoredStateCallback = callback;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
/**
|
|
@@ -441,7 +441,7 @@ export class BleNitroManager {
|
|
|
441
441
|
* @param characteristicId ID of the characteristic
|
|
442
442
|
* @param data Data to write as ByteArray (number[])
|
|
443
443
|
* @param withResponse Whether to wait for response
|
|
444
|
-
* @returns Promise resolving
|
|
444
|
+
* @returns Promise resolving with response data (empty ByteArray when withResponse=false)
|
|
445
445
|
*/
|
|
446
446
|
public writeCharacteristic(
|
|
447
447
|
deviceId: string,
|
|
@@ -449,7 +449,7 @@ export class BleNitroManager {
|
|
|
449
449
|
characteristicId: string,
|
|
450
450
|
data: ByteArray,
|
|
451
451
|
withResponse: boolean = true
|
|
452
|
-
): Promise<
|
|
452
|
+
): Promise<ByteArray> {
|
|
453
453
|
return new Promise((resolve, reject) => {
|
|
454
454
|
// Check if connected first
|
|
455
455
|
if (!this._connectedDevices[deviceId]) {
|
|
@@ -463,9 +463,11 @@ export class BleNitroManager {
|
|
|
463
463
|
BleNitroManager.normalizeGattUUID(characteristicId),
|
|
464
464
|
byteArrayToArrayBuffer(data),
|
|
465
465
|
withResponse,
|
|
466
|
-
(success: boolean, error: string) => {
|
|
466
|
+
(success: boolean, responseData: ArrayBuffer, error: string) => {
|
|
467
467
|
if (success) {
|
|
468
|
-
|
|
468
|
+
// Convert ArrayBuffer response to ByteArray
|
|
469
|
+
const responseByteArray = arrayBufferToByteArray(responseData);
|
|
470
|
+
resolve(responseByteArray);
|
|
469
471
|
} else {
|
|
470
472
|
reject(new Error(error));
|
|
471
473
|
}
|
|
@@ -55,6 +55,7 @@ export type StateCallback = (state: BLEState) => void;
|
|
|
55
55
|
export type BooleanCallback = (result: boolean) => void;
|
|
56
56
|
export type StringArrayCallback = (result: string[]) => void;
|
|
57
57
|
export type ReadCharacteristicCallback = (success: boolean, data: BLEValue, error: string) => void;
|
|
58
|
+
export type WriteCharacteristicCallback = (success: boolean, responseData: BLEValue, error: string) => void;
|
|
58
59
|
export type RestoreCallback = (restoredPeripherals: BLEDevice[]) => void;
|
|
59
60
|
|
|
60
61
|
export type OperationResult = {
|
|
@@ -91,7 +92,7 @@ export interface NativeBleNitro extends HybridObject<{ ios: 'swift'; android: 'k
|
|
|
91
92
|
|
|
92
93
|
// Characteristic operations
|
|
93
94
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
94
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback:
|
|
95
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: WriteCharacteristicCallback): void;
|
|
95
96
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, resultCallback: OperationCallback): void;
|
|
96
97
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
97
98
|
|