Мне нужна помощь в работе с одним и тем же автомобилем из двух разных процессов.
У меня запущен один экземпляр 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?