![]() |
На последнем NORMAL в тупике показание дай "-1" на занятый блок, на остальных
if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# -1 ) {есть показания} Ты не будешь этот аспект ничем ловить, он только передаёт режим [size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] И иди "от тупика" дальше. Начни с ближайшей станции, а не за 40 км и отдаляйся с каждым тестом |
Все равно не работает. Ничего, что у меня не дистанс, а шунтинг?
|
Покажи скрипты обоих полностью. Думаю, что шантингами они вообще не занимались. Так что результат непредсказуем
|
Блин, уже комп вырубил, завтра напишу. И на тестовом роуте поиграюсь, если что, то поменяю типы с дистансом местами. P.S. Светофоры дистансом, потому что они отдельно работают от АРС. Например, если впереди идущий отправился, то как только он освободит две рц-будет уже разрешающее показание. А светофор автоблокировки откроется только когда поезд уедет со следующей станции. Я вроде на заборине упоминал об этом
|
Ещё вводная. По-моему, ты много от сима хочешь)))
|
Ну тем и интереснее)) Накрайняк есть контроль енабледом)
|
"Энэйблить" будут в равной степени как мотовозы, так и поезда с АРС - фэйл, ИМХО.
Надо выделить чем эти два сервиса отличаются. Я тут писал о длине - раз. Ты говорил о пути - два. Чем ещё? Тестил с ближайшей к тупику станции? И скрипты кинь проходных и тупикового. Может там что подправить надо будет |
Сервисы ничем не отличаются, по условиям сценария включаем АБ, захотелось нам. Можем на нормальном поезде ехать, а потом типа у нас АРС накрылась и нам включили АБ
[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size] Сам светофор [CODE]SCRIPT ARS_2AB extern float block_state(); extern float route_set(); extern float def_draw_state(); extern float state; extern float draw_state; extern float enabled; extern float dist_multi_sig_mr(); float next_state; float ars_flag; state = SIGASP_STOP; next_state = next_sig_lr (SIGFN_DISTANCE); //ars_flag = next_sig_lr (SIGFN_SHUNTING); if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_SHUNTING) ==# -1) ars_flag = 1; if ((block_state() ==# BLOCK_CLEAR && next_state ==# SIGASP_CLEAR_2) || (block_state() ==# BLOCK_CLEAR && next_state ==# SIGASP_RESTRICTING)) { state = SIGASP_CLEAR_2; } if (ars_flag == 0) draw_state = 2; else draw_state = def_draw_state (state);[/CODE] Нормал в тупике [CODE]SCRIPT TUPIK extern float state; state = -1;[/CODE] Шантинг [CODE]SCRIPT ARS_FLAG extern float def_draw_state(); extern float state; extern float draw_state; extern float enabled; float next_state; state = SIGASP_APPROACH_1; //state = next_sig_lr (SIGFN_SHUNTING); draw_state = def_draw_state (state);[/CODE] |
Ну, во-первых
[QUOTE]SCRIPT ARS_2AB extern float block_state(); extern float route_set(); extern float def_draw_state(); extern float state; extern float draw_state; extern float enabled; extern float dist_multi_sig_mr(); float next_state; float ars_flag; state = SIGASP_STOP; next_state = next_sig_lr (SIGFN_DISTANCE); //ars_flag = next_sig_lr (SIGFN_SHUNTING); if (((block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_CLEAR_2)) || ((block_state() ==# BLOCK_CLEAR) && (next_state ==# SIGASP_RESTRICTING))) { state = SIGASP_CLEAR_2; } draw_state = def_draw_state (state); if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_SHUNTING) ==# -1) { draw_state = 2; } [/QUOTE] Так будет правильней [size="1"][color="Silver"]Добавлено через 5 минут[/color][/size] Тупиковый [QUOTE] extern float block_state(); extern float state; state = SIGASP_STOP; if (block_state() !=# BLOCK_CLEAR) { state = -1; } draw_state = def_draw_state (state); [/QUOTE] Ты же даёшь ему "-1" когда "за тупиком" стоит невидимка,так? [size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size] Шантинг пофиг какой у него скрипт. Он нужен для того, чтобы дать границу функции [I]dist_multi_sig_mr()[/I], снимать с него показания вряд ли получится |
Пока что пофиг, что там в тупике стоит, я пытался просто светофоры зажечь. В принципе, я все таки enabled'ом думаю. Интересно, что у меня с этой АБ получилось так, что на блок участки оно делится не светофором, а границей предыдущей РЦ (предыдущей красной пирамидкой). Вот и можно контролить в светофоре enabled, если нет, то зажигать его и пару-тройку за ним.
[size="1"][color="Silver"]Добавлено через 18 минут[/color][/size] Где-то вдали у нас в конце обязательно будет тот, до которого путь не дойдёт, и он будет заведомо !enabled. Помимо этого, за ним ничего определяться, и если не использовать SIGASP_STOP, то по нему можно будет отловить конец трека. И уже тогда, если светофор !enabled и контрольная голова не равна нулю (!enabled && next_sig_lr(SIGFN_SHUNTING)), то тогда это точно светофор, начиная с которого надо врубать. [size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] Т.е тогда необходимость в двух-трёх отпадает |
enabled() вообще не в тему здесь. Не важно: какой SNCA ты поставишь, ORTS на стрелках тебя "обломает". Я тут подумал : надо DISTANCEами передавать. Один аспект на АРС, остальные -- на показания. Всё равно гореть будет вся линия
|
Ну почему обломает, если у меня будет готовый маршрут для сервиса?
[size="1"][color="Silver"]Добавлено через 34 минуты[/color][/size] Вообще, в изолированных условиях enabled работает как раз как надо. Живой пример: вот вам схема прекрасной станции Чертановская. [SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cc80/40dh2gWJ__Y.jpg[/IMG][/SPOILER] В её границах есть светофор ЧР-551, у которого есть маршрутный указатель с показаниями "1" и "Д". Если мы едем на Чертановскую - горит один. А если мы собираемся проехать за стрелку и встать у знака 8 (за светофор "Д"), то как раз горит Д. [SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cc92/j6V6yOcGivA.jpg[/IMG] [IMG]https://pp.vk.me/c837122/v837122167/cc9b/95Qe5lbox0I.jpg[/IMG][/SPOILER] В мультиплеере (как на скринах выше) это реализовано банальным перекрыванием руками ближайшей к знаку 8 следующей сигнальной точки АРС с INFO-скриптом. [SPOILER][IMG]https://pp.vk.me/c837122/v837122167/cca4/aZ1Z3GP9EZA.jpg[/IMG][/SPOILER] В сценариях, как раз благодаря enabled, "Д" включается, если путь не доходит до точки с ИНФО-скриптом, в данном случае из-за реверсивной точки, что и соответствует действительности. |
Сделай таблицу аспекты "против" сигалов АРС и АБ
[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size] Идея заключается в том, чтобы DISTANCE сделать одним аспектом, а зажигать его через draw_state , привязывая к this_sig_xx(SigFn_NORMAL) [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] Скажем, он у тебя при АРС погашен STOP, а если следующий NORMAL "-1" [B]или[/B] следующий DISTANCE не STOP, давать другой аспект (например, CLEAR_2) и показание в зависимости от основного NORMAL [size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size] Обязательно при этом определяющий светофор в тупике [B]не[/B] привязывать к enabled() [size="1"][color="Silver"]Добавлено через 4 минуты[/color][/size] [QUOTE=vitro;541862] В сценариях, как раз благодаря enabled, "Д" включается, если путь не доходит до точки с ИНФО-скриптом, в данном случае из-за реверсивной точки, что и соответствует действительности.[/QUOTE] ИМХО, в ОР чем дальше ты от него будешь, тем меньше шансов, что он будет работать, даже если SNCA будет 120. ОР всегда оставит стрелки в непонятном положении для возможности поставить блокировку, там идёт через BLOCK_JN_OBSTRUCTED и enabled() при этом не читается |
[QUOTE=vicente;541874]
Идея заключается в том, чтобы DISTANCE сделать одним аспектом, а зажигать его через draw_state , привязывая к this_sig_xx(SigFn_NORMAL) [/QUOTE] Именно так я и сделал, если АРС-ный аспект, то синий или красный смотрим по коду АРС. Тем временем есть результаты первых тестов: Подъезжаем под точку ожидания, светофор автоблокировки включён (красный он тут потому что первый) [SPOILER][IMG]https://pp.vk.me/c837123/v837123167/c13e/enyw3F6Koik.jpg[/IMG][/SPOILER] Когда точка ожидания истекает, маршрут готовится через него и светофор гаснет: [SPOILER][IMG]https://pp.vk.me/c837123/v837123167/c147/C8T8lhFtUW8.jpg[/IMG][/SPOILER] Таким образом "элементарная" еденица управления автоблокировкой уже работает, сейчас буду тестить маршруты из нескольких перегонов. :) [size="1"][color="Silver"]Добавлено через 1 час 31 минуту[/color][/size] Ихихихи, работает!) |
Какая на данный момент сигнализация лучшая? И еще, много ли ресурсов она будет забирать, а то комп хилый, ему подавай что полегче
|
Текущее время: 20:24. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim