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

Доступ к ресурсам, захваченным агентом, можно осуществить через неизменяемую коллекцию агента 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() - Производит сброс статистики загруженности.

Статистика обслуживания, аварий, перерывов

double totalDowntime() - Возвращает время, которое ресурс провел в простое любого типа.

double totalDowntime(TimeUnits units) - Возвращает время (в указанных единицах измерения времени), которое ресурс провел в простое любого типа.
Параметр: units - константа, определяющая единицу измерения времени

double totalRepairTime() - Возвращает время, которое ресурс провел в состоянии аварии.

double totalRepairTime(TimeUnits units) - Возвращает время (в указанных единицах измерения времени), которое ресурс провел в состоянии аварии.
Параметр: units - константа, определяющая единицу измерения времени

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

double totalMaintenanceTime(TimeUnits units) - Возвращает время (в указанных единицах измерения времени), которое ресурс провел на обслуживании.
Параметр: units - константа, определяющая единицу измерения времени

double totalBreaksTime() - Возвращает время, которое ресурс провел на перерывах.

double totalBreaksTime(TimeUnits units) - Возвращает время (в указанных единицах измерения времени), которое ресурс провел на перерывах.
Параметр: units - константа, определяющая единицу измерения времени

double totalCustomTasksTime() - Возвращает время, которое ресурс потратил на дополнительные задачи.

double totalCustomTasksTime(TimeUnits units) - Возвращает время (в указанных единицах измерения времени), которое ресурс потратил на дополнительные задачи.
Параметр: units - константа, определяющая единицу измерения времени

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

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