Raspberry Pi 上的蓝牙串行端口 & 在对 运行 python 文件使用 IDE 和终止符时发生了一些奇怪的事情

Bluetooth Serial Port on Raspberry Pi & something weird happened when using IDE and terminator to run python files

我正在做一个使用蓝牙串口的项目。是关于手机和Rpi之间的消息通信。

我在终结者上输入了'sudo rfcomm watch hci0'

Python上的代码很简单:只分配端口地址('/dev/rfcomm0')和readline()。

起初,一切正常,直到我断开连接并重新连接。它说,“无法创建 Rfcomm TTY:地址已在使用”。我猜是因为我没有关闭串口,所以加了'ser.close()'。然后它起作用了。我在 Thonny 上 运行(Rpi 上 Python 的 IDE)。

但是,当我尝试 运行在终结者上使用 Python 脚本时,奇怪的事情发生了。最初,一切正常,但当我断开蓝牙连接时,它卡住了,如果我尝试重新连接,它再次告诉我“无法创建 Rfcomm TTY:地址已在使用中”。

那么,运行在 IDE 和终结者上使用脚本有什么区别?这真的让我很困惑,因为我打算在重新启动后自动制作脚本 运行ning。

此外,有人能告诉我如何以更好的方式解决错误“无法创建 Rfcomm TTY:地址已在使用”吗?

谢谢!

我想补充更多说明。

当我使用 IDE 到 运行 脚本时: enter image description here

当我断开连接并重新连接时它运行良好。

但是当我使用 Terminator 来 运行 脚本时(“sudo Python3 xxxxxx.py”): enter image description here

我尝试重新连接时失败了。而且断线重连时终结器卡住然后运行异常

hciattachhciconfighcitoolhcidumprfcommsdptoolciptoolgatttool 是 2017 年的 deprecated by the BlueZ 项目。如果您正在学习使用它们的教程,它可能已过时。

Bluedot 库支持创建服务器来通信 RFCOMM 串行数据。更多详细信息,请访问: https://bluedot.readthedocs.io/en/latest/btcommapi.html#bluetoothserver