AnyLogic
Развернуть
Размер шрифта

Enter

Вставляет уже существующих агентов в определенное место внутри процесса, заданного потоковой диаграммой.

Этот блок обычно используется либо для добавления агентов, созданных, например, с помощью диаграммы состояний или события, в процесс, описанный потоковой диаграммой, либо в паре с блоком Exit — для реализации маршрутизации агентов. Чтобы добавить агента в процесс, вы должны вызвать функцию блока take(agent).

Параметры

Тип агента
Тип агентов, поступающих в диаграмму процесса через этот блок.
Значение по умолчанию: Agent
Новое местоположение
Здесь задается местоположение агентов, поступающих в диаграмму процесса через этот блок. Выберите одну из следующих опций:
Не задано — агенты остаются там, где находятся.
Узел сети / ГИС — агенты будут помещены в заданный узелсети, в ГИС точку или в ГИС регион.
Аттрактор — агенты будут помещены в заданном аттракторе.
Точка — точка в координатах x, y, z, в которую будут помещены агенты.
(Широта, долгота) — агенты помещаются в точку на карте с заданными координатами Широты и Долготы.
Географ. место — агенты помещаются в определенное место на карте. Вы можете задать это местоположение в параметре Имя места.
Имя: locationType
Допустимые значения:
Enter.LOCATION_NOT_SPECIFIED — Не задано
Enter.LOCATION_NODE — Узел сети / ГИС
Enter.LOCATION_ATTRACTOR — Аттрактор
Enter.LOCATION_XYZ — Точка
Enter.LOCATION_LATLON — (Широта, долгота)
Enter.LOCATION_GEO_PLACE — Географ. место
Узел
[Параметр виден, если Новое местоположение: Узел сети / ГИС]
Узел сети, ГИС точка или ГИС регион, куда отправляются агенты, поступившие в этот блок.
Локальная переменная: T agent — агент
Аттрактор
[Параметр виден, если Новое местоположение: Аттрактор]
Аттрактор, куда отправляются агенты, поступившие в этот блок.
Тип значения: Attractor
Локальная переменная: T agent — агент
Координаты X, Y, Z
[Параметр виден, если Новое местоположение: Точка]
Координаты точки.
Тип значения: double
Локальная переменная: T agent — агент
... расположена
[Параметр виден, если Новое местоположение: Точка (x, y, z)]
Здесь можно выбрать, где будет находиться точка, в которой окажется агент, поступивший в этот блок: на уровне или в сети.
Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Уровень
[Параметр виден, если ...расположена: на уровне]
Уровень, на котором расположена точка, куда будет помещен агент, поступивший в этот блок.
Тип значения: Level
Локальная переменная: T agent — агент
Сеть
[Параметр виден, если ...расположена: в сети]
Сеть, в которой расположена точка, куда будет помещен агент, поступивший в этот блок.
Тип значения: INetwork
Локальная переменная: T agent — агент
Широта, Долгота
[Параметр виден, если Новое местоположение: (широта, долгота)]
Координаты широты и долготы точки на ГИС карте, куда будут помещены агенты.
Тип значения: double
Локальная переменная: T agent — агент
Имя места
[Параметр виден, если Новое местоположение: Географ. место]
Имя конкретного места на карте ГИС, куда будут помещены агенты. Укажите имя как текст в кавычках, например, "London". ГИС карта выполнит поиск места по этому имени. Первый результат в списке результатов ГИС поиска будет использован в качестве местоположения, куда будут помещены агенты.
Тип значения: String
Локальная переменная: T agent — агент
Скорость
[Параметр виден, если Новое местоположение задано одной из опций]
Скорость агентов, которые поступают на диаграмму процесса через этот блок.
Тип значения: double
Значение по умолчанию: 10 м/с
Локальная переменная: T agent — агент

Агент

Изменить размеры
Если опция выбрана (true), вы можете изменить размеры агентов, попадающих в диаграмму процесса через этот блок, задав новые значения в параметрах Длина, Ширина и Высота.
Тип значения: boolean
Локальная переменная: agent — агент
Длина
[Параметр виден, если выбрана опция Изменить размеры]
Новое значение длины агента.
Тип значения: double
Локальная переменная: agent — агент
Ширина
[Параметр виден, если выбрана опция Изменить размеры]
Новое значение ширины агента.
Тип значения: double
Локальная переменная: agent — агент
Высота
[Параметр виден, если выбрана опция Изменить размеры]
Новое значение высоты агента.
Тип значения: double
Локальная переменная: agent — агент

Специфические

Добавлять новых агентов в
Здесь вы можете указать, куда будут помещены агенты, созданные этим блоком, в популяцию по умолчанию или в другую популяцию агентов, которую вы можете выбрать ниже. Обратите внимание, что это относится только к тем агентам, которые были только что созданы конструктором new() и пока еще не присутствуют в модели как агенты.
Синтаксис: boolean addToCustomPopulation
Значение по умолчанию: популяцию по умолчанию( false)
Популяция агентов
[Параметр виден, если Добавлять новых агентов в: другую популяцию агентов]
Имя популяции агентов, куда будут помещены агенты, созданные этим блоком.
Тип значения: AgentList
Локальная переменная: T agent — агент, созданный в этом блоке
Выталкивать агентов
Если опция выбрана ( true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока.
Синтаксис: boolean pushProtocol

Действия

При входе
Код, выполняемый, когда агент поступает в блок.
Локальная переменная: T agent — агент
При извлечении
Код, выполняемый, когда агент умышленно извлекается из блока посредством вызова функции агента remove(). Этот код вызывается автоматически после вызова функции remove().
Локальная переменная: T agent — агент
При подходе ко входу
Здесь вы можете задать код, который будет выполняться в момент, когда агент решает, что он, скорей всего, пройдет через этот блок.
Локальная переменная: T agent — агент

Функции

Функция Описание
void take(agent) Посылает данного агента через выходной порт блока, тем самым добавляя данного агента в процесс.
long count() Возвращает количество агентов, поступивших на диаграмму процесса через этот блок Enter. Эта функция не считает агентов, ожидающих перехода (они считаются функцией size()).
int size() Возвращает количество агентов, в данный момент ожидающих перехода в этом блоке (которые еще не принял следующий блок диаграммы процесса).
boolean cancel(Agent agent) Отменяет захват указанного агента — если он еще не был принят следующим блоком диаграммы процесса.Параметр:agent: агент, которого надо отменить. Используйте null, чтобы отменить всех агентов, ожидающих перехода в этом блоке.
Возвращает true, если агент был успешно удален из этого блока, и false в случае, если агент уже был перемещен на диаграмму процесса через этот блок или если указанный агент не был забран этим блоком с помощью функции take().
int cancelAll() Отменяет всех агентов, которые ждут перехода в этом блоке в данный момент (которых еще не принял следующий блок диаграммы процесса). Возвращает количество отмененных агентов.
Iterator<T> iterator() Возвращает итератор над агентами, которые ждут перехода в этом блоке в данный момент (которых еще не принял следующий блок диаграммы процесса) — в порядке функции take(). Обратите внимание, что возвращенные агенты могут быть позже захвачены следующим блоком в любое время (например, блок Delay освободится, или блок Hold разблокируется) — если только не были вызвана функция cancel().

Порты

out
Выходной порт.
Как мы можем улучшить эту статью?