PedGroupAssemble

Формирует группы из последовательно поступающих во входной порт пешеходов.

Поддерживается три режима создания групп:

Может использоваться и для воссоединения группы после того, как та была разбита на отдельных пешеходов блоком PedGroupDisassemble. Такие пешеходы будут ждать прихода всех членов их группы в заданной вами области ожидания. По приходу всех членов группы они проследуют дальше уже вновь в виде цельной группы пешеходов. Группы воссоединяются независимо друг от друга, в это же время блок может производить также и формирование новой группы пешеходов.

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

Параметры

Область [динамический]
Прямоугольный узел или многоугольный узел, в котором пешеходы будут ждать, пока группа не будет сформирована.
Тип значения: AreaNode
Локальная переменная: ped - пешеход.
Этот блок
Выберите, этот блок: создает группы или собирает группы путем поиска соответствия.
Имя: assemblingMode
Возможные значения:
Группа создается
[Виден, если Этот блок: создает группы] Определяет, что будет являться критерием завершения создания группы: будет ли создаваться группа с заданным числом человек, или в течение заданного времени, или создание группы будет завершаться, если время между приходами пешеходов превзойдет заданное максимальное значение (пока соблюдается интенсивность).
Имя: groupingMode
Возможные значения:
Число человек в группе [динамический]
[Виден, если Группа создается: с заданным числом человек] Число человек в группе. Если, например, вы оставите значение по умолчанию, то будут создаваться группы из двух и из трех человек (с равными вероятностями).
Тип значения: int
Значение по умолчанию: uniform_discr( 2, 3 )
Локальная переменная: leader - лидер группы.
Время формирования группы [динамический]
[Виден, если Группа создается: в течение заданного времени] Время, в течение которого будет собираться группа. Когда этот таймаут истечет, формирование группы будет закончено, и начнется формирование новой группы.
Тип значения: double
Значение по умолчанию: exponential(300/hour())
Макс. время между прибытиями для одной группы [динамический]
[Виден, если Группа создается: пока соблюдается интенсивность] Максимальное время между прибытиями пешеходов в одной группе. Если время между прибытиями превзойдет заданное здесь значение, то формирование одной группы будет завершено и начнется формирование новой.
Тип значения: double
Значение по умолчанию: 2 секунды
В той же группе [динамический]
[Виден, если Этот блок: собирает группы путем поиска соответствия] Указанное здесь условие будет проверяться для всех групп, собранных в этом блоке. Если условие выполняется (true) для какой-либо группы, пешеход присоединится к этой группе. Указанное условие может, например, анализировать и сравнивать ID группы и пешехода. Если условие не выполняется (false) ни для одной группы, начинает формироваться новая группа пешеходов.
Тип значения: boolean
Локальные переменные:
Создаются группы [динамический]
[Виден, если Этот блок: собирает группы путем поиска соответствия] Если указанное здесь условие выполняется(true), то сборка группы завершена (текущий пешеход будет последним членом группы).
Тип значения: boolean
Локальные переменные:
Форма [динамический]
Форма группы пешеходов: толпа, шеренга или цепочка.
Имя: groupFormation
Изменить значение: set_groupFormation(новое значение)
Допустимые значения:
Поведение группы в сервисах
Здесь вы можете задать, как создаваемые этим блоком группы пешеходов будут вести себя при прохождении сервисов (если в задающем сервис блоке PedService не будет выбрано другое поведение). Возможны три варианта: Имя: serviceGroupBehavior
Изменить значение: set_serviceGroupBehavior(новое значение)
Возможные значения:
Действия
При входе [код]
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped - пешеход
При начале создания группы [код]
Код, который выполняется в момент начала формирования группы (прихода первого члена этой группы - лидера).
Локальные переменные:
При окончании формирования группы [код]
Код, который выполняется, когда этот блок покидает последний член группы пешеходов. Код выполняется после Действия при выходе этого пешехода.
Локальные переменные:
При выходе [код]
Код, который выполняется, когда пешеход покидает блок через порт out.
Локальная переменная: ped - пешеход
При отмене [код]
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl.
Локальная переменная: ped - пешеход
При извлечении [код]
Код, выполняемый, когда пешеход умышленно извлекается из блока посредством вызова функции блока remove().
Локальная переменная: ped - пешеход

Функции

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

long countGroups() - Возвращает количество сформированных этим блоком групп (включая и собираемую в текущий момент времени группу).

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

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

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

Agent remove(Agent agent) - Извлекает указанного агента из блока.

Порты

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