Hi,
When I call sd_ble_gattc_read, I receive the BLE_GATTC_EVT_READ_RSP event very shortly after -- as expected. Within the event handler (registered with the Soft Device Handler via NRF_SDH_BLE_OBSERVER) for that BLE_GATTC_EVT_READ_RSP event, I then call sd_ble_gattc_read again as long as
BLE_GATT_STATUS_ATTERR_INVALID_OFFSET != pEvent->evt.gattc_evt.params.read_rsp.offset
per the message sequence chart in the API documentation.
I am attempting to read a characteristic of length 1. The problem is that I receive the BLE_GATTC_EVT_READ_RSP event with .offset = 0 and .len = 0 many times (at least several dozen times) before eventually receiving the BLE_GATTC_EVT_READ_RSP event with .offset = BLE_GATT_STATUS_ATTERR_INVALID_OFFSET.
Am I doing something wrong? Should I not call sd_ble_gattc_read from within the event handler for BLE_GATTC_EVT_READ_RSP?
Configuration: SoftDevice v6.0.0 (SDK v15.0.0) with 4 FreeRTOS threads (i.e. the Soft Device thread, the Idle thread, and two application threads).
Thank you for your help.