SDK 15.2 API 6.1 SES
I am trying to read manufacturer data. I know i am advertising it because i can see it on the nRF connect app on my phone. When i try an dparse the data it is like data is not there. My info line for p_adv_report->data.len = 18 and manuf_data = 0x0011. Is there something i am missing that is preventing my code from seeing the manufacturer data. i should see 0x250D for data or 00FE for manufacturer
The ble_advdata_search function doesnt seem to do anything. I set offset to 12 and it remains 12.
BLE_GAP_EVT_ADV_REPORT:
{
const ble_gap_evt_adv_report_t *p_adv_report = &p_gap_evt->params.adv_report;
//NRF_LOG_INFO("RSSI: %d", p_adv_report->rssi);
if (is_uuid_present(&m_adv_uuids_c[0], p_adv_report))
{
NRF_LOG_INFO("adv data: len: %d", *(uint8_t*)p_adv_report->data.len);
uint8_t manuf_data_length;
uint8_t * manuf_data = ble_advdata_manuf_data_find(&p_adv_report->data, &manuf_data_length);
....
static uint8_t * ble_advdata_manuf_data_find(const ble_data_t * p_adv_data, uint8_t * manuf_data_length)
{
uint16_t data_offset = 0;
*manuf_data_length = ble_advdata_search(p_adv_data->p_data,
p_adv_data->len,
&data_offset,
BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA);
return &p_adv_data->p_data[data_offset];
}
I tried cycling through the data and it gives nothing that resembles data i am sending
for(int i = 0; i < p_adv_report->data.len; i++){
NRF_LOG_INFO("0x%02X", *(uint8_t*)(p_adv_report->data.p_data[i]));
}