-
-
Notifications
You must be signed in to change notification settings - Fork 188
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
After updating to v2.2.0, retrieving descriptors has changed behaviour due to 74ac317 (found via bisect).
In v2.1.3, the debug output for one particular characteristic looks like:
D NimBLERemoteCharacteristic: >> setNotify()
D NimBLERemoteCharacteristic: >> getDescriptor: uuid: 0x2902
D NimBLERemoteCharacteristic: >> retrieveDescriptors() for characteristic: 049ec406-ef75-4205-a390-08fe209c51f0
I (27700) NimBLE: GATT procedure initiated: discover all descriptors;
I (27707) NimBLE: chr_val_handle=20562 end_handle=20738
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20563
D NimBLERemoteCharacteristic: << Descriptor Discovery
D NimBLERemoteCharacteristic: << retrieveDescriptors(): found 1 descriptors.
D NimBLERemoteCharacteristic: << getDescriptor: found
D NimBLERemoteCharacteristic: << setNotify()
D NimBLERemoteValueAttribute: >> writeValue()
I (27805) NimBLE: GATT procedure initiated: write;
I (27810) NimBLE: att_handle=20563 len=2
I NimBLERemoteValueAttribute: Write complete; status=0
D NimBLERemoteValueAttribute: << writeValue
The same scenario for v2.2.0:
D NimBLERemoteCharacteristic: >> setNotify()
D NimBLERemoteCharacteristic: >> getDescriptor: uuid: 0x2902
D NimBLERemoteCharacteristic: >> retrieveDescriptors() for characteristic: 049ec406-ef75-4205-a390-08fe209c51f0
I (29345) NimBLE: GATT procedure initiated: discover all descriptors;
I (29352) NimBLE: chr_val_handle=20562 end_handle=20738
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20563
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20577
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20578
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20579
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20593
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20594
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20595
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20609
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20610
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20611
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20625
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20626
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20737
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 0 handle: 20738
D NimBLERemoteCharacteristic: Descriptor Discovery >> status: 14 handle: -1
D NimBLERemoteCharacteristic: << Descriptor Discovery
D NimBLERemoteCharacteristic: << retrieveDescriptors(): found 4 descriptors.
D NimBLERemoteCharacteristic: << getDescriptor: found
D NimBLERemoteCharacteristic: << setNotify()
D NimBLERemoteValueAttribute: >> writeValue()
I (30132) NimBLE: GATT procedure initiated: write;
I (30137) NimBLE: att_handle=20611 len=2
I NimBLERemoteValueAttribute: Write complete; status=0
D NimBLERemoteValueAttribute: << writeValue
Note that more descriptors are discovered and the found descriptor has a different attribute handle.
I found that if I remove this line:
| return 0; |
the previous behaviour is restored.
I'm not sure if this is my problem (ie bad assumptions) or not.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working