nRF5_SDK_17.1.0
PCA10059
For I want to provide up to 20 central connections, I have defined the objects like this( inherited from example code):
GATEWAY_ARRAY_DEF( m_gateway_array, NRF_SDH_BLE_CENTRAL_LINK_COUNT); //< TGOI client instances. BLE_DB_DISCOVERY_ARRAY_DEF( m_db_disc_array, NRF_SDH_BLE_CENTRAL_LINK_COUNT); //< Database discovery module instances. NRF_BLE_GQ_DEF(m_ble_gatt_queue, //< BLE GATT Queue instance. NRF_SDH_BLE_CENTRAL_LINK_COUNT, NRF_BLE_GQ_QUEUE_SIZE); NRF_BLE_GATT_DEF(m_gatt); //< GATT module instance. NRF_BLE_SCAN_DEF(m_scan); //< Scanning Module instance.
The conn_handle is the index to access arrays,that means for conn_handle ch,it's gateway instance is m_gateway_array[ch],it's discovery instance is m_db_disc_array[ch],and it's gatt queue is m_ble_gatt_queue[ch]. conn_handle is the primary key to access all object related to the connection defined by conn_handle.
And it is maintained by SD.
My question is : if one connection(conn_handle_A) broken(power off e.g.),and next BLE peripheral trying to connect after that,will SD allocate which conn_handle to this peripheral?
The reason to ask is may there are data left in m_ble_gatt_queue[conn_handle_A],I have to make choice on those data.
If the origal peripheral connected again with the same conn_handle,I can transfer those data to it again.
If a different peripheral connected with this conn_handle, wrong data will send to it .
I have to do some check work to clarify if the data left in queue belong to current instance or not.
That will be helpful if I can get some explaination on conn_handle.
Thank you.