Hello,
I had to use sd_ble_gap_address_set()
to make sure, that a bootloader running on the same device will not be cached on OS/X:
static const ble_gap_addr_t gap_addr = { BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE };
check_error( sd_ble_gap_address_set(
BLE_GAP_ADDR_CYCLE_MODE_AUTO,
&gap_addr ) );
The device runs either the bootloader or the normal firmware. Both use BLE, but with very different services. OS/X (our development plattform) seems to cache a lot of informations. Setting the address to a random generated works like a charm and solve this (caching) problem.
But: now I can't see the device name (in BLExplr on IOS), that I set befor I call sd_ble_gap_adv_start
:
check_error( sd_ble_gap_device_name_set( &name_access, advertised_name, sizeof( advertised_name ) ) );
check_error( sd_ble_gap_adv_start( &advertising_params ) );
When I remove the function call to sd_ble_gap_address_set(), I can see the device name again (but of cause, this could be a cache issue as well). What could be the problem here? Any idea how to track this down?
TIA, Torsten