![]() |
Да так полностью и не добился чёткой работы маневровых. Сейчас скрипт карлика Б-С такой:
[SPOILER]SCRIPT TK_WB_k ... float next_N; [B]next_N = next_sig_lr (SIGFN_NORMAL); if ( ( enabled ) && ( next_N <= 2 ) && ( block_state() != BLOCK_JN_OBSTRUCTED ) ) { state = 2; } else { state = 0; }[/B][/SPOILER] Пихал в него разные зависимости, но всё без толку... Он сам типа SHUNTING. В некоторых местах не загорается белый, если светофор стоит первым на пути сервиса перед входной стрелкой. Сам путь - с точкой разворота перед этой же стрелкой. И как я понял, "шунты" тоже не читают [B]opp_sig_[/B]xx, как и "дистансы". Жаль. А то можно было бы гасить белый через обратно стоящий маневровый маркер по занятости БУ, если поезд с перегона. Удаётся зажечь пригласительный через [B]if ( (Approach_Control_Speed(Approach_Control_Req_Position, Approach_Control_Req_Speed)) )[/B] В конфиге установил скорость 10 км/ч, и расстояние 17м - чтобы трафик не лез. |
Странно как-то. Вынес зависимость от обратностоящих маркеров в отдельную строку, и заработало:
[SPOILER] [B]if ( ( enabled ) && ( next_N <= 2 ) && ( block_state() != BLOCK_JN_OBSTRUCTED ) ) { state = 2; } [COLOR="DarkRed"]if ( opp_sig_lr (SIGFN_DISTANCE) == 1 ) { state = 0; }[/COLOR][/B][/SPOILER] Получается, что сигнальные головы [B]SHUNTING[/B] всё-таки "видят" оппозитные коды. [I][U]ORTS 1.1.1.3487[/U][/I] |
Мутота какая-то... В разных местах разные результаты тестов... похоже, не надо оппозиты применять вообще.
|
У тебя, скорее всего, расстояния разные в разных местах. Или ты тестировал с составами разной длины. Обрати внимание, что функция [I]block_state()[/I] y DISTANCE работает иначе, чем у NORMAL! Если голова сервиса не находится перед сигналом, не важно есть на блоке вагоны или нет, функция возвращает BLOCK_CLEAR. Так что, возможно, не столько с [I]opp_sig_xx()[/I] проблема, сколько с самим сигналом , с которого ты снимаешь показания.
|
То есть, только, если голова на блоке (или головная секция статики) DISTANCE считает блок занятым
|
Да, понятно.
Но дело не в этом. В любом случае при подходе поезда с перегона обратностоящий DISTANCE-маркер бывает в "!BLOCK_CLEAR" хоть какое-то время: [SPOILER]state = 0; if ( block_state() != BLOCK_CLEAR ) { state = 1; }.[/SPOILER] А маневровые типа SHUNTING не всегда срабатывают на это по условию: [SPOILER]if ( opp_sig_lr (SIGFN_DISTANCE) == 1 ) { state = 0; }[/SPOILER] Бывали белые вместо синих. Я ж еду на этом паровозе, всё вижу, как они горят. -------------- Просто в скрипте невозможно сделать, говоря электронным языком, какой-нибудь "запоминающий регистр" (ага, К155ТМ2 в релейный шкаф засунуть:D) для сохранения некоторого состояния сигналов. При изменении состояния одного маркера заново отрабатываются скрипты всех светофоров "с нуля", и при этом все переменные сбрасываются. "Я так думаю" :) |
Есть одно положение, в котором "запоминается" аспект перед стрелкой. Я его описывал, но, к сожалению, оно наоборот, мешает (((
|
Это какое?
|
Когда сигнал "включен" следом идущим сервисом и запрограммирован на 1 или 2.
|
Я тут вот думаю, как мне на АРС-ных линиях в метро автоблокировку включать для мотовозов например в сценариях. Сейчас у меня в конце маршрута в тупике валяется SHUNTING голова, в зависимости от состояния которой все предыдущие светофоры решают, включиться им, или нет. Самой этой головой в сценариях можно управлять хоть невидимым локомотивом на точке ожидания на невидимом отрезке пути за тоннелем с тупиком (куда заведомо никто не заедет). Проблема в том, что в ОР сигнал от этой головы на 40 километров явно не добьёт. К примеру, шунтинг валяется в самом конце 1 пути Алтуфьево, а первый включившийся светофор автоблокировки был только на Владыкино (в мультиплеере). Зато в сингле, если ехать задом, то зеленые были аж до самой Чертановской, но если загрузиться на этой же Чертановской и поехать вперёд, то так уже не будет. Т.е аспект очень далёкого шунтинга оно помнит, но не обновляет, пока не подъедешь. В связи с этим вопрос, как можно например сервису мотовоза в сценарии включить АБ, а за ним погасить...
[size="1"][color="Silver"]Добавлено через 30 минут[/color][/size] Есть идиотская мысль включать, если !enabled, и ставить на пути следования точки ожидания хоть по секунде, но тогда АБ будет гореть всегда и не будет только когда едет сервис с точками ожидания, что тоже не есть хорошо |
А почему SHUNTING?
[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] Не совсем понял ситуацию. Можно поподробней? |
А, не, просто так можно и погасить, если STOP
[size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] Линия метро с АЛС-АРС. Автоматические светофоры погашены, полуавтоматы горят синим. Едем по указателю в кабине (коды АЛС, нормалом передаю). Светофоры - дистанс головы, либо погашены, либо синие. Но могут быть ситуации, когда потребуется включение автоблокировки, например для поезда, необорудованного устройствами АЛС-АРС. Вот я и думаю, как в сценарии такому поезду все дистансы зажечь. А шунтинг как раз это условие, включать, или нет. |
За 40 километров ты представляешь какой SignalNumClearAhead должен быть?
(А где маршрут? :D ) [size="1"][color="Silver"]Добавлено через 1 час 15 минут[/color][/size] А NORMAL-ы где? На той же точке? Или они отдельно выставлены? |
Мне такая же тема предстоит для МЦК.:)
Думаю: все светофоры делать "двухголовыми" для передачи доп. кода гашения. Этот код (напр., DISTANCE) меняет свое значение вот именно так - в зависимости от пути сервиса, там спец. маркер или светофор. Наш выходной светофор считывает этот код по this_sig_lr(SIGFN_DISTANCE), и выдает нужный draw_state. Все это мысли, надо проверять... [size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size] SNCA вот тоже может не дать сработать этому... |
[QUOTE=vitro;541468]Самой этой головой в сценариях можно управлять хоть невидимым локомотивом на точке ожидания на невидимом отрезке пути за тоннелем с тупиком (куда заведомо никто не заедет)[/QUOTE]
Упс... не заметил про невидимку. Дык, NORMAL сделай сигнал в тупике и одним аспектом передай без зависимости от [U][I]enabled()[/I][/U]. Вопрос здесь не столько в расстоянии, сколько в стрелках "по пути". Может и не пройти. Допустим "за" мотовозом можно погасить, а перед ним - никак - не пройдёт аспект из тупика. Единственное, что приходит в голову -- невидимые "развилки" на светофоре. Не знаю: есть ли такие секции пути вообще. В общем, идея бредовая. Мы, вон, с Костей так и не смогли "удержать" маневровый режим на 50-100м на станции, а тут - разная логика в зависимости от типа состава... Можно сделать для одного из сервисов, скажем двойные точки разворота, но тогда трафик будет останавливаться перед каждым светофором на секунду... |
Текущее время: 16:05. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim