Not sure what issue/question you have... Are you saying that when you set it to directed advertising that the Cypress chip still behaves as if it is using the resolving address? Or are you saying that the central sending directed advertising to the peripheral works even when the central changes its address? (Which would be expected).
I mean if I use direct advertising, then I need to pass the peerAddr (central last connected) to cyBle_discoveryModeInfo.advParam->directAddr. Then If the central(e.g. the IOS phone) change its address on the way, will the direct advertising still work?
cyBle_discoveryModeInfo.advParam->advType = CYBLE_GAPP_CONNECTABLE_LOW_DC_DIRECTED_ADV;
cyBle_discoveryModeInfo.advParam->directAddrType = peerBdAddress.type;
memcpy(cyBle_discoveryModeInfo.advParam->directAddr, &peerBdAddress.bdAddr, CYBLE_GAP_BD_ADDR_SIZE);
Ah; So, you want to know if you set the directAddr, and then start directed advertising from your peripheral to the IOS whether the peripheral will still be reaching the IOS, or if it will need to reacquire the address from the IOS device?
I don't know the answer to that question unfortunately. But, I would suspsect that the IOS changing its address would no longer receive the directed advertisement packets (as it has changed it's address that it responds to).
Thanks,e.pratt. So should I use the whitelist instead? Do you know any example to test the bond and whitelist? In my opinion, direct advertising only has one peer address that the peripheral will advertise to, the whitelist has several central address.
1 of 1 people found this helpful
Yes, I would try using the whitelist to keep track of it. That way, it is using the keys associated with the whitelist/bond to recognize the device rather than the BDaddress. I know this isn't a cypress chip, but the post has useful information about the same problem you are encountering with the Iphone privacy settings: https://devzone.nordicsemi.com/question/71539/ble-directed-connection/