How can I read the whole advertising packet when are packets larger than some specific size?
This is the issue. I want to read this adv packet:
But I only get this on the device:
I read a similar question in the forum and the answer is that: "The second part of the payload is received in the scan response packet, while the device_found() function is invoked only for the primary advertising packet in your case"
But how can I access to that second part of the payload?
In my code I set up a scan name filter and starting the scanner as BT_SCAN_TYPE_SCAN_ACTIVE.
Also, I'm using the advance mode scanning with the callbacks:
BT_SCAN_CB_INIT(scan_cb, scan_filter_match, NULL, scan_connecting_error, scan_connecting);
static void scan_filter_match(struct bt_scan_device_info *device_info, struct bt_scan_filter_match *filter_match, bool connectable) { char addr[BT_ADDR_LE_STR_LEN]; bt_addr_le_to_str(device_info->recv_info->addr, addr, sizeof(addr)); LOG_INF("Filters matched. Address: %s connectable: %d\n", addr, connectable); if (device_info->recv_info->adv_type == BT_GAP_ADV_TYPE_SCAN_RSP) { LOG_INF("Scan response recivida!"); } LOG_HEXDUMP_INF(device_info->adv_data->data, device_info->adv_data->len, "adv_packet"); bt_data_parse(device_info->adv_data, adv_cb, addr); }