- ble_addr_t addresses =
- {
- .type = 0,
- .val = {0xe8, 0xdb, 0x84, 0x03, 0xf5, 0x62} // e8:db:84:03:f5:62
- };
- /* Begin advertising. */
- memset(&adv_params, 0, sizeof adv_params);
- adv_params.itvl_min = BLE_GAP_ADV_ITVL_MS(1000);
- adv_params.itvl_max = BLE_GAP_ADV_ITVL_MS(1010);
- adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
- adv_params.disc_mode = BLE_GAP_DISC_MODE_NON;
- rc = ble_gap_wl_set(&addresses, 1);
- if (rc != 0) {
- MODLOG_DFLT(ERROR, "error setting whitelist data; rc=%d\n", rc);
- return;
- }
- adv_params.filter_policy = BLE_HCI_CONN_FILT_USE_WL;
- rc = ble_gap_adv_set_fields(&fields);
- if (rc != 0) {
- MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc);
- return;
- }
- rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER,
- &adv_params, bleprph_gap_event, NULL);
- if (rc != 0) {
- MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc);
- return;
- }
- ESP-IDF v5.4
- MCU: ESP32
I can still connect to the peripheral even the advertising filter policy is set to 1.
The code i used on setting-up the white list: