I tested "ble_app_buttonless_dfu" example and "ble_app_beacon" example. Everything was fine. Now, I am trying to make an application that advertise as a beacon and supports DFU OTA.
This is my advertising_init function:
/**@brief Function for initializing the Advertising functionality.
*/
static void advertising_init(void) {
uint32_t err_code;
ble_advertising_init_t init;
ble_advdata_manuf_data_t manuf_specific_data;
manuf_specific_data.company_identifier = APP_COMPANY_IDENTIFIER;
manuf_specific_data.data.p_data = (uint8_t *) m_beacon_info;
manuf_specific_data.data.size = APP_BEACON_INFO_LENGTH;
memset(&init, 0, sizeof(init));
init.advdata.name_type = BLE_ADVDATA_FULL_NAME;
init.advdata.include_appearance = true;
init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;
init.advdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
init.advdata.uuids_complete.p_uuids = m_adv_uuids;
// init.advdata.p_manuf_specific_data = &manuf_specific_data;
advertising_config_get(&init.config);
init.evt_handler = on_adv_evt;
err_code = ble_advertising_init(&m_advertising, &init);
APP_ERROR_CHECK(err_code);
ble_advertising_conn_cfg_tag_set(&m_advertising, APP_BLE_CONN_CFG_TAG);
// Initialize advertising parameters (used when starting advertising).
memset(&m_adv_params, 0, sizeof(m_adv_params));
m_adv_params.properties.type = BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED;
m_adv_params.p_peer_addr = NULL; // Undirected advertisement.
m_adv_params.filter_policy = BLE_GAP_ADV_FP_ANY;
m_adv_params.interval = NON_CONNECTABLE_ADV_INTERVAL;
m_adv_params.duration = 0; // Never time out.
m_adv_params.channel_mask[4] = 0x60;
}
when I uncomment the line with "init.advdata.p_manuf_specific_data = &manuf_specific_data;", the application doesn't work. Any idea of what is the problem? Or how can I solve it?
PS.: I am newbie here and this is my first question. I am sorry if the question is not so clear.