www.flightgear.ru

FlightGear - свободно распространяемый, кросс-платформенный авиасимулятор.
Текущее время: 05 июл 2020, 04:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 27 мар 2013, 22:24 
Не в сети

Зарегистрирован: 15 авг 2009, 22:22
Сообщения: 1
Здравствуйте.
Появилась идея осуществить посадку на авианосец в 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 Кб | Просмотров: 10844 ]

В связи с этим вопрос, в каком виде посылаются данные по 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>

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 мар 2013, 00:04 
Не в сети

Зарегистрирован: 13 фев 2008, 15:20
Сообщения: 966
Откуда: Днепропетровск
Был тут топик, в котором обсуждали похожую проблему. Где-то на последних страницах.

_________________
ПТН ПНХ ХЛО


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 мар 2013, 18:32 
Не в сети

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 мар 2013, 21:40 
Не в сети

Зарегистрирован: 24 фев 2009, 20:35
Сообщения: 70
Цитата:
В связи с этим вопрос, в каком виде посылаются данные по UDP протоколу из FlightGear в сеть.

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

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

_________________
Нет нерешаемых задач - есть не найденные решения.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 дек 2014, 22:30 
Не в сети

Зарегистрирован: 23 дек 2014, 22:24
Сообщения: 2
Вот пример https://github.com/approximator/FlightGear_S-function
Простая модель и S-функция для взаимодействия с FlightGear.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB