蓝牙ctl扫描几个小时后停止工作。

问题描述 投票:0回答:1

作为后续行动 这个问题我试着检查我发现的QtBluetooth的错误是否与bluetoothctl有关。为此,我运行了这个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秒进行一次蓝牙扫描)。

经过三个小时的成功扫描后,bluetoothctl显示出与链接问题中相同的行为(扫描开始、结束、没有发现任何设备,尽管它们存在并可被发现)。

是否有什么原因导致bluetoothctl无法完成这个特定任务?如果没有,有什么办法可以解决这个问题吗?我在Linux机器上运行了上述代码,并使用了 Ubuntu 18.10 安装了QtBluetooth。

linux bluetooth expect
1个回答
0
投票

将此作为一个答案留给那些可能遇到同样问题并(错误地)认为是编程问题的人。

这个问题与以下两个问题没有直接关系 expectbluetoothctl. 通过浏览事件日志 (dmesg --ctime),我发现,每当这种行为表现出来的时候,就会弹出这一行。Bluetooth: hci0: command <number> tx timeout命令编号不同的情况下,会弹出这样一行: 通过上网查询这个具体的错误,发现可能与Linux内核本身、蓝牙设备的驱动程序或我的Linux机器的省电选项有关。

© www.soinside.com 2019 - 2024. All rights reserved.