BLE Client Characteristic Configuration descriptor value(BLE2902) is not setting to default on connection #6857
Unanswered
SuperTankMan
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi All, this is my first discussion post so please excuse my manners :p
Recently I have been working on ESP32 BLE where the server sets up a service in which the attributes are read, Write, Notify. hence a BLE2902 is added to the characteristics. Once the client registers for the notification and then after a few notifications being received the client disconnect from the server without disabling notifications.
I have noticed that when the client makes connection again (without being bonded) the notification is still enabled! however however the Bluetooth specifications specifically state that it should be reset to default notifications and Indications disabled when not bonded. Anyone can test this using nRF connect and a standard service which has characteristics with notification.
Has anyone noticed this and if so is this how ESP32 BLE is supposed to behave? or is it a bug or an issue?
TankMan-
BLUETOOTH SPECIFICATION Version 4.2 [Vol 0]
3.3.3.3 Client Characteristic Configuration
The Client Characteristic Configuration declaration is an optional characteristic
descriptor that defines how the characteristic may be configured by a specific
client. The Client Characteristic Configuration descriptor value shall be
persistent across connections for bonded devices. The Client Characteristic
Configuration descriptor value shall be set to the default value at each
connection with non-bonded devices. The characteristic descriptor value is a bit
field. When a bit is set, that action shall be enabled, otherwise it will not be
used. The Client Characteristic Configuration descriptor may occur in any
position within the characteristic definition after the Characteristic Value. Only
one Client Characteristic Configuration declaration shall exist in a
characteristic definition.
Extracted from further down the spec. near Table 3.11 in the specification
Configuration Value Description
Notification 0x0001 The Characteristic Value shall be notified.This value can only be set if the characteristic’s property has the notify bit set.
Indication 0x0002 The Characteristic Value shall be indicated. This value can only be set if the characteristic’s property has the indicate bit set.
Reserved for
Future Use
The following Client Characteristic Configuration bits are defined:
The default value for the Client Characteristic Configuration descriptor value
shall be 0x0000.
Beta Was this translation helpful? Give feedback.
All reactions