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