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