我正在从 2 个不同的流程中寻求使用同一辆车的帮助。
我有一个 SITL 实例正在运行。我正在尝试从我的 DroneKit 脚本的主进程和在同一脚本中生成的子进程连接到同一个实例。
两个连接都工作正常(在两种情况下都返回 MPAPIConnection 对象,具有相同的 @ 引用),但在子流程中,连接对象似乎不是活动的,并且车辆参数没有更新。
在下面的例子中,当无人机移动时,主进程返回的位置是实际位置,而子进程返回的位置仍然停留在子进程首次启动时的初始位置。
例子:
import time
from pymavlink import mavutil
import multiprocessing
class OtherProcess(multiprocessing.Process):
def __init__(self):
super(OtherProcess,self).__init__()
def run(self):
sp_api = local_connect()
sp_v = api.get_vehicles()[0]
while True:
print "SubProcess : " + str(sp_v.location)
time.sleep(1)
api = local_connect()
v = api.get_vehicles()[0]
sp = OtherProcess()
sp.start()
while True:
print "MainProcess : " + str(v.location)
time.sleep(1)
那么有没有办法从同一个mavproxy实例中的不同进程访问同一个车辆?