Автор: | Света [ 27.10.2018, 22:47 ] |
Тема блога: | Заградительный светофор |
![]() Представляю вашему вниманию заградительный светофор. Версия - 1.0 Светофор умеет: - Находить общий язык с другими объектами инфраструктуры; - Читать программу, заданную сценаристом, в заданное время закрывать/открывать путь, отчитываться о проделанной работе через лог-файл; - Взаимодействовать с локомотивом игрока. ![]() Использование светофора при постройке маршрута Светофор имеет немного необычный формат реализации, а именно - является одной моделью, внешний вид которой настраивается с помощью подключаемых аттрибутов; а в связи с особенностями работы заградительных светофоров, линковка также немного нестандартная. Линковка светофора. Особенность работы заградительного светофора заключается в том, что при необходимости закрыть ограждаемый участок закрываются все обслуживающие его светофоры. Поэтому светофор оснащен двумя линками, один из которых (0) является рабочим и устанавливается традиционно, другой (1) - связным и используется для связи с другими светофорами группы. При установке линка 1 необходимо придерживаться одного принципа - этот линк должен быть после линка 0 другого светофора группы и направлен в ту же сторону. Линк 1 последнего светофора должен быть после линка 0 первого, закольцовывая таким образом обмен. Количество светофоров при этом не ограничено. ![]() Если ограждение осуществляет всего один светофор, то его линк 1 располагается после собственного линка 0. Обозначение светофора на литерной табличке. Вводится в левое поле Identity (на вкладке свойств светофора). Доступны литеры "П", "З" (верхний регистр) и цифры 0-9. Принцип ввода обозначения уже привычный по сигналке Игоря (ака I2GR). Единственное отличие - отсутствие в конце обозначения служебных символов (~ и т.п.) - их вписывать не нужно. Настройка внешнего вида светофора. По умолчанию светофор оборудован расположенной по центру головой, низко заканчивающуюся характерную окраску мачты (наклонные черно-белые полосы). Если необходимо изменить вид светофора, впишите в правое поле Identity (на вкладке свойств светофора) дополнительные атрибуты: -h (окраска мачты будет заканчиваться выше); -l (голова светофора будет смещена влево); -r (голова светофора будет смещена вправо); -b (светофор будет оборудован дополнительной большой соединительной коробкой). Атрибутом является сочетание дефиса и командного символа. Можно вписывать несколько атрибутов. Пример: -h-b - высокая окраска, распределительная коробка; -l-b - левое смещение головы, распределительная коробка; -h-b-r - высокая окраска, распределительная коробка, правое смещение головы Порядок и регистр написания атрибутов не имеют значения. Настройки вступят в силу после рестарта сценария. ![]() Задействование светофора в сценарии Так как в симуляторе не происходят события, при которых мог бы сработать заградительный светофор, единственный способ его использования - сценарный. Для решения этой задачи предназначен маркер, передающий команду светофору. Его необходимо устанавливать перед светофором, которым этот маркер должен управлять. Передаваемая команда вписывается в окошко вкладки, всплывающей при двойном клике по маркеру. Структура сценарной команды: "тип_команды-начало-конец-[атрибуты (опционально)]". Тип сценарной команды. В данной версии есть 2 типа сценарных команд - время и приближение. Для обозначения используются символы "t" и "a". "t" предписывает светофору закрыться/открыться в указанное время, "a" - закрыться при приближении состава в заданный промежуток времени и открыться, когда этот промежуток закончится. Начало/конец. Это время, когда светофор должен закрыться/открыться. Можно использовать два формата указания времени - задать конкретно время срабатывания, либо указать отсчет времени до срабатывания. Для того, чтобы указать время срабатывания, используется традиционный формат написания времени: "hh:mm:ss" (короткий вид - "mm:ss"). Прочитав такой формат написания, светофор будет ожидать наступления этого времени в игре, после чего отреагирует. Если же указать просто число (без разделителей), то светофор запустит обратный отсчет, по истечении которого сработает. Пример: 10:15:35 - светофор сработает в 10 часов 15 минут 35 секунд игрового времени 5749 - светофор сработает спустя 5749 секунд (1 час 35 минут 49 секунд) с момента активации команды. 25 - светофор сработает спустя 25 секунд с момента активации команды. Атрибуты предназначены для дополнительных настроек команды, к которой они приписаны. В данной версии возможны 2 атрибута: "-tab" и "-d(число)". -tab - атрибут, разрешающий игроку самостоятельно открыть закрытый светофор. Если снабдить команду этим атрибутом, игрок сможет открыть закрытый светофор в любое время. В противном случае запрос "TAB" будет передан дальше по маршруту. -d(число) - атрибут, позволяющий указать расстояние, на котором светофор отреагирует на приближающийся состав. Работает совместно с типом команды "a". Значение расстояния указывается после символа d. Диапазон значений - от 1 до 1250. Примеры команд: t-00:00:05-10-tab - закрыться по времени в 5 секунд после полуночи, через 10 секунд открыться, игрок может открыть "ТАВ"-ом; a-15:45:00-600-d56-tab - начиная с 15:45 в течении 10 минут (600 сек) отслеживать приближение состава к светофору. Если состав приблизился менее, чем за 56 метров (d56), закрыться. По истечении 10 минут от начала отслеживания открыться. Или раньше, если игрок сделает запрос "ТАВ". a-15-16:00:00 - через 15 сек после активации команды начать отслеживать приближение состава. Если состав замечен, закрыться (максимальное расстояние 1250 м), открыться (или прекратить отслеживание, если состава не было) в 4 часа вечера игрового времени. На запросы от игрока не реагировать. Кроме сценарных команд есть служебная команда "log". Приняв такую команду, светофор начнет писать лог-файл. Место расположения логов - папка Log в корневой папке игры. Название лог-файла - "Zagr_Signal - 'имя_светофора'". Если папки Log нет, её нужно создать. Лог начинает писаться с момента активации команды "log", поэтому рекомендую вписывать эту команду самой первой в окне управляющего маркера. Пример: log,t-00:00:05-10-tab log,a-15-16:00:00 Команды (как уже видно с предыдущего примера) пишутся через запятую, без пробелов. Количество команд не ограничено. Регистр не имеет значения. Каждая команда активируется после выполнения предыдущей. Пример: log,t-00:00:05-10-tab,a-15-16:00:00,t-01:25:05-01:45:00 ![]() Примечание: Из-за некоторой погрешности в отсчете сценарного времени возможно незначительное запаздывание/опережение в работе светофора. Воздействие светофора на ПС Согласно моим исследованиям, участие заградительных светофоров в работе АЛСН заключается в прерывании передачи кодовых посылок от светофора к локомотиву. Окончательного решения как именно это происходит (замыканием или разрывом рельсовой цепи) мне найти не удалось, но технически в любом случае результатом является потеря локомотивным дешифратором кодов. Кроме того, так как данный светофор не является частью основной сигналки, а лишь дополняет её, было принято решение делать его совершенно независимым, следовательно на сообщения АЛСН от сигналки он не воздействует. Поэтому светофор отслеживает перемещение ПС в своей зоне обслуживания и дает знать локомотиву, в какие моменты коды надо принимать, а в какие - нет. Сами же сообщения на локомотив поступают по прежнему. Исходя из этого, в обработчике кодов АЛСН локомотива была введена переменная, блокирующая поступающие сообщения непосредственно в дешифраторе. Для тех, кто пожелает воспользоваться этим решением и научить свой локомотив взаимодействовать с данными светофорами, даю написанные мной функции: Если у кого-нибудь возникнет желание написать собственный обработчик, то вот сообщения, передаваемые светофором: "FSA-Controllers:Zagrad:transfer:имя_светофора:длина_ПС:расстояние_к_ПС:состояние_светофора (2-закрыт)" - передается посекундно при закрытом светофоре. "FSA-Controllers:Zagrad:exit:имя_светофора:длина_ПС" - отсылается разово ПС, покинувшему отключенный блок-участок. Установка Светофор в игре. Скриншоты ![]() ![]() Данное дополнение разработано совместно с Андреем (ака BooYa), за что Андрею от меня огромная благодарность! Также выражаю благодарность: - Неизвестному (к сожалению) автору исходной модели с форума trainzup.com (если Вы автор, отпишитесь, пожалуйста); - Косте (ака радиомастер) (модель маркера); - Артёму (ака dison202,) (консультационная и не только помощь); - Александру (ака Sanek_KRSK) (ссылка на исходную модель). ![]() ![]() Дополнения оттестированы в свободном и стандартном сценариях. Если всё-же обнаружится какой-нибудь недостаток в работе, прошу сразу же сообщать для его устранения. Конфликтов с инфраструктурой не выявлено. Лог чист. Принимаются пожелания по добавлению новых команд/возможностей. Update: Данный мод представлен в финальной версии, обновлений и техподдержки не будет. Причина - не актуально. |
Автор: | semash [ 06.11.2018, 13:28 ] |
Света, что-то пошло не так ![]() http://lostpix.com/?v=2018-11-06_r6dc7a ... 4ydlf4.jpg |
Автор: | Света [ 07.11.2018, 08:55 ] |
Всё в порядке ![]() После запуска игры останется только одна голова, в зависимости от выбранной настройки. |
Автор: | semash [ 08.11.2018, 20:03 ] |
Спасибо! А то я испугался. |
Автор: | semash [ 21.11.2018, 13:31 ] |
Света, у меня в сценарии 7 поездов. Заградительные не работают( Думаю, что перегрузил трафиком сценарий. Подскажите, какое количество поездов необходимо добавлять в сценарий с русской сигнализацией, включая заградительные светофоры? |
Автор: | Света [ 22.11.2018, 02:22 ] |
"Не работают" - это очень широко, я не могу определить проблему с таким лаконичным описанием... Если это произошло в 64-битной версии TS2019, то проблема может быть в этом, так как уже не раз наблюдались сбои работы сигналки под этой версией. По поводу количества поездов - не могу сказать о каких-то ограничениях, кроме мощности компьютера и возможностей игрового диспетчера. Дима (ака Moss) вписывал в сценарии до 30 ботов, если не ошибаюсь, так что не думаю, что 7 поездов - это перебор, если, конечно, они не расположены в пределах одного блок-участка или маленькой станции. |
Автор: | semash [ 22.11.2018, 03:43 ] |
Спасибо! Я разобрался уже со светофорами. Просто он загорается не так как остальные и я просто не замечал этого. Он как бы без блеска что ли. 30 ботов. Ничего себе. Спасибо за информацию. У меня 2018. Я почитал про проблемы 2019. Наверное пока на 18 останусь. |
Автор: | Mikhail_72RUS [ 27.07.2019, 11:36 ] |
Огромное спасибо автору за рабочие заградительные светофоры. Можно в сценах какую-нибудь ситуацию разыграть, так что польза от них есть. ![]() |
Часовой пояс: UTC + 4 часа | |
Powered by phpBB © 2002, 2006 phpBB Group www.phpbb.com |
Blogs powered by User Blog Mod © EXreaction www.lithiumstudios.org |