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

add manufacturer data will result in

Hello,Nordic!

  • SDK: 15.2
  • SoftDevices: s132
  • IDE-Version:  μVision V5.26.2.0
  • Toolchain: MDK-ARM Plus Version: 5.26.2.0

  • OS:windows10
  • chip:nrf52832 (64KB/512KB)

Question:

When I try to add
Uint8_t manuf_data[15] = "mydevice1"; 

the entire advertising_init function cannot be executed. After debugging, it is found.


  Err_code = ble_advertising_init(&m_advertising, &init);
  APP_ERROR_CHECK(err_code);


Check error

<error> app: ERROR 12 [NRF_ERROR_DATA_SIZE]

The following is the complete initialization function:

    
void advertising_init(void)
{
    uint32_t                    err_code;
	uint32_t                    i;
    ble_advertising_init_t      init;
	ble_gap_addr_t 				ble_gap_addr;
	uint8_t 					manuf_data[15] = "mydevice1";  

    memset(&init, 0, sizeof(init));
	
	// get Device Address
	err_code = sd_ble_gap_addr_get(&ble_gap_addr);
	APP_ERROR_CHECK(err_code);
	for(i=0; i<sizeof(ble_gap_addr.addr); i++)
	{
		manuf_data[i+9] = ble_gap_addr.addr[sizeof(ble_gap_addr.addr)-1-i];
	}

    init.advdata.name_type          = BLE_ADVDATA_FULL_NAME;
    init.advdata.include_appearance = false;
    init.advdata.flags              = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;

	m_manufdata.company_identifier          = 0x5555;
	m_manufdata.data.size                   = sizeof(manuf_data);
	
#if DEBUG_BLE_ENABLE
	printf("manuf_data size: %d \r\n", sizeof(manuf_data));
	nrf_delay_ms(50);
#endif

	m_manufdata.data.p_data                 = manuf_data;	
	init.srdata.p_manuf_specific_data		= &m_manufdata;	
	
    init.srdata.uuids_complete.uuid_cnt     = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
    init.srdata.uuids_complete.p_uuids      = m_adv_uuids;

    init.config.ble_adv_fast_enabled  = true;
    init.config.ble_adv_fast_interval = APP_ADV_FAST_INTERVAL;
    init.config.ble_adv_fast_timeout  = APP_ADV_FAST_TIMEOUT_IN_SECONDS;
	
	init.config.ble_adv_slow_enabled  = true;
    init.config.ble_adv_slow_interval = APP_ADV_SLOW_INTERVAL;
    init.config.ble_adv_slow_timeout  = APP_ADV_SLOW_TIMEOUT_IN_SECONDS;
	
    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);
}

What can I do to solve this problem?

Parents Reply Children
No Data
Related