1 of 1 people found this helpful
You can get device address in BTM_PAIRED_DEVICE_LINK_KEYS_REQUEST_EVT as paired_device_link_keys_request.key_data.static_addr
wiced_bt_dev_add_device_to_address_resolution_db API has the parameter wiced_bt_device_link_keys_t which contains static_addr which will be same for resolvable address of same device.
Please refer to thread Re: How to resolve random ble address
Are you facing any issues with RPA device connection?
Unfortunately I'm facing some weird random issues and still cant figure the reason that cause them:
I'm using wiced_bt_get_identity_address() after establishing new connection and sometimes it gives correct identity address, sometimes fails and returns either 00 00 00 00 00 00 or some number that is neither the random, public etc. addresses.
Also if I try to call wiced_bt_get_identity_address after boot/reset and after loading bonded address from NVRAM to address resolution database, and never got so far correct return even if try not immediately, but after some delay - I think the max delay I tried so far was 10 s.
Could you, please, explain how wiced_bt_get_identity_address (or wiced_bt_dev_get_identity_address) work – what structures need to be filled before this function could return meaningful result?
I was thinking that is enough only to load the last bonded info from NVRAM in address resolution database,
but unfortunately, this function works only in the power cycle when I bond to the CYW.
As soon as I power off/on or even only press the Reset button and wiced_bt_get_identity_address start returning false and in the identity_address parameter sets ‘00 00 00 00 00 00’.
So what else beside address resolution database wiced_bt_dev_add_device_to_address_resolution_db ( &link_keys ) need to be set before wiced_bt_get_identity_address can work?