Дожидается поступления двух агентов в порты in1 и in2 (в произвольном порядке), а затем создает нового агента и направляет его на выходной порт. Агент, прибывающий первым, хранится внутри блока, пока не придет другой. Как только прибывает другой агент, созданный агент сразу же покидает блок.
Блок Combine может использоваться для различных целей. Во-первых, он может служить точкой синхронизации, позволяющей одному агенту продолжать свое движение только после прихода другого. Во-вторых, вы можете использовать блок Combine для воссоединения агента с его копией/родственным агентом, созданным блоком Split. В-третьих, Combine может служить альтернативой блоку Pickup, если требуется подобрать только одного агента: для этого нужно просто написать agent.addEntityToContents( agent2 ) в коде действия При выходе.
Если объединенный агент создается как абсолютно новый, вы можете указать собственный тип агента в параметре Новый агент (объединенный), чтобы продолжить использовать этот тип далее в параметрах блоков диаграммы процесса. В случае, если объединенный агент равен агентам agent1 или agent2, и это не стандартный тип агента, а созданный вами, и вы хотите, чтобы этот тип агента распознавался в следующих блоках диаграммы процесса, укажите этот тип в параметре Тип агента (out) секции Специфические.
Прибывающий первым агент может отображаться на презентации в заданном вами месте.
- Объединенный агент
- Определяет, как будет создаваться новый (объединенный) агент:
Абсолютно новый — новый агент создается путем выполнения пользовательского кода в поле Новый агент (объединенный)
agent1 — новый агент равен первоначальному агенту, поступившему в порт in1 (другой агент уничтожается)
agent2 — новый агент равен первоначальному агенту, поступившему в порт in2 (другой агент уничтожается)Имя: combineMode
Значение по умолчанию: Абсолютно новый (Combine.NEW)
Возможные значения:Combine.NEW — Абсолютно новый
Combine.ENTITY1 — agent1
Combine.ENTITY2 — agent2 - [Параметр виден, если Объединенный агент: Абсолютно новый]
Тип нового агента (или выражение, определяющее, какой агент будет создаваться). Упоминается ниже как T.Значение по умолчанию: Agent
Локальные переменные:
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2 - Если опция выбрана (true), можно будет изменить размеры агентов, создаваемых этим блоком, задав соответствующие значения в параметрах Длина, Ширина и Высота ниже.
Тип значения: boolean
Локальная переменная: agent — агент - [Параметр виден, если выбрана опция Изменить размеры]
Новая длина создаваемого агента.Тип значения: double
Локальная переменная: agent — агент - [Параметр виден, если выбрана опция Изменить размеры]
Новая ширина создаваемого агента.Тип значения: double
Локальная переменная: agent — агент - [Параметр виден, если выбрана опция Изменить размеры]
Новая высота создаваемого агента.Тип значения: double
Локальная переменная: agent — агент - Место агентов 1
- Фигура разметки (узел или путь) первоначального агента, поступившего в блок через порт in1 и ожидающего поступления другого агента.
Синтаксис: entityLocation1
- Место агентов 2
- Фигура разметки (узел или путь) первоначального агента, поступившего в блок через порт in2 и ожидающего поступления другого агента.
Синтаксис: entityLocation2
- Местоположение собранных агентов
-
Узел или путь, где находится объединенный агент, пока он не перешел в следующий блок.
Синтаксис: AnimationStaticLocationProvider entityLocation
- Добавить созданных агентов в
- Здесь вы можете указать, куда будут помещены агенты, созданные этим блоком, в популяцию по умолчанию или в другую популяцию агентов, которую вы можете выбрать ниже.
Синтаксис: boolean addToCustomPopulation
- [Параметр виден, если Добавить объединенных агентов в: популяцию по умолчанию]
Имя популяции агентов, куда будут помещены агенты, созданные этим блоком.Тип значения: AgentList
Локальные переменные:
T agent — созданный агент, покидающий блок
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2 - Выталкивать агентов
- Если опция выбрана (true), то агенты, созданные этим блоком, будут немедленно вытолкнуты дальше независимо от состояния следующего блока.
Синтаксис: boolean pushProtocol
- Вернуть агента в исходную точку
- Если опция выбрана, агенты возвращаются в свое начальное местоположение (узел или путь, где они находились до того, как попали в блок Combine), после того, как покинут фигуры разметки, заданные в параметрах Место агентов 1, 2.
Синтаксис: boolean restoreEntityLocationOnExit
- При входе 1
- Код, выполняемый, когда через порт in1в блок поступает агент.
Локальная переменная: T1 agent — агент.
- При входе 2
- Код, выполняемый, когда через порт in2в блок поступает агент.
Локальная переменная: T2 agent — агент.
- При выходе
- Код, выполняемый, когда созданный агент покидает блок.
Локальные переменные:
T agent — созданный агент, покидающий блок в данный момент времени
T1 agent1 — первоначальный агент, поступивший в порт in1
T2 agent2 — первоначальный агент, поступивший в порт in2
- Тип агента (in1), Тип агента (in2), Тип агента (out)
- Тип агентов:
поступающих в блок через порт in1
Возможно, вам понадобится указать собственные типы агентов, чтобы они были доступны в действиях блока.
поступающих в блок через порт in2
покидающих блокТип значения: T1, T2, T
- in1
- Входной порт 1.
- in2
- Входной порт 2.
- out
- Выходной порт.
-
Как мы можем улучшить эту статью?
-