Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   TrainZ - Маршруты и сценарии (http://www.trainsim.ru/forum/forumdisplay.php?f=24)
-   -   Система маршрутизации z7-xPath (Система расчёта поездных маршрутов стрелочная будка) (http://www.trainsim.ru/forum/showthread.php?t=11836)

TRam_ 04.11.2010 17:21

[QUOTE]при этом маневровый браузер так же оставался приклеен к нему[/QUOTE]к сожалению, там ничего не приклеевается - надо вручную менять координаты узлов окна. В основоном браузере

VDB.SetWindowRect(50, 50, 300, 400);

левый верхний x,y - правый нижний x,y

на строках 144 и 391

В маневровом - строки

VDB.SetWindowRect(300, 50, 500, 400);

№ 671 и 847

Соответственно меняешь координату X=300 у них синхронно

А вот насчёт цвета - не знаю... Там выставлен чёрный цвет, видно надо в свойствах таблиц менять, но как - я не помню

DonCapone 05.11.2010 05:00

[QUOTE]она должна была выполниться через 1-2 секунды, даже если ничего впереди себя не видит.[/QUOTE]
Ни через 1, ни через 2, ни через 30 и более она так и не сработала.
[QUOTE]команда "близорука", она не видит светофоров на очень длинных перегонах. Надо было "задать маршрут за красным" использовать.[/QUOTE]
Поезд встал после выезда со станции Толстопальцево, перегон Толстопальцево-Лесной городок. По-моему не очень длинный.

TRam_ 08.11.2010 03:29

Главный кусок описания готов. [url]http://trainz.org.ru/mediawiki/index.php/Z7-xPath[/url]

TCH39 08.11.2010 11:09

Прочитал статью-узнал много нового. Только вот одно уточнение. При групповых повторительный надо ставить между невидимым маршрутным и групповым светофором, иначе зелёный огонь на повторительном будет сигнализировать об открытом невидимом, хотя в это время основной групповой будет закрыт. И ещё, это скорее относиться не сюда, зелёная цифра на маршрутном указателе из далека похожа на белую (на расстоянии ~100 м). Это можно как-нибудь исправить?

TRam_ 08.11.2010 13:36

[QUOTE]И ещё, это скорее относиться не сюда, зелёная цифра на маршрутном указателе из далека похожа на белую (на расстоянии ~100 м). Это можно как-нибудь исправить?[/QUOTE]это к автору сигналки...

[QUOTE]При групповых повторительный надо ставить между невидимым маршрутным и групповым светофором, иначе зелёный огонь на повторительном будет сигнализировать об открытом невидимом[/QUOTE]нормальное состояние невидимого - "закрытое". Так что повторительный, который не всегда может находить светофоры за стрелками, надо ставить именно перед невидимым, а маршрут собирать вначале от группового а затем от невидимого до группового. (на скрине повторительный просто сглючил, зелёного на нём быть не должно)
На автоматическом выборе маршрута, естественно, в этом случае лучше применять "открыть маршрут за красным светофором"+"ждать 1 секунду"+"открыть маршрут за красным светофором"

NickLon 08.11.2010 17:30

[QUOTE=TRam_;215005]
команда "близорука", она не видит светофоров на очень длинных перегонах. Надо было "задать маршрут за красным" использовать.[/QUOTE]
В 1.5 по сравнению с 1.4 ничего не изменилось, как я вижу? Я о эээ, как бы это назвать, о скрещении поездов по станции на однопутном участке, когда на станции ещё нет ни одного поезда и маршрут им собирается друг на друга на один путь, что ли.
Ни одна команда не работает как надо - или виснет ("задать маршрут приоритета...") или собирает на главный, на который уже собран маршрут с обратной стороны ("подготовить маршрут за красным...", "задать маршрут за красным...").
Эта ложка дегтя может испортить всю бочку меда.:(

NickLon 08.11.2010 17:46

А что означает эта ошибка?
Thread Exception:ER_NullReference, line 71, filebehaviour.gs
Stack dump:
function $void@xPathAddAnyPath::WaitTime1(), line-1
Решил набросать примитивнейший "маршрут" для теста с бела, что называется, так в режиме машиниста вылазит это. В режиме редактора - ничего.

TRam_ 08.11.2010 18:21

[QUOTE]Ни одна команда не работает как надо - или виснет ("задать маршрут приоритета...")[/QUOTE]ну так поставь путям разные приоритеты. У меня поезда 2 часа бегали по карте с 4 станциями и однопутками между ними, используя только "задать маршрут за красным..."+"ждать 1 секунду"+"подготовить маршрут за красным"+"ехать до красного до 8 м"+"ждать не красного"+"ехать до красного до 8 м" . Также, думаю, у тебя нет ожидания в 1 секунду в начале (оно обязательно, иначе команды не смогут подключиться к системе маршрутизации)

[QUOTE]А что означает эта ошибка?[/QUOTE]то, что ты не указал вагон поезда, который будет строить маршрут. Либо что задержки перед включением правила нет.

NickLon 08.11.2010 18:37

Что означает ""...вагон поезда, который будет строить маршрут"? Я, наверное, что-то серьёзное пропустил за выходные, коль вагоны поезда строят маршруты.

TRam_ 08.11.2010 18:41

[QUOTE] Я, наверное, что-то серьёзное пропустил за выходные, коль вагоны поезда строят маршруты.[/QUOTE]первый вагон поезда ищет впереди себя светофор и строит от этого светофора маршрут. В xPathAddAnyPath надо указать любой вагон поезда, по этому вагону будет определён поезд, а у поезда будет определён передний вагон.

NickLon 09.11.2010 00:51

Так, ну про [i]"первый вагон поезда"[/i] я несколько погорячился. Я это правило ещё не рассматривал и в предыдущих версиях, сообразив, (или ты мне подсказал - не помню уже) я убрал его из списка правил.
[i]"ну так поставь путям разные приоритеты"[/i] Ой, я вас умоляю! Если вы скажете, что и в Одессе все дебилы, то я таки на вас обижусь...
А вот это уже шедеврально:
[i]используя только "задать маршрут за красным..."+"ждать 1 секунду"+"подготовить маршрут за красным"+"ехать до красного до 8 м"+"ждать не красного"+"ехать до красного до 8 м" .[/i]
Доожили. Это ты для того, всё это писал (код, я имею ввиду), для того я свой ноут чуть не угробил в порыве злости, чтобы в итоге получить вот это - [i]"ехать до красного до 8 м" [/i]...
Давай я тебе расскажу как Я вижу эту схему, что ты предложил... Расслабились в кресле и читаем...
[i]"задать маршрут за красным"[/i]
Ну да, типа, на отправление со станции... Катит. Работает.
[i]"подготовить маршрут за красным"[/i]
Упс! Я думал, что мы перед прошлой командой перед выходным на станции, от которой начинаем движение... Ну да ладно. Тогда, если первое было перед входным - вроде всё сходится.
[i]"ехать до красного до 8 м"[/i]
А вот и шедевр! Если мы не знаем, есть ли у нас встречный или нет, как ты думаешь, где будет красный если его нет? А если он есть? Как ты одно и тоже даёшь для двух случаев поездной ситуации!?
Да и вообще, твоя цепочка "ехать до красного до 8 м" выглядит как порнография. Ага, приехали к входному, остановились, жахнули его в дёсны - собрали себе маршрут на вход - поехали. А там ещё один "ехать до красного 8 м"... Мы так обжахаемся.
Насколько я понял, ехать до красного до 8м означает, что мы едем в парк (на станцию), и мы заранее знаем, что у нас впереди - красный! А для транзитов это не годится! И вместо того, чтобы разобраться почему в стек ставятся два маршрута на один и тот же путь, ты выдумываешь какую-то тарабарщину, при этом, потратив на неё уйму времени!
В общем, TRam, работать и работать ещё!.. Ну, а у ж мы поможем...

TRam_ 09.11.2010 13:53

[QUOTE]А вот и шедевр! Если мы не знаем, есть ли у нас встречный или нет, как ты думаешь, где будет красный если его нет? А если он есть?[/QUOTE]а если красного нет, то команда schedule at trackside его обрубит (или по крайней мере забросит в конец расписания)


Созал проверочную сессию - да, в режиме "быстрого машиниста" глюки есть - команда "задать маршрут за красным..." отрабатывается даже если все пути заняты, в результате возникают глюки. Запустил сессию напрямую - в течении 80 минут тестил, к браузеру ДСП не притрагивался - и "ни единого разрыва". Так что это аурановцам надо скриптовый движок перепиливать, раз он по-разному работает в разных режимах :(


[QUOTE]И вместо того, чтобы разобраться почему в стек ставятся два маршрута на один и тот же путь[/QUOTE]разобрался. Ответ в предыдущем абзаце. И не тарабарщину, а описываю тестировочную сессию.

Алгоритм следующий - ставим перед предвходным триггер (чтобы задний поезд не пытался собирать маршрут пока передний его не построит), на триггер вешаем "schedule at trackside" c указанным расписанием.

"задать маршрут за красным..." - открываем входной, пока входной не открылся, стоим, ждём освобождения путей (если таковое невозможно (пробка) надо уменьшить частоту генерации поездов порталами)

"ждать 1 секунду" - чтоб входной успел открыться

"подготовить маршрут за красным" - находим выходной и добавляем в стек открытие с него маршрута

"ехать до красного до 8 м" - если выходной закрыт, доезжаем до выходного. (если открыт, доезжаем до следующего триггера)

"ждать не красного"+"ехать до красного до 8 м" - соотвественно добавок, если выходной закрыт.

Так что всё логично.


[QUOTE]думал, что мы перед прошлой командой перед выходным на станции, от которой начинаем движение[/QUOTE]для отправления достаточно пары команд - "задать маршрут приоритета" и "движение до красного"

Вообще "задать маршрут приоритета" надо пользоваться тогда, когда не уверены, открыт ли следующий светофор или нет (если открыт, команда пропускается). "задать маршрут за красным..." будет жать до тех пор, пока светофор, который она нашла, не откроется.

TRam_ 09.11.2010 14:11

[QUOTE]"задать маршрут за красным..." будет жать до тех пор, пока светофор, который она нашла, не откроется.[/QUOTE] в смысле поезд будет стоять, пока светофор не откроется

TRam_ 09.11.2010 14:41

Проверочная сессия тут [url]http://ifolder.ru/20180990[/url]

Недостающие куиды скажите, залью.

NickLon 09.11.2010 17:04

"Задать маршрут за красным" - это я понял. при отправлении применяется, а "Подготовить маршрут за красным" дается в движении, я правильно понял?
Теперь по поводу твоего алгоритма.
Почему это перед предвходным мы только очухались, что надо входной на станции открыть? Поздновато вообще-то. Тогда у нас предвходной будет Ж и бот будет перед ним тормозить. Вообще-то и игрок должен сбросить скорость до 60-ти, а не нестись в надежде, что вот-вот он сменит сигнал на З. Если перед перд-предвходным ставить триггер, тогда "задать маршрут за красным" если входной не откроется сразу, остановит нам поезд на перегоне (и вовсе не обязательно, что все пути заняты - маневровый замешкался с маневрами по горловине, заканчивает маневр, за что, кстати ДСП получит люлей хороших). Это уже нонсенс - стоять перед зеленым проходным посреди перегона; в таком случае нужно продолжать движение до входного. Поэтому здесь только "Задать маршрут приоритета" ну или "подготовить маршрут за красным".
Кстати, я ставлю маркер, а не триггер, потому как он имеет направление - в обратную сторону мне не надо собирать маршрут за хвостом. Номинально и триггер имеет направление, но это только номинально: срабатывает и туда и сюда. В Т6 по крайней мере так было, здесь ещё не пробовал.
"ждать 1 секунду" хм, у меня входной за 1 секунду в некоторых случаях не успевает открываться. Помнишь, я ещё вопил, что на некоторых станциях собрать маршрут выходной поезд не может? Так это вот из-за тормознутости открытия входного. Среднее значение у меня получалось 16 сек. Но если поставить 16 сек, то за это время существенно снизится скорость.
[i]"подготовить маршрут за красным" - находим выходной и добавляем в стек открытие с него маршрута[/i]
А если к этому моменту входной так и не открылся?
[i]"ехать до красного до 8 м" - если выходной закрыт, доезжаем до выходного. (если открыт, доезжаем до следующего триггера)[/i]
... Брр, что-то я совсем запутался. Интересно, а как это у тебя работает? Ведь при срабатывании правила SheduleAtTrackmark там есть опция ... А, так у тебя shedule at trackside. А это что за зверь?.. В общем, надо смотреть пример, а то уже получается глухой со слепым пытается разговаривать...


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

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