react-native-ble-nitro 1.2.0 → 1.3.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 +89 -28
- package/android/CMakeLists.txt +32 -0
- package/android/build.gradle +140 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +899 -0
- package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroPackage.kt +38 -0
- package/ios/BleNitroBleManager.swift +7 -3
- package/lib/commonjs/index.d.ts +15 -3
- package/lib/commonjs/index.d.ts.map +1 -1
- package/lib/commonjs/index.js +46 -28
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +8 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.js +8 -1
- package/lib/commonjs/specs/NativeBleNitro.nitro.js.map +1 -1
- package/lib/index.d.ts +15 -3
- package/lib/index.js +44 -26
- package/lib/specs/NativeBleNitro.nitro.d.ts +8 -1
- package/lib/specs/NativeBleNitro.nitro.js +7 -0
- package/nitrogen/generated/android/BleNitroOnLoad.cpp +2 -2
- package/nitrogen/generated/android/c++/JAndroidScanMode.hpp +65 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_BLEDevice__std__optional_std__string_.hpp +86 -0
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +8 -4
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +1 -1
- package/nitrogen/generated/android/c++/JScanFilter.hpp +8 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/AndroidScanMode.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_BLEDevice.kt → Func_void_std__optional_BLEDevice__std__optional_std__string_.kt} +14 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanFilter.kt +4 -1
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +5 -5
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +30 -21
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +5 -2
- package/nitrogen/generated/ios/swift/AndroidScanMode.swift +48 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_BLEDevice__std__optional_std__string_.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +17 -5
- package/nitrogen/generated/ios/swift/ScanFilter.swift +13 -2
- package/nitrogen/generated/shared/c++/AndroidScanMode.hpp +64 -0
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +3 -3
- package/nitrogen/generated/shared/c++/ScanFilter.hpp +9 -3
- package/package.json +1 -1
- package/plugin/build/index.d.ts +2 -0
- package/plugin/build/index.js +2 -0
- package/plugin/build/withBleNitro.d.ts +5 -1
- package/plugin/build/withBleNitro.js +18 -7
- package/src/__tests__/index.test.ts +45 -11
- package/src/index.ts +55 -27
- package/src/specs/NativeBleNitro.nitro.ts +9 -1
- package/nitrogen/generated/android/c++/JFunc_void_BLEDevice.hpp +0 -85
- package/nitrogen/generated/ios/swift/Func_void_BLEDevice.swift +0 -47
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
package com.margelo.nitro.co.zyke.ble
|
|
2
|
+
|
|
3
|
+
import android.util.Log
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
7
|
+
import com.facebook.react.TurboReactPackage
|
|
8
|
+
|
|
9
|
+
class BleNitroPackage : TurboReactPackage() {
|
|
10
|
+
|
|
11
|
+
private var contextSet = false
|
|
12
|
+
|
|
13
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
14
|
+
// Set context if not already set
|
|
15
|
+
if (!contextSet) {
|
|
16
|
+
BleNitroBleManager.setContext(reactContext)
|
|
17
|
+
contextSet = true
|
|
18
|
+
}
|
|
19
|
+
return null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
23
|
+
return ReactModuleInfoProvider { HashMap() }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Override this method to ensure context is set during package initialization
|
|
27
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): MutableList<NativeModule> {
|
|
28
|
+
// Set context during package creation
|
|
29
|
+
BleNitroBleManager.setContext(reactContext)
|
|
30
|
+
return super.createNativeModules(reactContext).toMutableList()
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
companion object {
|
|
34
|
+
init {
|
|
35
|
+
BleNitroOnLoad.initializeNative()
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -55,14 +55,18 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// MARK: - Scanning Operations
|
|
58
|
-
public func startScan(filter: ScanFilter, callback: @escaping (BLEDevice) -> Void) throws {
|
|
58
|
+
public func startScan(filter: ScanFilter, callback: @escaping (BLEDevice?, String?) -> Void) throws {
|
|
59
59
|
guard centralManager.state == .poweredOn else {
|
|
60
60
|
throw NSError(domain: "BleNitroError", code: 1, userInfo: [
|
|
61
61
|
NSLocalizedDescriptionKey: "Bluetooth is not powered on"
|
|
62
62
|
])
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
|
|
65
|
+
// remove error option from callback
|
|
66
|
+
func scanCallbackWrapper(device: BLEDevice?) {
|
|
67
|
+
callback(device, nil)
|
|
68
|
+
}
|
|
69
|
+
self.scanCallback = scanCallbackWrapper
|
|
66
70
|
self.currentScanFilter = filter
|
|
67
71
|
self.isCurrentlyScanning = true
|
|
68
72
|
|
package/lib/commonjs/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface ScanFilter {
|
|
|
3
3
|
serviceUUIDs?: string[];
|
|
4
4
|
rssiThreshold?: number;
|
|
5
5
|
allowDuplicates?: boolean;
|
|
6
|
+
androidScanMode?: AndroidScanMode;
|
|
6
7
|
}
|
|
7
8
|
export interface ManufacturerDataEntry {
|
|
8
9
|
id: string;
|
|
@@ -20,6 +21,7 @@ export interface BLEDevice {
|
|
|
20
21
|
isConnectable: boolean;
|
|
21
22
|
}
|
|
22
23
|
export type ScanCallback = (device: BLEDevice) => void;
|
|
24
|
+
export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
|
|
23
25
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
24
26
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
25
27
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
@@ -35,6 +37,16 @@ export declare enum BLEState {
|
|
|
35
37
|
PoweredOff = "PoweredOff",
|
|
36
38
|
PoweredOn = "PoweredOn"
|
|
37
39
|
}
|
|
40
|
+
export declare enum AndroidScanMode {
|
|
41
|
+
LowLatency = "LowLatency",
|
|
42
|
+
Balanced = "Balanced",
|
|
43
|
+
LowPower = "LowPower",
|
|
44
|
+
Opportunistic = "Opportunistic"
|
|
45
|
+
}
|
|
46
|
+
export type BleNitroOptions = {
|
|
47
|
+
restoreStateIdentifier?: string;
|
|
48
|
+
onRestoreState?: RestoreStateCallback;
|
|
49
|
+
};
|
|
38
50
|
export declare class BleNitro {
|
|
39
51
|
private _isScanning;
|
|
40
52
|
private _connectedDevices;
|
|
@@ -53,7 +65,7 @@ export declare class BleNitro {
|
|
|
53
65
|
* @param callback Callback function called when a device is found
|
|
54
66
|
* @returns Promise resolving to success state
|
|
55
67
|
*/
|
|
56
|
-
startScan(filter: ScanFilter | undefined, callback: ScanCallback): void;
|
|
68
|
+
startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
|
|
57
69
|
/**
|
|
58
70
|
* Stop scanning for Bluetooth devices
|
|
59
71
|
* @returns Promise resolving to success state
|
|
@@ -120,7 +132,7 @@ export declare class BleNitro {
|
|
|
120
132
|
* @param deviceId ID of the device
|
|
121
133
|
* @param serviceId ID of the service
|
|
122
134
|
* @param characteristicId ID of the characteristic
|
|
123
|
-
* @returns Promise resolving to the characteristic data as
|
|
135
|
+
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
124
136
|
*/
|
|
125
137
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
126
138
|
/**
|
|
@@ -128,7 +140,7 @@ export declare class BleNitro {
|
|
|
128
140
|
* @param deviceId ID of the device
|
|
129
141
|
* @param serviceId ID of the service
|
|
130
142
|
* @param characteristicId ID of the characteristic
|
|
131
|
-
* @param data Data to write as ByteArray(number[])
|
|
143
|
+
* @param data Data to write as ByteArray (number[])
|
|
132
144
|
* @param withResponse Whether to wait for response
|
|
133
145
|
* @returns Promise resolving when write is complete
|
|
134
146
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ble = exports.BleNitro = exports.BLEState = void 0;
|
|
6
|
+
exports.ble = exports.BleNitro = exports.AndroidScanMode = exports.BLEState = void 0;
|
|
7
7
|
const NativeBleNitro_1 = __importDefault(require("./specs/NativeBleNitro"));
|
|
8
|
+
const NativeBleNitro_2 = require("./specs/NativeBleNitro");
|
|
8
9
|
var BLEState;
|
|
9
10
|
(function (BLEState) {
|
|
10
11
|
BLEState["Unknown"] = "Unknown";
|
|
@@ -15,6 +16,13 @@ var BLEState;
|
|
|
15
16
|
BLEState["PoweredOn"] = "PoweredOn";
|
|
16
17
|
})(BLEState || (exports.BLEState = BLEState = {}));
|
|
17
18
|
;
|
|
19
|
+
var AndroidScanMode;
|
|
20
|
+
(function (AndroidScanMode) {
|
|
21
|
+
AndroidScanMode["LowLatency"] = "LowLatency";
|
|
22
|
+
AndroidScanMode["Balanced"] = "Balanced";
|
|
23
|
+
AndroidScanMode["LowPower"] = "LowPower";
|
|
24
|
+
AndroidScanMode["Opportunistic"] = "Opportunistic";
|
|
25
|
+
})(AndroidScanMode || (exports.AndroidScanMode = AndroidScanMode = {}));
|
|
18
26
|
function mapNativeBLEStateToBLEState(nativeState) {
|
|
19
27
|
const map = {
|
|
20
28
|
0: BLEState.Unknown,
|
|
@@ -26,6 +34,27 @@ function mapNativeBLEStateToBLEState(nativeState) {
|
|
|
26
34
|
};
|
|
27
35
|
return map[nativeState];
|
|
28
36
|
}
|
|
37
|
+
function mapAndroidScanModeToNativeAndroidScanMode(scanMode) {
|
|
38
|
+
const map = {
|
|
39
|
+
LowLatency: NativeBleNitro_2.AndroidScanMode.LowLatency,
|
|
40
|
+
Balanced: NativeBleNitro_2.AndroidScanMode.Balanced,
|
|
41
|
+
LowPower: NativeBleNitro_2.AndroidScanMode.LowPower,
|
|
42
|
+
Opportunistic: NativeBleNitro_2.AndroidScanMode.Opportunistic,
|
|
43
|
+
};
|
|
44
|
+
return map[scanMode];
|
|
45
|
+
}
|
|
46
|
+
function convertNativeBleDeviceToBleDevice(nativeBleDevice) {
|
|
47
|
+
return {
|
|
48
|
+
...nativeBleDevice,
|
|
49
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(nativeBleDevice.serviceUUIDs),
|
|
50
|
+
manufacturerData: {
|
|
51
|
+
companyIdentifiers: nativeBleDevice.manufacturerData.companyIdentifiers.map(entry => ({
|
|
52
|
+
id: entry.id,
|
|
53
|
+
data: arrayBufferToByteArray(entry.data)
|
|
54
|
+
}))
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
29
58
|
function arrayBufferToByteArray(buffer) {
|
|
30
59
|
return Array.from(new Uint8Array(buffer));
|
|
31
60
|
}
|
|
@@ -70,8 +99,8 @@ class BleNitro {
|
|
|
70
99
|
* @param callback Callback function called when a device is found
|
|
71
100
|
* @returns Promise resolving to success state
|
|
72
101
|
*/
|
|
73
|
-
startScan(filter = {}, callback) {
|
|
74
|
-
var _a, _b;
|
|
102
|
+
startScan(filter = {}, callback, onError) {
|
|
103
|
+
var _a, _b, _c;
|
|
75
104
|
if (this._isScanning) {
|
|
76
105
|
return;
|
|
77
106
|
}
|
|
@@ -80,20 +109,18 @@ class BleNitro {
|
|
|
80
109
|
serviceUUIDs: filter.serviceUUIDs || [],
|
|
81
110
|
rssiThreshold: (_a = filter.rssiThreshold) !== null && _a !== void 0 ? _a : -100,
|
|
82
111
|
allowDuplicates: (_b = filter.allowDuplicates) !== null && _b !== void 0 ? _b : false,
|
|
112
|
+
androidScanMode: mapAndroidScanModeToNativeAndroidScanMode((_c = filter.androidScanMode) !== null && _c !== void 0 ? _c : AndroidScanMode.Balanced),
|
|
83
113
|
};
|
|
84
114
|
// Create callback wrapper
|
|
85
|
-
const scanCallback = (device) => {
|
|
115
|
+
const scanCallback = (device, error) => {
|
|
116
|
+
if (error && !device) {
|
|
117
|
+
this._isScanning = false;
|
|
118
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
device = device; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
86
122
|
// 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
|
-
};
|
|
123
|
+
const convertedDevice = convertNativeBleDeviceToBleDevice(device);
|
|
97
124
|
callback(convertedDevice);
|
|
98
125
|
};
|
|
99
126
|
// Start scan
|
|
@@ -109,6 +136,7 @@ class BleNitro {
|
|
|
109
136
|
return;
|
|
110
137
|
}
|
|
111
138
|
NativeBleNitro_1.default.stopScan();
|
|
139
|
+
this._isScanning = false;
|
|
112
140
|
}
|
|
113
141
|
/**
|
|
114
142
|
* Check if currently scanning for devices
|
|
@@ -126,16 +154,7 @@ class BleNitro {
|
|
|
126
154
|
getConnectedDevices(services) {
|
|
127
155
|
const devices = NativeBleNitro_1.default.getConnectedDevices(services || []);
|
|
128
156
|
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
129
|
-
return devices.map(device => (
|
|
130
|
-
...device,
|
|
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
|
-
}
|
|
138
|
-
}));
|
|
157
|
+
return devices.map(device => convertNativeBleDeviceToBleDevice(device));
|
|
139
158
|
}
|
|
140
159
|
/**
|
|
141
160
|
* Connect to a Bluetooth device
|
|
@@ -268,7 +287,7 @@ class BleNitro {
|
|
|
268
287
|
* @param deviceId ID of the device
|
|
269
288
|
* @param serviceId ID of the service
|
|
270
289
|
* @param characteristicId ID of the characteristic
|
|
271
|
-
* @returns Promise resolving to the characteristic data as
|
|
290
|
+
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
272
291
|
*/
|
|
273
292
|
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
274
293
|
return new Promise((resolve, reject) => {
|
|
@@ -292,7 +311,7 @@ class BleNitro {
|
|
|
292
311
|
* @param deviceId ID of the device
|
|
293
312
|
* @param serviceId ID of the service
|
|
294
313
|
* @param characteristicId ID of the characteristic
|
|
295
|
-
* @param data Data to write as ByteArray(number[])
|
|
314
|
+
* @param data Data to write as ByteArray (number[])
|
|
296
315
|
* @param withResponse Whether to wait for response
|
|
297
316
|
* @returns Promise resolving when write is complete
|
|
298
317
|
*/
|
|
@@ -303,8 +322,7 @@ class BleNitro {
|
|
|
303
322
|
reject(new Error('Device not connected'));
|
|
304
323
|
return;
|
|
305
324
|
}
|
|
306
|
-
|
|
307
|
-
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), dataAsArrayBuffer, withResponse, (success, error) => {
|
|
325
|
+
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
308
326
|
if (success) {
|
|
309
327
|
resolve(true);
|
|
310
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,12 +23,19 @@ export interface BLEDevice {
|
|
|
23
23
|
serviceUUIDs: string[];
|
|
24
24
|
isConnectable: boolean;
|
|
25
25
|
}
|
|
26
|
+
export declare enum AndroidScanMode {
|
|
27
|
+
LowLatency = 0,
|
|
28
|
+
Balanced = 1,
|
|
29
|
+
LowPower = 2,
|
|
30
|
+
Opportunistic = 3
|
|
31
|
+
}
|
|
26
32
|
export interface ScanFilter {
|
|
27
33
|
serviceUUIDs: string[];
|
|
28
34
|
rssiThreshold: number;
|
|
29
35
|
allowDuplicates: boolean;
|
|
36
|
+
androidScanMode: AndroidScanMode;
|
|
30
37
|
}
|
|
31
|
-
export type ScanCallback = (device: BLEDevice) => void;
|
|
38
|
+
export type ScanCallback = (device: BLEDevice | null, error: string | null) => void;
|
|
32
39
|
export type DevicesCallback = (devices: BLEDevice[]) => void;
|
|
33
40
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
34
41
|
export type DisconnectionEventCallback = (deviceId: string, interrupted: boolean, error: string) => 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,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAGnC,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,QAAQ,CAAC;CAChB;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,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeBleNitro.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBleNitro.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BLEState = void 0;
|
|
3
|
+
exports.AndroidScanMode = exports.BLEState = void 0;
|
|
4
4
|
// Nitro constraint: Use numeric enums instead of string unions
|
|
5
5
|
var BLEState;
|
|
6
6
|
(function (BLEState) {
|
|
@@ -11,4 +11,11 @@ var BLEState;
|
|
|
11
11
|
BLEState[BLEState["PoweredOff"] = 4] = "PoweredOff";
|
|
12
12
|
BLEState[BLEState["PoweredOn"] = 5] = "PoweredOn";
|
|
13
13
|
})(BLEState || (exports.BLEState = BLEState = {}));
|
|
14
|
+
var AndroidScanMode;
|
|
15
|
+
(function (AndroidScanMode) {
|
|
16
|
+
AndroidScanMode[AndroidScanMode["LowLatency"] = 0] = "LowLatency";
|
|
17
|
+
AndroidScanMode[AndroidScanMode["Balanced"] = 1] = "Balanced";
|
|
18
|
+
AndroidScanMode[AndroidScanMode["LowPower"] = 2] = "LowPower";
|
|
19
|
+
AndroidScanMode[AndroidScanMode["Opportunistic"] = 3] = "Opportunistic";
|
|
20
|
+
})(AndroidScanMode || (exports.AndroidScanMode = AndroidScanMode = {}));
|
|
14
21
|
//# sourceMappingURL=NativeBleNitro.nitro.js.map
|
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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;AAoBD,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,iEAAc,CAAA;IACd,6DAAY,CAAA;IACZ,6DAAY,CAAA;IACZ,uEAAiB,CAAA;AACnB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
|
package/lib/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface ScanFilter {
|
|
|
3
3
|
serviceUUIDs?: string[];
|
|
4
4
|
rssiThreshold?: number;
|
|
5
5
|
allowDuplicates?: boolean;
|
|
6
|
+
androidScanMode?: AndroidScanMode;
|
|
6
7
|
}
|
|
7
8
|
export interface ManufacturerDataEntry {
|
|
8
9
|
id: string;
|
|
@@ -20,6 +21,7 @@ export interface BLEDevice {
|
|
|
20
21
|
isConnectable: boolean;
|
|
21
22
|
}
|
|
22
23
|
export type ScanCallback = (device: BLEDevice) => void;
|
|
24
|
+
export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
|
|
23
25
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
24
26
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
25
27
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
@@ -35,6 +37,16 @@ export declare enum BLEState {
|
|
|
35
37
|
PoweredOff = "PoweredOff",
|
|
36
38
|
PoweredOn = "PoweredOn"
|
|
37
39
|
}
|
|
40
|
+
export declare enum AndroidScanMode {
|
|
41
|
+
LowLatency = "LowLatency",
|
|
42
|
+
Balanced = "Balanced",
|
|
43
|
+
LowPower = "LowPower",
|
|
44
|
+
Opportunistic = "Opportunistic"
|
|
45
|
+
}
|
|
46
|
+
export type BleNitroOptions = {
|
|
47
|
+
restoreStateIdentifier?: string;
|
|
48
|
+
onRestoreState?: RestoreStateCallback;
|
|
49
|
+
};
|
|
38
50
|
export declare class BleNitro {
|
|
39
51
|
private _isScanning;
|
|
40
52
|
private _connectedDevices;
|
|
@@ -53,7 +65,7 @@ export declare class BleNitro {
|
|
|
53
65
|
* @param callback Callback function called when a device is found
|
|
54
66
|
* @returns Promise resolving to success state
|
|
55
67
|
*/
|
|
56
|
-
startScan(filter: ScanFilter | undefined, callback: ScanCallback): void;
|
|
68
|
+
startScan(filter: ScanFilter | undefined, callback: ScanCallback, onError?: (error: string) => void): void;
|
|
57
69
|
/**
|
|
58
70
|
* Stop scanning for Bluetooth devices
|
|
59
71
|
* @returns Promise resolving to success state
|
|
@@ -120,7 +132,7 @@ export declare class BleNitro {
|
|
|
120
132
|
* @param deviceId ID of the device
|
|
121
133
|
* @param serviceId ID of the service
|
|
122
134
|
* @param characteristicId ID of the characteristic
|
|
123
|
-
* @returns Promise resolving to the characteristic data as
|
|
135
|
+
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
124
136
|
*/
|
|
125
137
|
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
126
138
|
/**
|
|
@@ -128,7 +140,7 @@ export declare class BleNitro {
|
|
|
128
140
|
* @param deviceId ID of the device
|
|
129
141
|
* @param serviceId ID of the service
|
|
130
142
|
* @param characteristicId ID of the characteristic
|
|
131
|
-
* @param data Data to write as ByteArray(number[])
|
|
143
|
+
* @param data Data to write as ByteArray (number[])
|
|
132
144
|
* @param withResponse Whether to wait for response
|
|
133
145
|
* @returns Promise resolving when write is complete
|
|
134
146
|
*/
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BleNitroNative from './specs/NativeBleNitro';
|
|
2
|
+
import { AndroidScanMode as NativeAndroidScanMode, } from './specs/NativeBleNitro';
|
|
2
3
|
export var BLEState;
|
|
3
4
|
(function (BLEState) {
|
|
4
5
|
BLEState["Unknown"] = "Unknown";
|
|
@@ -9,6 +10,13 @@ export var BLEState;
|
|
|
9
10
|
BLEState["PoweredOn"] = "PoweredOn";
|
|
10
11
|
})(BLEState || (BLEState = {}));
|
|
11
12
|
;
|
|
13
|
+
export var AndroidScanMode;
|
|
14
|
+
(function (AndroidScanMode) {
|
|
15
|
+
AndroidScanMode["LowLatency"] = "LowLatency";
|
|
16
|
+
AndroidScanMode["Balanced"] = "Balanced";
|
|
17
|
+
AndroidScanMode["LowPower"] = "LowPower";
|
|
18
|
+
AndroidScanMode["Opportunistic"] = "Opportunistic";
|
|
19
|
+
})(AndroidScanMode || (AndroidScanMode = {}));
|
|
12
20
|
function mapNativeBLEStateToBLEState(nativeState) {
|
|
13
21
|
const map = {
|
|
14
22
|
0: BLEState.Unknown,
|
|
@@ -20,6 +28,27 @@ function mapNativeBLEStateToBLEState(nativeState) {
|
|
|
20
28
|
};
|
|
21
29
|
return map[nativeState];
|
|
22
30
|
}
|
|
31
|
+
function mapAndroidScanModeToNativeAndroidScanMode(scanMode) {
|
|
32
|
+
const map = {
|
|
33
|
+
LowLatency: NativeAndroidScanMode.LowLatency,
|
|
34
|
+
Balanced: NativeAndroidScanMode.Balanced,
|
|
35
|
+
LowPower: NativeAndroidScanMode.LowPower,
|
|
36
|
+
Opportunistic: NativeAndroidScanMode.Opportunistic,
|
|
37
|
+
};
|
|
38
|
+
return map[scanMode];
|
|
39
|
+
}
|
|
40
|
+
function convertNativeBleDeviceToBleDevice(nativeBleDevice) {
|
|
41
|
+
return {
|
|
42
|
+
...nativeBleDevice,
|
|
43
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(nativeBleDevice.serviceUUIDs),
|
|
44
|
+
manufacturerData: {
|
|
45
|
+
companyIdentifiers: nativeBleDevice.manufacturerData.companyIdentifiers.map(entry => ({
|
|
46
|
+
id: entry.id,
|
|
47
|
+
data: arrayBufferToByteArray(entry.data)
|
|
48
|
+
}))
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
23
52
|
function arrayBufferToByteArray(buffer) {
|
|
24
53
|
return Array.from(new Uint8Array(buffer));
|
|
25
54
|
}
|
|
@@ -64,7 +93,7 @@ export class BleNitro {
|
|
|
64
93
|
* @param callback Callback function called when a device is found
|
|
65
94
|
* @returns Promise resolving to success state
|
|
66
95
|
*/
|
|
67
|
-
startScan(filter = {}, callback) {
|
|
96
|
+
startScan(filter = {}, callback, onError) {
|
|
68
97
|
if (this._isScanning) {
|
|
69
98
|
return;
|
|
70
99
|
}
|
|
@@ -73,20 +102,18 @@ export class BleNitro {
|
|
|
73
102
|
serviceUUIDs: filter.serviceUUIDs || [],
|
|
74
103
|
rssiThreshold: filter.rssiThreshold ?? -100,
|
|
75
104
|
allowDuplicates: filter.allowDuplicates ?? false,
|
|
105
|
+
androidScanMode: mapAndroidScanModeToNativeAndroidScanMode(filter.androidScanMode ?? AndroidScanMode.Balanced),
|
|
76
106
|
};
|
|
77
107
|
// Create callback wrapper
|
|
78
|
-
const scanCallback = (device) => {
|
|
108
|
+
const scanCallback = (device, error) => {
|
|
109
|
+
if (error && !device) {
|
|
110
|
+
this._isScanning = false;
|
|
111
|
+
onError?.(error);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
device = device; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
79
115
|
// Convert manufacturer data to Uint8Arrays
|
|
80
|
-
const convertedDevice =
|
|
81
|
-
...device,
|
|
82
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
83
|
-
manufacturerData: {
|
|
84
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
85
|
-
id: entry.id,
|
|
86
|
-
data: arrayBufferToByteArray(entry.data)
|
|
87
|
-
}))
|
|
88
|
-
}
|
|
89
|
-
};
|
|
116
|
+
const convertedDevice = convertNativeBleDeviceToBleDevice(device);
|
|
90
117
|
callback(convertedDevice);
|
|
91
118
|
};
|
|
92
119
|
// Start scan
|
|
@@ -102,6 +129,7 @@ export class BleNitro {
|
|
|
102
129
|
return;
|
|
103
130
|
}
|
|
104
131
|
BleNitroNative.stopScan();
|
|
132
|
+
this._isScanning = false;
|
|
105
133
|
}
|
|
106
134
|
/**
|
|
107
135
|
* Check if currently scanning for devices
|
|
@@ -119,16 +147,7 @@ export class BleNitro {
|
|
|
119
147
|
getConnectedDevices(services) {
|
|
120
148
|
const devices = BleNitroNative.getConnectedDevices(services || []);
|
|
121
149
|
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
122
|
-
return devices.map(device => (
|
|
123
|
-
...device,
|
|
124
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
125
|
-
manufacturerData: {
|
|
126
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
127
|
-
id: entry.id,
|
|
128
|
-
data: arrayBufferToByteArray(entry.data)
|
|
129
|
-
}))
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
150
|
+
return devices.map(device => convertNativeBleDeviceToBleDevice(device));
|
|
132
151
|
}
|
|
133
152
|
/**
|
|
134
153
|
* Connect to a Bluetooth device
|
|
@@ -261,7 +280,7 @@ export class BleNitro {
|
|
|
261
280
|
* @param deviceId ID of the device
|
|
262
281
|
* @param serviceId ID of the service
|
|
263
282
|
* @param characteristicId ID of the characteristic
|
|
264
|
-
* @returns Promise resolving to the characteristic data as
|
|
283
|
+
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
265
284
|
*/
|
|
266
285
|
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
267
286
|
return new Promise((resolve, reject) => {
|
|
@@ -285,7 +304,7 @@ export class BleNitro {
|
|
|
285
304
|
* @param deviceId ID of the device
|
|
286
305
|
* @param serviceId ID of the service
|
|
287
306
|
* @param characteristicId ID of the characteristic
|
|
288
|
-
* @param data Data to write as ByteArray(number[])
|
|
307
|
+
* @param data Data to write as ByteArray (number[])
|
|
289
308
|
* @param withResponse Whether to wait for response
|
|
290
309
|
* @returns Promise resolving when write is complete
|
|
291
310
|
*/
|
|
@@ -296,8 +315,7 @@ export class BleNitro {
|
|
|
296
315
|
reject(new Error('Device not connected'));
|
|
297
316
|
return;
|
|
298
317
|
}
|
|
299
|
-
|
|
300
|
-
BleNitroNative.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), dataAsArrayBuffer, withResponse, (success, error) => {
|
|
318
|
+
BleNitroNative.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
301
319
|
if (success) {
|
|
302
320
|
resolve(true);
|
|
303
321
|
}
|
|
@@ -23,12 +23,19 @@ export interface BLEDevice {
|
|
|
23
23
|
serviceUUIDs: string[];
|
|
24
24
|
isConnectable: boolean;
|
|
25
25
|
}
|
|
26
|
+
export declare enum AndroidScanMode {
|
|
27
|
+
LowLatency = 0,
|
|
28
|
+
Balanced = 1,
|
|
29
|
+
LowPower = 2,
|
|
30
|
+
Opportunistic = 3
|
|
31
|
+
}
|
|
26
32
|
export interface ScanFilter {
|
|
27
33
|
serviceUUIDs: string[];
|
|
28
34
|
rssiThreshold: number;
|
|
29
35
|
allowDuplicates: boolean;
|
|
36
|
+
androidScanMode: AndroidScanMode;
|
|
30
37
|
}
|
|
31
|
-
export type ScanCallback = (device: BLEDevice) => void;
|
|
38
|
+
export type ScanCallback = (device: BLEDevice | null, error: string | null) => void;
|
|
32
39
|
export type DevicesCallback = (devices: BLEDevice[]) => void;
|
|
33
40
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
34
41
|
export type DisconnectionEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
@@ -8,3 +8,10 @@ export var BLEState;
|
|
|
8
8
|
BLEState[BLEState["PoweredOff"] = 4] = "PoweredOff";
|
|
9
9
|
BLEState[BLEState["PoweredOn"] = 5] = "PoweredOn";
|
|
10
10
|
})(BLEState || (BLEState = {}));
|
|
11
|
+
export var AndroidScanMode;
|
|
12
|
+
(function (AndroidScanMode) {
|
|
13
|
+
AndroidScanMode[AndroidScanMode["LowLatency"] = 0] = "LowLatency";
|
|
14
|
+
AndroidScanMode[AndroidScanMode["Balanced"] = 1] = "Balanced";
|
|
15
|
+
AndroidScanMode[AndroidScanMode["LowPower"] = 2] = "LowPower";
|
|
16
|
+
AndroidScanMode[AndroidScanMode["Opportunistic"] = 3] = "Opportunistic";
|
|
17
|
+
})(AndroidScanMode || (AndroidScanMode = {}));
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
#include <NitroModules/HybridObjectRegistry.hpp>
|
|
17
17
|
|
|
18
18
|
#include "JHybridNativeBleNitroSpec.hpp"
|
|
19
|
-
#include "
|
|
19
|
+
#include "JFunc_void_std__optional_BLEDevice__std__optional_std__string_.hpp"
|
|
20
20
|
#include "JFunc_void_bool_std__string_std__string.hpp"
|
|
21
21
|
#include "JFunc_void_std__string_bool_std__string.hpp"
|
|
22
22
|
#include "JFunc_void_bool_std__string.hpp"
|
|
@@ -35,7 +35,7 @@ int initialize(JavaVM* vm) {
|
|
|
35
35
|
return facebook::jni::initialize(vm, [] {
|
|
36
36
|
// Register native JNI methods
|
|
37
37
|
margelo::nitro::co::zyke::ble::JHybridNativeBleNitroSpec::registerNatives();
|
|
38
|
-
margelo::nitro::co::zyke::ble::
|
|
38
|
+
margelo::nitro::co::zyke::ble::JFunc_void_std__optional_BLEDevice__std__optional_std__string__cxx::registerNatives();
|
|
39
39
|
margelo::nitro::co::zyke::ble::JFunc_void_bool_std__string_std__string_cxx::registerNatives();
|
|
40
40
|
margelo::nitro::co::zyke::ble::JFunc_void_std__string_bool_std__string_cxx::registerNatives();
|
|
41
41
|
margelo::nitro::co::zyke::ble::JFunc_void_bool_std__string_cxx::registerNatives();
|