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

Сервис

Сервис является неотъемлемой частью таких элементов разметки пространства, как Сервис с очередями и Сервис с областью. Правила обслуживания пешеходов, задаваемые для Сервиса с очередями или Сервиса с областью, применяются ко всем содержащимся в них элементам Сервис. При этом для каждого отдельного элемента Сервис вы можете выбрать свое правило обслуживания пешеходов, чей приоритет будет выше, чем у правила, заданного для исходного элемента.

Существуют два вида сервисов:

  • Линейный сервис задает линию, по которой должны двигаться пешеходы. Пешеход начинает процедуру обслуживания в начальной точке линии и затем продвигается к ее конечной точке, из которой покидает сервис. Когда пешеход направляется к сервису, этот сервис назначается пешеходу и становится недоступным (занятым) для остальных пешеходов. Пешеход перемещается в начальную точку и начинает ожидать там в течение заданного времени обслуживания. Затем пешеход перемещается в конечную точку линии. Фаза восстановления сервиса начинается, когда пешеход заканчивает процедуру обслуживания (если ожидание выхода из пешехода из сервиса отключено) или проходит конечную точку линии (если ожидание выхода пешехода из сервиса включено). Продолжительность фазы восстановления зависит от задержки восстановления. После восстановления сервис становится свободным и готов принимать новых пешеходов.
  • Точечный сервис задает точку, где пешеход должен ожидать в течение времени обслуживания. Когда пешеход направляется к сервису, этот сервис назначается этому пешеходу и становится недоступным (занятым) для остальных пешеходов. Пешеход перемещается в случайно выбранную точку линии и начинает ожидать там в течение заданного времени обслуживания. Фаза восстановления сервиса начинается, когда пешеход заканчивает процедуру обслуживания. Продолжительность фазы восстановления зависит от задержки восстановления. После восстановления сервис становится свободным и готов принимать новых пешеходов.

Чтобы сменить тип сервиса в элементе разметки

  1. Щелкните по элементу разметки Сервис с очередями или Сервис с областью, чтобы выбрать его в графическом редакторе.
  2. В свойствах элемента выберите необходимую опцию (Точечный или Линейный) в параметре Тип сервиса.

Свойства

Общие

Имя — Имя сервиса. Данное свойство используется для того, чтобы иметь доступ к этому элементу из программного кода.

Отображать имя — Если опция выбрана, имя элемента будет отражаться в графическом редакторе.

Отображается на верхнем агенте — Если опция выбрана, то фигура будет видна на презентации типа агента, в который будет вложен данный агент.

Переопределить правило выбора очереди — Приоритет этого выбора выше, чем приоритет правила, выбранного для элементов Сервис с очередями или Сервис с областью. Он задает очередь, пешеходов из которой будет обслуживать этот сервис. Когда сервис становится свободным, он выбирает очередь заново в соответствии с выбранной опцией. Доступны следующие опции:

Самой длинной очереди — очередь, содержащая наибольшее количество пешеходов.
Ближайшей очереди — очередь, которая расположена ближе всего к сервису, вне зависимости от того, содержит она пешеходов или нет.
Ближайшей непустой очереди — очередь с пешеходами, которая расположена ближе всего к сервису.
Следующей очереди (по порядку) — очереди выбираются по порядку друг за другом.
Очереди с приоритетом — очередь с наивысшим приоритетом (в соответствии с выражением, заданным в поле Заданной очереди).
Очередь задается пользователем — очередь возвращается при выполнении выражения, заданного в поле Очередь.

Заданной очереди — [Доступен, если в параметре Переопределить правило выбора очереди выбрана опция Очереди с приоритетом] Здесь вы можете ввести выражение Java, которое будет возвращать приоритет очереди. Чем выше возвращаемое значение, тем выше приоритет. Выражение пересчитывается динамически для каждой непустой очереди. В соответствии с результатами расчетов выбирается очередь с самым высоким приоритетом. Вы можете обратиться к очередями сервиса в данном выражении, использовав локальную переменную queue.

Очередь — [Доступен, если в параметре Переопределить правило выбора очереди выбрана опция Очередь задается пользователем] Здесь вы можете ввести выражение Java, которое будет возвращать выбранную очередь. Как правило, именно здесь необходимо размещать вызов вашей нестандартной функции Java.

Местоположение и размер

X — X-координата точки сервиса (если сервис Точечного типа) или начальной точки линии сервиса (если сервис Линейного типа).

Y — Y-координата точки сервиса (если сервис Точечного типа) или начальной точки линии сервиса (если сервис Линейного типа).

Направление пешехода — [Доступен, если сервис Точечного типа]. Задает угол вращения для 2D / 3D модели пешехода и позволяет развернуть агента в нужную сторону в точке сервиса.

dX — [Доступен, если сервис Линейного типа] X-координата конечной точки линии сервиса.

dY — [Доступен, если сервис Линейного типа] Y-координата конечной точки линии сервиса.

Функции

Сервис
Функция Описание
getLongestQueue() Возвращает очередь, которая содержит наибольшее количество пешеходов.
getClosestQueue() Возвращает очередь, которая расположена ближе всего к сервису, вне зависимости от того, содержит она пешеходов или нет.
getClosestQueueNotEmpty() Возвращает непустую очередь, расположенную ближе всего к сервису.
int queuePriority(queue) Возвращает приоритет очереди если для параметра Переопределить правило выбора очереди выбрана опция Очереди с приоритетом.

queue — локальная переменная, доступная для элемента Сервис.
customSelectQueue() Возвращает очередь, если для параметра Переопределить правило выбора очереди выбрана опция Очередь задается пользователем.
boolean isSuspended() Возвращает true, если работа Сервиса приостановлена; в противном случае возвращает false. Приостановленный элемент не активен и не принимает пешеходов.
setSuspended(boolean suspended) Приостанавливает работу Сервиса, если значение аргумента suspended равно true; в противном случае возвращает элемент в рабочее состояние.
Color getColor() Возвращает цвет элемента.
setColor(Color color) Задает цвет элемента.

color — цвет элемента. Задается при помощи константы цвета или с помощью конструктора new Color(<red>, <green>, <blue>).
Линия сервиса
Функция Описание
double getStartX()
double getStartY()
double getStartZ()
Возвращает координату X (Y, Z) начальной точки линии сервиса.
double getEndX()
double getEndY()
double getEndZ()
Возвращает координату X (Y, Z) конечной точки линии сервиса.
double length() Возвращает длину линии сервиса в пространстве 2D (в пикселях).
Position getForwardStartPosition(Position out)
Position getReverseStartPosition(Position out)
Возвращает объект типа Position, который содержит координаты начальной (конечной) точки линии сервиса, а также углы вращения по горизонтали и вертикали.

Position out — объект, в который записываются данные.
Position getForwardPositionByOffset(double offset, Position out)
Position getReversePositionByOffset(double offset, Position out)
Возвращает объект out типа Position, который содержит координаты точки, находящейся на заданном расстоянии от начальной (конечной) точки линии сервиса, а также углы вращения по горизонтали и вертикали (в радианах).

double offset — расстояние (в пикселях) от начальной (конечной) точки линии сервиса.
Position out — объект, в который записываются данные.
double getForwardOrientation()
double getReverseOrientation()
Возвращает значение угла вращения линии сервиса по горизонтали вокруг начальной (конечной) точки (в радианах).
Точка сервиса
Функция Описание
double getX()
double getY()
double getZ()
Возвращает координату X (Y, Z) точки сервиса.
Position getPosition(Position out) Возвращает объект out типа Position, который содержит координаты точки сервиса, а также углы вращения по горизонтали и вертикали.

Position out — объект out, в который записываются данные.
double getOrientation() Возвращает ориентацию сервиса (в радианах), т.е. угол вращения, заданный для 2D / 3D модели пешехода, проходящего обслуживание.

Как мы можем улучшить эту статью?