www.flightgear.ru
http://flightgear.ru/forum/

Передача данных из FLightGear в MATLAB по UDP
http://flightgear.ru/forum/viewtopic.php?f=12&t=699
Страница 1 из 1

Автор:  Jester [ 27 мар 2013, 22:24 ]
Заголовок сообщения:  Передача данных из FLightGear в MATLAB по UDP

Здравствуйте.
Появилась идея осуществить посадку на авианосец в FlightGear. Динамика самолета рассчитывается в MATLAB и по UDP передается внутрь сима. Есть только небольшая проблема. Чтобы посадить самолет на авианосец, нужно знать координаты этого авианосца, то есть широту и долготу, их то и нужно передать в MATLAB. В Property Tree соответствующие строки я нашел, даже с успехом записал их во внешний файл outdata.xml с помощью команды fgfs --generic=file,out,<hz>,outdata.xml,myprotocol, где myprotocol имя протокола в папке Protocol.
Когда же я пытаюсь посылать эти данные напрямую в сеть с помощью команды fgfs --generic=socket,out,<hz>,127.0.0.1,5501,udp,myprotocol, в MATLAB на указанный порт приходит совсем непонятный мне набор данных. MATLAB ожидает числа, представленные в виде байтового массива (например, число 1.0 типа double представляется как строка [0 0 0 0 0 0 240 63], скрин прилагается, как упаковываются числа если нужно напишу).
Вложение:
Безымянный.png
Безымянный.png [ 53.44 Кб | Просмотров: 11025 ]

В связи с этим вопрос, в каком виде посылаются данные по UDP протоколу из FlightGear в сеть.
Листинг файла myprotocol.xml, на выход подается высота самолета, а не координаты авианосца, но это без разницы, мне главное понять принцип.
Код:
<?xml version="1.0"?>
<PropertyList>
 <generic>
  <output>
   <line_separator>newline</line_separator>
   <var_separator>tab</var_separator>
   <chunk>
    <name>altitude-ft</name>
    <type>float</type>
    <node>/position/altitude-ft</node>
   </chunk>
 </generic>
</PropertyList>

Заранее спасибо!

Автор:  VaLeo [ 28 мар 2013, 00:04 ]
Заголовок сообщения:  Re: Передача данных из FLightGear в MATLAB по UDP

Был тут топик, в котором обсуждали похожую проблему. Где-то на последних страницах.

Автор:  Дмитрий Верещиков [ 28 мар 2013, 18:32 ]
Заголовок сообщения:  Re: Передача данных из FLightGear в MATLAB по UDP

Могут быть особенности с версиями ФГ. Так, например, мы успешно возвращаем в Simulink по UDP высоту поверхности в процессе полета, управляемого из Simulink в версиях ФГ 2.0 и старше, а в 2.8 и 2.10 имеем в той же схеме постоянное число. Если удасться решить проблему, сообщите. Интересна не только палуба, но и иные объекты, "живущие своей жизнью" в ФГ.

Автор:  Alex Buzin [ 29 мар 2013, 21:40 ]
Заголовок сообщения:  Re: Передача данных из FLightGear в MATLAB по UDP

Цитата:
В связи с этим вопрос, в каком виде посылаются данные по UDP протоколу из FlightGear в сеть.

А README.protocol читать не пробовали? Там всё написано.

А на ваш myprotocol.xml парсер разве не ругается, там есть незакрытый тег. Да и если исправить тег то всё равно работать не будет: данные отправляются строкой, а на приёме ждёте байтовый массив.

Автор:  Oleksii.Aliakin [ 23 дек 2014, 22:30 ]
Заголовок сообщения:  Re: Передача данных из FLightGear в MATLAB по UDP

Вот пример https://github.com/approximator/FlightGear_S-function
Простая модель и S-функция для взаимодействия с FlightGear.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/