I am working with nRF52832 and SD 132 and SDK 11 (nRF5_SDK_11.0.0-2.alpha_bc3f6a0). One of my BLE services has a characteristic with an attribute larger than 22 bytes. It is a variable length attribute that could range from 26 to 48 octets. Also, the attribute values (data set) change dynamically and the values (data set) get stored in a FIFO when there is no BT connection with the central.
So, for properly updating and sending the next data set, whenever the central requests for it (using Read Long), I use BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST and sd_ble_gatts_rw_authorize_reply(). Here, I update the attribute value, if ((p_ble_evt->evt.gatts_evt.params.authorize_request.request.read.offset == 0).
This works well for properly sending FIFO data sets out and sending attribute values when dynamically updated.
However, I need to be able to know for sure that the complete characteristic data set was successfully received by the central, so that I can remove the previously sent data set from the FIFO.
For this, I wanted to capture the l2cap event, BLE_L2CAP_EVT_RX, in my ble_event handling code. But, I do not seem to be getting this event.
Is there any specific registering or initializing that is required to be able to receive this event?
Thanks.
Milton