Dronekit API Python:如何从两个不同的进程连接到同一辆车?

2024-09-29 00:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找帮助与同一辆车从2个不同的进程。在

我有一个SITL实例正在运行。我尝试从我的DroneKit脚本的主进程和在同一脚本中生成的子进程连接到同一个实例。在

两个连接都工作正常(MPAPIConnection对象在两种情况下都返回,具有相同的@reference),但在子进程中,连接对象似乎不处于活动状态,并且车辆参数不会更新。在

在下面的例子中,无人机移动时主进程返回的位置是实际位置,但子进程返回的位置在子进程第一次启动时仍然停留在初始位置。在

示例:

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实例中的不同进程访问同一辆车?在


Tags: 对象实例importself脚本apitime进程
1条回答
网友
1楼 · 发布于 2024-09-29 00:22:46

您应该再试一次——DKPY2(刚刚发布)使用独立的脚本,其设计思想是使用connect()函数返回的每个Vehicle对象都是完全独立的。当然可以在同一个脚本(同一个进程)中连接到不同的车辆,因此很可能您可以从不同的进程连接到同一辆车。在

相关问题 更多 >