Hi,
I have a central that uses PM to connect to some peripherals.
If I connect to a peer (connection handle 0), and disconnect this device (e.g. by shutting it off). I receive BLE_GAP_EVT_DISCONNECTED and all works fine.
But later when I call
pm_conn_handle_get(peerId, &connHandle);
the connection handle I get is still 0 (zero). But it is not a valid connection handle, since e.g. sd_ble_gap_disconnect() fails with BLE_ERROR_INVALID_CONN_HANDLE. I would expect that om_conn_handle_get() returns me BLE_CONN_HANDLE_INVALID.
Although if I connect to the device 1 (connection handle 0), then disconnect it and connect device 2 (connection handle 0, too because it is reused), pm_conn_handle_get() returns BLE_CONN_HANDLE_INVALID.
In my case this leads to a issue where I think the peer is still connected because the connection handle is valid, but in fact it is not and sd_ble_gap_disconnect() returns BLE_ERROR_INVALID_CONN_HANDLE. Sure, I could ignore this error code, but then something else could go wrong without me noticing it.
I there a way to update the peer manager on disconnects?
Best regards