Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Маршруты (http://www.trainsim.ru/forum/forumdisplay.php?f=19)
-   -   Сигнализация: конфигурация и скрипты (http://www.trainsim.ru/forum/showthread.php?t=13819)

vicente 23.11.2016 03:08

На последнем NORMAL в тупике показание дай "-1" на занятый блок, на остальных
if (dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# -1 )
{есть показания}
Ты не будешь этот аспект ничем ловить, он только передаёт режим

[size="1"][color="Silver"]Добавлено через 1 минуту[/color][/size]
И иди "от тупика" дальше. Начни с ближайшей станции, а не за 40 км и отдаляйся с каждым тестом

vitro 23.11.2016 03:16

Все равно не работает. Ничего, что у меня не дистанс, а шунтинг?

vicente 23.11.2016 03:26

Покажи скрипты обоих полностью. Думаю, что шантингами они вообще не занимались. Так что результат непредсказуем

vitro 23.11.2016 03:32

Блин, уже комп вырубил, завтра напишу. И на тестовом роуте поиграюсь, если что, то поменяю типы с дистансом местами. P.S. Светофоры дистансом, потому что они отдельно работают от АРС. Например, если впереди идущий отправился, то как только он освободит две рц-будет уже разрешающее показание. А светофор автоблокировки откроется только когда поезд уедет со следующей станции. Я вроде на заборине упоминал об этом

vicente 23.11.2016 03:41

Ещё вводная. По-моему, ты много от сима хочешь)))

vitro 23.11.2016 11:00

Ну тем и интереснее)) Накрайняк есть контроль енабледом)

vicente 23.11.2016 16:16

"Энэйблить" будут в равной степени как мотовозы, так и поезда с АРС - фэйл, ИМХО.
Надо выделить чем эти два сервиса отличаются. Я тут писал о длине - раз. Ты говорил о пути - два. Чем ещё?
Тестил с ближайшей к тупику станции? И скрипты кинь проходных и тупикового. Может там что подправить надо будет

vitro 23.11.2016 19:17

Сервисы ничем не отличаются, по условиям сценария включаем АБ, захотелось нам. Можем на нормальном поезде ехать, а потом типа у нас АРС накрылась и нам включили АБ

[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]

vicente 24.11.2016 03:42

Ну, во-первых
[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], снимать с него показания вряд ли получится

vitro 24.11.2016 10:10

Пока что пофиг, что там в тупике стоит, я пытался просто светофоры зажечь. В принципе, я все таки 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]
Т.е тогда необходимость в двух-трёх отпадает

vicente 24.11.2016 21:18

enabled() вообще не в тему здесь. Не важно: какой SNCA ты поставишь, ORTS на стрелках тебя "обломает". Я тут подумал : надо DISTANCEами передавать. Один аспект на АРС, остальные -- на показания. Всё равно гореть будет вся линия

vitro 24.11.2016 23:14

Ну почему обломает, если у меня будет готовый маршрут для сервиса?

[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, "Д" включается, если путь не доходит до точки с ИНФО-скриптом, в данном случае из-за реверсивной точки, что и соответствует действительности.

vicente 25.11.2016 00:17

Сделай таблицу аспекты "против" сигалов АРС и АБ

[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() при этом не читается

vitro 25.11.2016 03:20

[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]
Ихихихи, работает!)

Kaminadan 02.12.2016 00:46

Какая на данный момент сигнализация лучшая? И еще, много ли ресурсов она будет забирать, а то комп хилый, ему подавай что полегче


Текущее время: 20:24. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim