Donate with PayPal button New New

+ Ответить в теме
Страница 1311 из 1371 ПерваяПервая ... 311 811 1211 1261 1301 1309 1310 1311 1312 1313 1321 1361 ... ПоследняяПоследняя
Показано с 13,101 по 13,110 из 13702

Тема: Система сигнализации sU и система маршрутизации zxPath

  1. #1
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432

    Trackobjects Система сигнализации sU и система маршрутизации zxPath

    Сигнализация, в котором отсутствуют какие-либо "автоматические" или "полуватоматические" открытия светофоров. То есть светофоры должны открываться либо вручную, либо маршрутизациями zxPath или RE sU DSP. Варианта данной сигналки под а-ля дефолтное управление реализовываться не будет.

    sU+zxPath v2 - https://yadi.sk/d/aANFV01n3JacSf + https://yadi.sk/d/tq5-41VsQ-Zp4A + https://yadi.sk/d/JWr4Nt-XKenG4A + https://disk.yandex.ru/d/YCJJr8asOzmGfw + https://drive.google.com/file/d/1Yw_...ew?usp=sharing
    Ботомашинист - https://forum.trainzup.net/showthrea...=1407&page=130

    Правило zxPath JunctionResetter больше не требуется и его нужно либо обновить до заглушки (версия куида 5), либо удалить из сессии.

    В TANE и Trainz 19 правило zxPath ExtraInterface на данный момент не работает, его можно удалить. Настройку производить из самой будки zxPath.

    Светофоры доступны для скачивания с DLS.


    Документация - https://forum.trainzup.net/showthread.php?t=3574
    Видеоуроки настройки:
    Открыть


    Галочки кодирования:
    Открыть


    Открыть
    Последний раз редактировалось TRam_; 22.02.2022 в 01:40.

  2. Сказали спасибо: (193)


  3. #Trainz
    Реклама
    Регистрация
    Постоянная
    Возраст
    2010
    Сообщений
    Много

    Donate with PayPal button N3v New New

     

  4. #13101
    Пользователь Аватар для quartz
    Регистрация
    24.10.2012
    Страна
    Адрес
    Златоуст
    Возраст
    30
    Сообщений
    262

    По умолчанию

    TRam_, Ничего не подменял, просто реплэйснул z7 на SU. Пробовал и стрелки менял и пути перекладывал на стрелке , всё равно жук.
    Ты это в памяти храни,как с паровозом отмечали,и наши праздничные дни и наши общие печали...

  5. #13102
    Пользователь Аватар для ArGrigorov
    Регистрация
    10.11.2020
    Страна
    Адрес
    Нижний Тагил
    Возраст
    47
    Сообщений
    72

    По умолчанию

    Цитата Сообщение от TRam_ Посмотреть сообщение
    Оно даётся для выезжающих из порталов поездов?
    При выезде из портала Handbrake-Apply не вызывается, но, судя по всему, после того, как я поправил в методе SearchForTrain, чтобы после поиска за светофором
    Код:
    if(vel_ty <= 0)
    	vel_dir = true;
    Светофоры начали ловить появившийся из портала поезд, т.к. срабатывает Object,Enter для сигналов, на которых стоит поезд.
    Заметил такую штуку, что, если SearchForTrain() возвращает 5 (поезд проезжает мимо в обратном направлении от светофора), то после вызова UpdateSignState(sig1, 3, priority) светофор не устанавливается в красный - устанавливается в красный только, если SearchForTrain() возвращает 2 (поезд проезжает мимо светофора), после чего вызывается
    Код:
    UpdateSignState(sig1, 1, priority);
    sig1.train_is_l = true;
    Т.к. срабатывает Object,Enter для светофоров, которые пересекает появившийся поезд.

    ---------- Сообщение добавлено в 22:48 ---------- Предыдущее сообщение размещено в 22:42 ----------

    Тестирую появление поездов с помощью Un-Portal 2
    Последний раз редактировалось ArGrigorov; 06.08.2021 в 20:44.

  6. #13103
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432
    Автор

    По умолчанию

    Цитата Сообщение от ArGrigorov Посмотреть сообщение
    если SearchForTrain() возвращает 5
    в файле zx_specs.gs вполне себе есть описание

    Код:
    // reason : 0 - команда изменения состояния 1 - наезд поезда в направлении 2 - съезд поезда в направлении 3 - наезд поезда против 4 - съезд поезда против 5 - покидание зоны светофора поездом
    Естественно возвращено 5, значит поезд съехал с этого светофора достаточно далеко, и далее обновляться не будет, пока снова не вызовет Object,Enter у этого светофора. Естественно перекрытия от UpdateSignState(sig1, 3, priority) в общем нет, т.к. это "наезд постфактум" (когда поезд проезжает светофор, который был давным-давно закрыться, против его направления), и уже на UpdateSignState(sig1, 4, priority) светофор (проходной) должен снова открыться.

    ---------- Сообщение добавлено в 21:09 ---------- Предыдущее сообщение размещено в 21:05 ----------

    Цитата Сообщение от ArGrigorov Посмотреть сообщение
    if(vel_ty <= 0)
    vel_dir = true;
    Да, очень может быть что баг ("стоящие" возникающие на светофоре поезда не считаются приближающимися).

    С другой стороны, если вагон поезда развёрнут к светофору тылом, то будет наоборот (скорость вагона определяется относительно направления поисков), и вагон будет считаться отдаляющимся. Но вот почему этот код влияет на обработку состава - для меня категорически не ясно. По-идее вне зависимости от того, была ли у поезда скорость 0 в момент появления или не была, как минимум наезд на светофор должен обработаться (если вагоны оказались и впереди и сзади)

    ---------- Сообщение добавлено в 21:18 ---------- Предыдущее сообщение размещено в 21:12 ----------

    Цитата Сообщение от quartz Посмотреть сообщение
    Пробовал и стрелки менял и пути перекладывал на стрелке , всё равно жук.
    Жук только на одной стрелке? Если её отсоединить (и переинициализировать стрелки), пропадает?
    Последний раз редактировалось TRam_; 06.08.2021 в 21:15.

  7. #13104
    Пользователь Аватар для ArGrigorov
    Регистрация
    10.11.2020
    Страна
    Адрес
    Нижний Тагил
    Возраст
    47
    Сообщений
    72

    По умолчанию

    Цитата Сообщение от TRam_ Посмотреть сообщение
    Естественно возвращено 5, значит поезд съехал с этого светофора достаточно далеко
    В том-то и дело, что, если SearchForTrain() == 5 - это означает, что "поезд проезжает мимо в обратном направлении от светофора". Т.е. никуда он ещё не съехал, а только проезжает мимо в обратном направлении. И при этом вызов UpdateSignState(sig1, 3, priority) почему-то не закрывает светофор.

  8. #13105
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432
    Автор

    По умолчанию

    Цитата Сообщение от ArGrigorov Посмотреть сообщение
    Т.е. никуда он ещё не съехал, а только проезжает мимо в обратном направлении.
    Если это именно тот светофор, о котором говоришь, и поезд ещё только его проезжает, значит баг, что-то не то происходит. По крайней мере пока мне видится что смотришь на сообщения не от того светофора, который отслеживаешь...

    ---------- Сообщение добавлено в 21:28 ---------- Предыдущее сообщение размещено в 21:25 ----------

    Цитата Сообщение от ArGrigorov Посмотреть сообщение
    UpdateSignState(sig1, 3, priority)
    Я ж написал - этот вызов и не должен перекрывать, т.к. такой вызов значит что поезд проезжает светофор в обратном направлении, и к этому моменту светофор должен быть давным-давно перекрыт ранее (ну конечно исключая случай портала). Возможно, от этого вызова должна следовать команда перекрытия предыдущего (перед этим) светофора
    Последний раз редактировалось TRam_; 06.08.2021 в 21:31.

  9. #13106
    Пользователь Аватар для ArGrigorov
    Регистрация
    10.11.2020
    Страна
    Адрес
    Нижний Тагил
    Возраст
    47
    Сообщений
    72

    По умолчанию

    Цитата Сообщение от TRam_ Посмотреть сообщение
    Я ж написал - этот вызов и не должен перекрывать, т.к. такой вызов значит что поезд проезжает светофор в обратном направлении, и к этому моменту светофор должен быть давным-давно перекрыт ранее (ну конечно исключая случай портала). Возможно, от этого вызова должна следовать команда перекрытия предыдущего (перед этим) светофора
    Так, кажется, я начинаю понимать логику.
    Я это обнаружил, когда попытался учитывать направление, в котором развёрнут поезд. Сперва я не учитывал это, и при появлении поезда, все светофоры, которые он пересекает, обновлялись так, как будто поезд проезжает их в направлении светофора. После того, как я стал учитывать направление поезда, светофоры перестали перекрываться, если поезд развёрнут в противоположном направлении (следует по неправильному пути).

    ---------- Сообщение добавлено в 23:40 ---------- Предыдущее сообщение размещено в 23:37 ----------

    Цитата Сообщение от TRam_ Посмотреть сообщение
    По крайней мере пока мне видится что смотришь на сообщения не от того светофора, который отслеживаешь...
    Нет, я не отслеживаю сообщения, а прямо в код добавил строки, которые пишут в лог, подробно что происходит при обработке появления нового поезда (получается своего рода трассировка кода) - из лога чётко видно - какой именно светофор был найден, и с какими параметрами вызывается UpdateSignalState().

  10. #13107
    Пользователь Аватар для quartz
    Регистрация
    24.10.2012
    Страна
    Адрес
    Златоуст
    Возраст
    30
    Сообщений
    262

    По умолчанию

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

  11. #13108
    Пользователь Аватар для ArGrigorov
    Регистрация
    10.11.2020
    Страна
    Адрес
    Нижний Тагил
    Возраст
    47
    Сообщений
    72

    По умолчанию

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

    Код:
    ; <NULL> : Posting message from 2789034 'consist_1' to 2789034 'consist_1', message Train, AI control mode changed with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2789284 '', message Train, DriverBoarded with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2789034 'consist_1', message Schedule, Touch with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2789034 'consist_1', message Train, BrakeLightChanged with delay 0.000000
    ; <NULL> : Posting message from 2776407 '' to 2789034 'consist_1', message Train, EnterTrack with delay 0.000000
    ; <NULL> : Posting message from 2776407 '' to 2789034 'consist_1', message Train, InnerEnterTrack with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2789034 'consist_1', message Train, ConsistChanged with delay 0.000000
    ; <NULL> : Posting message from 2740839 '' to 2789034 'consist_1', message Permit, Granted with delay 0.000000 (это сообщение генерируется, по всей видимости, для каждого вагона состава)
    ...
    ; <NULL> : router message from 2789034 'consist_1' to 2789034 'consist_1', message Train, AI control mode changed
    ; <NULL> : router message from 2789034 'consist_1' to 2789284 '', message Train, DriverBoarded
    ; <NULL> : router message from 2789034 'consist_1' to 2789034 'consist_1', message Schedule, Touch
    ; <NULL> : router message from 2789034 'consist_1' to 2789034 'consist_1', message Train, BrakeLightChanged
    ; <NULL> : router message from 2776407 '' to 2789034 'consist_1', message Train, EnterTrack
    ; <NULL> : router message from 2776407 '' to 2789034 'consist_1', message Train, InnerEnterTrack
    ; <NULL> : router message from 2789034 'consist_1' to 2789034 'consist_1', message Train, ConsistChanged
    ; <NULL> : router message from 2740839 '' to 2789034 'consist_1', message Permit, Granted (это сообщение генерируется, по всей видимости, для каждого вагона состава)
    ...
    ; <NULL> : Posting message from 2747364 'Test Portal In' to 2789034 'consist_1', message TrackMark, Enter with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2747364 'Test Portal In', message Object, Enter with delay 0.000000
    ; <NULL> : Posting message from 2747364 'Test Portal In' to 2789034 'consist_1', message TrackMark, Stopped with delay 0.000000
    ; <NULL> : Posting message from 2789034 'consist_1' to 2747364 'Test Portal In', message Object, Stopped with delay 0.000000
    ; <NULL> : router message from 2747364 'Test Portal In' to 2789034 'consist_1', message TrackMark, Enter
    ; <NULL> : router message from 2789034 'consist_1' to 2747364 'Test Portal In', message Object, Enter
    ; <NULL> : router message from 2747364 'Test Portal In' to 2789034 'consist_1', message TrackMark, Stopped
    ; <NULL> : router message from 2789034 'consist_1' to 2747364 'Test Portal In', message Object, Stopped
    Мне видится вариант с тем, чтобы найти все треки на карте, и на каждый трек повесить сниф, который будет отлавливать сообщения Train,EnterTrack.
    Но у меня возникла загвоздка с поиском всех треков на карте и прицеплением снифа - я не совсем понимаю, как правильно реализовать обработку всех найденных треков, и не могу найти полноценного примера. Тот пример, который выложен на сайте Аурана, к сожалению, не полный. Список всех треков я получаю, но многие из них получаются не загруженными в память, а сниф можно повесить, на сколько я понимаю, только на уже загруженный объект, т.к. он просит ссылку на GameObject. Покажите мне пожалуйста - как правильно обработать список найденных треков и прикрепить к ним снифы?

    Код:
    		AsyncObjectSearchResult searchObj = World.GetNamedObjectList(AssetCategory.Track, "");
    		Sniff(searchObj, "ObjectSearch", "", true);
    		Message msg;
    		wait(){
    			on "ObjectSearch", "Failure", msg:
    				if (msg.src == searchObj)
    					break;
    				continue;
    			
    			on "ObjectSearch", "AsyncResult", msg:
    				if (msg.src == searchObj)
    					break;
    				continue;
    		};
    		int errCode = searchObj.GetSearchErrorCode();
    		if(errCode != AsyncObjectSearchResult.ERROR_NONE){
    			Interface.Log("zx_core.gs 1899: SniffTrainEnterTrack() Error: tracks search error"); //++debug++
    			return;
    		}
    		  
    		NamedObjectInfo[] results = searchObj.GetResults();
    		int results_size = results.size();
    		int i;
    		for(i = 0; i < results_size; i++){
    			Track trk = ???; // как получить ссылку на трек? - ума не приложу
    			Sniff(trk, "Train", "EnterTrack", true);
    		}

  12. #13109
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    33
    Сообщений
    16,432
    Автор

    По умолчанию

    quartz, покажи скрин ошибки.

    ---------- Сообщение добавлено в 10:28 ---------- Предыдущее сообщение размещено в 10:23 ----------

    А также светофор, при генерации маршрутов от которого идёт ошибка

  13. #13110
    Пользователь Аватар для quartz
    Регистрация
    24.10.2012
    Страна
    Адрес
    Златоуст
    Возраст
    30
    Сообщений
    262

    По умолчанию

    TRam_, А может это из за того что много светофоров на всём маршруте не обозначенных?

    ---------- Сообщение добавлено в 18:25 ---------- Предыдущее сообщение размещено в 17:46 ----------

    И ещё на проходных светофорах нужно указывать станцию? Явно ерунда какая то. Открыть
    Ты это в памяти храни,как с паровозом отмечали,и наши праздничные дни и наши общие печали...

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения