static void advertising_init(uint8_t adv_flags) { uint32_t err_code; ble_advdata_t advdata; int8_t tx_pow = BLE_GAP_AD_TYPE_TX_POWER_LEVEL; //defined at ble_gap.h ble_uuid_t adv_uuids[] = { { BLE_UUID_HUMAN_INTERFACE_DEVICE_SERVICE, BLE_UUID_TYPE_BLE }, { BLE_UUID_TX_POWER_SERVICE,BLE_UUID_TYPE_BLE }}; err_code = sd_ble_gap_address_get(&m_ble_addr); APP_ERROR_CHECK(err_code); err_code = sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_NONE, &m_ble_addr); APP_ERROR_CHECK(err_code); // Build and set advertising data memset(&advdata, 0, sizeof(advdata)); advdata.name_type = BLE_ADVDATA_FULL_NAME; advdata.include_appearance = true; advdata.flags.size = sizeof(adv_flags); advdata.flags.p_data = &adv_flags; //2015 tx power advdata.p_tx_power_level = &tx_pow; advdata.uuids_complete.uuid_cnt = sizeof(adv_uuids) / sizeof(adv_uuids[0]); advdata.uuids_complete.p_uuids = adv_uuids; err_code = ble_advdata_set(&advdata, NULL); APP_ERROR_CHECK(err_code); }