我有2个在子进程中运行的python代码,都分别针对不同的任务(用于无线电控制器的通道记录,自动化等)调用vehicle = connect('/ dev / ttyS0',heartbeat_timeout = 30,baud = 57600)。
代码按预期工作,但是Raspberry Pi和PixHawk之间通过串行连接有时会丢失,然后自动重新连接。这让我很担心,因为它可能会影响数据记录的准确性。
我尝试将vehicle变量传递给其他python,并将vehicle包装到模块中,但两者均无效。有什么方法可以在2个python代码之间共享车辆变量,还是我坚持将我的代码组合起来以利用线程来获取全局变量?
谢谢。
答案 0 :(得分:1)
要通过2个程序(在您的情况下为2个python脚本)连接到一辆车,您可以使用Mavproxy(http://ardupilot.github.io/MAVProxy/html/index.html),您可以将车辆连接到Mavproxy,然后在Mavproxy中添加2个输出,然后连接两个python脚本转换为Mavproxy。但是我建议使用多线程或多处理,而不是将其分成两个不同的脚本。
编辑: 您可以从终端启动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:14550
和127.0.0.1:14551