Dear all,
I'm not able yet to start advertising with whitelist whith this code:
void AdvInit(void)
{
ble_advdata_t advdata;
uint8_t flags = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;
ble_gap_whitelist_t MacWhiteList;
static ble_gap_addr_t ble_gap_addr_tab;
// Build and set advertising data.
memset(&ble_gap_addr_tab, 0, sizeof(ble_gap_addr_tab));
ble_gap_addr_tab.addr_type = BLE_GAP_ADDR_TYPE_PUBLIC;
ble_gap_addr_tab.addr[5] = 0x14;
ble_gap_addr_tab.addr[4] = 0xB0;
ble_gap_addr_tab.addr[3] = 0x0B;
ble_gap_addr_tab.addr[2] = 0x9D;
ble_gap_addr_tab.addr[1] = 0x84;
ble_gap_addr_tab.addr[0] = 0x5A;
MacWhiteList.pp_addrs =(ble_gap_addr_t**)&ble_gap_addr_tab;
MacWhiteList.addr_count = 1;
MacWhiteList.irk_count = 0;
MacWhiteList.pp_irks = NULL;
ble_gap_conn_sec_mode_t sec_mode;
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);
sd_ble_gap_device_name_set(&sec_mode, (const uint8_t * ) PERIPHERAL_DEVICE_NAME, strlen(PERIPHERAL_DEVICE_NAME));
// Build and set advertising data.
memset(&advdata, 0, sizeof(advdata));
advdata.name_type = BLE_ADVDATA_FULL_NAME;
advdata.flags.size = sizeof(flags);
advdata.flags.p_data = &flags;
ble_advdata_set(&advdata, NULL);
// Initialize advertising parameters (used when starting advertising).
memset(&m_adv_params, 0, sizeof(m_adv_params));
m_adv_params.type = BLE_GAP_ADV_TYPE_ADV_IND;
m_adv_params.p_peer_addr = NULL;
m_adv_params.p_whitelist = &MacWhiteList;
m_adv_params.fp = BLE_GAP_ADV_FP_ANY;
m_adv_params.interval = ADV_INTERVAL;
m_adv_params.timeout = ADV_TIMEOUT;
}
Is there something missed ? I have found examples of whitelist but using the device manager. The problem is that I don't need a device manager ( I don't need bond information).
Thanks for helps.