MAL4X Научно-технический форум разработчиков симуляторов и автоматики


Симуляторы перегрузок. DIY электроника. ЭВМ. Компьютерные сети.
Up

Разработка программного обеспечения RU-SIMULATOR

Строим реалистичный симулятор перегрузок своими руками. Рекомендации. Советы.

Модераторы: Death_Morozz, null, Ale

Сообщение Ale » 18 ноя 2012, 21:14

CraCk писал(а):От почему в X-sim игры от кодемастер настроение порты по разному?

Вот уж не знаю. Изображение Насколько я понимаю все кодемастерные игры имеют одинаковый формат выдачи данных. А почему они разные порты настраивают - не знаю.

CraCk писал(а):Могу отдать свой пк через teamviewer.

Надо будет попробовать. У меня в упор не запускается дирт2 с extradata=0

CraCk писал(а):Все хорошее в смайле .

Изображение
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Ale » 19 ноя 2012, 00:21

В общем такое дело с extradata=0 для Dirt (и всего кодемастера). Похоже все-таки что при такой настройке формат пакета данных ПОЛНОСТЬЮ совместим с форматом OutSim от LFS. Это означает что можно взять файл настройки от LFS, выбросить оттуда всю секцию OutGauge (или по крайней мере выключить все данные , поставив enabled="false" для всех параметров в секции OutGauge). И запускать.

К сожалению это означает, что при настройке extradata=0 мы не будем получать из игр codemasters данных о скорости, оборотах, педалях и т.д. Но зато будут данные для сима - углы и ускорения.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Death_Morozz » 19 ноя 2012, 02:16

Это наблюдение необходимо зафиксировать! Потом проверить еще разок!
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Сообщение null » 19 ноя 2012, 11:33

Ale писал(а):К сожалению это означает, что при настройке extradata=0 мы не будем получать из игр codemasters данных о скорости, оборотах, педалях и т.д. Но зато будут данные для сима - углы и ускорения.

Это печально. Я остановился на extradata=1. Dirt3 не буду обновлять. А хотел лицензию купить ....
Русский X-Simulator
Изображение
За пределами форума. Мой инстаграмм.
Аватара пользователя
null
SIMER
 
Сообщения: 1041
Зарегистрирован: 03 мар 2010, 18:42
Откуда: Ростов-на-Дону
Благодарил (а): 219 раз.
Поблагодарили: 160 раз.
Баллы репутации: 138
ТехнарьТехнарь

Сообщение Ale » 19 ноя 2012, 13:22

null писал(а):Мой незавершенный девайс принимал данные с более 10-ти осей и это не предел. Т.е. количество должно быть бесконечно (в разумных пределах) и настраиваемо.

Кстати, забыл тебя спросить, что за монстра ты строил о десяти осях ?Изображение
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Death_Morozz » 19 ноя 2012, 13:55

Ale писал(а):
Кстати, забыл тебя спросить, что за монстра ты строил о десяти осях ?Изображение


Приборную панель для симулятора
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Сообщение Ale » 19 ноя 2012, 21:40

Death_Morozz писал(а):Это наблюдение необходимо зафиксировать! Потом проверить еще разок!

CraCk проверил. И подтвердил. По его просьбе привожу детальную структуру данных, передаваемых по UDP из LFS и Dirt Будем считать это выдержками из инструкции по созданию профиля игры

Для начала типы данных и их размер в байтах:
- byte - 1
- word - 2
- unsigned - 4
- integer - 4
- float - 4

Структура пакета OutSim взята мной от сюда
http://brunsware.de/insim/structOutSimPack.html
Оси координат расположены следующим образом:
Ось X - поперек машины - горизонтальная
Ось Y - вдоль машины - горизонтальная
Ось Z - вертикальная ось

OutSim

Далее привожу смещение в буфере пакета и данные, находящиеся в этом месте
0х0000 - unsigned Time - время в милисекундах
0x0004 - float AngVelX - угловая скороть по оси X
0x0008 - float AngVelY - угловая скороть по оси Y
0x000C - float AngVelZ - угловая скороть по оси Z
0x0010 - float Heading - угол поворота вокруг оси Z в радианах против часовой стрелки
0x0014 - float Pitch - угол поворота вокруг оси X в радианах против часовой стрелки
0x0018 - float Roll - угол поворота вокруг оси Y в радианах против часовой стрелки
0x001C -float AccelX - ускорение вдоль оси X (поперечное)
0x0020 - float AccelY - ускорение вдоль оси Y (продольное)
0x0024 - float AccelZ - ускорение вдоль оси Z (вертикальное)
0x0028 - float VelX - скорость вдоль оси X (в метрах в секунду)
0x002С - float VelY - скорость вдоль оси Y (в метрах в секунду)
0x0030 - float VelZ - скорость вдоль оси Z (в метрах в секунду)
0x0034 - unsigned PosX - координата X (при делении на 65536 получим метры)
0x0038 - unsigned PosY - координата Y (при делении на 65536 получим метры)
0x003С - unsigned PosZ - координата Z (при делении на 65536 получим метры)
0x0040 - integer ID - идентификатор пакета (опционально)

Структура данных, передаваемых Dirt в режиме extradata=1 взята мной отсюда:
http://lfsforum.net/showthread.php?t=73997

Dirt2 extradata=1

0x0000 - float time elapsed in seconds (since sending these packets started, not the race!)
0x0004 - float laptime in seconds
0x0008 - float position on track in metres from the start/finish line
0x000C - float race progress, this - laps = lap progress
0x0010 - float world-Y position in metres
0x0014 - float world-Z position in metres
0x0018 - float world-X position in metres
0x001C - float actual velocity in m/s
0x0020 - float world-Y velocity in m/s
0x0024 - float world-Z velocity in m/s
0x0028 - float world-X velocity in m/s

0x002C - float ?
0x0030 - float ? roll *
0x0034 - float ?

0x0038 - float ?
0x003C - float ? pitch *
0x0040 - float ?

0x0044 - float ? suspension travel front left?? *
0x0048 - float ? suspension travel front right?? *
0x004C - float ? suspension travel rear left?? *
0x0050 - float ? suspension travel rear right?? *

0x0054 - float ?
0x0058 - float ?
0x005C - float ?
0x0060 - float ?

0x0064 - float velocity rear left wheel in m/s
0x0068 - float velocity rear right wheel in m/s
0x006C - float velocity front left wheel in m/s
0x0070 - float velocity front right wheel in m/s
0x0074 - float throttle 0 to 1
0x0078 - float steering in quarter turns (90°), -1.0 = 90° to the left, 1.0 = 90° to the right
0x007C - float brakes 0 to 1
0x0080 - float clutch
0x0084 - float gear 0 Neutral, 9 Reverse, forwards speeds counting from 1
0x0088 - float lateral acceleration in g
0x008C - float longitudinal acceleration in g
0x0090 - float lap counting from 0 (first lap = 0)
0x0094 - float RPM /10

Как видите пакет пока до конца не расшифрован... Но уже того, что есть вполне достаточно для сима...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Ale » 20 ноя 2012, 21:39

Итак - Третья часть "Марлизонского балета"



Death_Morozz писал(а):Приборную панель для симулятора

Чем не приборная панель? Да, нужен планшет андроидный. Но чем дальше тем их будет больше Изображение

Сначала сел было сам писать дашборд, но потом нашел в сети вот это
http://appbrain.com/app/lfs-dashboard/com.hwk.lfsdashboard

Совершенно даром. Не будет устраивать, можно и вот это за 200 рублей прикрутить:
https://play.google.com/store/apps/details?id=com.sensadigit.dashmeterforf1dirt&hl=ru
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение Death_Morozz » 20 ноя 2012, 22:24

Чем не приборная панель? Да, нужен планшет андроидный. Но чем дальше тем их будет больше

А как-же кастомы и рукоблудиеделие?
Хочешь сделать хорошо - сделай это сам.
Изображение
Аватара пользователя
Death_Morozz
Фраерок
 
Сообщения: 2839
Зарегистрирован: 11 янв 2007, 23:35
Откуда: Ростов-на-Дону
Благодарил (а): 822 раз.
Поблагодарили: 312 раз.
Баллы репутации: 200
ТехнарьТехнарьТехнарь

Сообщение Ale » 20 ноя 2012, 22:40

Death_Morozz писал(а):А как-же кастомы и рукоблудиеделие?

Ну... У каждого свое рукоделие Да и кастомы никто не отменяет. Контролер с лампочками тоже программировать надо как и андроидный планшет.
Опять же давай пока рассматривать это как пополнение копилки знаний
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение null » 20 ноя 2012, 23:07

Безусловно кому понравится. Небольшой планшет счас без проблем можно дешево взять.
Здесь дело предпочтений, но меня лично больше к механизмам тянет Изображение Вот тахометр аналоговый уже полгода валяется, все никак код не допишу, еще и программатор блин .... но впереди зима длинная ))
Русский X-Simulator
Изображение
За пределами форума. Мой инстаграмм.
Аватара пользователя
null
SIMER
 
Сообщения: 1041
Зарегистрирован: 03 мар 2010, 18:42
Откуда: Ростов-на-Дону
Благодарил (а): 219 раз.
Поблагодарили: 160 раз.
Баллы репутации: 138
ТехнарьТехнарь

Re: Разработка программного обеспечения RU-SIMULATOR

Сообщение AlexVr » 22 ноя 2012, 22:12

А можно для простых смертных по пунктам - как настроить новый софт под игру и вывести на движки? Или видео. Или настройки для LFS, для примера?
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Re: Разработка программного обеспечения RU-SIMULATOR

Сообщение Ale » 23 ноя 2012, 23:27

AlexVr писал(а):А можно для простых смертных по пунктам - как настроить новый софт под игру и вывести на движки? Или видео. Или настройки для LFS, для примера?


Можно :D
Значит пока есть ДВА разных файла настройки. Первый (*.xml) - конфигурационный файл для настройки под ИГРУ. Для LFS он лежит в архиве с прогой. Настроенный.
Второй файл - с расширением *.spf (sim profile file) - в нем хранятся настройки для ОСЕЙ симулятора. В принципе, насколько я помню, для LFS он тоже лежит в архиве с игрой. Готовый. LFS_profile.spf.
И тот и другой файл можно загрузить из меню, лучше сначала xml, затем spf.

Собственно и все, можно запускать игру LFS (не забываем настроить в cfg.txt секции OutSim и OutGauge - IP 127.0.0.1 и порты 20000 и 20001)
После запуска игры запускаем прогу и жмем в ней кнопку "START".

Настройка профиля для симулятора (доступны пока ТРИ оси) находится на закладке "Profile". Там есть страницы для трех осей (A01, A02, A03)
Для каждой из оси можно собрать "микс" из 4-х входных параметров (типа Accel, Roll, Pitch) из входных данных.
Для каждого из параметров можно задать последовательность обработки сигнала, прежде чем он попадает в "микс". Последовательность редактируется в виде строки,
в которой последовательно располагаются "математические операторы". На 4-й странице этой ветки я коротенько их описываю.

Собственно остается только настроить формат вывода. Там для этого есть специальная строчка "Template" (шаблон). И с момента включения галочки "Send" данные начинают
посылаться на порт. Настройка порта - в меню

вот как-то так
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Разработка программного обеспечения RU-SIMULATOR

Сообщение AlexVr » 26 ноя 2012, 21:18

Что-то не получается. Циферки во всех вкладках бегают. Порт всего 1. На контроллере 0 эмоций, соответственно двигатели молчат.
Как проверить посыл данных на контроллер? И еще как мне инвертировать одну ось?
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Re: Разработка программного обеспечения RU-SIMULATOR

Сообщение Ale » 26 ноя 2012, 21:21

AlexVr писал(а):Что-то не получается. Циферки во всех вкладках бегают. Порт всего 1. На контроллере 0 эмоций, соответственно двигатели молчат.
Как проверить посыл данных на контроллер? И еще как мне инвертировать одну ось?

Галочку Send активировал? Даже если порт один его тоже надо настроить.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Пред.След.

Вернуться в X-SIMULATOR и RU-SIMULATOR & SimTools

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20

cron
x

#{title}

#{text}