作为这个问题的后续工作,我试图检查我在QtBluetooth中发现的bug是否与蓝牙连接。为此,我在一个循环中运行了这个shell脚本(使用期望):
#!/usr/bin/expect -f
set prompt "#"
spawn /usr/bin/bluetoothctl
expect $prompt
send "scan on\r\n"
sleep 10
send "scan off\r\n"
send "quit\r"
expect eof最终目标是连续记录传感器周围的所有设备,时间不确定(为了做出合理的估计,考虑至少24小时的连续操作,每10秒进行一次蓝牙扫描)。
经过大约三个小时的成功扫描后,蓝牙and显示了与链接问题相同的行为(扫描开始、结束、没有发现任何设备,尽管它们是存在的和可发现的)。
有什么东西可以阻止蓝宝石通过设计来完成这个特定的任务吗?如果没有,有没有解决这个问题的办法?我在Linux机器上运行上面的代码,安装了Ubuntu18.10。
发布于 2020-05-20 07:17:16
对于那些可能会遇到同样的问题并(错误地)认为这是一个编程问题的人来说,这是一个答案。
此问题与expect或bluetoothctl都没有直接关联。通过浏览事件日志(dmesg ),我发现,每当这种行为出现时,这一行就会弹出:Bluetooth: hci0: command <number> tx timeout,具有不同的命令号。通过搜索这个特定的错误,它可能与Linux内核本身、蓝牙设备的驱动程序或我的Linux机器的节能选项有关。
https://stackoverflow.com/questions/61869420
复制相似问题