react-native-ble-nitro 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/ios/BleNitroBleManager.swift +49 -14
- package/ios/BlePeripheralDelegate.swift +36 -8
- package/lib/commonjs/index.d.ts +15 -8
- package/lib/commonjs/index.d.ts.map +1 -1
- package/lib/commonjs/index.js +44 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +6 -4
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.js.map +1 -1
- package/lib/index.d.ts +15 -8
- package/lib/index.js +44 -11
- package/lib/specs/NativeBleNitro.nitro.d.ts +6 -4
- package/nitrogen/generated/android/BleNitroOnLoad.cpp +4 -4
- package/nitrogen/generated/android/c++/JBLEDevice.hpp +3 -0
- package/nitrogen/generated/android/c++/JFunc_void_BLEDevice.hpp +3 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool_std__shared_ptr_ArrayBuffer__std__string.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__shared_ptr_ArrayBuffer_.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +21 -16
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +4 -3
- package/nitrogen/generated/android/c++/JManufacturerData.hpp +3 -0
- package/nitrogen/generated/android/c++/JManufacturerDataEntry.hpp +7 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_bool_std__vector_double__std__string.kt → Func_void_bool_std__shared_ptr_ArrayBuffer__std__string.kt} +12 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_std__string_std__vector_double_.kt → Func_void_std__string_std__shared_ptr_ArrayBuffer_.kt} +12 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +10 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ManufacturerDataEntry.kt +1 -1
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +10 -10
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +39 -35
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +18 -4
- package/nitrogen/generated/ios/swift/{Func_void_bool_std__vector_double__std__string.swift → Func_void_bool_std__shared_ptr_ArrayBuffer__std__string.swift} +11 -11
- package/nitrogen/generated/ios/swift/{Func_void_std__string_std__vector_double_.swift → Func_void_std__string_std__shared_ptr_ArrayBuffer_.swift} +11 -11
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +4 -3
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +24 -24
- package/nitrogen/generated/ios/swift/ManufacturerDataEntry.swift +5 -17
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +7 -3
- package/nitrogen/generated/shared/c++/ManufacturerDataEntry.hpp +8 -7
- package/package.json +1 -1
- package/react-native.config.js +10 -2
- package/src/index.ts +56 -17
- package/src/specs/NativeBleNitro.nitro.ts +8 -4
- package/nitrogen/generated/android/c++/JFunc_void_bool_std__vector_double__std__string.hpp +0 -86
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__vector_double_.hpp +0 -86
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
A high-performance React Native BLE library built on [Nitro Modules](https://nitro.margelo.com/).
|
|
7
7
|
|
|
8
|
-
Originally developed for [Zyke Band](https://zykeband.com) - a fitness and health tracker created by a small team.
|
|
8
|
+
Originally developed for [Zyke Band](https://zykeband.com?utm_source=github&utm_medium=readme&utm_campaign=opensource) - a fitness and health tracker created by a small team.
|
|
9
9
|
|
|
10
10
|
## ✨ Features
|
|
11
11
|
|
|
@@ -148,6 +148,10 @@ await ble.disconnect(deviceId);
|
|
|
148
148
|
|
|
149
149
|
// Check connection status
|
|
150
150
|
const isConnected = ble.isConnected(deviceId);
|
|
151
|
+
|
|
152
|
+
// MTU negotiation (Android only, as iOS manages MTU automatically)
|
|
153
|
+
// iOS returns current MTU size
|
|
154
|
+
const mtu = await ble.requestMTU(deviceId, 256); // Request MTU size
|
|
151
155
|
```
|
|
152
156
|
|
|
153
157
|
#### 🔧 Service Discovery
|
|
@@ -481,7 +485,7 @@ MIT License - see [LICENSE](./LICENSE) file.
|
|
|
481
485
|
|
|
482
486
|
## 🙏 Acknowledgments
|
|
483
487
|
|
|
484
|
-
- [Zyke Band](https://zykeband.com) - The fitness tracker project that inspired this library
|
|
488
|
+
- [Zyke Band](https://zykeband.com?utm_source=github&utm_medium=readme&utm_campaign=opensource) - The fitness tracker project that inspired this library
|
|
485
489
|
- [Marc Rousavy](https://github.com/mrousavy) - Creator of Nitro Modules and CEO of Margelo
|
|
486
490
|
- [Nitro Modules](https://nitro.margelo.com/) - High-performance native module framework
|
|
487
491
|
- [Margelo](https://margelo.com/) - Nitro Modules creators
|
|
@@ -210,6 +210,14 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
public func requestMTU(deviceId: String, mtu: Double) throws -> Double {
|
|
214
|
+
guard let peripheral = connectedPeripherals[deviceId] else {
|
|
215
|
+
return Double(-1)
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return Double(peripheral.maximumWriteValueLength(for: .withoutResponse))
|
|
219
|
+
}
|
|
220
|
+
|
|
213
221
|
// MARK: - Service Discovery
|
|
214
222
|
public func discoverServices(deviceId: String, callback: @escaping (Bool, String) -> Void) throws {
|
|
215
223
|
guard let peripheral = connectedPeripherals[deviceId] else {
|
|
@@ -253,16 +261,30 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
253
261
|
deviceId: String,
|
|
254
262
|
serviceId: String,
|
|
255
263
|
characteristicId: String,
|
|
256
|
-
callback: @escaping (Bool,
|
|
264
|
+
callback: @escaping (Bool, ArrayBuffer, String) -> Void
|
|
257
265
|
) throws {
|
|
258
266
|
guard let characteristic = findCharacteristic(deviceId: deviceId, serviceId: serviceId, characteristicId: characteristicId) else {
|
|
259
|
-
|
|
267
|
+
do {
|
|
268
|
+
let emptyData = Data(capacity: 0)
|
|
269
|
+
let emptyBuffer = try ArrayBuffer.copy(data: emptyData)
|
|
270
|
+
callback(false, emptyBuffer, "Characteristic not found")
|
|
271
|
+
} catch {
|
|
272
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
273
|
+
callback(false, emptyBuffer, "Characteristic not found")
|
|
274
|
+
}
|
|
260
275
|
return
|
|
261
276
|
}
|
|
262
277
|
|
|
263
278
|
// Ensure peripheral delegate exists
|
|
264
279
|
guard let delegate = peripheralDelegates[deviceId] else {
|
|
265
|
-
|
|
280
|
+
do {
|
|
281
|
+
let emptyData = Data(capacity: 0)
|
|
282
|
+
let emptyBuffer = try ArrayBuffer.copy(data: emptyData)
|
|
283
|
+
callback(false, emptyBuffer, "Device not properly connected or delegate not found")
|
|
284
|
+
} catch {
|
|
285
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
286
|
+
callback(false, emptyBuffer, "Device not properly connected or delegate not found")
|
|
287
|
+
}
|
|
266
288
|
return
|
|
267
289
|
}
|
|
268
290
|
|
|
@@ -277,7 +299,7 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
277
299
|
deviceId: String,
|
|
278
300
|
serviceId: String,
|
|
279
301
|
characteristicId: String,
|
|
280
|
-
data:
|
|
302
|
+
data: ArrayBuffer,
|
|
281
303
|
withResponse: Bool,
|
|
282
304
|
callback: @escaping (Bool, String) -> Void
|
|
283
305
|
) throws {
|
|
@@ -286,7 +308,7 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
286
308
|
return
|
|
287
309
|
}
|
|
288
310
|
|
|
289
|
-
let writeData =
|
|
311
|
+
let writeData = data.toData(copyIfNeeded: true)
|
|
290
312
|
let writeType: CBCharacteristicWriteType = withResponse ? .withResponse : .withoutResponse
|
|
291
313
|
|
|
292
314
|
if withResponse {
|
|
@@ -309,7 +331,7 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
309
331
|
deviceId: String,
|
|
310
332
|
serviceId: String,
|
|
311
333
|
characteristicId: String,
|
|
312
|
-
updateCallback: @escaping (String,
|
|
334
|
+
updateCallback: @escaping (String, ArrayBuffer) -> Void,
|
|
313
335
|
resultCallback: @escaping (Bool, String) -> Void
|
|
314
336
|
) throws {
|
|
315
337
|
guard let characteristic = findCharacteristic(deviceId: deviceId, serviceId: serviceId, characteristicId: characteristicId) else {
|
|
@@ -519,17 +541,30 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
519
541
|
}
|
|
520
542
|
|
|
521
543
|
let companyId = manufacturerDataRaw.prefix(2).withUnsafeBytes { $0.load(as: UInt16.self) }
|
|
522
|
-
let
|
|
544
|
+
let dataBytes = Data(manufacturerDataRaw.dropFirst(2))
|
|
523
545
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
546
|
+
do {
|
|
547
|
+
let capacityData = Data(capacity: dataBytes.count)
|
|
548
|
+
let finalData = capacityData + dataBytes
|
|
549
|
+
let arrayBuffer = try ArrayBuffer.copy(data: finalData)
|
|
550
|
+
|
|
551
|
+
let entry = ManufacturerDataEntry(
|
|
552
|
+
id: String(companyId),
|
|
553
|
+
data: arrayBuffer
|
|
554
|
+
)
|
|
555
|
+
|
|
556
|
+
return ManufacturerData(companyIdentifiers: [entry])
|
|
557
|
+
} catch {
|
|
558
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
559
|
+
let entry = ManufacturerDataEntry(
|
|
560
|
+
id: String(companyId),
|
|
561
|
+
data: emptyBuffer
|
|
562
|
+
)
|
|
563
|
+
return ManufacturerData(companyIdentifiers: [entry])
|
|
564
|
+
}
|
|
530
565
|
}
|
|
531
566
|
|
|
532
|
-
public func openSettings() throws ->
|
|
567
|
+
public func openSettings() throws -> Promise<Void> {
|
|
533
568
|
return Promise.async {
|
|
534
569
|
if let url = URL(string: UIApplication.openSettingsURLString) {
|
|
535
570
|
// Ask the system to open that URL.
|
|
@@ -20,13 +20,13 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
20
20
|
var characteristicDiscoveryCallbacks: [String: (Bool, String) -> Void] = [:]
|
|
21
21
|
|
|
22
22
|
// Operation callbacks - using CBUUID as key for reliable UUID matching
|
|
23
|
-
var readCallbacks: [CBUUID: (Bool,
|
|
23
|
+
var readCallbacks: [CBUUID: (Bool, ArrayBuffer, String) -> Void] = [:]
|
|
24
24
|
var writeCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
25
25
|
var subscriptionCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
26
26
|
var unsubscriptionCallbacks: [CBUUID: (Bool, String) -> Void] = [:]
|
|
27
27
|
|
|
28
28
|
// Notification callbacks
|
|
29
|
-
var notificationCallbacks: [CBUUID: (String,
|
|
29
|
+
var notificationCallbacks: [CBUUID: (String, ArrayBuffer) -> Void] = [:]
|
|
30
30
|
|
|
31
31
|
// MARK: - Initialization
|
|
32
32
|
init(deviceId: String, manager: BleNitroBleManager) {
|
|
@@ -76,12 +76,33 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
76
76
|
// Handle read callback using CBUUID - no normalization needed
|
|
77
77
|
if let readCallback = readCallbacks[characteristicUUID] {
|
|
78
78
|
if let error = error {
|
|
79
|
-
|
|
79
|
+
do {
|
|
80
|
+
let emptyData = Data(capacity: 0)
|
|
81
|
+
let emptyBuffer = try ArrayBuffer.copy(data: emptyData)
|
|
82
|
+
readCallback(false, emptyBuffer, error.localizedDescription)
|
|
83
|
+
} catch {
|
|
84
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
85
|
+
readCallback(false, emptyBuffer, error.localizedDescription)
|
|
86
|
+
}
|
|
80
87
|
} else if let data = characteristic.value {
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
do {
|
|
89
|
+
let capacityData = Data(capacity: data.count)
|
|
90
|
+
let finalData = capacityData + data
|
|
91
|
+
let arrayBuffer = try ArrayBuffer.copy(data: finalData)
|
|
92
|
+
readCallback(true, arrayBuffer, "")
|
|
93
|
+
} catch {
|
|
94
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
95
|
+
readCallback(false, emptyBuffer, "Failed to create ArrayBuffer")
|
|
96
|
+
}
|
|
83
97
|
} else {
|
|
84
|
-
|
|
98
|
+
do {
|
|
99
|
+
let emptyData = Data(capacity: 0)
|
|
100
|
+
let emptyBuffer = try ArrayBuffer.copy(data: emptyData)
|
|
101
|
+
readCallback(false, emptyBuffer, "No data received")
|
|
102
|
+
} catch {
|
|
103
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
104
|
+
readCallback(false, emptyBuffer, "No data received")
|
|
105
|
+
}
|
|
85
106
|
}
|
|
86
107
|
readCallbacks.removeValue(forKey: characteristicUUID)
|
|
87
108
|
}
|
|
@@ -89,8 +110,15 @@ class BlePeripheralDelegate: NSObject, CBPeripheralDelegate {
|
|
|
89
110
|
// Handle notification callback using CBUUID
|
|
90
111
|
if let notificationCallback = notificationCallbacks[characteristicUUID],
|
|
91
112
|
let data = characteristic.value {
|
|
92
|
-
|
|
93
|
-
|
|
113
|
+
do {
|
|
114
|
+
let capacityData = Data(capacity: data.count)
|
|
115
|
+
let finalData = capacityData + data
|
|
116
|
+
let arrayBuffer = try ArrayBuffer.copy(data: finalData)
|
|
117
|
+
notificationCallback(characteristicUUID.uuidString, arrayBuffer)
|
|
118
|
+
} catch {
|
|
119
|
+
let emptyBuffer = try! ArrayBuffer.copy(data: Data())
|
|
120
|
+
notificationCallback(characteristicUUID.uuidString, emptyBuffer)
|
|
121
|
+
}
|
|
94
122
|
}
|
|
95
123
|
}
|
|
96
124
|
|
package/lib/commonjs/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type ByteArray = number[];
|
|
1
2
|
export interface ScanFilter {
|
|
2
3
|
serviceUUIDs?: string[];
|
|
3
4
|
rssiThreshold?: number;
|
|
@@ -5,7 +6,7 @@ export interface ScanFilter {
|
|
|
5
6
|
}
|
|
6
7
|
export interface ManufacturerDataEntry {
|
|
7
8
|
id: string;
|
|
8
|
-
data:
|
|
9
|
+
data: ByteArray;
|
|
9
10
|
}
|
|
10
11
|
export interface ManufacturerData {
|
|
11
12
|
companyIdentifiers: ManufacturerDataEntry[];
|
|
@@ -22,7 +23,7 @@ export type ScanCallback = (device: BLEDevice) => void;
|
|
|
22
23
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
23
24
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
24
25
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
25
|
-
export type CharacteristicUpdateCallback = (characteristicId: string, data:
|
|
26
|
+
export type CharacteristicUpdateCallback = (characteristicId: string, data: ByteArray) => void;
|
|
26
27
|
export type Subscription = {
|
|
27
28
|
remove: () => void;
|
|
28
29
|
};
|
|
@@ -88,6 +89,13 @@ export declare class BleNitro {
|
|
|
88
89
|
* @returns Promise resolving to connection state
|
|
89
90
|
*/
|
|
90
91
|
isConnected(deviceId: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Request a new MTU size
|
|
94
|
+
* @param deviceId ID of the device
|
|
95
|
+
* @param mtu New MTU size, min is 23, max is 517
|
|
96
|
+
* @returns On Android: new MTU size; on iOS: current MTU size as it is handled by iOS itself; on error: -1
|
|
97
|
+
*/
|
|
98
|
+
requestMTU(deviceId: string, mtu: number): number;
|
|
91
99
|
/**
|
|
92
100
|
* Discover services for a connected device
|
|
93
101
|
* @param deviceId ID of the device
|
|
@@ -112,19 +120,19 @@ export declare class BleNitro {
|
|
|
112
120
|
* @param deviceId ID of the device
|
|
113
121
|
* @param serviceId ID of the service
|
|
114
122
|
* @param characteristicId ID of the characteristic
|
|
115
|
-
* @returns Promise resolving to the characteristic data as
|
|
123
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
116
124
|
*/
|
|
117
|
-
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<
|
|
125
|
+
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
118
126
|
/**
|
|
119
127
|
* Write a value to a characteristic
|
|
120
128
|
* @param deviceId ID of the device
|
|
121
129
|
* @param serviceId ID of the service
|
|
122
130
|
* @param characteristicId ID of the characteristic
|
|
123
|
-
* @param data Data to write as
|
|
131
|
+
* @param data Data to write as ByteArray(number[])
|
|
124
132
|
* @param withResponse Whether to wait for response
|
|
125
133
|
* @returns Promise resolving when write is complete
|
|
126
134
|
*/
|
|
127
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data:
|
|
135
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<boolean>;
|
|
128
136
|
/**
|
|
129
137
|
* Subscribe to characteristic notifications
|
|
130
138
|
* @param deviceId ID of the device
|
|
@@ -148,8 +156,7 @@ export declare class BleNitro {
|
|
|
148
156
|
*/
|
|
149
157
|
isBluetoothEnabled(): boolean;
|
|
150
158
|
/**
|
|
151
|
-
* Request to enable Bluetooth
|
|
152
|
-
* Only works on Android
|
|
159
|
+
* Request to enable Bluetooth (Android only)
|
|
153
160
|
* @returns Promise resolving when Bluetooth is enabled
|
|
154
161
|
*/
|
|
155
162
|
requestBluetoothEnable(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -26,6 +26,12 @@ function mapNativeBLEStateToBLEState(nativeState) {
|
|
|
26
26
|
};
|
|
27
27
|
return map[nativeState];
|
|
28
28
|
}
|
|
29
|
+
function arrayBufferToByteArray(buffer) {
|
|
30
|
+
return Array.from(new Uint8Array(buffer));
|
|
31
|
+
}
|
|
32
|
+
function byteArrayToArrayBuffer(data) {
|
|
33
|
+
return new Uint8Array(data).buffer;
|
|
34
|
+
}
|
|
29
35
|
let _instance;
|
|
30
36
|
class BleNitro {
|
|
31
37
|
constructor() {
|
|
@@ -77,8 +83,18 @@ class BleNitro {
|
|
|
77
83
|
};
|
|
78
84
|
// Create callback wrapper
|
|
79
85
|
const scanCallback = (device) => {
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
// Convert manufacturer data to Uint8Arrays
|
|
87
|
+
const convertedDevice = {
|
|
88
|
+
...device,
|
|
89
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
90
|
+
manufacturerData: {
|
|
91
|
+
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
92
|
+
id: entry.id,
|
|
93
|
+
data: arrayBufferToByteArray(entry.data)
|
|
94
|
+
}))
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
callback(convertedDevice);
|
|
82
98
|
};
|
|
83
99
|
// Start scan
|
|
84
100
|
NativeBleNitro_1.default.startScan(nativeFilter, scanCallback);
|
|
@@ -109,10 +125,16 @@ class BleNitro {
|
|
|
109
125
|
*/
|
|
110
126
|
getConnectedDevices(services) {
|
|
111
127
|
const devices = NativeBleNitro_1.default.getConnectedDevices(services || []);
|
|
112
|
-
// Normalize service UUIDs
|
|
128
|
+
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
113
129
|
return devices.map(device => ({
|
|
114
130
|
...device,
|
|
115
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs)
|
|
131
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
132
|
+
manufacturerData: {
|
|
133
|
+
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
134
|
+
id: entry.id,
|
|
135
|
+
data: arrayBufferToByteArray(entry.data)
|
|
136
|
+
}))
|
|
137
|
+
}
|
|
116
138
|
}));
|
|
117
139
|
}
|
|
118
140
|
/**
|
|
@@ -174,6 +196,17 @@ class BleNitro {
|
|
|
174
196
|
isConnected(deviceId) {
|
|
175
197
|
return NativeBleNitro_1.default.isConnected(deviceId);
|
|
176
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Request a new MTU size
|
|
201
|
+
* @param deviceId ID of the device
|
|
202
|
+
* @param mtu New MTU size, min is 23, max is 517
|
|
203
|
+
* @returns On Android: new MTU size; on iOS: current MTU size as it is handled by iOS itself; on error: -1
|
|
204
|
+
*/
|
|
205
|
+
requestMTU(deviceId, mtu) {
|
|
206
|
+
mtu = parseInt(mtu.toString(), 10);
|
|
207
|
+
const deviceMtu = NativeBleNitro_1.default.requestMTU(deviceId, mtu);
|
|
208
|
+
return deviceMtu;
|
|
209
|
+
}
|
|
177
210
|
/**
|
|
178
211
|
* Discover services for a connected device
|
|
179
212
|
* @param deviceId ID of the device
|
|
@@ -235,7 +268,7 @@ class BleNitro {
|
|
|
235
268
|
* @param deviceId ID of the device
|
|
236
269
|
* @param serviceId ID of the service
|
|
237
270
|
* @param characteristicId ID of the characteristic
|
|
238
|
-
* @returns Promise resolving to the characteristic data as
|
|
271
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
239
272
|
*/
|
|
240
273
|
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
241
274
|
return new Promise((resolve, reject) => {
|
|
@@ -246,7 +279,7 @@ class BleNitro {
|
|
|
246
279
|
}
|
|
247
280
|
NativeBleNitro_1.default.readCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (success, data, error) => {
|
|
248
281
|
if (success) {
|
|
249
|
-
resolve(data);
|
|
282
|
+
resolve(arrayBufferToByteArray(data));
|
|
250
283
|
}
|
|
251
284
|
else {
|
|
252
285
|
reject(new Error(error));
|
|
@@ -259,7 +292,7 @@ class BleNitro {
|
|
|
259
292
|
* @param deviceId ID of the device
|
|
260
293
|
* @param serviceId ID of the service
|
|
261
294
|
* @param characteristicId ID of the characteristic
|
|
262
|
-
* @param data Data to write as
|
|
295
|
+
* @param data Data to write as ByteArray(number[])
|
|
263
296
|
* @param withResponse Whether to wait for response
|
|
264
297
|
* @returns Promise resolving when write is complete
|
|
265
298
|
*/
|
|
@@ -270,7 +303,8 @@ class BleNitro {
|
|
|
270
303
|
reject(new Error('Device not connected'));
|
|
271
304
|
return;
|
|
272
305
|
}
|
|
273
|
-
|
|
306
|
+
const dataAsArrayBuffer = byteArrayToArrayBuffer(data);
|
|
307
|
+
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), dataAsArrayBuffer, withResponse, (success, error) => {
|
|
274
308
|
if (success) {
|
|
275
309
|
resolve(true);
|
|
276
310
|
}
|
|
@@ -295,7 +329,7 @@ class BleNitro {
|
|
|
295
329
|
}
|
|
296
330
|
let _success = false;
|
|
297
331
|
NativeBleNitro_1.default.subscribeToCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
298
|
-
callback(charId, data);
|
|
332
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
299
333
|
}, (success, error) => {
|
|
300
334
|
_success = success;
|
|
301
335
|
if (!success) {
|
|
@@ -343,8 +377,7 @@ class BleNitro {
|
|
|
343
377
|
return this.state() === BLEState.PoweredOn;
|
|
344
378
|
}
|
|
345
379
|
/**
|
|
346
|
-
* Request to enable Bluetooth
|
|
347
|
-
* Only works on Android
|
|
380
|
+
* Request to enable Bluetooth (Android only)
|
|
348
381
|
* @returns Promise resolving when Bluetooth is enabled
|
|
349
382
|
*/
|
|
350
383
|
requestBluetoothEnable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
export type BLEValue = ArrayBuffer;
|
|
2
3
|
export declare enum BLEState {
|
|
3
4
|
Unknown = 0,
|
|
4
5
|
Resetting = 1,
|
|
@@ -9,7 +10,7 @@ export declare enum BLEState {
|
|
|
9
10
|
}
|
|
10
11
|
export interface ManufacturerDataEntry {
|
|
11
12
|
id: string;
|
|
12
|
-
data:
|
|
13
|
+
data: BLEValue;
|
|
13
14
|
}
|
|
14
15
|
export interface ManufacturerData {
|
|
15
16
|
companyIdentifiers: ManufacturerDataEntry[];
|
|
@@ -32,11 +33,11 @@ export type DevicesCallback = (devices: BLEDevice[]) => void;
|
|
|
32
33
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
33
34
|
export type DisconnectionEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
34
35
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
35
|
-
export type CharacteristicCallback = (characteristicId: string, data:
|
|
36
|
+
export type CharacteristicCallback = (characteristicId: string, data: BLEValue) => void;
|
|
36
37
|
export type StateCallback = (state: BLEState) => void;
|
|
37
38
|
export type BooleanCallback = (result: boolean) => void;
|
|
38
39
|
export type StringArrayCallback = (result: string[]) => void;
|
|
39
|
-
export type ReadCharacteristicCallback = (success: boolean, data:
|
|
40
|
+
export type ReadCharacteristicCallback = (success: boolean, data: BLEValue, error: string) => void;
|
|
40
41
|
export type OperationResult = {
|
|
41
42
|
success: boolean;
|
|
42
43
|
error?: string;
|
|
@@ -56,11 +57,12 @@ export interface NativeBleNitro extends HybridObject<{
|
|
|
56
57
|
connect(deviceId: string, callback: ConnectionCallback, disconnectCallback?: DisconnectionEventCallback): void;
|
|
57
58
|
disconnect(deviceId: string, callback: OperationCallback): void;
|
|
58
59
|
isConnected(deviceId: string): boolean;
|
|
60
|
+
requestMTU(deviceId: string, mtu: number): number;
|
|
59
61
|
discoverServices(deviceId: string, callback: OperationCallback): void;
|
|
60
62
|
getServices(deviceId: string): string[];
|
|
61
63
|
getCharacteristics(deviceId: string, serviceId: string): string[];
|
|
62
64
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: ReadCharacteristicCallback): void;
|
|
63
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data:
|
|
65
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: BLEValue, withResponse: boolean, callback: OperationCallback): void;
|
|
64
66
|
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, updateCallback: CharacteristicCallback, resultCallback: OperationCallback): void;
|
|
65
67
|
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: OperationCallback): void;
|
|
66
68
|
requestBluetoothEnable(callback: OperationCallback): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,oBAAY,QAAQ;IAClB,OAAO,IAAI;IACX,SAAS,IAAI;IACb,WAAW,IAAI;IACf,YAAY,IAAI;IAChB,UAAU,IAAI;IACd,SAAS,IAAI;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeBleNitro.nitro.js","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"NativeBleNitro.nitro.js","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":";;;AAKA,+DAA+D;AAC/D,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,iDAAa,CAAA;IACb,qDAAe,CAAA;IACf,uDAAgB,CAAA;IAChB,mDAAc,CAAA;IACd,iDAAa,CAAA;AACf,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type ByteArray = number[];
|
|
1
2
|
export interface ScanFilter {
|
|
2
3
|
serviceUUIDs?: string[];
|
|
3
4
|
rssiThreshold?: number;
|
|
@@ -5,7 +6,7 @@ export interface ScanFilter {
|
|
|
5
6
|
}
|
|
6
7
|
export interface ManufacturerDataEntry {
|
|
7
8
|
id: string;
|
|
8
|
-
data:
|
|
9
|
+
data: ByteArray;
|
|
9
10
|
}
|
|
10
11
|
export interface ManufacturerData {
|
|
11
12
|
companyIdentifiers: ManufacturerDataEntry[];
|
|
@@ -22,7 +23,7 @@ export type ScanCallback = (device: BLEDevice) => void;
|
|
|
22
23
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
23
24
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
24
25
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
25
|
-
export type CharacteristicUpdateCallback = (characteristicId: string, data:
|
|
26
|
+
export type CharacteristicUpdateCallback = (characteristicId: string, data: ByteArray) => void;
|
|
26
27
|
export type Subscription = {
|
|
27
28
|
remove: () => void;
|
|
28
29
|
};
|
|
@@ -88,6 +89,13 @@ export declare class BleNitro {
|
|
|
88
89
|
* @returns Promise resolving to connection state
|
|
89
90
|
*/
|
|
90
91
|
isConnected(deviceId: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Request a new MTU size
|
|
94
|
+
* @param deviceId ID of the device
|
|
95
|
+
* @param mtu New MTU size, min is 23, max is 517
|
|
96
|
+
* @returns On Android: new MTU size; on iOS: current MTU size as it is handled by iOS itself; on error: -1
|
|
97
|
+
*/
|
|
98
|
+
requestMTU(deviceId: string, mtu: number): number;
|
|
91
99
|
/**
|
|
92
100
|
* Discover services for a connected device
|
|
93
101
|
* @param deviceId ID of the device
|
|
@@ -112,19 +120,19 @@ export declare class BleNitro {
|
|
|
112
120
|
* @param deviceId ID of the device
|
|
113
121
|
* @param serviceId ID of the service
|
|
114
122
|
* @param characteristicId ID of the characteristic
|
|
115
|
-
* @returns Promise resolving to the characteristic data as
|
|
123
|
+
* @returns Promise resolving to the characteristic data as ByteArray
|
|
116
124
|
*/
|
|
117
|
-
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<
|
|
125
|
+
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
118
126
|
/**
|
|
119
127
|
* Write a value to a characteristic
|
|
120
128
|
* @param deviceId ID of the device
|
|
121
129
|
* @param serviceId ID of the service
|
|
122
130
|
* @param characteristicId ID of the characteristic
|
|
123
|
-
* @param data Data to write as
|
|
131
|
+
* @param data Data to write as ByteArray(number[])
|
|
124
132
|
* @param withResponse Whether to wait for response
|
|
125
133
|
* @returns Promise resolving when write is complete
|
|
126
134
|
*/
|
|
127
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data:
|
|
135
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<boolean>;
|
|
128
136
|
/**
|
|
129
137
|
* Subscribe to characteristic notifications
|
|
130
138
|
* @param deviceId ID of the device
|
|
@@ -148,8 +156,7 @@ export declare class BleNitro {
|
|
|
148
156
|
*/
|
|
149
157
|
isBluetoothEnabled(): boolean;
|
|
150
158
|
/**
|
|
151
|
-
* Request to enable Bluetooth
|
|
152
|
-
* Only works on Android
|
|
159
|
+
* Request to enable Bluetooth (Android only)
|
|
153
160
|
* @returns Promise resolving when Bluetooth is enabled
|
|
154
161
|
*/
|
|
155
162
|
requestBluetoothEnable(): Promise<boolean>;
|