This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

disconnecting while operations are in progress never gives BLE_GAP_EVT_DISCONNECTED event

2020-01-24-092119EST-ProductStoppedGettingEventsFromNordicDK.txtImprivataTestNordicEventsNotReceived.zipCalls_to_pc_ble_driver.cpp0285.2020-02-24-TestProgramUploadedToNordicSupport.zipFeb25TestProgramUploadedToNordicSupport.zipImprivata_bgTestApp.zipbgSDKTestAppMay4.zip2020-05-05-035347-NordicDK_USB840M_200505_ClockInternal_2in1.hex.txt.txtbgSDKTestAppMay6.zipI’m developing an application based on pc-ble-driver to talk to an nRF52840-based dongle (from Fanstel).

I’m having trouble disconnecting cleanly when a connection has operations in progress.  For example, I call ‘sd_ble_gattc_write’, which returns NRF_SUCCESS, but I don’t receive event BLE_GATTC_EVT_WRITE_RSP (after waiting 60 seconds), so I decide to disconnect. When this happens, sd_ble_gap_disconnect returns NRF_SUCCESS, but I do not receive BLE_GAP_EVT_DISCONNECTED even after waiting 30 seconds. The connection supervision timeout is 4 seconds.  What could cause the disconnect to not generate any BLE_GAP_EVT_DISCONNECTED event?

What I’m trying to accomplish here: if a connection is not responsive, I want to end that connection, without disturbing other connections I have open.

Thanks,

Paul Bradford

Parents
  • I checked with our softdevice team, and they confirmed that the BLE_GAP_EVT_DISCONNECTED event should always be generated. If the peer device does not ack the LL_TERMINATE_IND, the event will be generated later, but it should still always be generated.

    If this is not the case in your application, I suspect that there is some issue with the event not being forwarded from the connectivity firmware to your pc-ble-driver application. We then need to debug the connectivity firmware to find out why this happens.

    I will be out-of-office until January 6., but I will make sure someone follows up on this issue if you are able to set up the application with our nRF52840 Dongle.

Reply
  • I checked with our softdevice team, and they confirmed that the BLE_GAP_EVT_DISCONNECTED event should always be generated. If the peer device does not ack the LL_TERMINATE_IND, the event will be generated later, but it should still always be generated.

    If this is not the case in your application, I suspect that there is some issue with the event not being forwarded from the connectivity firmware to your pc-ble-driver application. We then need to debug the connectivity firmware to find out why this happens.

    I will be out-of-office until January 6., but I will make sure someone follows up on this issue if you are able to set up the application with our nRF52840 Dongle.

Children
No Data
Related