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 have captured three instances of this problem in trace here: drive.google.com/open
    This is trace from Ellisys Bluetooth Analyzer. If you can't read this, I think I can find an MSI to install the analyzer.
    The three instances where we do a write, fail to get event BLE_GATTC_EVT_WRITE_RSP, then do a disconnect and fail to get event BLE_GAP_EVT_DISCONNECTED are at these UTC times on Dec. 5:
    4:47:25
    4:53:08
    5:07:35

    I filtered the trace by the MAC of the nRF52840: *F5:5D:B3:C6:4E:2E

    In all cases, the Ellisys trace shows the master sending a write request, the slave does send a response to the write request, but my tracing shows that this never percolates up to give me event BLE_GATTC_EVT_WRITE_RSP. (Just because the sniffer sees the response doesn't prove the nRF52840 saw the response).
    After that, I do a disconnect, and the Ellisys trace shows the disconnect request LL_TERMINATE_IND, and in all cases shows no response from the slave. I don't know if a response is expected. I search other disconnect attempts and don't see a response to any of them.

    Thanks,

    Paul

Reply
  • I have captured three instances of this problem in trace here: drive.google.com/open
    This is trace from Ellisys Bluetooth Analyzer. If you can't read this, I think I can find an MSI to install the analyzer.
    The three instances where we do a write, fail to get event BLE_GATTC_EVT_WRITE_RSP, then do a disconnect and fail to get event BLE_GAP_EVT_DISCONNECTED are at these UTC times on Dec. 5:
    4:47:25
    4:53:08
    5:07:35

    I filtered the trace by the MAC of the nRF52840: *F5:5D:B3:C6:4E:2E

    In all cases, the Ellisys trace shows the master sending a write request, the slave does send a response to the write request, but my tracing shows that this never percolates up to give me event BLE_GATTC_EVT_WRITE_RSP. (Just because the sniffer sees the response doesn't prove the nRF52840 saw the response).
    After that, I do a disconnect, and the Ellisys trace shows the disconnect request LL_TERMINATE_IND, and in all cases shows no response from the slave. I don't know if a response is expected. I search other disconnect attempts and don't see a response to any of them.

    Thanks,

    Paul

Children
No Data
Related