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

NRF_ERROR_INVALID_LENGTH when setting 10 chars device name

I use sd_ble_gap_device_name_set to set 10 chars device name 

then getting NRF_ERROR_INVALID_LENGTH  in sd_ble_gap_adv_set_configure.

all OK when tested 3 chars device name .

ret_code_t ret;
ble_gap_adv_params_t adv_params = get_adv_params();

adv_params.duration = flash_adv_params.adv_duration_sec*1000/10;

ble_gap_conn_sec_mode_t sec_mode;
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);
char unitName[DEVICE_NAME_MAX_LEN];
device_info_get_unit_name(&unitName);


ret = sd_ble_gap_device_name_set(&sec_mode, (const uint8_t *)unitName, (uint16_t)strlen(unitName));
APP_ERROR_CHECK(ret);


advertise_whitelist_clear();
NRF_LOG_DEBUG("Setting adv params PHY to 1M. ");
adv_params.primary_phy = BLE_GAP_PHY_1MBPS;
adv_params.secondary_phy = BLE_GAP_PHY_1MBPS;
adv_params.properties.type = BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED;
ret = ble_advdata_encode(&adv_data, m_adv_data.adv_data.p_data, &m_adv_data.adv_data.len);
APP_ERROR_CHECK(ret);
ret = sd_ble_gap_adv_set_configure(&m_adv_handle, &m_adv_data, &adv_params);
APP_ERROR_CHECK(ret);

Parents Reply Children
Related