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

Доступ к ресурсам, захваченным агентом, можно осуществить через неизменяемую коллекцию агента 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, если ресурс свободен.
Допустимые значения: TASK_ENTITY - задача, которая выполняется, пока ресурс захвачен агентом
                                   TASK_END_OF_SHIFT - ресурс находится в промежутке между рабочими сменами в соответствии с расписанием
                                   TASK_WRAP_UP - завершающая задача, которая выполняется после того, как ресурс выполнил основную задачу и освободился от агента
                                   TASK_BREAK - ресурс на перерыве
                                   TASK_REPAIR - задача определена как ремонт
                                   TASK_MAINTENANCE - задача определена как обслуживание
                                   TASK_CUSTOM - нестандартная задача из списка, указанного в блоке Downtime

ResourceUnitTask currentTask() Возвращает текущую задачу этого ресурса в виде экземпляров соответствующих классов. Если ресурс свободен, возвращает null.
Допустимые значения: ResourceUnitBasicTask - в данном случае ресурс находится на перерыве либо выполняет задачу, определенную как ремонт или обслуживание
                                   ResourceUnitEntityServiceSubTask - ресурс выполняет задачу, будучи захваченным агентом
                                   ResourceUnitCustomTask - ресурс выполняет нестандартную задачу из списка, заданного в блоке Downtime
                                   ResourceUnitEndOfShiftTask - ресурс находится между задачами в соответствии с расписанием и не выполняет никаких задач
                                   ResourceUnitWrapUpTask - ресурс выполняет задачу, которая выполняется после того, как ресурс закончил основную задачу и освободился от агента

void removeTask(ResourceUnitTask task) - Удаляет указанную задачу для этого ресурса.

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

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() - Возвращает угол вращения базового местоположения ресурса.