Hello I am trying to develop an application for advertising in SLOW mode.
Here is my Advertising Init function.
/**@brief Function for initializing the Advertising functionality.
*/
void advertising_init(void)
{
uint32_t err_code;
uint8_t init_data[BURST_BUFFER_SIZE];
ble_advdata_manuf_data_t manuf_data_response;
int8_t tx_power_level;
memset(&init, 0, sizeof(init));
memset(&manuf_data_response, 0, sizeof(manuf_data_response));
memset(init_data, 0, BURST_BUFFER_SIZE);
manuf_data_response.company_identifier = COMPANY_IDENTIFIER;
manuf_data_response.data.p_data = init_data;
manuf_data_response.data.size = BURST_BUFFER_SIZE;
init.advdata.name_type = BLE_ADVDATA_NO_NAME;
init.advdata.flags = BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;
init.advdata.p_manuf_specific_data = &manuf_data_response;
tx_power_level = 0;
init.srdata.name_type = BLE_ADVDATA_FULL_NAME;
init.srdata.p_tx_power_level = &tx_power_level;
init.config.ble_adv_fast_enabled = true;
init.config.ble_adv_fast_interval = 64;
init.config.ble_adv_fast_timeout = 18000;
init.config.ble_adv_slow_enabled = true;
init.config.ble_adv_slow_interval = 3200;
init.config.ble_adv_slow_timeout = 0;
init.evt_handler = on_adv_evt;
err_code = ble_advertising_init(&m_advertising, &init);
NRF_LOG_DEBUG("ble_adv_init err %d \n", err_code);
APP_ERROR_CHECK(err_code);
ble_advertising_conn_cfg_tag_set(&m_advertising, APP_BLE_CONN_CFG_TAG);
}
And this is how I Start Advertising
void advertising_start(void)
{
uint32_t err_code = ble_advertising_start(&m_advertising, BLE_ADV_MODE_SLOW);
APP_ERROR_CHECK(err_code);
}
But within few seconds of advertising_init being called
SOFTDEVICE: ASSERTION FAILED
error is called.
I am using S113 v7.0.1 softdevice.