react-native-ble-manager 9.0.0 → 10.0.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 CHANGED
@@ -496,6 +496,44 @@ BleManager.readRSSI("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
496
496
  });
497
497
  ```
498
498
 
499
+ ### readDescriptor(peripheralId, serviceId, characteristicId, descriptorId)
500
+
501
+ Read the current value of the specified descriptor, you need to call `retrieveServices` method before.
502
+ Returns a `Promise` object that will resolves to an array of plain integers (`number[]`) representing a `ByteArray` structure.
503
+ That array can then be converted to a JS `ArrayBuffer` for example using `Buffer.from()` [thanks to this buffer module](https://github.com/feross/buffer).
504
+
505
+ **Arguments**
506
+
507
+ - `peripheralId` - `String` - the id/mac address of the peripheral.
508
+ - `serviceUUID` - `String` - the UUID of the service.
509
+ - `characteristicUUID` - `String` - the UUID of the characteristic.
510
+ - `descriptorUUID` - `String` - the UUID of the descriptor.
511
+
512
+ **Examples**
513
+
514
+ ```js
515
+ BleManager.readDescriptor(
516
+ "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
517
+ "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
518
+ "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
519
+ "XXXX"
520
+ )
521
+ .then((readData) => {
522
+ // Success code
523
+ console.log("Read: " + readData);
524
+
525
+ // https://github.com/feross/buffer
526
+ // https://nodejs.org/api/buffer.html#static-method-bufferfromarray
527
+ const buffer = Buffer.from(readData);
528
+ const sensorData = buffer.readUInt8(1, true);
529
+ })
530
+ .catch((error) => {
531
+ // Failure code
532
+ console.log(error);
533
+ });
534
+ ```
535
+
536
+
499
537
  ### requestConnectionPriority(peripheralId, connectionPriority) [Android only API 21+]
500
538
 
501
539
  Request a connection parameter update.
@@ -398,6 +398,26 @@ class BleManager extends ReactContextBaseJavaModule {
398
398
  callback.invoke("Peripheral not found", null);
399
399
  }
400
400
 
401
+ @ReactMethod
402
+ public void readDescriptor(String deviceUUID, String serviceUUID, String characteristicUUID, String descriptorUUID, Callback callback) {
403
+ Log.d(LOG_TAG, "Read descriptor from: " + deviceUUID);
404
+ if (serviceUUID == null || characteristicUUID == null || descriptorUUID == null) {
405
+ callback.invoke("ServiceUUID, CharacteristicUUID and descriptorUUID required.", null);
406
+ return;
407
+ }
408
+
409
+ Peripheral peripheral = peripherals.get(deviceUUID);
410
+ if (peripheral == null) {
411
+ callback.invoke("Peripheral not found", null);
412
+ }
413
+
414
+ peripheral.readDescriptor(
415
+ UUIDHelper.uuidFromString(serviceUUID),
416
+ UUIDHelper.uuidFromString(characteristicUUID),
417
+ UUIDHelper.uuidFromString(descriptorUUID),
418
+ callback);
419
+ }
420
+
401
421
  @ReactMethod
402
422
  public void retrieveServices(String deviceUUID, ReadableArray services, Callback callback) {
403
423
  Log.d(LOG_TAG, "Retrieve services from: " + deviceUUID);
@@ -63,6 +63,7 @@ public class Peripheral extends BluetoothGattCallback {
63
63
  private LinkedList<Callback> connectCallbacks = new LinkedList<>();
64
64
  private LinkedList<Callback> retrieveServicesCallbacks = new LinkedList<>();
65
65
  private LinkedList<Callback> readCallbacks = new LinkedList<>();
66
+ private LinkedList<Callback> readDescriptorCallbacks = new LinkedList<>();
66
67
  private LinkedList<Callback> readRSSICallbacks = new LinkedList<>();
67
68
  private LinkedList<Callback> writeCallbacks = new LinkedList<>();
68
69
  private LinkedList<Callback> registerNotifyCallbacks = new LinkedList<>();
@@ -364,6 +365,11 @@ public class Peripheral extends BluetoothGattCallback {
364
365
  }
365
366
  readCallbacks.clear();
366
367
 
368
+ for (Callback readDescriptorCallback: readDescriptorCallbacks) {
369
+ readDescriptorCallback.invoke("Device disconnected");
370
+ }
371
+ readDescriptorCallbacks.clear();
372
+
367
373
  for (Callback connectCallback: connectCallbacks) {
368
374
  connectCallback.invoke("Connection error");
369
375
  }
@@ -524,6 +530,39 @@ public class Peripheral extends BluetoothGattCallback {
524
530
  });
525
531
  }
526
532
 
533
+ @Override
534
+ public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
535
+ super.onDescriptorRead(gatt, descriptor, status);
536
+
537
+ mainHandler.post(() -> {
538
+ if (status != BluetoothGatt.GATT_SUCCESS) {
539
+ if (status == GATT_AUTH_FAIL || status == GATT_INSUFFICIENT_AUTHENTICATION) {
540
+ Log.d(BleManager.LOG_TAG, "Read needs bonding");
541
+ }
542
+
543
+ for (Callback readDescriptorCallback : readDescriptorCallbacks) {
544
+ readDescriptorCallback.invoke(
545
+ "Error reading descriptor " + descriptor.getUuid() + " status=" + status,
546
+ null
547
+ );
548
+ }
549
+ readDescriptorCallbacks.clear();
550
+ } else if (!readDescriptorCallbacks.isEmpty()) {
551
+ final byte[] dataValue = copyOf(descriptor.getValue());
552
+
553
+ for (Callback readDescriptorCallback : readDescriptorCallbacks) {
554
+ readDescriptorCallback.invoke(
555
+ null,
556
+ BleManager.bytesToWritableArray(dataValue)
557
+ );
558
+ }
559
+
560
+ readDescriptorCallbacks.clear();
561
+ }
562
+ completedCommand();
563
+ });
564
+ }
565
+
527
566
  @Override
528
567
  public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
529
568
  super.onReadRemoteRssi(gatt, rssi, status);
@@ -714,6 +753,50 @@ public class Peripheral extends BluetoothGattCallback {
714
753
  });
715
754
  }
716
755
 
756
+ public void readDescriptor(UUID serviceUUID, UUID characteristicUUID, UUID descriptorUUID, final Callback callback) {
757
+ enqueue(() -> {
758
+ if (!isConnected() || gatt == null) {
759
+ callback.invoke("Device is not connected", null);
760
+ completedCommand();
761
+ return;
762
+ }
763
+
764
+ BluetoothGattService service = gatt.getService(serviceUUID);
765
+ final BluetoothGattCharacteristic characteristic = findReadableCharacteristic(service, characteristicUUID);
766
+
767
+ if (characteristic == null) {
768
+ callback.invoke("Characteristic " + characteristicUUID + " not found.", null);
769
+ completedCommand();
770
+ return;
771
+ }
772
+
773
+ final BluetoothGattDescriptor descriptor = characteristic.getDescriptor(descriptorUUID);
774
+ if (descriptor == null) {
775
+ callback.invoke("Read descriptor failed for " + descriptorUUID, null);
776
+ completedCommand();
777
+ return;
778
+ }
779
+
780
+ final int readPermissionBitMask = BluetoothGattDescriptor.PERMISSION_READ
781
+ | BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED
782
+ | BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM;
783
+ if ((descriptor.getPermissions() & readPermissionBitMask) != 0) {
784
+ callback.invoke("Read descriptor failed for " + descriptorUUID + ": Descriptor is missing read permission", null);
785
+ completedCommand();
786
+ return;
787
+ }
788
+
789
+ this.readDescriptorCallbacks.addLast(callback);
790
+ if (!gatt.readDescriptor(descriptor)) {
791
+ for (Callback readDescriptorCallback: readDescriptorCallbacks) {
792
+ readDescriptorCallback.invoke("Reading descriptor failed", null);
793
+ }
794
+ readDescriptorCallbacks.clear();
795
+ completedCommand();
796
+ }
797
+ });
798
+ }
799
+
717
800
  private byte[] copyOf(byte[] source) {
718
801
  if (source == null) return new byte[0];
719
802
  final int sourceLength = source.length;
@@ -10,6 +10,15 @@ declare class BleManager {
10
10
  * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
11
11
  */
12
12
  read(peripheralId: string, serviceUUID: string, characteristicUUID: string): Promise<number[]>;
13
+ /**
14
+ *
15
+ * @param peripheralId
16
+ * @param serviceUUID
17
+ * @param characteristicUUID
18
+ * @param descriptorUUID
19
+ * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
20
+ */
21
+ readDescriptor(peripheralId: string, serviceUUID: string, characteristicUUID: string, descriptorUUID: string): Promise<number[]>;
13
22
  /**
14
23
  *
15
24
  * @param peripheralId
package/dist/cjs/index.js CHANGED
@@ -41,6 +41,26 @@ class BleManager {
41
41
  });
42
42
  });
43
43
  }
44
+ /**
45
+ *
46
+ * @param peripheralId
47
+ * @param serviceUUID
48
+ * @param characteristicUUID
49
+ * @param descriptorUUID
50
+ * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
51
+ */
52
+ readDescriptor(peripheralId, serviceUUID, characteristicUUID, descriptorUUID) {
53
+ return new Promise((fulfill, reject) => {
54
+ bleManager.readDescriptor(peripheralId, serviceUUID, characteristicUUID, descriptorUUID, (error, data) => {
55
+ if (error) {
56
+ reject(error);
57
+ }
58
+ else {
59
+ fulfill(data);
60
+ }
61
+ });
62
+ });
63
+ }
44
64
  /**
45
65
  *
46
66
  * @param peripheralId
@@ -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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"}
@@ -10,6 +10,15 @@ declare class BleManager {
10
10
  * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
11
11
  */
12
12
  read(peripheralId: string, serviceUUID: string, characteristicUUID: string): Promise<number[]>;
13
+ /**
14
+ *
15
+ * @param peripheralId
16
+ * @param serviceUUID
17
+ * @param characteristicUUID
18
+ * @param descriptorUUID
19
+ * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
20
+ */
21
+ readDescriptor(peripheralId: string, serviceUUID: string, characteristicUUID: string, descriptorUUID: string): Promise<number[]>;
13
22
  /**
14
23
  *
15
24
  * @param peripheralId
package/dist/esm/index.js CHANGED
@@ -25,6 +25,26 @@ class BleManager {
25
25
  });
26
26
  });
27
27
  }
28
+ /**
29
+ *
30
+ * @param peripheralId
31
+ * @param serviceUUID
32
+ * @param characteristicUUID
33
+ * @param descriptorUUID
34
+ * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
35
+ */
36
+ readDescriptor(peripheralId, serviceUUID, characteristicUUID, descriptorUUID) {
37
+ return new Promise((fulfill, reject) => {
38
+ bleManager.readDescriptor(peripheralId, serviceUUID, characteristicUUID, descriptorUUID, (error, data) => {
39
+ if (error) {
40
+ reject(error);
41
+ }
42
+ else {
43
+ fulfill(data);
44
+ }
45
+ });
46
+ });
47
+ }
28
48
  /**
29
49
  *
30
50
  * @param peripheralId
@@ -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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"}
package/ios/BleManager.h CHANGED
@@ -9,6 +9,7 @@
9
9
  NSMutableDictionary *readCallbacks;
10
10
  NSMutableDictionary *writeCallbacks;
11
11
  NSMutableDictionary *readRSSICallbacks;
12
+ NSMutableDictionary *readDescriptorCallbacks;
12
13
  NSMutableDictionary *retrieveServicesCallbacks;
13
14
  NSMutableArray *writeQueue;
14
15
  NSMutableDictionary *notificationCallbacks;
package/ios/BleManager.m CHANGED
@@ -28,6 +28,7 @@ bool hasListeners;
28
28
  retrieveServicesLatches = [NSMutableDictionary new];
29
29
  readCallbacks = [NSMutableDictionary new];
30
30
  readRSSICallbacks = [NSMutableDictionary new];
31
+ readDescriptorCallbacks = [NSMutableDictionary new];
31
32
  retrieveServicesCallbacks = [NSMutableDictionary new];
32
33
  writeCallbacks = [NSMutableDictionary new];
33
34
  writeQueue = [NSMutableArray array];
@@ -95,7 +96,48 @@ bool hasListeners;
95
96
  [self invokeAndClearDictionary:readCallbacks withKey:key usingParameters:@[[NSNull null], ([characteristic.value length] > 0) ? [characteristic.value toArray] : [NSNull null]]];
96
97
  } else {
97
98
  if (hasListeners) {
98
- [self sendEventWithName:@"BleManagerDidUpdateValueForCharacteristic" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic":characteristic.UUID.UUIDString, @"service":characteristic.service.UUID.UUIDString, @"value": ([characteristic.value length] > 0) ? [characteristic.value toArray] : [NSNull null]}];
99
+ [self sendEventWithName:@"BleManagerDidUpdateValueForCharacteristic" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic":characteristic.UUID.UUIDString.lowercaseString, @"service":characteristic.service.UUID.UUIDString.lowercaseString, @"value": ([characteristic.value length] > 0) ? [characteristic.value toArray] : [NSNull null]}];
100
+ }
101
+ }
102
+ }
103
+
104
+ - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForDescriptor:(nonnull CBDescriptor *)descriptor error:(nullable NSError *)error {
105
+ NSString *key = [self keyForPeripheral: peripheral andCharacteristic:descriptor.characteristic andDescriptor:descriptor];
106
+
107
+ if (error) {
108
+ NSLog(@"Error reading descriptor value for %@ on characteristic %@ :%@",
109
+ descriptor.UUID,
110
+ descriptor.characteristic.UUID,
111
+ error);
112
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[error, [NSNull null]]];
113
+ return;
114
+ }
115
+ NSLog(@"Read value [descriptor: %@, characteristic: %@]: (%lu) %@",
116
+ descriptor.UUID,
117
+ descriptor.characteristic.UUID,
118
+ [descriptor.value length],
119
+ descriptor.value);
120
+
121
+ NSMutableArray* peripheralReadDescriptorCallbacks = [readDescriptorCallbacks objectForKey:key];
122
+ if (peripheralReadDescriptorCallbacks != NULL) {
123
+ // The most future proof way of doing this that I could find, other option would be running strcmp on CBUUID strings
124
+ // https://developer.apple.com/documentation/corebluetooth/cbuuid/characteristic_descriptors
125
+ if ([descriptor.value isKindOfClass:[NSData class]]) {
126
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[[NSNull null], ([descriptor.value length] > 0) ? [descriptor.value toArray] : [NSNull null]]];
127
+ } else if ([descriptor.value isKindOfClass:[NSNumber class]]) {
128
+ NSMutableData *byteData = [NSMutableData new];
129
+ if (descriptor.value != nil) {
130
+ NSNumber *number = descriptor.value;
131
+ unsigned long long value = number.unsignedLongLongValue;
132
+ [byteData appendBytes:&value length:sizeof(value)];
133
+ }
134
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[[NSNull null], ([byteData length] > 0) ? [byteData toArray] : [NSNull null]]];
135
+ } else if ([descriptor.value isKindOfClass:[NSString class]]) {
136
+ NSData *byteData = [descriptor.value dataUsingEncoding:NSUTF8StringEncoding];
137
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[[NSNull null], ([byteData length] > 0) ? [byteData toArray] : [NSNull null]]];
138
+ } else {
139
+ NSLog(@"Unrecognized type of descriptor: (UUID: %@, value type: %@, value: %@)", descriptor.UUID, [descriptor.value class], descriptor.value);
140
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[[NSNull null], ([descriptor.value length] > 0) ? [descriptor.value toArray] : [NSNull null]]];
99
141
  }
100
142
  }
101
143
  }
@@ -107,7 +149,7 @@ bool hasListeners;
107
149
  return;
108
150
  }
109
151
  if (hasListeners) {
110
- [self sendEventWithName:@"BleManagerDidUpdateNotificationStateFor" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic": characteristic.UUID.UUIDString, @"isNotifying": @(false), @"domain": [error domain], @"code": @(error.code)}];
152
+ [self sendEventWithName:@"BleManagerDidUpdateNotificationStateFor" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic": characteristic.UUID.UUIDString.lowercaseString, @"isNotifying": @(false), @"domain": [error domain], @"code": @(error.code)}];
111
153
  }
112
154
  }
113
155
 
@@ -136,7 +178,7 @@ bool hasListeners;
136
178
  }
137
179
  }
138
180
  if (hasListeners) {
139
- [self sendEventWithName:@"BleManagerDidUpdateNotificationStateFor" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic": characteristic.UUID.UUIDString, @"isNotifying": @(characteristic.isNotifying)}];
181
+ [self sendEventWithName:@"BleManagerDidUpdateNotificationStateFor" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic": characteristic.UUID.UUIDString.lowercaseString, @"isNotifying": @(characteristic.isNotifying)}];
140
182
  }
141
183
  }
142
184
 
@@ -211,7 +253,7 @@ bool hasListeners;
211
253
  @synchronized(peripherals) {
212
254
  for (CBPeripheral *p in peripherals) {
213
255
 
214
- NSString* other = p.identifier.UUIDString;
256
+ NSString* other = p.identifier.UUIDString.lowercaseString;
215
257
 
216
258
  if ([uuid isEqualToString:other]) {
217
259
  peripheral = p;
@@ -627,6 +669,36 @@ RCT_EXPORT_METHOD(readRSSI:(NSString *)deviceUUID callback:(nonnull RCTResponseS
627
669
 
628
670
  }
629
671
 
672
+ RCT_EXPORT_METHOD(readDescriptor:(NSString *)deviceUUID serviceUUID:(NSString*)serviceUUID characteristicUUID:(NSString*)characteristicUUID descriptorUUID:(NSString*)descriptorUUID callback:(nonnull RCTResponseSenderBlock)callback)
673
+ {
674
+ NSLog(@"readDescriptor");
675
+
676
+ BLECommandContext *context = [self getData:deviceUUID serviceUUIDString:serviceUUID characteristicUUIDString:characteristicUUID prop:CBCharacteristicPropertyRead callback:callback];
677
+ if (context) {
678
+
679
+ CBPeripheral *peripheral = [context peripheral];
680
+ CBCharacteristic *characteristic = [context characteristic];
681
+ CBDescriptor *descriptor = [self findDescriptorFromUUID:[CBUUID UUIDWithString:descriptorUUID] characteristic:characteristic];
682
+ if (!descriptor) {
683
+ NSString* err = [NSString stringWithFormat:@"Could not find descriptor with UUID %@ on characteristic with UUID %@ on peripheral with UUID %@",
684
+ descriptorUUID,
685
+ characteristic.UUID,
686
+ peripheral.identifier.UUIDString];
687
+ NSLog(@"Could not find descriptor with UUID %@ on characteristic with UUID %@ on peripheral with UUID %@",
688
+ descriptorUUID,
689
+ characteristic.UUID,
690
+ peripheral.identifier.UUIDString);
691
+ callback(@[err]);
692
+ } else {
693
+ NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic andDescriptor:descriptor];
694
+ [self insertCallback:callback intoDictionary:readDescriptorCallbacks withKey:key];
695
+
696
+ [peripheral readValueForDescriptor:descriptor]; // callback sends value
697
+ }
698
+ }
699
+
700
+ }
701
+
630
702
  RCT_EXPORT_METHOD(retrieveServices:(NSString *)deviceUUID services:(NSArray<NSString *> *)services callback:(nonnull RCTResponseSenderBlock)callback)
631
703
  {
632
704
  NSLog(@"retrieveServices %@", services);
@@ -815,6 +887,13 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
815
887
  [self invokeAndClearDictionary:notificationCallbacks withKey:key usingParameters:@[errorStr]];
816
888
  }
817
889
  }
890
+
891
+ NSArray* ourReadDescriptorCallbacks = readDescriptorCallbacks.allKeys;
892
+ for (id key in ourReadDescriptorCallbacks) {
893
+ if ([key hasPrefix:peripheralUUIDString]) {
894
+ [self invokeAndClearDictionary:readDescriptorCallbacks withKey:key usingParameters:@[errorStr]];
895
+ }
896
+ }
818
897
 
819
898
  NSArray* ourStopNotificationsCallbacks = stopNotificationCallbacks.allKeys;
820
899
  for (id key in ourStopNotificationsCallbacks) {
@@ -861,13 +940,37 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
861
940
  NSLog(@"Characteristics For Service Discover");
862
941
 
863
942
  NSString *peripheralUUIDString = [peripheral uuidAsString];
864
- NSMutableSet *latch = [retrieveServicesLatches valueForKey:peripheralUUIDString];
865
- [latch removeObject:service];
943
+ NSMutableSet *characteristicsForService = [NSMutableSet new];
944
+ [characteristicsForService addObjectsFromArray:service.characteristics];
945
+ [retrieveServicesLatches setObject:characteristicsForService forKey:service.UUID.UUIDString];
946
+
947
+ for (CBCharacteristic *characteristic in service.characteristics) {
948
+ [peripheral discoverDescriptorsForCharacteristic:characteristic];
949
+ }
950
+ }
951
+
952
+ - (void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(nonnull CBCharacteristic *)characteristic error:(nullable NSError *)error {
953
+ if (error) {
954
+ NSLog(@"Error: %@", error);
955
+ return;
956
+ }
957
+ NSLog(@"Descriptor For Characteristic Discover");
866
958
 
867
- if ([latch count] == 0) {
868
- // Call success callback for connect
869
- [self invokeAndClearDictionary:retrieveServicesCallbacks withKey:peripheralUUIDString usingParameters:@[[NSNull null], [peripheral asDictionary]]];
870
- [retrieveServicesLatches removeObjectForKey:peripheralUUIDString];
959
+ NSString *peripheralUUIDString = [peripheral uuidAsString];
960
+ NSString *serviceUUIDString = characteristic.service.UUID.UUIDString;
961
+ NSMutableSet *peripheralLatch = [retrieveServicesLatches valueForKey:peripheralUUIDString];
962
+ NSMutableSet *serviceLatch = [retrieveServicesLatches valueForKey:serviceUUIDString];
963
+ [serviceLatch removeObject:characteristic];
964
+
965
+ if ([serviceLatch count] == 0) {
966
+ // All characteristics for this service have been checked
967
+ [peripheralLatch removeObject:characteristic.service];
968
+
969
+ if ([peripheralLatch count] == 0) {
970
+ // Call success callback for connect
971
+ [self invokeAndClearDictionary:retrieveServicesCallbacks withKey:peripheralUUIDString usingParameters:@[[NSNull null], [peripheral asDictionary]]];
972
+ [retrieveServicesLatches removeObjectForKey:peripheralUUIDString];
973
+ }
871
974
  }
872
975
  }
873
976
 
@@ -878,7 +981,7 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
878
981
  for(int i=0; i < service.characteristics.count; i++)
879
982
  {
880
983
  CBCharacteristic *c = [service.characteristics objectAtIndex:i];
881
- if ((c.properties & prop) != 0x0 && [c.UUID.UUIDString isEqualToString: UUID.UUIDString]) {
984
+ if ((c.properties & prop) != 0x0 && [c.UUID.UUIDString.lowercaseString isEqualToString: UUID.UUIDString.lowercaseString]) {
882
985
  NSLog(@"Found %@", UUID);
883
986
  return c;
884
987
  }
@@ -893,7 +996,7 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
893
996
  for(int i=0; i < service.characteristics.count; i++)
894
997
  {
895
998
  CBCharacteristic *c = [service.characteristics objectAtIndex:i];
896
- if ([c.UUID.UUIDString isEqualToString: UUID.UUIDString]) {
999
+ if ([c.UUID.UUIDString.lowercaseString isEqualToString: UUID.UUIDString.lowercaseString]) {
897
1000
  NSLog(@"Found %@", UUID);
898
1001
  return c;
899
1002
  }
@@ -901,6 +1004,20 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
901
1004
  return nil; //Characteristic not found on this service
902
1005
  }
903
1006
 
1007
+ -(CBDescriptor *) findDescriptorFromUUID:(CBUUID *)UUID characteristic:(CBCharacteristic*)characteristic
1008
+ {
1009
+ NSLog(@"Looking for descriptor %@ on characteristic %@", UUID, characteristic.UUID);
1010
+ for (int i=0; i < characteristic.descriptors.count; i++)
1011
+ {
1012
+ CBDescriptor *d = [characteristic.descriptors objectAtIndex:i];
1013
+ if ([d.UUID.UUIDString isEqualToString: UUID.UUIDString]) {
1014
+ NSLog(@"Found descriptor %@", UUID);
1015
+ return d;
1016
+ }
1017
+ }
1018
+ return nil; // Descriptor not found on this characteristic
1019
+ }
1020
+
904
1021
  - (void)centralManagerDidUpdateState:(CBCentralManager *)central
905
1022
  {
906
1023
  NSString *stateName = [self centralManagerStateToString:central.state];
@@ -931,10 +1048,10 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
931
1048
  {
932
1049
  NSString* err = [NSString stringWithFormat:@"Could not find service with UUID %@ on peripheral with UUID %@",
933
1050
  serviceUUIDString,
934
- peripheral.identifier.UUIDString];
1051
+ peripheral.identifier.UUIDString.lowercaseString];
935
1052
  NSLog(@"Could not find service with UUID %@ on peripheral with UUID %@",
936
1053
  serviceUUIDString,
937
- peripheral.identifier.UUIDString);
1054
+ peripheral.identifier.UUIDString.lowercaseString);
938
1055
  callback(@[err]);
939
1056
  return nil;
940
1057
  }
@@ -953,11 +1070,11 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
953
1070
 
954
1071
  if (!characteristic)
955
1072
  {
956
- NSString* err = [NSString stringWithFormat:@"Could not find characteristic with UUID %@ on service with UUID %@ on peripheral with UUID %@", characteristicUUIDString,serviceUUIDString, peripheral.identifier.UUIDString];
1073
+ NSString* err = [NSString stringWithFormat:@"Could not find characteristic with UUID %@ on service with UUID %@ on peripheral with UUID %@", characteristicUUIDString,serviceUUIDString, peripheral.identifier.UUIDString.lowercaseString];
957
1074
  NSLog(@"Could not find characteristic with UUID %@ on service with UUID %@ on peripheral with UUID %@",
958
1075
  characteristicUUIDString,
959
1076
  serviceUUIDString,
960
- peripheral.identifier.UUIDString);
1077
+ peripheral.identifier.UUIDString.lowercaseString);
961
1078
  callback(@[err]);
962
1079
  return nil;
963
1080
  }
@@ -974,6 +1091,10 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
974
1091
  return [NSString stringWithFormat:@"%@|%@", [peripheral uuidAsString], [characteristic UUID]];
975
1092
  }
976
1093
 
1094
+ -(NSString *) keyForPeripheral: (CBPeripheral *)peripheral andCharacteristic:(CBCharacteristic *)characteristic andDescriptor:(CBDescriptor *)descriptor {
1095
+ return [NSString stringWithFormat:@"%@|%@|%@", [peripheral uuidAsString], [characteristic UUID], [descriptor UUID]];
1096
+ }
1097
+
977
1098
  -(void)centralManager:(CBCentralManager *)central willRestoreState:(NSDictionary<NSString *,id> *)dict
978
1099
  {
979
1100
  NSArray<CBPeripheral *> *restoredPeripherals = dict[CBCentralManagerRestoredStatePeripheralsKey];
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>BleManager.xcscheme_^#shared#^_</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ </dict>
14
+ </plist>
@@ -8,7 +8,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
8
8
 
9
9
  -(NSString *)uuidAsString {
10
10
  if (self.identifier.UUIDString) {
11
- return self.identifier.UUIDString;
11
+ return [self.identifier.UUIDString lowercaseString];
12
12
  } else {
13
13
  return @"";
14
14
  }
@@ -18,7 +18,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
18
18
  -(NSDictionary *)asDictionary {
19
19
  NSString *uuidString = NULL;
20
20
  if (self.identifier.UUIDString) {
21
- uuidString = self.identifier.UUIDString;
21
+ uuidString = [self.identifier.UUIDString lowercaseString];
22
22
  } else {
23
23
  uuidString = @"";
24
24
  }
@@ -112,7 +112,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
112
112
 
113
113
  for (CBUUID *key in [serviceData allKeys]) {
114
114
  if ([serviceData objectForKey:key]) {
115
- [serviceData setObject:dataToArrayBuffer([serviceData objectForKey:key]) forKey:[key UUIDString]];
115
+ [serviceData setObject:dataToArrayBuffer([serviceData objectForKey:key]) forKey:[[key UUIDString] lowercaseString]];
116
116
  [serviceData removeObjectForKey:key];
117
117
  }
118
118
  }
@@ -129,7 +129,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
129
129
  serviceUUIDStrings = [[NSMutableArray alloc] initWithCapacity:serviceUUIDs.count];
130
130
 
131
131
  for (CBUUID *uuid in serviceUUIDs) {
132
- [serviceUUIDStrings addObject:[uuid UUIDString]];
132
+ [serviceUUIDStrings addObject:[[uuid UUIDString] lowercaseString]];
133
133
  }
134
134
 
135
135
  // replace the UUID list with list of strings
@@ -145,7 +145,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
145
145
  solicitiedServiceUUIDStrings = [[NSMutableArray alloc] initWithCapacity:solicitiedServiceUUIDs.count];
146
146
 
147
147
  for (CBUUID *uuid in solicitiedServiceUUIDs) {
148
- [solicitiedServiceUUIDStrings addObject:[uuid UUIDString]];
148
+ [solicitiedServiceUUIDStrings addObject:[[uuid UUIDString] lowercaseString]];
149
149
  }
150
150
 
151
151
  // replace the UUID list with list of strings
@@ -161,7 +161,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
161
161
  overflowServiceUUIDStrings = [[NSMutableArray alloc] initWithCapacity:overflowServiceUUIDs.count];
162
162
 
163
163
  for (CBUUID *uuid in overflowServiceUUIDs) {
164
- [overflowServiceUUIDStrings addObject:[uuid UUIDString]];
164
+ [overflowServiceUUIDStrings addObject:[[uuid UUIDString] lowercaseString]];
165
165
  }
166
166
 
167
167
  // replace the UUID list with list of strings
@@ -188,11 +188,13 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
188
188
 
189
189
  // This can move into the CBPeripherial Extension
190
190
  for (CBService *service in [self services]) {
191
- [serviceList addObject:[[service UUID] UUIDString]];
191
+ NSMutableDictionary *serviceDictionary = [NSMutableDictionary new];
192
+ [serviceDictionary setObject:[[[service UUID] UUIDString] lowercaseString] forKey:@"uuid"];
193
+ [serviceList addObject:serviceDictionary];
192
194
  for (CBCharacteristic *characteristic in service.characteristics) {
193
195
  NSMutableDictionary *characteristicDictionary = [NSMutableDictionary new];
194
- [characteristicDictionary setObject:[[service UUID] UUIDString] forKey:@"service"];
195
- [characteristicDictionary setObject:[[characteristic UUID] UUIDString] forKey:@"characteristic"];
196
+ [characteristicDictionary setObject:[[[service UUID] UUIDString] lowercaseString] forKey:@"service"];
197
+ [characteristicDictionary setObject:[[[characteristic UUID] UUIDString] lowercaseString] forKey:@"characteristic"];
196
198
 
197
199
  if ([characteristic value] && [[characteristic value] length] > 0) {
198
200
  [characteristicDictionary setObject:dataToArrayBuffer([characteristic value]) forKey:@"value"];
@@ -209,7 +211,7 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
209
211
  NSMutableArray *descriptorList = [NSMutableArray new];
210
212
  for (CBDescriptor *descriptor in characteristic.descriptors) {
211
213
  NSMutableDictionary *descriptorDictionary = [NSMutableDictionary new];
212
- [descriptorDictionary setObject:[[descriptor UUID] UUIDString] forKey:@"descriptor"];
214
+ [descriptorDictionary setObject:[[[descriptor UUID] UUIDString] lowercaseString] forKey:@"uuid"];
213
215
  if ([descriptor value]) { // should always have a value?
214
216
  [descriptorDictionary setObject:[descriptor value] forKey:@"value"];
215
217
  }
@@ -227,50 +229,50 @@ static char ADVERTISEMENT_RSSI_IDENTIFER;
227
229
 
228
230
  }
229
231
 
230
- -(NSArray *) decodeCharacteristicProperties: (CBCharacteristic *) characteristic {
231
- NSMutableArray *props = [NSMutableArray new];
232
+ -(NSDictionary *) decodeCharacteristicProperties: (CBCharacteristic *) characteristic {
233
+ NSMutableDictionary *props = [NSMutableDictionary new];
232
234
 
233
235
  CBCharacteristicProperties p = [characteristic properties];
234
236
 
235
237
  // NOTE: props strings need to be consistent across iOS and Android
236
238
  if ((p & CBCharacteristicPropertyBroadcast) != 0x0) {
237
- [props addObject:@"Broadcast"];
239
+ [props setValue:@"Broadcast" forKey:@"Broadcast"];
238
240
  }
239
241
 
240
242
  if ((p & CBCharacteristicPropertyRead) != 0x0) {
241
- [props addObject:@"Read"];
243
+ [props setValue:@"Read" forKey:@"Read"];
242
244
  }
243
245
 
244
246
  if ((p & CBCharacteristicPropertyWriteWithoutResponse) != 0x0) {
245
- [props addObject:@"WriteWithoutResponse"];
247
+ [props setValue:@"WriteWithoutResponse" forKey:@"WriteWithoutResponse"];
246
248
  }
247
249
 
248
250
  if ((p & CBCharacteristicPropertyWrite) != 0x0) {
249
- [props addObject:@"Write"];
251
+ [props setValue:@"Write" forKey:@"Write"];
250
252
  }
251
253
 
252
254
  if ((p & CBCharacteristicPropertyNotify) != 0x0) {
253
- [props addObject:@"Notify"];
255
+ [props setValue:@"Notify" forKey:@"Notify"];
254
256
  }
255
257
 
256
258
  if ((p & CBCharacteristicPropertyIndicate) != 0x0) {
257
- [props addObject:@"Indicate"];
259
+ [props setValue:@"Indicate" forKey:@"Indicate"];
258
260
  }
259
261
 
260
262
  if ((p & CBCharacteristicPropertyAuthenticatedSignedWrites) != 0x0) {
261
- [props addObject:@"AuthenticateSignedWrites"];
263
+ [props setValue:@"AuthenticateSignedWrites" forKey:@"AuthenticateSignedWrites"];
262
264
  }
263
265
 
264
266
  if ((p & CBCharacteristicPropertyExtendedProperties) != 0x0) {
265
- [props addObject:@"ExtendedProperties"];
267
+ [props setValue:@"ExtendedProperties" forKey:@"ExtendedProperties"];
266
268
  }
267
269
 
268
270
  if ((p & CBCharacteristicPropertyNotifyEncryptionRequired) != 0x0) {
269
- [props addObject:@"NotifyEncryptionRequired"];
271
+ [props setValue:@"NotifyEncryptionRequired" forKey:@"NotifyEncryptionRequired"];
270
272
  }
271
273
 
272
274
  if ((p & CBCharacteristicPropertyIndicateEncryptionRequired) != 0x0) {
273
- [props addObject:@"IndicateEncryptionRequired"];
275
+ [props setValue:@"IndicateEncryptionRequired" forKey:@"IndicateEncryptionRequired"];
274
276
  }
275
277
 
276
278
  return props;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-ble-manager",
3
- "version": "9.0.0",
3
+ "version": "10.0.0",
4
4
  "description": "A BLE module for react native.",
5
5
  "repository": {
6
6
  "type": "git",
package/src/index.ts CHANGED
@@ -45,6 +45,32 @@ class BleManager {
45
45
  });
46
46
  }
47
47
 
48
+ /**
49
+ *
50
+ * @param peripheralId
51
+ * @param serviceUUID
52
+ * @param characteristicUUID
53
+ * @param descriptorUUID
54
+ * @returns data as an array of numbers (which can be converted back to a Uint8Array (ByteArray) using something like [Buffer.from()](https://github.com/feross/buffer))
55
+ */
56
+ readDescriptor(peripheralId: string, serviceUUID: string, characteristicUUID: string, descriptorUUID: string) {
57
+ return new Promise<number[]>((fulfill, reject) => {
58
+ bleManager.readDescriptor(
59
+ peripheralId,
60
+ serviceUUID,
61
+ characteristicUUID,
62
+ descriptorUUID,
63
+ (error: string | null, data: number[]) => {
64
+ if (error) {
65
+ reject(error);
66
+ } else {
67
+ fulfill(data);
68
+ }
69
+ }
70
+ );
71
+ });
72
+ }
73
+
48
74
  /**
49
75
  *
50
76
  * @param peripheralId
@@ -566,4 +592,4 @@ class BleManager {
566
592
  }
567
593
  }
568
594
 
569
- export default new BleManager();
595
+ export default new BleManager();