PedWait


Заставляет пешеходов перейти в заданное место и ожидать там в течение определенного периода времени.

Задание места ожидания

Место ожидания может быть линией, точкой или областью.

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

Демо модель: Pedestrian Attractors

Задание времени ожидания

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

Параметры

Место ожидания
Тип места ожидания:
  • Область - место ожидания выбирается внутри области, указанной ниже в параметре Область. Конкретная точка ожидания внутри данной области может как выбираться случайно, так и задаваться явно с помощью аттрактора (аттракторов), см. параметр Использовать аттракторы ниже.
  • Линия - место ожидания задается целевой линией. Пешеходы будут ожидать в случайно выбранной точке данной линии.
  • Точка (x,y) - пешеходы будут ожидать в точке с указанными координатами. Поскольку координаты задаются с помощью динамических параметров, они могут меняться по ходу моделирования, например, в зависимости от атрибутов пешехода.
Имя: locationType Изменить значение: set_locationType(новое значение)
Возможные значения:
LOCATION_LINE - линия
LOCATION_POINT
- точка (x,y)
LOCATION_AREA - область
Область [динамический]
[Виден, если Место ожидания: область] Здесь нужно выбрать элемент разметки - область, в которой пешеходы будут ожидать.
Тип значения: AreaNode
Локальная переменная: ped - пешеход
Использовать аттрактор
[Виден, если Место ожидания: Область] Здесь вы можете выбрать, к какому аттрактору пешеходы будут приходить для ожидания: случайному, свободному или заданному . Конкретный аттрактор задается ниже, в параметре Аттрактор.
Имя: attractorChoice
Изменить значение: set_attractorChoice(новое значение)
Возможные значения: PedWait.ATTRACTOR_CHOICE_NONE - нет
PedWait.ATTRACTOR_CHOICE_RANDOM - случайный
PedWait.ATTRACTOR_CHOICE_FREE - свободный
PedWait.ATTRACTOR_CHOICE_CUSTOM - заданный
Аттрактор [динамический]
[Виден, если Место ожидания: Область и Использовать аттрактор: Заданный] Укажите здесь имя аттрактора – элемента, задающего точку, которая будет притягивать пешеходов на время их ожидания.
Тип значения: Attractor
Локальные переменные: ped - пешеход
AreaNode areaNode - область
Целевая линия [динамический]
[Виден, если Место ожидания: линия] Здесь нужно выбрать элемент разметки - целевую линию, в одной из точек которой пешеходы будут ожидать.
Тип значения: TargetLine
Локальная переменная: ped - пешеход
X, Y [динамический]
[Виден, если Место ожидания: точка (x,y)] X (Y) координата точки, в которой будут ожидать пешеходы.
Тип значения: double
Локальная переменная: ped - пешеход
Ожидание заканчивается
Задает, будут ли пешеходы ожидать в области в течение указанного времени (опция По истечении заданного времени), или же они будут ожидать, пока пользователь не вызовет метод free() (опция По вызову функции free()).
Имя: delayType
Изменить значение: set_delayType(новое значение)
Возможные значения:
DELAY_TIMEOUT
- По истечении заданного времени
DELAY_MANUAL - По вызову функции free()
Время задержки [динамический]
[Виден, если Ожидание заканчивается По истечении заданного времени] Выражение, вычисляющее время ожидания для пешехода.
Тип значения
: double
Локальная переменная: ped - пешеход
Задержка начинается когда
[Виден, если выбран Ожидание заканчивается По истечении заданного времени] Параметр задает, при каком событии будет начинаться время ожидания. Возможны следующие варианты:
Пешеход входит в объект - ожидание начинается, когда пешеход входит в блок PedWait;
Пешеход останавливается у точки - ожидание начинается, когда пешеход останавливается у точки заданного места ожидания;
Пользователь вызывает функцию activate() - ожидание инициируется пользователем;
Имя: delayStartsWhen Изменить значение: set_delayStartsWhen(новое значение)
Возможные значения:
DELAY_STARTS_SINCE_ENTER_BLOCK
- Пешеход входит в объект
DELAY_STARTS_SINCE_BEGIN_WAIT - Пешеход останавливается у точки
DELAY_STARTS_SINCE_MANUAL_CALL - Пользователь вызывает функцию activate()
Максимальная вместимость
Если опция выбрана, то вместимость блока будет максимальной, ограничений на вместимость не будет. Если же вам нужно ограничить вместимость блока, сбросьте этот флажок и задайте значеине вместимости в расположенном ниже поле.
Имя: maximumCapacity Тип значения: boolean
Изменить значение: set_maximumCapacity(новое значение)
Вместимость
[Виден, если не выбрана опция Максимальная вместимость] Вместимость очереди - максимальное количество пешеходов, которые могут единовременно ожидать, выполняя заданную этим блоком команду.
Имя: capacity Тип значения: int
Изменить значение: set_capacity(новое значение)
Специфические
Точность достижения цели
Задает расстояние в метрах, на которое пешеход должен приблизиться к месту ожидания, чтобы ожидание началось.
Значение по умолчанию: 0.25 метров
Действия
При входе [код]
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped - пешеход. 
При начале ожидания [код]
Код, который выполняется, когда пешеход начинает ожидание.
Локальная переменная: ped - пешеход. 
При выходе [код]
Код, который выполняется, когда пешеход покидает объект через выходной порт out в случае успешного завершения команды.
Локальная переменная: ped - пешеход. 
При отмене [код]
Код, который выполняется, когда пешеход покидает объект через выходной порт ccl (аварийный сценарий).
Локальная переменная: ped - пешеход. 
При извлечении [код]
Код, выполняемый, когда пешеход умышленно извлекается из блока посредством вызова функции пешехода remove(). Этот код вызывается автоматически после вызова функции remove().
Локальная переменная: ped - пешеход. 

Функции

void activate(Agent ped) - Начинает ожидание для заданного пешехода (в случае, если выбран режим Задержка начинается когда: Пользователь вызывает функцию activate()).

Attractor getRandomAttractor(AreaNode areaNode) - Возвращает один случайно выбранный аттрактор, находящийся внутри переданной в качестве аргумента области.

Attractor getFreeAttractor(AreaNode areaNode) - Возвращает один свободный аттрактор, находящийся внутри переданной в качестве аргумента области.

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

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

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

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

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

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

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

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

Порты

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