Цитата:
Сообщение от vicente
Головы входного "хватают" STOP_AND_PROCEED с выходного и соответственно - противоположное направление.
|
Не совсем так, выходные вроде тут вообще не участвуют, у них нету в distance SAP. Между входным и выходными стоят служебные маркеры: они выдают res на занятые либо копируют distance с выходного, но там все кроме sap. То есть когда появляется поезд на станции, входной видит res состояние на маркере. И тут делает себе sap:
Код:
if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; }
if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; }
При чем тут несколько вариантов,
opp_POEZD=0 для станции отправления:
1. Поезд еще на станции
POEZD=2 - попадаем в первый if, потом выезжаем за маркер, тут по
block_state() начинает sap удерживаться.
2. На Драчеево стоит маркер около входного встречный.
3. Когда заезжаем за входной, на встречном проходном скрипт делает на normal голове аспект sap, благодаря этому теперь
opp_ONE_WAY=1 помогает держать перегон.
В тех случаях, где входной и встречный проходной не рядом стоят, то за счет встречного маркера у входного делается
opp_POEZD=2 - состояние res встречного маркера.
Таким образом,
opp_ONE_WAY помогает держать sap на перегоне, если туда заедут по удалению не сколько поездов, переменная будет скинута, как только последний поезд заедет за входной станции прибытия.
Добавлено через 14 минут
Немножко скринов еще сделал.
На 1-2 скринах: никого нет, сигналка в обе стороны включена.
На 3: трафик появился, белый на маркере, sap подхватился.
На 4-5 выезд со станции. Переключение маркера на clear2 - перегон свободен за ним.
На 6-7: проходной изначально stop normal, по проезду на sap перешел.