Вставляет уже существующих агентов в определенное место внутри процесса, заданного потоковой диаграммой.
Этот блок обычно используется либо для добавления агентов, созданных, например, с помощью диаграммы состояний или события, в процесс, описанный потоковой диаграммой, либо в паре с блоком Exit — для реализации маршрутизации агентов. Чтобы добавить агента в процесс, вы должны вызвать функцию блока take(agent).
- Тип агентов, поступающих в диаграмму процесса через этот блок. Упоминается ниже как T.
Значение по умолчанию: 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 — агент - [Параметр виден, если Новое местоположение: Точка]
Координаты точки.Тип значения: 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
- Выходной порт.
-
Как мы можем улучшить эту статью?
-