基于WM IoT SDK “central_general”示例,
device_found函数中用bt_data_parse(ad, scan_device_eir_parse, (void *)addr);
解析广播,扫描不到设备类型LE的设备名称,只能扫描到 CLASSIC and LE设备的名称,
如何能扫描到所有广播的名称,请指教。
static bool scan_device_eir_parse(struct bt_data data, void user_data)
{
switch (data->type) {
case BT_DATA_NAME_SHORTENED:
case BT_DATA_NAME_COMPLETE:
wm_log_info("Device Name: %.*s", data->data_len, data->data);
break;
}
return true;}
bt_data_parse就是把所有扫描到的设备的广播内容根据广播内容的协议格式(LTD)逐个解析,然后再调用scan_device_eir_parse找到有BT_UUID_SERVICE这个服务的设备来连接,bt_data_parse并没有过滤扫描到的设备,这里就是全部的。