Информация: Уважаемые посетители! В течение нескольких месяцев на форуме существовала проблема с регистрацией новых пользователей, о которой администрации стало известно недавно. Если вы ранее пытались зарегистрироваться на форуме, но не получили на ваш e-mail письмо с ссылкой для подтверждения регистрации, просим вас зарегистрироваться повторно. Приносим извинения за доставленные неудобства. Если вы все еще испытываете проблемы с регистрацией на форуме, обратитесь за помощью на e-mail: mr.angelo@railroadsim.net

Кто владеет С++ / С# , коллеги? Нужна помощь

Другие вопросы и проблемы разработки дополнений

Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение Skif » 25.09.2015, 16:17

Ребята, предлагаю внести ощутимую, но не обременительную помощь в развитие будущих проектов отечественных локомотивов, что бы с ними не случилось.

Точнее, давайте вместе доведем до ума тему управления "сложноскриптованными" отечественными локами , в том числе с пульта.

Ситуация: есть опен-соурсный проект TS Helper, который позволяет выводить на "консоль" в стиле МСТС (цветной шрифт на прозрачном фоне, в левом нижнем углу экрана) параметры локомотива, которым управляет игрок. Данная штука имеет следующие преимущества перед дефолтной:

- занимает меньше места на экране и не столь назойливая.
- умеет показывать не только дефолтные контролы, но и любые виртуальные (точнее - те, "ячейки" под имена которых зарезервировал автор - читай ниже) и скриптовые
- позволяет задавать ряду параметров свои единицы измерения и пересчитывать телеметрию в них, как множителем, так и функционально.
- именно в связке с этой утилитой ПО и железо, которое собрали мы с коллегами, позволяет работать с RW с пультом управления локомотивом, как железным, так и виртуальным на отдельном мониторе.


Теперь, собственно, что требуется сделать:

Программа Криса умеет выводить в "оверлей" (в консоль то есть на главном мониторе) только те контролы, которые сам Крис выбрал из файла-лога, формируемого скриптом. А также скрывать лишние из них настройками скрипта.

ОДНАКО! Она НЕ УМЕЕТ выводить ЛЮБЫЕ СБРОШЕННЫЕ В ЛОГ параметры. Т.е. если из скрипта в лог послан "пользовательский" контрол, который Крис не предусмотрел, в лог он пишется (и наше железо и виртуальный пульт его обрабатывают, что самое главное!) , но в оверлей этот параметр не попадает. Также нельзя изменить единицы измерения (проценты, например), ряду системных параметров - например, контроллеру. Но если бы работал вывод пользовательских, можно скрыть системный контрол и показать пользовательский, выводящий не проценты, а номер позиции контроллера.

Кто может дописать по имеющимся исходникам код программы-оверлея так, чтобы она выводила на экран все параметры, которые она найдет в текстовом логе ? Т.е. если в ней есть контрол WaterTemp и его значение, она выведет на экран эту строчку в том порядке, в котором параметры сброшены в лог.

Кроме того, программа имеет ряд ключей запуска, скрывающих ненужные элементы (можно скрыть часы, скрыть часть телеметрии и т.п.) . Важно их не поломать.


Полагаю, лучшей наградой тому, кто заинтересуется, будет возможность получить мощный инструмент управления локомотивами в RW - как от клавиатуры/мыши, так и от пультов. От себя предоставлю все исходники проекта и расскажу, как собрать пульт при желании - что уже сэкономит вам около 100 зеленых американских бумажек. Кроме того, замечу, что мой ТУ7А и все будущие локомотивы в любом случае будут контролироваться либо через TS Helper, либо через виртуальный пульт, если хелпер никто допиливать не будет. Для пульта понадобится второй монитор. А дефолтный HUD для управления машиной малопригоден.

Добавлено спустя 38 минут 47 секунд:
Более точная постановка задачи:

- Программа считывает из лога только значения переменных, ключевые имена которых ей знакомы.

- Имена двух типов: Name и NameUnits , т.е.

AirBrakePipeUnits: Atm
LocoBrakeCylinderUnits: Atm
MainReservoirUnits: Atm
WaterTempUnits: C
TrainBrakeCylinderUnits: Atm
EqReservoirUnits: Atm
Units: K
AirBrakePipePressure: 5.1021199226379

Все переменные, имя которых заканчивается на Units, несут значения единиц измерения одноименных (не всегда) переменных. Так, например

AirBrakePipePressure: 5.1021199226379 - это давление в ТМ в тех единицах, в которых настроен контрол в игре. У меня это BAR, а BAR это практически 1.01 Атм.
AirBrakePipeUnits: Atm - а это единица измерения предыдущего параметра, то, что текстом выводится после цифры 5.1021199226379 в оверлей.

В оверлее будет строка:

Brake Pipe : 5.1 Atm - вот здесь тоже неудобство. Автор переименовывает часть переменных в оверлее, вместо того, чтобы использовать имена из лога. В лог можно вывести параметр под любым удобным именем. Например, вывести сразу:

TM Press: 5.1021199226379
TMPressUnits: Atm

После обработки получим в игре:

TM Press : 5.1 Atm

ИТОГО:
Нужно, чтобы программа считывала ВСЕ имена параметров из кода, группировала их с одноименными но с ключевым словом Units в названии, и выводила на оверлей. Можно по вкусу добавить группировку в блоки, для этого можно использовать строку из прочерков в логе или еще что-нибудь. Сама программа делит органы управления (только известные автору) и прочие контролы на два блока.
Skif
 
Сообщения: 2987
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 288 раз.
Поблагодарили: 843 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение kachsheev » 25.09.2015, 19:08

В принципе, плюсы знаю на хорошем уровне.
Можно ссылку на сам проект?
Мечта идиота - писать программы и скрипты для всего, что движется и не движется, для TZ и RW
kachsheev
 
Сообщения: 15
Зарегистрирован: 10.03.2011, 00:41
Откуда: Санкт-Петербург
Благодарил (а): 23 раз.
Поблагодарили: 3 раз.
Играю в: Auran Trainz
Роль: Пассажир :)
Имя: Антон

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение Skif » 26.09.2015, 00:03

На UKTS форуме можно найти тред. И погуглить TS Helper.

Все же, что необходимо для работы с ним, можно взять напрямую у меня. Или требуется ссылка на проект пульта? Ссылок пока нет за отсутствием других образцов кроме нашего. Единственный в мире полнофункциональный (работает как на ввод, так и на вывод данных) пульт для Train Simulator. Как то так! И его нужно довести до ума. Точнее, пульт работает и так на ура, нужно позаботиться о простых юзерах, которые будут водить локи с клавиатуры и мышки. Кстати, первыми весь ад почуют машинисты ВЛ10, если он когда-либо выйдет - там скрипты еще навороченнее, чем в моей семерке, так как там и автоведение, и КЛУБ, и прочие плюшки широкой колеи. Так что нужно делать костыль, польза будет всем.
Skif
 
Сообщения: 2987
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 288 раз.
Поблагодарили: 843 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение BooYa » 26.09.2015, 05:05

Я чот недопонял. Твои локи, без пульта или второго монитора, значиться, не поводить нормально?
Изображение
Аватара пользователя
BooYa
 
Сообщения: 2225
Зарегистрирован: 24.01.2010, 16:30
Откуда: Екатеринбург
Благодарил (а): 637 раз.
Поблагодарили: 1734 раз.
Играю в: RailWorks
Роль: Разработчик
Имя: Андрей

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение xrds2009 » 26.09.2015, 13:50

BooYa писал(а):Я чот недопонял. Твои локи, без пульта или второго монитора, значиться, не поводить нормально?


Это для гуру с пультами)))...
Хотя тоже есть мыслишка о пульте...
xrds2009
 
Сообщения: 878
Зарегистрирован: 25.04.2013, 06:51
Благодарил (а): 362 раз.
Поблагодарили: 172 раз.
Играю в: RailWorks
Имя: Даниил

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение Skif » 26.09.2015, 22:38

BooYa писал(а):Я чот недопонял. Твои локи, без пульта или второго монитора, значиться, не поводить нормально?



Пока - да, но это касается только внешних камер. Так как не отображается состояние не дефолтных органов управления. Из кабины, разумеется, водить можно и нужно. Но нужно озаботиться удобством для всех нас - у ВЛ10 те же проблемы, и предлагаемым мной путем их можно успешно решить. У ТУ7А плохо видны показания манометров воздуха - мелкие они, так что мне HUD необходим как воздух. Точнее, вам необходим - я и с пульта проеду.

Так что жду помощи. Самому ради одного проекта ставить студию и вспоминать Си ой как тяжко. А тем более в вопросах чтения текстовых файлов, с чем я не сталкивался.

Добавлено спустя 2 минуты 50 секунд:
xrds2009 писал(а):
BooYa писал(а):Я чот недопонял. Твои локи, без пульта или второго монитора, значиться, не поводить нормально?


Это для гуру с пультами)))...
Хотя тоже есть мыслишка о пульте...



На самом деле, с пульта управлять значительно проще, чем другими средствами в игре. Самое главное - не нужно вращать камеру в кабине, как и в реальной жизни, находя рукоятки на ощупь.

Самый простейший пульт можно собрать из saitek-овских модулей за достаточно небольшие деньги, плюс клавиатура или игровая консоль для кнопок. Суть не в том, чтобы каждый обязательно собирал себе железный пульт, можно использовать и простые джойстики. Но если вы хотите, чтобы у вас работала индикация и приборы, нужно строить железяку. Пайка не требуется, только закупить нужные модули и все правильно соединить.
Skif
 
Сообщения: 2987
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 288 раз.
Поблагодарили: 843 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение maestro » 27.09.2015, 00:09

Посмотрел программу (исходник). На вид вроде не сложно. Могу попробовать сделать на следующей неделе.
maestro
 
Сообщения: 243
Зарегистрирован: 18.03.2011, 15:13
Благодарил (а): 0 раз.
Поблагодарили: 137 раз.
Играю в: RailWorks
Роль: Разработчик
Имя: Виталий

Re: Кто владеет С++ / С# , коллеги? Нужна помощь

Сообщение Skif » 02.10.2015, 11:02

Напиши предварительно мне, пожалуйста - есть конкретные предложения, как сделать так, чтобы было удобнее.

Автор оригинала (Havner) от подобного апдейта отказался - ему не нравится мысль, что все контролы имеют разные единицы измерения. Предлагаю забить и написать на его коде собственную версию и использовать в дальнейшем исключительно с нашими машинами (ну, и опционально с зарубежными, используя штатные инструменты для патча, конечно).

В настоящий момент у меня готова машинка (ТУ7А), которая выдает несколько нестандартных контролов в лог. Можем тестить на ней.
Skif
 
Сообщения: 2987
Зарегистрирован: 01.10.2009, 17:42
Благодарил (а): 288 раз.
Поблагодарили: 843 раз.
Блог: Просмотр блога (2)
Имя: Дмитрий


Вернуться в [RW] Другие вопросы

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

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