1.Bluez中hcitool工具使用
Bluez中hcitool工具使用
Bluez中hcitool工具已逐渐被Bluetoothctl取代,源码官方建议使用Bluetoothctl,源码因其功能更加强大且操作更便捷。源码hcitool直接与底层hci接口通信,源码源码显示其函数命名均以hci开头。源码全文搜索源码
hcitool中包含专门用于扫描低功耗设备的源码源码分词算法命令lescan。对比源码,源码其函数hci_le_set_scan_parameters与Bluetooth技术规格要求一致。源码
扫描类型参数scantype定义为被动或主动扫描,源码主动扫描会发出扫描包,源码而被动扫描则不发出包。源码scantype参数决定扫描频率和窗口大小,源码通过调整scaninterval和scanwindow,源码业务app源码可实现低功耗扫描。源码
ownaddresstype参数设置为主动扫描包中地址的源码性质,默认设置为random,不选择public,127源码 反码可能为保护隐私,避免泄露自身MAC信息。
通过设置filter参数,可选择只上报白名单中的电影狗源码设备,增强设备选择的针对性。
所有配置通过hci_send_req命令发送至底层,底层硬件接收到命令后接收包并生成HCI_LE_Advertising_Report事件。
使用print_advertising_devices函数获取并打印出扫描到的设备,该函数不断捕获HCI_LE_Advertising_Report事件,解析数据并打印出mac地址和外设名称,同时也可能包含RSSI数据。
部分名称显示为unknown,可能是因为外设广播包中缺少AD type为名称的字段。