This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How BLE_GAP_EVT_SCAN_REQ_REPORT event handling affect battery life?

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?

Related