当前位置:  开发笔记 > 编程语言 > 正文

低功耗蓝牙:被动扫描-但是不会永远循环吗?

如何解决《低功耗蓝牙:被动扫描-但是不会永远循环吗?》经验,为你挑选了1个好方法。

参考这篇文章,我已经成功地获得了一个Linux设备(Raspberry Pi A +型)来将我的Bluetooth 4.0 USB软件狗切换到“广告”状态:

sudo hciconfig hci0 leadv 3

要么

sudo hciconfig hci0 leadv 0

我使用运行“ LightBlue Explorer”应用程序的iPod进行了验证。

到目前为止一切都很好。

从另一个具有蓝牙4.0加密狗的Linux盒(另一个Pi)中获取;我还可以使用以下命令查看设备:

sudo hcitool lescan --passive

返回如下内容:

LE Scan ...
xx:xx:xx:xx:xx:xx (unknown)
yy:yy:yy:yy:yy:yy (unknown)
xx:xx:xx;xx:xx:xx (unknown)

但是该命令会不断循环刷新设备列表。

所以我的主要问题是:是否可以运行该命令的变体,侦听(说)5秒;返回发现要播发的设备列表并退出?

我想构建一个简单的脚本(理想情况下为Python程序),该脚本将定期唤醒,(被动地)监听流量几秒钟,然后返回源设备列表。

另外:我不确定为什么该命令为找到的设备显示“未知”。(而LightBlue确实会标识名称)。



1> bluewhile..:

hcitool中没有为此的论点,但是这里有一些选择

timeout 15s hcitool lescan 这将使扫描运行15秒

hcitool lescan 这只会报告每个设备一次


关于(unknown):我认为您的外围设备在广告中没有包含蓝牙名称,甚至根本没有。

--passive 告诉您的HCI设备不请求ScanResponse(可能包含名称),因此名称仍然未知,而iOS API会进行主动扫描并接收名称。


hcitool lescan --duplicates则完全相反。要只报告一次,请删除--duplicates标志。
推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有