Функции ресурсов

Доступ к ресурсам, захваченным агентом, можно осуществить через неизменяемую коллекцию агента LinkedList<Agent> resourceUnits.

Все ресурсы, работающие в диаграммах процессов Библиотеки моделирования процессов, предоставляют следующие функции:

Информация о ресурсах

ResourcePool resourcePool() - Возвращает блок ResourcePool, которому принадлежит этот ресурс.

ResourceType getResourceType()Возвращает тип ресурса (RESOURCE_STATIC, RESOURCE_MOVING, RESOURCE_PORTABLE).

Состояние

boolean isBusy() - Проверяет, занят ли текущий ресурс (захвачен, движется к базовому местоположению или к месту применения). Возвращает true, если ресурс занят, в противном случае - false.

boolean isIdle() - Проверяет, свободен ли текущий ресурс, и можно ли его занять. Возвращает true, если ресурс свободен, в противном случае возвращает false.

boolean isReserved() - Возвращает true, если ресурс зарезервирован определенным запросом - ресурс при этом может быть свободен, то есть запрос не завершен, или занят другой задачей, которая будет прервана и вытеснена, когда запрос завершится.

Agent getReservedBy() Возвращает агента, который зарезервировал этот ресурс, или null (если этот ресурс не зарезервирован,  см. isReserved()).

Agent getServicedEntity() Возвращает агента, который в данный момент владеет этим ресурсом. Возвращает null, если этот ресурс свободен либо занят сторонней задачей, не относящейся к агенту (к примеру, ремонт ресурсов).

Статистика загруженности

double getUtilization() - Возвращает загруженность ресурса: долю времени, в течение которой ресурс был занят. Возвращаемое значение загруженности ресурса находится в диапазоне [0..1]. Если доступность этого ресурса задана в блоке ResourcePool с помощью расписания, то коэффициент загрузки рассчитывается только для рабочих часов. 

double timeInState(ResourceUsageState state) - Возвращает время, которое ресурс провел в заданном состоянии.
     Параметр: state - состояние ресурса (ResourceUsageState.USAGE_IDLE или ResourceUsageState.USAGE_BUSY)

double timeInState(ResourceUsageState state, TimeUnits units) - Возвращает время, которое ресурс провел в заданном состоянии (в заданных единицах измерения времени).
      Параметры: state - состояние ресурса (ResourceUsageState.USAGE_IDLE или ResourceUsageState.USAGE_BUSY)
                        units - константа, определяющая единицу измерения времени.
   
void resetStats() - Производит сброс статистики загруженности.

Прикрепление ресурсов

void setAttached( boolean attached ) - Прикрепляет ресурс к агенту или отсоединяет ресурс от агента, который им владеет. Применимо только к захваченным агентами ресурсам, в противном случае будет выдана ошибка.
      Параметрattached - при значении true ресурс присоединяется; false - отсоединяется

boolean isAttached() - Проверяет, прикреплен ли ресурс к агенту. Возвращает true, если прикреплен, в противном случае возвращает false.

Задачи

ResourceTaskType currentTaskType() - Возвращает тип текущей задачи или null, если ресурс свободен.

ResourceUnitTask currentTask() Возвращает текущую задачу этого ресурса, или null, если ресурс свободен. Обратите внимание на то, что завершение смены является специальным видом задачи.

Базовое местоположение

void setHomeLocation( INode home ) - Задает базовое местоположение для ресурса.
      Параметрhome - базовое местоположение

INode getHomeLocation() - Возвращает узел сети, заданный в качестве базового местоположения для этого ресурса.

void setHomePosition( double x, double y ) - Задает координаты базового местоположения ресурса.
      Параметры: x - X координата
                          y - Y координата

void setHomePosition( double x, double y, double z ) - Задает координаты базового местоположения ресурса.
      Параметрыx - X координата
                          y - Y координата                         
                          z - Z координата

double getHomeX() - Возвращает X координату базового местоположения ресурса.    

double getHomeY() - Возвращает Y координату базового местоположения ресурса.    

double getHomeZ() - Возвращает Z координату базового местоположения ресурса.    

double getHomeRotation() - Возвращает угол вращения базового местоположения ресурса.