PedEscalator


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

Сам эскалатор рисуется с помощью специальной фигуры разметки пространства группа эскалаторов.

Демо модель: Escalator

Параметры

Эскалаторы
Здесь вам нужно будет указать имя фигуры разметки пространства Группа эскалаторов, графически задающей эскалатор(ы).
Синтаксис: EscalatorGroup escalators
Изменить значение динамически
: set_escalators(новое значение)
Направление [динамический]
Выберите здесь, перемещаются ли пешеходы по эскалатору Вверх или Вниз. Вы можете выбрать направление с помощью переключателя, либо же переключиться в режим задания динамически перевычисляемого выражения и ввести Java выражение, которое будет возвращать одно из двух допустимых значений в зависимости от определенных внешних условий или свойств пешехода.
Локальная переменная: ped - пешеход
Допустимые значения:
PedEscalator.MOVEMENT_DIRECTION_UP (Вверх)
PedEscalator.MOVEMENT_DIRECTION_DOWN (Вниз)
Выбирать эскалатор
Здесь вы можете выбрать, будут ли пешеходы выбирать Ближайший к ним эскалатор из заданной группы эскалаторов, либо же вы хотите задать какой-то алгоритм выбора (для этого выберите опцию Другой), и введите условие выбора в поле Эскалатор ниже.
Имя: escalatorChoicePolicy
Изменить значение динамически: set_escalatorChoicePolicy(новое значение)
Допустимые значения:
PedEscalator.CHOICE_CLOSEST (Ближайший)
PedEscalator.CHOICE_CUSTOM (Другой)
Эскалатор [динамический]
[Параметр виден, если выбрана опция Выбирать эскалатор: Другой] Здесь вы можете задать выражение, которое будет динамически вычисляться заново для каждого поступившего в блок пешехода, и выбирать для данного пешехода тот или иной эскалатор. Выражение должно возвращать эскалатор, входящий в состав заданной в поле Эскалаторы группы эскалаторов.
Тип значения: Escalator
Локальная переменная: ped - пешеход
Действия
При входе [код]
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped - пешеход
При выходе [код]
Код, который выполняется, когда пешеход покидает блок через выходной порт out в случае успешного перемещения эскалатором.
Локальная переменная: ped - пешеход
При отмене [код]
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl (аварийный сценарий) в результате вызова функции блока cancel() или cancelAll().
Локальная переменная: ped - пешеход

Функции

int size() - Возвращает количество пешеходов, находящихся внутри этого блока.

long сountPeds() - Возвращает количество всех прошедших через блок пешеходов.

void cancel(Agent ped)- Прерывает команду для заданного пешехода и заставляет его покинуть объект через порт ccl (только если данный пешеход еще не зашел на эскалатор). Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.

void cancelAll()- Прерывает выполнение команды для всех еще не зашедших на эскалатор пешеходов и заставляет их покинуть объект через порт ccl. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.

Set<Agent> getPeds() - Возвращает неизменяемую коллекцию, содержащую пешеходов, находящихся в этом блоке.

boolean contains(Agent ped) - Возвращает true, если указанный пешеход ped находится внутри объекта.

Порты

in
Входной порт.
out
Выходной порт, через который пешеходы покидают блок в случае успешного перемещения эскалатором.
ccl
Выходной порт, через который пешеходы покидают блок в случае "отмены" операции (возникшего в результате вызова функции cancel или cancelAll).