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

Reconnecting in central mode

I am developing an application on nRF52 wich simultaneously acts as a central and peripheral and I am using the Peer Manager to manage bonding. The central needs to stay connected with a few already bonded peripherals which can occasionally get out or reach and disconnect. Therefore, if not all peripherals are connected, a scanning will be constantly running. The application parses all received advertising reports and first filter them out based on the Manufacturing specific data and then on the Flags. And here it comes the question - how do I filter out the advertising reports further and distinguish the ones coming from devices which have already got a valid bond with this particular central? Does the Peer Manager or the ID Manager provide this functionality or the application needs to keep track on that based on for instance peer addresses?

Parents
  • Hi GT,

    Yes, you can manually check the address of the advertiser when you receive advertising and compare to the list of device connected/paired.

    But the esier way is to let the radio filter out advertising packets for you automatically. You can do that by providing a whitelist to the softdevice when doing scanning. The list of paired device can be acquired by calling pm_whitelist_get(). You will have address and IRK of the devices paired, and you can do selective scanning based on this list.

    Please have a look at the scan_start() function in main.c in ble_app_hrs_c project in our SDK.

  • I mean in the "addr" argument, do you set .addr_id_peer = 1 ? Do you have an address inside "addr" ?

    From what you described, there must be smth wrong with the whitelist you provided. Could you provide the copy of data in side your m_scan_params? You can add a breakpoint and find the value in the watchlist.

Reply Children
No Data
Related