NetworkStoragePut


Используется при моделировании транспортных сетей. NetworkStoragePut помещает заявку в ячейку заданного стеллажа NetworkStorage или зоны хранения NetworkStorageZone. При этом заявка перемещается из ее текущего местоположения в сети к ячейке (при необходимости, с помощью движущихся сетевых ресурсов). Вы можете добавить задержку, моделирующую время, требуемое на помещение заявки в ячейку; время задержки может зависеть от координат ячейки, например, от уровня этой ячейки.

Ячейка может быть задана явно с помощью координат (ряд, место, уровень) или же выбираться автоматически. В последнем случае объект NetworkStoragePut использует метод getFreeCell() соответствующего стеллажа или зоны хранения.

Если заявка перемещается с помощью ресурсов, NetworkStoragePut захватывает их, переносит их в местоположение заявки, присоединяет их к заявке, перемещает заявку к ячейке, (при необходимости) добавляет задержку, а затем освобождает ресурсы. Вы можете также захватывать и освобождать ресурсы и без помощи объекта NetworkStoragePut, или же не использовать их вовсе.

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

Объект позволяет пользователю задавать любые действия, которые он хочет выполнить в значимые моменты работы объекта.

На момент выхода заявки из объекта NetworkStoragePut, она будет храниться в ячейке. Если это конечная точка моделируемого Вами процесса обработки заявок, Вы можете добавить объект Exit после объекта NetworkStoragePut, но Вы не должны оставлять его выходной порт несоединенным. При этом не будет корректным добавлять объект Sink после этого объекта Exit, поскольку заявка будет по-прежнему оставаться в системе.

Порты

Port in
Входной порт.
Port out
Выходной порт.

Параметры

NetworkStorage или NetworkStorageZone [динамический]
Имя стеллажа NetworkStorage или зоны хранения NetworkStorageZone, куда будет помещаться заявка.  
Синтаксис: StorageAccess<T> storage
Локальная переменная: T entity - заявка.
Ячейка
Определяет, как будет выбираться ячейка, в которую нужно будет добавить заявку: будет ли она Задана явно пользователем, или же она Выбирается автоматически.
Синтаксис: boolean autoChooseCell
Локальная переменная:  T entity - заявка.
Значение по умолчанию: Выбирается автоматически (true)
Ряд [динамический]
[Виден, если Ячейка Задана явно] Ряд ячейки.
Синтаксис: int row
Локальная переменная: T entity - заявка.
Место [динамический]
[Виден, если Ячейка Задана явно] Место ячейки в ряду.
Синтаксис: int position
Локальная переменная:  T entity - заявка.
Уровень [динамический]
[Виден, если Ячейка Задана явно] Уровень ячейки.
Синтаксис: int level
Локальная переменная:  T entity - заявка.
Выбрать ячейку, ближайшую к
[Виден, если Ячейка Выбирается автоматически]  Определяет, будет ли выбираться ячейка, ближайшая к Началу стеллажа/зоны хранения  или к Концу стеллажа/зоны хранения.
Синтаксис: boolean closeToFront
Локальная переменная:  T entity - заявка.
Значение по умолчанию: Началу стеллажа/зоны хранения (true)
Перемещать с помощью ресурсов
Если опция выбрана (true), то заявка будет перемещаться с помощью указанных движущихся ресурсов.
Синтаксис:  boolean useResources
Значение по умолчанию: false
Список ресурсов {pool1, ...} [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Список объектов NetworkResourcePool, задающих ресурсы, необходимые заявке для перемещения.
Синтаксис:  NetworkResourcePool[] resources
Локальная переменная: T entity - заявка.
После освобождения ресурсы
[Виден, если выбрана опция Перемещать с помощью ресурсов] Определяет, должны ли ресурсы после освобождения возвращаться в их базовое местоположение или оставаться в том же месте сети.
Синтаксис:  boolean resourcesGoHome
Значение по умолчанию: Возвращаются в базовое местоположение (true)
Добавлять задержку
Если опция выбрана (true), то между достижением заявки ячейки и ее фактическим помещением в эту ячейку будет добавляться задержка, моделирующая время, требуемая на выполнение этой операции.
Синтаксис
: boolean useDelay
Значение по умолчанию: false
Время задержки [динамический]
[Виден, если выбрана опция Добавлять задержку] Выражение, вычисляющее время, необходимое для помещения заявки в ячейку. 
Синтаксис
: double delayTime
Локальные переменные: T entity - заявка.
             NetworkStorage storage - стеллаж NetworkStorage или зона хранения NetworkStorageZone, куда будет помещаться заявка. 
             int row - ряд ячейки
             int position - место ячейки в ряду
             int level -  уровень ячейки
Значение по умолчанию: triangular( 0.5, 1, 1.5 )
Перемещать заявку
Определяет, должна ли заявка (возможно, вместе с присоединенными ресурсами) плавно двигаться в течение всего пути по проходу и затем к самой ячейке или же она должна перемещаться только до места в проходе, находящегося напротив ячейки, а в саму ячейку помещаться мгновенно, "скачком".
Синтаксис: boolean moveAllTheWay
Значение по умолчанию: До самой ячейки (true)
Действие при входе [динамический]
Код, выполняемый, когда заявка поступает в объект.
Синтаксис: void onEnter
Локальная переменная: T entity - заявка.
Действие по прибытии ресурсов [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Код, выполняемый, когда ресурсы прибывают в текущее местоположение ячейки.
Синтаксис: void onResourcesArrived
Локальная переменная: T entity - заявка.
Действие при начале задержки [динамический]
[Виден, если выбрана опция Добавлять задержку] Код, выполняемый, когда начинается время задержки, связанной с помещением заявки в ячейку.
Синтаксис: void onDelayStarts
Локальные переменные: T entity - заявка.
             double delayTime - время задержки.
             NetworkStorage storage - стеллаж NetworkStorage или зона хранения NetworkStorageZone, куда будет помещаться заявка. 
             int row - ряд ячейки
             int position - место ячейки в ряду
             int level -  уровень ячейки
Действие по окончании задержки [динамический]
[Виден, если выбрана опция Добавлять задержку] Код, выполняемый, когда заканчивается время задержки, связанной с помещением заявки в ячейку.
Синтаксис: void onDelayEnds
Локальная переменная: T entity - заявка.
Действие при выходе [динамический]
Код, выполняемый, когда заявка покидает объект.
Синтаксис: void onExit
Локальные переменные: T entity - заявка.
             NetworkStorage storage - стеллаж NetworkStorage или зона хранения NetworkStorageZone, куда будет помещаться заявка. 
             int row - ряд ячейки
             int position - место ячейки в ряду
             int level -  уровень ячейки
Фигура анимации (queue)
Фигура анимации вложенного объекта queue. Тип фигуры зависит от выбранного Типа анимации (queue).
Синтаксис: Shape animationGuide
Тип анимации (queue)
Тип анимации вложенного объекта queue. Допустимые значения: Путь, Мешок, Упорядоченная, Набор, Одиночная
Синтаксис: int animationType
Значение по умолчанию: Путь
Допустимые значения: Animator.PATH, Animator.BAG, Animator.ARRANGED, Animator.SET, Animator.SINGLE
Направление анимации (queue)
[Параметр виден, если в качестве Типа анимации (queue) выбран Путь] Направление движение анимаций по фигуре анимации вложенного объекта queue.
Синтаксис: boolean animationForward
Значение по умолчанию: Вперед (true)

Функции

int queueSize() - возвращает количество заявок, находящихся в очереди ожидания ресурса.