Кто ни будь работал с протоколом MAVlink? ( http://www.qgroundcontrol.org/mavlink/start ) Нужна библиотека для работы с этим протоколом. Естественно пригодная для работы с AVR ( очень желательно без АРДУИНОзависимости ) В тырнэте ни слова на Русском про этот протокол.
Могу дать кусочек кода принятого по протоколу MAVlink через гипертериминал
Я никогда этим протоколом не занимался, но глянул ради любопытства - первая часть текстовой строки = бинарные данные в HEX-коде, вторая часть - те же данные, но в ASCII. Если символом ASCII код выражен быть не может, то вместо его точка. Посмотрел по ссылкам - протокол задокументирован нормально. Если есть вопросы к наполнению содержанием конкретных параметров - это, видимо, адресоваться к конкретной аппаратуре ЛА .
первая часть текстовой строки = бинарные данные в HEX-коде, вторая часть - те же данные, но в ASCII.
ТОЧНО!!! блин, онлайн ресурс меня подвел - http://www.asciitohex.com/ он не умеет читать посылку в которой содержаться нечитаемые данные!!!! надо бы другой ресурс присмотреть....
Мне щас скинули еще один кусочек кода. На этот раз код не дешифруется ASCII
У меня самого нет возможности считать этот код. ( Товарищ в другом городе проживает )
Цитата:
Если есть вопросы к наполнению содержанием конкретных параметров - это, видимо, адресоваться к конкретной аппаратуре ЛА .
Не совсем так. MAVlink - это универсальный протокол обмена данными для передачи телеметрии. В частности большинство модельных полетных контроллеров ( автопилотов ) работает с этим протоколом. Раньше использовали ASCII, но он очень "тяжелый" и по этому от него отказались. Сейчас полетный контроллер опрашивает все возможные датчики и вставляет значения в протокол мавлинк. Конкретных ЛА тут нет. Протокол универсален.
Дело в том, что мне поставили задачу выдернуть GPS данные из этого протокола и данные с БАРО датчика ( датчик высоты ) и дальше с ними поработать. Нужно сделать самонаводящуюся антенну - проект открытый.
А у меня нет ни полетного контроллера, ни знаний протокола МАВЛИНК. Даже подобных проектов в тырнете нет.
вот способ шифрования мавлинк
Попробую расшифровать один из пакетов ( которы мне скинули в первый раз )
Я никогда ни с кем не спорю, тем боле по вопросу, которым я плотно не занимался. Приведенный "скелет" протокола я видел. Так в нем поле Data ( Byte Index 6... ) зависит от Byte Index 5 ( тип сообщения ). Я не утверждал, что данные зависят от конкретного типа ЛА, я предполагал, что они зависят от конкретного устройства на ЛА, опрашиваемого в данном сеансе. Иначе если бы протокол стандартизовал не только формат посылки, но и ее содержание, конструкция сообщения была бы жесткой : байты X...X+n - курсовой угол, байты Y...Y+n - тангаж и т.п. Но это всего лишь предположения, подкрепленные опытом работы с Modbus . Там тоже от меня заказчик требовал: если в букваре есть опрос катушек - опрашивай катушки, хотя никаких катушек в проектируемом устройстве и в помине нет, а про всякие отсечки, температуры, тау и пр. -- ни-ни ! А с новым фрагментом - возможно, это не прямо принятое с ЛА, а пропущенное через какую-нибудь прогу, которая произвела нужные, как ей казалось, перекодировки. Или же ASCII в этом сообщении нет, все бинарное. Ну, успехов Вам! Пусть число взлетов совпадает с числом посадок!
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
time_boot_ms (uint32_t) Timestamp (milliseconds since system boot) //Отметка (миллисекунд с момента загрузки системы)
lat (int32_t) Latitude, expressed as * 1E7 // Широта, выражается в * 1E7
lon (int32_t) Longitude, expressed as * 1E7 // Долгота, выражается в * 1E7
alt (int32_t) Altitude in meters, expressed as * 1000 (millimeters), AMSL (not WGS84 - note that virtually all GPS modules provide the AMSL as well) // Высота над уровнем моря в метрах, выраженное в * 1000 (мм), над уровнем моря (не WGS-84 - обратите внимание, что практически все модули GPS обеспечивают над уровнем моря, а)
relative_alt (int32_t) Altitude above ground in meters, expressed as * 1000 (millimeters) // Высота над землей в метрах, выраженное в * 1000 (мм)
vx (int16_t) Ground X Speed (Latitude), expressed as m/s * 100 // Наземная X Скорость (широта), выраженная в м / с * 100
vy (int16_t) Ground Y Speed (Longitude), expressed as m/s * 100 // Наземная Y Скорость (Долгота), выраженная в м / с * 100
vz (int16_t) Ground Z Speed (Altitude), expressed as m/s * 100
hdg (uint16_t) Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: UINT16_MAX
_________________ не зная броду не лезь к вольтмоду
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Не могу понять как определять ID ( идентификатор ) GPS модуля. В мануале написано GLOBAL_POSITION_INT ( #33 ) мне подсказали, что запись вида #33 - является шестнадцатеричной. Но в куске кода я не нашел ни одной посылки с таким идентификатором. Отсюда следует: 1) #33 не является шестнадцатеричным идентификатором GPS 2) В том куске кода не было ни одной посылки, содержащей сообщения с координатами.
Вот о чем я и говорю, остается гадать - так как самому код не считать...
_________________ не зная броду не лезь к вольтмоду
Заголовок сообщения: Re: протокол MAVlink ( библиотека )
Добавлено: Пн июн 06, 2016 10:24:30
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58 Сообщений: 651 Откуда: Самара
Рейтинг сообщения:0
Пытаюсь разобраться с протоколом. Сохранил обмен что шлет мой полетный контроллер APM 2.6. Хочу вытащить значение напряжения на аккумуляторе. И не могу понять почему Message ID у многих посылок одинаковый 16 ? (5-й байт)
Я думал достаточно отловить начало посылки 0xFE, посмотреть какой параметр тут содержится (Message ID) и вытащить его. Как тогда разбирать эти посылки? Или надо парсить по ключевым словам (BATT_MONITOR и т.д.)?
_________________ Нельзя всё знать, достаточно понимать.
Заголовок сообщения: Re: протокол MAVlink ( библиотека )
Добавлено: Вт июн 07, 2016 10:32:50
Вымогатель припоя
Карма: 4
Рейтинг сообщений: 16
Зарегистрирован: Пн мар 23, 2009 09:25:58 Сообщений: 651 Откуда: Самара
Рейтинг сообщения:0
Вот, например, ещё одна посылка:
FE 1A FA 01 01 1B 36 B6 AA 2C 00 00 00 00 DA FF D7 FE 40 FC 00 00 FF FF 00 00 14 00 FC FF 57 00 71 DA
Описания в самой строке уже нет. Какой параметр тут передается?
FE - заголовок 1A - длина (26 байт) FA - порядковый номер посылки 01 - System ID 01 - Component ID 1B - Message ID ... ... 26 байт данных ... ... 71 DA - контрольная сумма
Я не смог найти описания Message ID и как потом разобрать данные. Может у кого есть описание?
_________________ Нельзя всё знать, достаточно понимать.
Сейчас этот форум просматривают: veso74 и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения