0

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

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

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

提前致谢。

4

1 回答 1

1

要从 2 个程序(在您的情况下为 2 python 脚本)连接到一辆车,您可以使用 Mavproxy(http://ardupilot.github.io/MAVProxy/html/index.html),您可以将您的车辆连接到 Mavproxy,然后添加 2 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

于 2018-08-21T16:28:43.463 回答