Форум Trainsim  

Вернуться   Форум Trainsim > OpenRails > OpenRails - Об игре

Ответ
 
Опции темы Опции просмотра
Старый 06.10.2021, 12:01   #1
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию Сигнализация

В этой теме будут обсуждаться вопросы по сигнализациям в Open Rails.

Добавлено через 8 минут
Отныне, обсуждения сигнализаций для MSTS и Open Rails не будут переплетаться в теме в разделе MSTS , в Open Rails на сегодняшний момент уже достаточно отличий в работе программ, в том числе - по сигнализациям. Завтрашний день готовит нам дальнейший "уход" Open Rails от MSTS , возможность написания логики светофоров в С# и пр. Так что, кто отличает block_state () от TRAINHASCALLON_RESTRICTED() - дальнейшее обсуждение специфики Open Rails будем вести здесь и не бередить моск MSTS -овцам и ругаться незнакомыми словами.
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 06.10.2021, 12:15   #2
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Тогда надо тему переименовать в "Сигнализация ORTS".
Если там пойдут скрипты на C# - придется его изучать!
С чего начать-то?
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 06.10.2021, 13:26   #3
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Костя, тема в разделе Open Rails, понятно, что речь идёт об этом симуляторе. Так же, как и соответствующая тема в разделе MSTS не имеет этого уточнения. ИМХО.

Я начал с самоучителя в интернете. Идёт тяжело - я уже не мальчик, который "схватывает на лету", да и время - фактор немаловажный в этом вопросе - у меня его не много. Но, из того, что я понял на форуме у них, плюс к этому - самые азы синтаксиса, лично мне С# в ближайшее время "не грозит" - довольно скудный функционал (пока) при большом геморрое - скрипты в С# не обращаются к сигнальному объекту "напрямую", а через идентификацию (как в sigscr.dat обращаются к id_sig_XX(sigid). Более того, я просматриваю некие уже написанные скрипты для испанской TCS - способ передачи информации там - что-то типа логики сигнализации АРК для MSTS - обходные пути. Тем не менее, файл CsSignalScript.sc, в котором находится весь функционал С# скриптованной головы, верю, будет расширяться и пополняться. Возможно, со временем, он (функционал) меня заинтересует настолько, что я буду вынужден пойти туда. Речь, конечно, прежде всего, о маневровом, который должен зависеть от предыдущего входного для отделения маневрового режима от поездного. Но, есть и ещё, как я писал в параллельной теме, задачи, удовлетворительного решения которым, существующей логикой sigscr.dat я найти не могу. Маневровые светофоры на сегодняшний день у меня имеют всего один недостаток (но очень серьёзный): из-за поездной ситуации и положения стрелок "перед" сигналом, они могут ловить с оппозита переменную с перегона, которая ставит сигнальную голову поездной режим. Но, это - не только и не столько. У меня для sigscr.dat нет удовлетворительного решения на случай проезда красного (поавда есть идея прописать этот проезд в *.cvf, нарисовать текстуру АЛСН-светофора с красным и "закрыть" ею существующую, не знаю: насколько это возможно в 2d кабине, так что это - из области фантастики). Ещё одна проблема - потеря кодов на некодируемых путях (сегодня реализовано довольно топорно, не до выхода на перегон и не совсем, как в реале, а только там, "где это возможно"), и особенно - ПАБ - там просто тёмный лес. Заставить светофор аспектом, дающим белый на АЛСН остановить поезд невозможно, ставить дополнительный маркер перед основным светофором - путь в прошлое - поезда будут с платформ "подтягиваться" к закрытым сигналам, как в MSTS . С# сигнальный скрипт (в комплекте с TCS C# скриптом), возможно, решит эти проблемы для поезда игрока. Но мне нужна полноценная сигнализация и для трафика, с тем же количеством вариантов показаний и режимов, таймеров и гаснущих проходных светофоров, которые я имею сейчас на логике sigscr.dat
vicente вне форума   Ответить с цитированием
Старый 06.10.2021, 15:07   #4
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Заставить светофор аспектом, дающим белый на АЛСН остановить поезд невозможно,...
То есть если на аспект RESTRICTING прописать 0 км/ч - не получится? Я вроде тестировал, но результата не помню. Надо будет еще раз проверить.
С остальными показаниями для ПАБ проще - сигнальная точка из одной головы DISTANCE и нескольких NORMAL, каждая из которых имеет 2 аспекта - 0 и 2, и свою скорость - "открывается" при соответствующем DISTANCE-коде в РЦ. И регулирует скорость сервисов.
Цитата:
Ещё одна проблема - потеря кодов на некодируемых путях (сегодня реализовано довольно топорно, не до выхода на перегон и не совсем, как в реале, а только там, "где это возможно")
Есть такое дело, уже просили это сделать в моей сигналке, думаю...
__________________
next_state == 7;

Последний раз редактировалось КЕ; 06.10.2021 в 15:09.
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 06.10.2021, 16:19   #5
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Теперь по существу.
"Петлю" которую я сделал через танцы с бубнами здесь нужно придрочиться использовать очень осторожно. "Считалка" работает, но работает очень не стабильно, с разной скоростью при разных условиях. Я не могу понять от чего именно она зависит с точки зрения маршрута. То есть, понятно, что её скорость зависит от скорости "прогона" программы, но вот, отчего зависит сам "прогон" - я не пойму. На маленьком двухтайловом тестовом маршруте оно у меня "летает": чтобы получить 20 секунд я устанавливал 400. О своём "тяжелом" маршруте я писал в приведенном мной сейчас посте. Разница может быть в ФПС, количестве светофоров "на тайл", в общем количестве светофоров - я не могу знать. Кроме того, оно раз на раз срабатывает, или не срабатывает, или частично срабатывает и во время загрузки. Я пихаю его сейчас в качестве "компенсатора" timing trigger, который 100% не учитывается при загрузке игры. Логика такая: проверяю check_timing_trigger (1 секунда). Если результата нет - триггер не работает, значит игра загружается - обход условия. Если есть результат - игра идёт. Логическим элементом "и" добавляю к этому check_timing_trigger (нужное количество секунд для задержки открытия светофора) в условие (if) и получаю желаемый обход триггера при загрузке игры. Далее проблема заключается в том, что если в зависимость поставить только это - в эту самую первую секунду отсчёта триггера, сигнал открывается и сразу же перекрывается обратно. Но, и игрок и трафик в этот момент ловят ok to proceed ... и трафик поехал к светофору. Потому, чтобы задержать светофор в запрещающем аспекте эту самую секунду, пока не будет "взведен" триггер, я пихаю в условие через "или" эту порнографию свою петлю. Но, она тоже глючит при загрузке (на тестовом я сделал аналог for - 2 условия: начальное и конечное, поднимая значение с 0 до 7 - из-за табло, чтобы видеть, так, как в примере - "улетает" нахрен вверх или вниз, я и так и так "крутил... так вот, на тестовом при начале игры стоит AI перед сигналом, а переменная эта добежала с нуля до 5 и держится, а уже в игре доходит до своих 7). Потому сделал ей "контр-петлю", которая вообще не обнуляется - игра пошла - она 7 и всё. В условие её через "и" к первой петле, как "противовес". Смысл - расчет на то, что одинаковые петли и глючить будут одинаково. Есть глюк - контр-петля не дошла до семи - условие обходится и светофор (невидимо при загрузке) переключается, нет глюка - не страшно - оба условия выполняются и светофор будет открыт с задержкой в 7 "тактов". Сейчас тестирую загрузки Timetable в разных точках с этим механизмом - вроде, все тестовые светофоры не "заклинивает".

Добавлено через 50 минут
Цитата:
Сообщение от КЕ Посмотреть сообщение
То есть если на аспект RESTRICTING прописать 0 км/ч - не получится? Я вроде тестировал, но результата не помню. Надо будет еще раз проверить.
С остальными показаниями для ПАБ проще - сигнальная точка из одной головы DISTANCE и нескольких NORMAL, каждая из которых имеет 2 аспекта - 0 и 2, и свою скорость - "открывается" при соответствующем DISTANCE-коде в РЦ. И регулирует скорость сервисов.
Попробуй. STOP_AND_PROCEED не "держит" с 0. Но с RESTRICTING может быть исключение, "унаследованное" каким-либо образом из MSTS - если разрабы не разобрались или упустили момент что в MSTS только этот аспект заставлял AI слушаться speedkph в конфигурации. Но, с моей точки зрения, проблема не только и не столько в наличии или отсутствии остановки, а в том, что в MSTS AI не только останавливался на STOP_AND_PROCEED со скоростью 0, такой сигнал там блокировался Deadlock -ом. Чего в Open Rails не происходит. Даже если случится чудо и RESTRICTING будет останавливать AI, будет ли поездная ситуация разруливаться Deadlock на такой сигнал?
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Старый 06.10.2021, 16:41   #6
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Олег, а где есть описание, как вообще Deadlock работает?
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 06.10.2021, 17:43   #7
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Здрямс
Я описывал его 18 раз. Последний раз, помнится, га прошлой неделе в теме в разделе MSTS . До этого - в той же теме и у Игоря. Ищи. Есть объяснение и в Мануале. Там просто всё. Но, при написании сигнализации, естественно, нужно знать, что это... А то можно прописать так, что с одной стороны поезд будет стоять из-за Deadlock , а с другой - из-за скрипта. И нихрена никому не откроется.

Положу сюда, под спойлер пример С# скрипта готового сигнала. Понимаю его, пока, только интуитивно, может, в общих чертах. " Учиться, учиться и учиться " (Гриб)
Скрытый текст:

using System.Collections.Generic; namespace ORTS.Scripting.Script{ public class BAPR_AR60VL : SignalScript { public BAPR_AR60VL() { } public override void Update() { List<string> nextNormalParts = NextNormalSignalTextAspects; if (AnnounceByA(nextNormalParts, true, false)) { MstsSignalAspect = Aspect.Approach_1; TextSignalAspect = "FR_A"; } else if (AnnounceByRCLI(nextNormalParts)) { MstsSignalAspect = Aspect.Approach_3; TextSignalAspect = "FR_RCLI"; } else { MstsSignalAspect = Aspect.Clear_1; TextSignalAspect = "FR_VL_INF"; } DrawState = DefaultDrawState(MstsSignalAspect); } }}
vicente вне форума   Ответить с цитированием
Старый 06.10.2021, 19:57   #8
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Протестил в сценарии - RESTRICTING не останавливает сервисы, если в конфиге указана скорость 0 км/ч. Трафик пролетает сигнал со скоростью, установленной ограничениями на участке. То есть получается, что скорость как бы и не задана.
Я проехал светофор и встал за ним метрах в 70. Трафик проехал сигнал RES и остановился метрах в 10 от моего хвоста. То есть происходит то же, что и на S.A.P.
Попробовал задать 10км/ч - траф послушно полз с этой скоростью до следующего светофора (Ж, 60 км/ч). Который прошёл всеми вагонами и стал разгоняться.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 06.10.2021, 21:17   #9
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Сделай то же самое , только задай 20 км/ч. И посмотри на трафик

Добавлено через 1 минуту


Добавлено через 7 минут
Потом можешь 60 поставить. И следи: как AI проезжает сигнал

Добавлено через 13 минут
И... да! В Open Rails STOP_AND_PROCEED и RESTRICTING вытаскивают ездючину из режима Auto Signal и запихивают её в режим Auto Node - движение "по "нодам" - секциям пути
vicente вне форума   Ответить с цитированием
Старый 06.10.2021, 21:24   #10
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Ну да, траф проезжает сигнал и останавливается у самой стрелки, ждя, пока я уеду за следующий светофор.
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Старый 06.10.2021, 21:27   #11
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Дай ему волю! Стартуй его чуть позже и поставь на RESTRICTING скорость побольше
vicente вне форума   Ответить с цитированием
Старый 06.10.2021, 22:50   #12
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

Стартую с главного пути, трафик с бокового через 2 мин. После выходного светофора разгоняется, выходит на гл. путь, проезжает проходной сигнал RES и тормозит около меня. Я уезжаю - ждёт, когда уйду за след. сигнал, и всё повторяется. Все светофоры с аспектом RES ("заклинил реле в шкафах")
__________________
next_state == 7;
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 06.10.2021, 22:57   #13
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Не сбрасывает скорость при проезде сигнала?

Добавлено через 1 минуту
По идее, он должен "сяпать" за тобой даже без сигнала. Как только ты отдалишься на какое-то расстояние. У меня в депо так вся "канава" двигается
vicente вне форума   Ответить с цитированием
Старый 06.10.2021, 23:05   #14
КЕ
Разработчик
 
Аватар для КЕ
 
Регистрация: 05.04.2011
Адрес: Малыгинская эстакада
Сообщений: 3,969
Вы сказали Спасибо: 8,612
Поблагодарили 2,508 раз(а) в 1,131 сообщениях
КЕ стоит на развилке (репутация по умолчанию)
По умолчанию

На светофоре разгоняется. А потом тормозит.
В одном из тестов стартовали с разных путей, на выходных - RESTRICTING. Я останавливался в начале перегона, он "догонял" меня, а потом я уходил дальше. Через километр стоит проходной (APPROACH_2 или CLEAR_1) - пока я не проехал всеми вагонами этот проходной, трафик стоял и ждал.
Ну в общем, понятно.
Выводы:
1. RES в качестве запрещающего (для ПАБ) не годится, остановка только STOP-ом.
2. Если в sigcfg на аспект RESTRICTING указана скорость 0 км/ч - сервис презжает сигнал со скоростью, установленной для всего маршрута в *.trk, или местными путевыми ограничителями скорости.
3. При проходе сигнала с ограничением скорости, указанным в sigcfg на аспект RESTRICTING, трафик будет ехать с этой скоростью до следующего светофора. Далее скорость регулируется значениями в аспектах и путевыми ограничениями. Трафик увеличивает скорость после прохода сигнала всеми вагонами.
4. Если на выходном светофоре самый запрещающий сигнал - RESTRICTING, трафик проезжает его и останавливается у первой (пошерстной) стрелки.
__________________
next_state == 7;

Последний раз редактировалось КЕ; 07.10.2021 в 11:12.
КЕ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо КЕ за это полезное сообщение:
Старый 07.10.2021, 01:23   #15
vicente
Заблокирован
 
Регистрация: 06.10.2007
Сообщений: 1,765
Вы сказали Спасибо: 899
Поблагодарили 1,213 раз(а) в 730 сообщениях
vicente стоит на развилке (репутация по умолчанию)
По умолчанию

Я рассказывал когда-то о сигнальных головах типа SPEED (вообще, надо будет потихоньку дублировать сюда релевантные сообщения из MSTS овской темы - там очень много букафф, переписывать ой-как не хочется, а инфа может быть ценной). Я естественно рано, было обрадовался: мол вертел я теперь всю логику на... Прикручу это дело дополнительными головами к NORMAL-ам и буду в шоколаде. Но, хрен там: если я устанавливаю скорость 0 на этот SPEED - AI пролетает светофор с установленной. Причём, не важно, какой там аспект - даже 0! Но, со SPEED -ами придётся ещё разбираться: что с ними можно делать, а чего нельзя. Когда я думаю о новой логике, этим головам готовится не последняя роль..
vicente вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо vicente за это полезное сообщение:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЖД сигнализация Тёма Железные дороги 2859 17.12.2023 01:25
Сигнализация метро m@shinist TrainZ - Маршруты и сценарии 10 09.03.2014 22:20
Что такое сигнализация KDA? YuriA TrainZ - Маршруты и сценарии 73 21.10.2012 10:50
Жд сигнализация Antikiller TS - Маршруты и сценарии 47 01.03.2012 20:11


Текущее время: 20:24. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?