Получить Ardupilot выходных каналов - PullRequest
0 голосов
/ 14 ноября 2018

Как мы можем получить значения выходных каналов ardupilot от dronekit-python?

Мы можем получить входные каналы из vehicle.channels, но я не смог найти ничего похожего для выходных каналов.

РЕДАКТИРОВАТЬ:

from time import sleep
from dronekit import connect
import dronekit_sitl

sitl = dronekit_sitl.start_default()
connection_string = sitl.connection_string()

vehicle = connect(connection_string,wait_ready=True)

while not vehicle.is_armable:
    sleep(1)
    print"Initializing"

vehicle.armed = True
while not vehicle.armed:
    print "Arming"
    sleep(1)
print "Armed"

@vehicle.on_attribute('ch1out')
def ch1out_listener(self, name, msg):
    print '%s attribute is: %s' % (name, msg)

for i in range(1000,2000,100):
    vehicle.channels.overrides['3']=i
    sleep(1)

vehicle.close()

Он должен печатать ch1out каждый раз, когда я обновляю канал 3, но это не так.

1 Ответ

0 голосов
/ 15 ноября 2018

Я предполагаю, что вы имеете в виду выходные каналы, это значение 'ch1out', 'ch2out' и т. Д.

Mission Planner Status Message

Чтобы получить это значение, выможет просто использовать прослушиватель атрибута, подобный этому

@vehicle.on_attribute('ch1out')
def ch1out_listener(self, name, msg):
    print '%s attribute is: %s' % (name, msg)

Эта функция, по сути, просто печатает значение 'ch1out' каждый раз, когда оно изменяется, вы можете просто изменить его соответствующим образом.Подробнее об этом можно прочитать здесь Наблюдение за изменениями атрибута .

Но если вы хотите получить доступ к значению выходного канала непосредственно из объекта транспортного средства, например, входного канала или другого атрибута.

(Пример: vehicle.channels, vehicle.mode)

Вы можете добавить выходной канал к объекту транспортного средства, следуя этому примеру, предоставленному в документации Dronekit-Python Создать атрибут в приложении .

...