CC2540 主机去扫描从机,从机的数量有很多 上百个,主机上只显示8个蓝牙设备,应该是按信号强度只出现前8个蓝牙设备,我想按蓝牙设备名称搜索到特定的设备怎么操作,主机搜到指定的蓝牙名称为止
Susan Yang:
您可以用white list功能, 只接收白名单内的设备的广播.
LL_AddWhiteListDevice(address, LL_DEV_ADDR_TYPE_PUBLIC );
discoveryParams.taskID = hciExtApp_TaskID;discoveryParams.mode =DEVDISC_MODE_ALL;discoveryParams.nameMode = true;discoveryParams.whiteList = true;GAP_DeviceInit( hciExtApp_TaskID, GAP_PROFILE_CENTRAL, 1, IRK, SRK, &hciExtSignCounter );GAP_DeviceDiscoveryRequest(&discoveryParams);
Hank Zhang:
回复 Susan Yang:
白名单好像也是把蓝牙物理地址设置进去,但是物理地址不一定的,已知名称是统一的,是否可以通过名称过滤搜索呢
Hank Zhang:
回复 Susan Yang:
any update
Susan Yang:
回复 Hank Zhang:
参考
software-dl.ti.com/…/group___h_c_i.html
可以使用BTool来实现,如下
——————————————————————–
[13] : <Tx> – 04:36:31.932
-Type: 0x01 (Command)
-OpCode: 0x2011 (HCI_LEAddDeviceToWhiteList)
-Data Length: 0x07 (7) byte(s)AddressType: 0x00 (0) (Public Device Address)DeviceAddr: 11:33:33:44:22:66
Dump(Tx):
0000:01 11 20 07 00 66 22 44 33 33 11.. ..f"D33.
——————————————————————–
[14] : <Rx> – 04:36:31.949
-Type: 0x04 (Event)
-EventCode: 0x000E (Event)
-Data Length: 0x04 (4) bytes(s)Packets: 0x01 (1)OpCode: 0x2011 (HCI_LEAddDeviceToWhiteList)Status: 0x00 (0) (Success)
Dump(Rx):
0000:04 0E 04 01 11 20 00….. .
——————————————————————–这样添加之后在GAP_DeviceDiscoveryRequest时就会启用“Use the white list during a scan”
“但是物理地址不一定的,已知名称是统一的”不太理解您这句的意思
Hank Zhang:
回复 Susan Yang:
物理地址意思是MAC地址,名称是蓝牙名称,就是我知道要搜索设备的蓝牙名称但不知道他的MAC地址
Susan Yang:
回复 Hank Zhang:
那您可以在从机的广播数据类型AD Type内使用 Local Name。
参考 www.race604.com/…/
而后主机来获取从机的广播数据(GAP_DEVICE_INFO_EVENT),用设备名Local Name来做过滤从机设备,只选择对应设备名的从机广播
参考 www.voidcn.com/…/p-uuqiepqw-em.html