在 2 python 代码上调用 vehicle = connect() 会导致连接中断

Calling vehicle = connect() on 2 python code cause connection to drop

我在子进程中有 2 个 python 代码 运行,同时调用 vehicle = connect('/dev/ttyS0', heartbeat_timeout = 30, baud = 57600)用于不同的任务(无线电控制器的频道记录、自动化等)。

代码按预期工作,但 Raspberry Pi 和 PixHawk 之间的串行连接有时会在自动重新连接之前断开。这让我很担心,因为它可能会影响数据记录的准确性。

我尝试将 vehicle 变量传递给其他 python 并将 vehicle 包装到模块中,但两者都不起作用。有什么方法可以在 2 python 代码之间共享车辆变量,或者我坚持组合我的代码以利用线程处理全局变量?

提前致谢。

要从 2 个程序(在您的情况下是 2 python 脚本)连接到一辆车,您可以使用 Mavproxy (http://ardupilot.github.io/MAVProxy/html/index.html),您可以将您的车辆连接到 Mavproxy,然后在然后 Mavproxy 将您的两个 python 脚本连接到 Mavproxy。但我建议使用多线程或多处理,而不是将其分离为 2 个不同的脚本。


编辑: 您可以像这样从终端启动 Mavproxy:

mavproxy.py --master=/dev/ttyAMA0 --baudrate 57600 --out 127.0.0.1:14550 --out 127.0.0.1:14551

其中 /dev/ttyAMA0 是您的车辆地址,然后将 python 脚本连接到 127.0.0.1:14550127.0.0.1:14551