Bluetooth Bluez未阅读广告包

Bluetooth Bluez未阅读广告包,bluetooth,bluetooth-lowenergy,raspberry-pi3,bluez,Bluetooth,Bluetooth Lowenergy,Raspberry Pi3,Bluez,我正试图构建一个小程序,读取我设备周围的BLE信标,并解析我感兴趣的信标,以便在MQTT上发布。我用Raspberry Pis来运行代码,我用我的mac开发。语言是JS(Node 10.x),我的Pis运行的是最新的Buster,即Bluez 5.50,以及Noble的分支,用于与蓝牙层接口 出于某种原因,在我移动到开放区域的一个PI上(为了获得清晰的读数),我只收到扫描响应数据包。我从来没有收到过广告包。我有时确实收到一个相当遥远的设备的广告包,这让我怀疑信号在这里起作用。从网络机柜(小法拉第

我正试图构建一个小程序,读取我设备周围的BLE信标,并解析我感兴趣的信标,以便在MQTT上发布。我用Raspberry Pis来运行代码,我用我的mac开发。语言是JS(Node 10.x),我的Pis运行的是最新的Buster,即Bluez 5.50,以及Noble的分支,用于与蓝牙层接口

出于某种原因,在我移动到开放区域的一个PI上(为了获得清晰的读数),我只收到扫描响应数据包。我从来没有收到过广告包。我有时确实收到一个相当遥远的设备的广告包,这让我怀疑信号在这里起作用。从网络机柜(小法拉第笼)中的Pi中,我偶尔会收到不一致的两个数据包(在开放位置使用Pi的原因)

有没有办法强迫Bluez始终接收广告包?是否存在我没有正确使用的错误或功能

编辑


我安装了
tshark
进行密切监视,我确实看到广告包到达了我的设备。这意味着BlueZ忽略了它们。是否有一些关于如何使用bluetoothctl以及如何配置bluetooth deamon/工具以便读取这些数据包的完整文档?

经过几天的调查,我成功地获得了我的项目所需的结果。我首先想到使用这个项目来访问原始数据包。有了它,您可以在被动模式下扫描,这意味着只检索广告包

通过更深入地研究我实际使用的接口项目,可以在被动模式下进行扫描(),还可以使用一个变量来捕获广告和响应数据包:
NOBLE\u REPORT\u ALL\u HCI\u EVENTS
。将此设置为1将为我提供所需的准确信息,包括包含更频繁更改的数据的扫描请求,以及包含更多数据的扫描响应,如最小/最大24小时值。事实上,将此设置与
duplicates=false
相结合似乎只会给我扫描请求数据,就像在被动模式下一样

问题仍然悬而未决:

有了这个,我仍然不知道如何使用
bluetoothctl
来显示扫描请求数据和扫描响应。我也没有找到强制扫描模式为被动模式的方法。我可以调查更多的
hcitool-hciconfig
,但它们被弃用(尽管互联网上的每一篇文章都提到它们)