Сигнализация для метро, в основе которой лежит раздельный подсчёт количества свободных рельсовых цепей и блок участков. Разрабатывается в первую очередь для казанского метро, но задумана универсальной. Маршрутизация предполагается децентрализованной (одна станция - один объект "пост централизации").
Реализует сразу 4 типа сигнализации:
автоблокировка с защитными участками
автоблокировка с защитными участками, дополненная АЛС-АРС
АЛС-АРС с погашенными светофорами
АЛС-АРС с включенной резервной АБ
Причём включение/выключение резервной АБ возможно в машинисте.
3 типа задаваемого маршрута (основной, отклонение, маневровый) для каждого из которых задаётся свой розжиг и "частоты" АРС.
Динамический розжиг. Причём, расположение линз и доступные сигналы настраиваются раздельно.
Коды линз:
0 -
1 К
2 Ж
3 З
4 С
5 Б
6, 7 специальные (различная экзотика, такая как немигающий квадратный пригласительный или "П" на МУ)
Коды "частот" АРС:
0 - "ОЧ"
1 - "АО"
2 - "0"
3 - "40/РС" (признак направления)
4 - резерв
5 и выше - значение скорости
Окно настроек "изостыка":
Окно настроек светофора:
Также есть двухсторонний светофор, а также невидимый, который управляет огнями с тыльной стороны двухстороннего.
Проект интерфейса для передачи кодов АЛС-АРС
Внимание! Неокончательная версия!
Библиотека будет передавать коды на состав самостоятельно. Для того, чтобы вагон мог принимать коды, предполагается использовать такой класс:
Код:
/**
* Интерфейс вагона, оборудованного АЛС-АРС
*
* @package km_lib
* @version 0.1
* @date 21.10.2014
* @author kemal, Kovalsky
* @site http://RusTram.org
*/
class km_arsVehicle {
/**
* Передача кодов
* @param bool dir [Направление. true - спереди, false - сзади]
* @param int frequency ["Частота"]
* @param int warningFrequency [Предупредительная "частота"]
*/
public void SetCode(bool dir, int frequency, int warningFrequency) {}
/**
* Проверка доступности АЛС-АРС у вагона
* @return bool [true - если включена, false - выключена/неисправна/отсутствует]
*/
public bool arsEnabled() {
return false;
}
};
Он будет лежать в библиотеке и от него нужно будет наследовать (множественное наследование) класс своего вагона.
Если требуется получить коды (например, при запуске) или изменилось состояние АЛС-АРС на подвижном составе, то об этом надо сообщить библиотеке (сообщением или вызовом функции библиотеки - мы ещё не решили).
Список фич, которых пока нет в сигналке и по ним не принято окончательное решение как они будут реализовываться (и нужны ли вообще):
автостопы
автодействие пригласительных
гермодвери и управление заградительными
ВКС
КГУ/УКСПС
сигналы ДОП
предупредительные светофоры
Чуть более подробное описание (зачатки документации): pdf-версия:
Актуальная тестовая сборка
Последний раз редактировалось kemal; 14.02.2016 в 20:48.
Добрый вечер, kemal.
Вопрос по твоей метросигналке. Какой метросостав ты использовал при её тестировании?
Дело в том, что, любой состав, который я беру(Киришный тоже), работает с сигналкой некорректно. При проезде сигнальных точек, показания АЛС в кабине, кратковременно(пару секунд) показывают "0", затем снова разрешающую частоту. Состав при этом, естественно, тормозит.
С сигналкой MSig все показывает и едет нормально. Киришную я не пробовал - она отстой.
Не пойму, в чём проблема.
И ещё вопросик: маршрутизация метрошная так и не реализована ещё?
Спасибо.
P.S: в личку написать не могу - у тебя лимит сообщений превышен.
Дело в том, что светофор перекрывается по проезду первой колёсной пары, а бот видит светофоры от центра первого вагона. Из-за этого он думает, что светофор закрылся нам. Я в 12 такое наблюдал. В Тане такого не замечено (не знаю, баг или фича) и я как-то забил на этот момент. Я чуть позже подскажу, что подправить в скрипте, чтобы светофоры перекрывались по центру вагона.
Маршрутизация в процессе. Вот, есть несколько видео разных этапов:
Но есть пара нюансов.
Во первых, нет (и вряд ли будет) автоматического расчёта. Метрошная маршрутизация чуть менее поддаётся унификации, чем ЖД. Например, вот документация по вымышленной станции Аэропорт (она на первых двух видео): https://drive.google.com/drive/folde...usp=drive_link
А именно, схемплан: https://drive.google.com/file/d/17dv...usp=drive_link
Таблица взаимозависимостей: https://docs.google.com/spreadsheets...usp=drive_link
А вот как маршрутизация станции выглядит в игре: https://bitbucket.org/e-kemal/km_sig.../km_dscp_ae.gs
и да, скорее всего для сигналки km выходить больше ничего не будет. Сейчас идёт работа над z8. После чего km реинкарнирует в zm8.
---------- Сообщение добавлено в 23:27 ---------- Предыдущее сообщение размещено в 22:42 ----------
Забыл добавить "во вторых".
Сложилась практика, что маршруты задаются командами. Но для метро это плохо подходит. Тут обычно авторежимы включают и на весь день. Ну и реализм ещё)) И как подружить эти два подхода я пока плохо представляю.
И, как обещал, фикс:
https://bitbucket.org/e-kemal/km_sig...b.gs#lines-293
Вот тут закомментировать блок if.
Там, собственно, и комментарий красноречивый
Да, там же. Я не помню какая версия в открытом доступе, так что строки могут не совпадать. Лучше искать по тексту комментария - он там с самого основания и не менялся))
Переставлять ничего не надо, заработает сразу.
Чего-то не выходит.
Нашёл в файле km_lib по коментарию эту строку(299-я).
if(ts.GetDistance()<0.45*veh.GetLength())
continue;//сначала нам будут попадаться объекты, находящиеся под нашим вагоном. По идее, их надо пропускать. Но это может привести к преждевременному перекрытию светофора.
Закомментировать блок - это поставить двойной слэш? Поставил в начале строки. Закоммитил обратно, но скрипт опять работает так же, как и до редактирования.
P.S.:Не могу сюда прикрепить изображение.