使用 bluetoothctl 时,似乎有必要先运行该命令,scan on
然后才能连接到低能耗 (IoT) 设备。我知道该设备的 MAC,但尝试直接连接到它总是会失败并显示Device xx:xx:xx not available
错误消息。打开后 1-3 秒内scan on
,就可以连接到该设备。但一旦scan off
运行,设备就会立即断开连接。
跑步时,我收到了大量的[CHG] Device xx:xx:xx
和[NEW] Device xx:xx:xx
消息。我在办公楼里工作,有时在最大距离内会有几十到几百台设备。并非所有的 CHG 消息都是 rssi,但即使它们是另一个人的问题没有提供有用的答案。这只是一个指向 StackOverflow 的链接,指出它们是 rssi 消息,但没有建议如何抑制它们。我不能这样做,scan on
因为否则该工具将无法工作。
这个工具几乎不能用,我不知道为什么有人认为这是个好设计。它一定是在现存的蓝牙设备很少的时候创建的。
附加信息
我已经知道如何过滤掉一些 RSSI 消息。这是一个非常简单的命令:
menu scan
rssi X
back
scan on
(其中 X 是一个整数,通常为负数,小于该整数时您将看不到任何消息。)
问题是,如果我将其设置为一个足够高的值,以致于我抑制了所有 rssi 消息(包括我所针对的设备),则不再可能连接到该设备。我可以选择一个数字来抑制大多数消息,但如果设备的 rssi 消息不会显示,那么它就被阻止了。
他们设计这个工具只是为了让它在 shell/expect 脚本中无法使用吗?这简直糟透了。
我比较幸运地抑制了其他消息。进入扫描菜单后,您可以执行pattern <MAC>
以下操作:MAC 可以是设备的完整 MAC,也可以是部分/前缀。