Hi, I need to support two advertising protocols simultaneously Beacon and iBeacon. This is because iOS.CoreBluetooth has a lot of limitations (there is no way to identify iBeacon device).
I am changing advertising data on Scan request callback:
case BLE_GAP_EVT_SCAN_REQ_REPORT:
{
m_iBeacon = !m_iBeacon;
m_manuf_specific_data.company_identifier = m_iBeacon ? APP_COMPANY_IDENTIFIER_APPLE : APP_COMPANY_IDENTIFIER_NORDIC;
err_code = ble_advertising_init(&m_advdata, NULL, &m_options, on_adv_evt, NULL);
}break;
I enabled scan_request event handling using following code:
const ble_opt_t scan_req_opt={ .gap_opt = { .scan_req_report = { .enable=1} } };
sd_ble_opt_set(BLE_GAP_OPT_SCAN_REQ_REPORT, &scan_req_opt);
My question is: Does scan_request event handling affect battery life? Is there another more "power optimized way" to change advertising data?