I am very new to BLE development, and am building my application on top of the ble_central\ble_app_uart_c example.
#define NRF_BLE_SCAN_ADDR_FILTER 0x02
This is the function where I am initializing the module:
/**
* @brief Parameters used when scanning.
*/
static const ble_gap_scan_params_t m_scan_params =
{
.active = 1,
.interval = SCAN_INTERVAL,
.window = SCAN_WINDOW,
.timeout = SCAN_TIMEOUT,
#if (NRF_SD_BLE_API_VERSION == 2)
.selective = 0,
.p_whitelist = NULL,
#endif
#if (NRF_SD_BLE_API_VERSION == 3)
.use_whitelist = 0,
#endif
};
I am calling the module (or setting the filter, unsure of the terminology) here in the scan_start() function:
/**
* @brief Parameters used when scanning.
*/
static const ble_gap_scan_params_t m_scan_params =
{
.active = 1,
.interval = SCAN_INTERVAL,
.window = SCAN_WINDOW,
.timeout = SCAN_TIMEOUT,
#if (NRF_SD_BLE_API_VERSION == 2)
.selective = 0,
.p_whitelist = NULL,
#endif
#if (NRF_SD_BLE_API_VERSION == 3)
.use_whitelist = 0,
#endif
};
The scan_start() function is called in main(). I have not yet tested this implementation as it is unfinished.
My questions around this are:
- Where do I set the address I want to filter for? It merely advertises and I can't connect to it.
- Once the address is set, is this implementation correct?
Thank you!
