Здравствуйте.
Появилась идея осуществить посадку на авианосец в 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 [ 53.44 Кб | Просмотров: 11760 ]
В связи с этим вопрос, в каком виде посылаются данные по 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>
Заранее спасибо!