Hello!
I am working with a BLE central device running on an nrf52832 using the S132 softdevice and sdk version 15.2.0
I need to pull the full device name out of the scan response packet sent by a peripheral and store a link between the device name and its corresponding connection handle.
I understand that I should be able to see scan response packets in the BLE_GAP_EVT_ADV_REPORT event, but there are a few issues with that approach
1) I am actually never getting a scan response packet for the device I am working with. I know that the device name IS sent in a scan response packet - I can see it in NRF CONNECT, but I never seem to actually get the packet. I DO have active scanning enabled in my scan params. and I do see scan responses for other devices.
2) Even if I got a scan response packet there, linking that packet to a connection would be difficult. The only way that I see to do it would be to cache them in a buffer and then check through them at connection time. That seems like a waste of ram and processor time since most of the scan response packets would be from stray devices I am uninterested in.
What I really need is access to the scan response packet at either in the event or in the NRF_BLE_SCAN_EVT_FILTER_MATCH event.
In the BLE_GAP_EVT_CONNECTED event, it looks like the data would be there (in p_gap_evt->params.connected.adv_data) but on further inspection, that data only gets populated for perhipheral devices - not for centrals.
if the NRF_BLE_SCAN_EVT_FILTER_MATCH event I can get the normal advertising packet, but not the scan response packet.
I also saw the NRF_BLE_SCAN_EVT_CONNECTED event, but like the BLE_GAP_EVT_CONNECTED event, the scan response packet is only populated there for peripherals.
This seems like the sort of thing that people must do all the time, am I missing something obvious here?
Is it possible that the the adv report that is available in the NRF_BLE_SCAN_EVT_FILTER_MATCH event DOES normally include scan response data, but that it is not showing up for me just because my peripheral is not actually sending a scan response pack?
Is it possible that the central is not requesting a scan response packet because it is getting a scan filter match without needing to?
am I missing some important piece of information on how active scanning is supposed to work?
thanks in advance,
Justin