Страница 51 из 52

Русская сигнализация для Railworks

СообщениеДобавлено: 18.03.2013, 09:27
i2GR
Версия 0.7a2 от 14.03.2017 (альфа под тест альфы ЧС2)
rwp с тестовым маршрутом
zip только пак

Zip-Архив надо скачать (на g.диске будет пиктограмма сверху страницы). и распаковать в ".../railworks/Assets/RailroadSim/RailSignals/", предварительно все оттуда удалив.

Мануал
(в паке, естественно, также присутствует в папке Manuals/RailroadSim, файл RSv07)
Изображение

Изменения по сравнению с версией 0.6
Исправления обнаруженных ошибок.
Изменения структуры сообщений по сравнению с Rail Signals v0.6 для реализации локомотивной сигнализации
Изменение назначения полей Approach Control, (Limited Yellow ни на что не влияет) с корректировкой скриптов.
Новые маркеры Rail Signals Marker Shift с двумя и тремя линками.

Обратная связь
I. При проблемах в работе сигнализации просьба свои вопросы адресовать с приложением скриншотов и видео.
II. В большинстве же случаев, связанных с процессом работы лучше сразу делиться картой и сценарием, чтобы можно было воспроизвести глюк и быстро понять, что происходит и как исправить.

Пара полезных ссылок для начинающих и не только
О системе нумерации светофоров
ИСИ
РУ-30-80 (вещь старая, но полезная, показывающая насколько мы далеки от идеала)
Дополнение к РУ-30-80
Перевод 3.01 Signal Setup And Scripting

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.12.2018, 17:25
Света
Обозначения светофоров - это всего лишь декорация. Поэтому на этот вопрос ответить затруднительно.

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 28.05.2019, 08:54
Mikhail_72RUS
le Sandro писал(а):Удалите сигналку полностью ( в т.ч. почистив каталоги). И поставьте заново через rwp. Мне помогло. А, еще кеш почистить надо.

Ну я удалял сигналку, потом ставил через rwp и кеш почистил, но это не помогло. Тут либо сигналка глючит так, либо кривая расстановка оных. На других маршрутах нормально работают.

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 28.05.2019, 20:31
Moss®
Mikhail_72RUS писал(а):Тут либо сигналка глючит так, либо кривая расстановка оных.


Светофор НМ45

Миша, скрин из твоей сценки, где у тебя маркер даёт 2ТАБ и ты получаешь БЕЛЫЙ
Изображение

В сценарии свободной поездки без ботов:
жму 2ТАБ из красного состояния, путь не ведёт за станцию, а только проходит несколько стрелок = БЕЛЫЙ
Изображение

переключаю стрелки на правый путь за станцию в направлении ТУЛЫ, жму 2ТАБ из белого состояния = ЗЕЛЁНЫЙ
Изображение

переключаю стрелки на путь за станцию в направлении БОБРИК ДОНСКОГО = ЖЁЛТЫЙ
Изображение


Добавлено спустя 18 минут 51 секунду:
Я бы поставил вопрос иначе:
Почему 2ТАБ дают белый? Как там скрипт вообще отрабатывает?
Белый должен по 1ТАБ загораться, разве нет?

В старых своих сценариях я экспериментировал и ставил 2 маркера, один за другим с разницей в 2 секунды, которые 2ТАБ дают:
- иногда везло, и после белого загорался зелёный
- иногда не везло и после белого светофор гас совсем

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 28.05.2019, 21:00
Света
Offtopic :
Moss® писал(а):Почему 2ТАБ дают белый?

Из-за неверного решения обработчика. Одна и та же ошибка, по всей видимости, кочует из версии в версию. Второй ТАБ принимается в тот момент, когда скрипт уже частично выполнил "маневровую" ветку, из-за этого создается "рулетка", так как результат непредсказуем; а непредсказуем он из-за того, что момент прерывания "маневрового" обработчика зависит от FPS, времени между обращениями, загруженнности "диспетчера" (следовательно - количества ботов), обрабатываемой сети, количества линков на пересылке, глубине запроса к стрелкам, т.е., этот момент зависит практически от всего. Поэтому искать закономерности - бессмысленная, ИМХО, трата времени.
Moss® писал(а): Как там скрипт вообще отрабатывает?

Неправильно.
Moss® писал(а):Белый должен по 1ТАБ загораться, разве нет?

Да.

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 28.05.2019, 21:08
Moss®
Света
Получается, что лучше бы двумя разными кнопками обрабатывались маневровый и поездной режимы, например: 1ТАB - поездной, 1Shift - маневровый ?

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 28.05.2019, 21:16
BooYa
Offtopic :
Moss®
Разными кнопками невозможно. Я со Светой это обсуждал, пока свою делали. TAB - это системный вызов, и заменить другой кнопкой его не выйдет, т.к. этот вызов отправляется не локомотивом, а уходит напрямую с клавиатуры в движок.

Но, к слову. В нескольких ТАБах нет ничего критичного. В нашей сигналке, например, используется 3 вызова: 1ТАБ, 2ТАБ, 3ТАБ, и всё работает прекрасно. И открывает нужными огнями, и промежуток для нажатия кнопки достаточен, чтобы не дрочить кнопку со сверхсветовой скоростью.

Как Света доскриптует всё, что нужно для демонстрации и скинет мне тестовый полигон, сделаю стрим, чтобы не быть голословным.

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 29.05.2019, 01:55
i2GR
дабл ТАБ даст белый при неправильной линковке. а при правильной (то о чем Света писала) только если не более 2 FPS
Под неправильной линковкой надо понимать не только тот выходной светофор, который открывается, но и окружающие

Re: Набор сценариев от Mikhail_72RUS

СообщениеДобавлено: 29.05.2019, 11:17
Moss®
i2GR писал(а):дабл ТАБ даст белый при неправильной линковке

не понятно: даст белый в любом направлении движения?
2ТАБ на этом светофоре даёт не только белый, даёт и зелёный, и желтый

я не отрицаю, может где линк какой-нибудь и залез слегка на стрелку

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.05.2019, 15:30
Света
i2GR писал(а):только если не более 2 FPS

Надо всего лишь изменить принцип подсчета ТАБов.
Чтобы приняв первый ТАБ, светофор не начинал выполнять команду, а ждал, не придут ли ещё другие ТАБ-ы, которые можно рассматривать как один цельный запрос.
Я не знаю, актуально или нет, но на всякий случай покажу свое решение, может, что-то пригодится из него :). У меня использован именно такой принцип - пока не пройдет заданное время от последнего запроса, светофор ничего не делает. Каждый запрос обновляет таймер, поэтому количество ТАБ-ов не ограничено, как и время, за которое их надо сделать.

Итак, основная функция счетчика запросов:
Код: Выделить всё
function RequestSPAD (mode)
   if mode == "ctrl" then
      return gRequest.Mode
   elseif mode == "set" then
      if gRequest.Setting then
         gRequest.Setting = false
         gRequest.Activation = false
         gRequest.Mode = gRequest.Count
         gRequest.Count = 0
         if gRequest.Mode == 1 then
            -- Ветка отработки 1 ТАВ
         elseif gRequest.Mode == 2 then
            -- Ветка отработки 2 ТАВ
         elseif gRequest.Mode == 3 then
            -- Ветка отработки 3 ТАВ
         end
      end
   elseif mode == "reset" then
      gRequest = {Timer = 0, Mode = 0, Count = 0, Activation = false, Setting = false}
   end
end

Эта функция запоминает сам факт запроса, количество ТАБ-ов, по требованию RequestSPAD ("ctrl") отчитывается о текущем состоянии и сбрасывается в исходное состояние по команде RequestSPAD ("reset").

Инициализируется в функции Initialise ():
Код: Выделить всё
function Initialise ()
   -- Script global variables
   gRequest = {Timer = 0, Mode = 0, Count = 0, Activation = false, Setting = false}
end

Для отсчета времени в функции Update (time) прописан контроллер:
Код: Выделить всё
function Update (time)
   if gRequest.Activation then --  Если работает счетчик запросов SPAD
      if Call ("GetSimulationTime") - gRequest.Timer >= 0 then
         gRequest.Setting = true
         RequestSPAD ("set")
      end
   end
end -- end function Update

А при получении запроса ТАБ в функции ReactToSignalMessage (message, parameter, direction, linkIndex) активируется контроллер запросов и происходит подсчет принятых ТАБ-ов. Здесь же установлена задержка, которую будет ожидать скрипт после приема очередного ТАБ-а, перед тем, как выполнить запрос:
Код: Выделить всё
function ReactToSignalMessage (message, parameter, direction, linkIndex)
   if message == REQUEST_TO_SPAD and (RequestSPAD ("ctrl") == 0 or (RequestSPAD ("ctrl") == 1 and gBlockState == "BLOCKED")) then
      gRequest.Timer = Call ("GetSimulationTime") + 3   -- Перезапуск времени, истекшего с момента запроса. Реакция на запрос будет через 3 секунды
      gRequest.Count = gRequest.Count + 1            -- Счетчик количества запросов. То есть, "количества ТАВ-ов"
      gRequest.Activation = true                  -- Активация блока обработки системы запросов в Update
   end
end

Если в процессе работы скрипту надо выяснить, был ли запрос, используется команда RequestSPAD ("ctrl"). Возвращает количество принятых ТАБ-ов или 0, если запросов не было (в формате "number"). Если надо сделать сброс, используется команда RequestSPAD ("reset") (ничего не возвращает).

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 30.05.2019, 01:18
i2GR
Как всегда, "ничего" не понял, но очень интересно" :D

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 28.08.2021, 16:15
UnblackMAXmetal
У меня стоит сигналка от DSB. Я сделал рабочие светофоры ПАБ от RRS. ПАБ(зеленый и красный), ПАБ(зеленый и желтый) залинковал на подземные пути со стрелкой, вагоном и добавил подземный проходной А3(к ПАБу зеленому с красным) и А4(к ПАБу зеленому с желтым). Я переключаю светофоры через 2D-карту щелкая по стрелке. На карликовые ПАбы доноров не хватило)). Оставлю ссылку на измененные файлы с инструкцией(требуется сигналка от RRS) https://mega.nz/folder/uUsXwYbY#1LZjdb5kosSR1VQ1H9UlVg

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.08.2021, 22:46
Света
Мне кажется, никто не понял, как и зачем это все применять Изображение

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.08.2021, 23:27
UnblackMAXmetal
Рабочие светофоры ПАБ. Сигналка RRS и DSB конфликтуют, значит линки на отдельные пути.Возможно, если сигналка только RRS, то тоже придется переносить линки. Сценарии от входных светофоров, но в ручном переключении стрелки могут быть выходными, проходными(зеленый-красный) или предвходными(зеленый-желтый).

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.08.2021, 23:45
Света
А, то есть, это, получается, больше как декоративный элемент? Наверное, проще замутить светофоры ПАБ, в комплект DSB, правда, я не знаю их логику работы, да и спроса на них не было. Конфликтовать разные сигналки будут, это неизбежно.
В общем, суть идеи теперь понятна, спасибо за разъяснение Изображение

Re: Русская сигнализация для Railworks

СообщениеДобавлено: 29.08.2021, 23:50
le Sandro
2UnblackMAXmetal
Пожалуйста, не мешаем кислое с пресным.
Поток сознания здесь расшифровывать никто не будет.