Donate with PayPal button New New

+ Ответить в теме
Показано с 1 по 10 из 10

Тема: Открытие дверей с использованием БОК (библиотеки очереди команд)

  1. #1
    Пользователь Аватар для Transmitter
    Регистрация
    31.10.2014
    Страна
    Адрес
    Moscow
    Сообщений
    127

    Route Открытие дверей с использованием БОК (библиотеки очереди команд)

    Данная тема вытекла из ответвления обсуждения в теме о ботомашинисте.
    Насколько я понимаю, некоторые пользователи склоняются к созданию функции для открытия дверей при помощи переменных, другим же интересна её реализация с помощью БОК. Делюсь своим личным опытом.
    Настройка и отладка производилась в условиях станции, имеющей 6 платформ и 11 приёмо-отправочных путей.
    В параметрах редактирования сессии добавить следующие правила
    RE AI Command Queuing Activator, RE AI Command Queuing Library:

    На каждом пути необходимо установить триггер (обычный, зелёный). Место установки триггера должно быть выбрано с таким расчётом, чтобы поезда проезжали его при любых условиях, т.е. до остановки на станции (до или между маркерами или стоп-маркерами)
    Настраивается триггер для каждого пути. Поскольку поезда на станцию прибывают с обеих сторон, то у меня они настроены дважды – для чётных и нечётных поездов соответственно.
    То есть, например, для триггера 4, размещённом на 4-м пути для чётных поездов платформа окажется слева, для нечётных справа. Таким образом необходимо создать две группы, условно именуемые «Открытие дверей чётн» и «Открытие дверей нечётн.» с привязкой соответствующих команд машинисту. Редактируется библиотека (RE AI Command Queuing Library):
    Далее настраиваются активаторы по похожему принципу: активатор, отвечающий за команду открытия дверей у чётных поездов и у нечётных - редактируется правило RE AI Command Queuing Activator:


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

    В конечном итоге в стеке для каждого чётного и нечётного пассажирского поезда или электропоезда необходимо добавить регистрацию в соответствующем активаторе.

    Лично у меня регистрация в активаторе помещена в стек перед командами перед прибытием на станцию. Остановка на станции производится при помощи команды ботомашинисту «ехать до стоп-маркера «Остановка состава», однако для остановки может быть использован в т.ч. маркер.
    Каждому пассажирскому поезду необходимо поставить в стек команду проверки очереди команд (Ждать появления команд -> выбрать группу -> тип состава -> тяга -> проверить наличие -> вставить
    Последний раз редактировалось Transmitter; 19.01.2015 в 00:04.

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


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

    Donate with PayPal button N3v New New

     

  4. #2
    Пользователь Аватар для Andrey
    Регистрация
    26.11.2009
    Страна
    Адрес
    Минск
    Сообщений
    702

    По умолчанию

    Серега, так эту библиотеку по каждой станции создавать? А если на карте множество о. п. для "собак" так тогда как?

  5. #3
    Пользователь Аватар для Transmitter
    Регистрация
    31.10.2014
    Страна
    Адрес
    Moscow
    Сообщений
    127
    Автор

    По умолчанию

    Andrey, ну тут уж... кто во что горазд, как говорится. Собственно говоря, если движение электропоездов происходит по двухпутному участку (хотя разницы нет - даже по однопутному), то для каждого о.п. открытие дверей можно прописать командами, ведь тут же известно же, на каком о.п. с какой стороны платформа. БОК и другие примочки, я так полагаю, эффективно применять на тех станциях, где заранее неизвестно что куда и когда прибудет, где много платформ и т.п.
    Последний раз редактировалось Transmitter; 19.01.2015 в 01:14.

  6. #4
    Пользователь Аватар для Andrey
    Регистрация
    26.11.2009
    Страна
    Адрес
    Минск
    Сообщений
    702

    По умолчанию

    Да, у меня почему то не оказалось команды Open doors, как у тебя на скрине и на ДЛС нету. Пробую пока другой командой... но все таки надо придумать какой-то алгоритм чтобы на любой платформе поезда сами знали с какой стороны им открыть - закрыть.

  7. #5
    Пользователь Аватар для capuy
    Регистрация
    29.12.2014
    Страна
    Адрес
    Иваново
    Возраст
    45
    Сообщений
    218

    По умолчанию

    залил бы сессию что бы можно было покопаться в оригинале, потому как нужно видеть всю логическую цепочку

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


  9. #6
    Пользователь Аватар для NickLon
    Регистрация
    23.09.2009
    Страна
    Адрес
    Москва
    Возраст
    50
    Сообщений
    2,427

    По умолчанию

    Ой, не пойму, чего вы мучаетесь? Там же всё просто. Вот схема станции на 5 путей и 3 платформы с триггерами, маркерами и стоп-маркерами:
    |__________________________________| - это платформа 1.
    ===================================== - это 1-й путь.
    ===================================== - это 2-й путь.
    |---------------------------------------------------| - это платформа 2 у 2-го и 3-го пути
    ===================================== - это 3-й путь.
    ==M1=O2====T1===========T2====O1==M2= - это 4-й путь.
    |----------------------------------------------------| - это платформа 3 у 4-го и 5-го пути
    ===================================== - это 5-й путь.
    На примере окучивания 4-го пути объясню.
    1. Создаём группу списков очереди команд в БОК под названием "Открыть двери". В нем два списка: Открыть двери справа и Открыть двери слева.
    2. Настраиваем активатор "Открытие дверей", в котором триггер 1 (Т1) привязываем к списку Открыть двери справа, а триггер Т2 привязываем к списку Открыть двери слева. Аналогично все триггеры на других путях. Там только триггеры будут другие, а привязка их к тем же самым спискам.
    3. Цепочка команд машинисту будет выглядеть примерно так: Автомашинист -> Проехать маркер М1, Регистрация в активаторе "Открытие дверей", Следовать до стоп-маркера О1, Ждать появления команд->Проверить наличие/вставить из группы "Открыть двери".
    Всё, поскольку после регистрации первым проехали триггер 1, то активным на момент остановки состава будет список "Открыть двери справа", его поезд и схватит. В противоположном направлении наоборот, поезд сначала наедет на Т2 и активирует список Открыть двери слева.
    Другое дело, что путевые объекты Т1, О1 и Т2, О2 должны быть максимально близко друг к другу, например, на расстоянии 70-100 метров, чтобы не произошло наложения активации списка одним поездом, а схватит список другой поезд.
    Иногда мы принимаем такие решения, которым тараканы в голове аплодируют стоя.

  10. #7
    Пользователь Аватар для Andrey
    Регистрация
    26.11.2009
    Страна
    Адрес
    Минск
    Сообщений
    702

    По умолчанию

    NickLon: Тогда еще 2 вопроса - 1-ый зачем команда "Проехать маркер М1" после "Автомашинист" и 2-й: как будут себя вести платформы с функцией погрузки пассажиров?

  11. #8
    Пользователь Аватар для NickLon
    Регистрация
    23.09.2009
    Страна
    Адрес
    Москва
    Возраст
    50
    Сообщений
    2,427

    По умолчанию

    Andrey, это может быть любая другая команда, обеспечивающая движение ПС до регистрации в активаторе. Автомашинист и Проехать маркер - это одна и та же команда. Проехать маркер - это её опция. К БОК, равно как и сама БОК никакого отношения к различным функциям других объектов отношения не имеет. Они, скорее всего, будут вести себя так, как и без использования ботомашиниста или БОК.
    Кстати, а что за платформы такие ты юзаешь?
    Иногда мы принимаем такие решения, которым тараканы в голове аплодируют стоя.

  12. #9
    Пользователь Аватар для Andrey
    Регистрация
    26.11.2009
    Страна
    Адрес
    Минск
    Сообщений
    702

    По умолчанию

    AJS

  13. #10
    Пользователь Аватар для xakepok
    Регистрация
    16.10.2012
    Сообщений
    364

    По умолчанию

    Скрины только верни, а то без них не понятно не фига

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

Ваши права

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