Нет, уж, спасибо. Предпочитаю роль "зрителя"
Что-то, я тупил последние пару дней, пытаясь получить это несчастное маневровое показание через какую-то страшную ...опу - через два оппозита. Типа, маневровый "смотрит" назад, на первый проходной, тот, в свою очередь - на входной. И этот, второй оппозит не срабатывал, естественно, потому что проходной-то -
!enabled!
Правильная мысль всегда приходит последней.
Думаю, достаточно будет "ловить" маневровым только первый проходной обратного направления. Логика такая: проходным через функцию
block_state () о работе которой я писал раннее, можно "поймать" направление движения сервиса "к входному" . Потому что, на втором от станции блок-участке в сторону станции сервис может быть только в поездном режиме. В этот момент маневровый уже должен быть
enabled . Совокупность этих двух условий будет запоминать на маневровом поездной режим. При поездном режиме маневровый дублирует аспекты маркера РЦ, а тот - выходного, а если тот 0, даёт 1 со скоростью, соответственно пути приема (60, 40, 25 и т.д). Аспекты я решил не менять - оно и так работает прекрасно. Есть, как я писал, пара "штрихов", которые я исправляю. Дело в том, что если путь приёма занят, сегодня у меня на маневровом горит белый на аспекте 2, а входной при таком раскладе запрограммирован давать 0 на следующий 2. В поездном режиме я оставлю маневровый 2, но показание дам - синий. Второй момент - в обоих режимах на свободный путь станции при выходном 0, маневровый даёт 1, и синий, при манёврах я смогу при том же 1, дать ему белое показание.
Reset "механизма":
Проходной "обнуляется" когда он
!enabled и блок за ним не занят вообще, а маневровый - когда он
!enabled (голова проследовала его).
Через пару часов будет возможность протестировать это. Будет работать - можно будет поиграться с условиями сброса маневрового, чтобы не менялся с белого на синий сразу после проследования головы.
Кроме возвращения с сейва, издержкой такого подхода может быть то, что чертов Open Rails учитывает длину поезда при прокладке маршрутов (мануал симулятора). У меня на тестовой ветке ЧМушки, и он спокойно может пустить лок до входного, когда маневровый лок выезжает со станции и становится на отрезке между входным и маневровым сигналами. Но, тут уже буду думать потом: стоит ли блокировать весь перегон. Ситуация редкая, хотя, если честно, в реале (по крайней мере - у нас, в Израиле, чтобы манёвры отправились на перегон, направление на пульте должно быть "от станции" и никаких встречных не может быть по определению.