Функции транспортера

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

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

ILocation getCurrentLocation() - Возвращает текущее местоположение транспортера.

Статистика использования

TransporterState getState() - Возвращает текущее состояние транспортера. Допустимые значения:

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

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

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

resetStats() - Производит сброс статистики загруженности, в т.ч. для пройденного расстояния, значение которого возвращается с помощью функции getDistanceTravelled().

Скорость

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

setMaximumSpeed(double speed, SpeedUnits units) - Задает новое значение максимально допустимой скорости транспортера.
Параметры:
speed - новое значение максимально допустимой скорости;
units - константа, задающая единицу измерения скорости.

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

setMaximumSpeedOnCurvedSegments(double speed, SpeedUnits units) - Задает новую максимальную допустимую скорость движения транспортера на изогнутых сегментах сети. Если значение данного параметра выше, чем значение максимально допустимой скорости транспортера в целом, транспортер проигнорирует заданное здесь значение и на изогнутых сегментах сети сможет ускориться только до скорости, задаваемой с помощью функции setMaximumSpeed(double speed, SpeedUnits units).
Параметры:
speed - новая максимальная скорость движения транспортера на изогнутых сегментах сети;
units - константа, задающая единицу измерения скорости.

Ускорение, замедление

double getAcceleration(AccelerationUnits units) - Возвращает значение ускорения транспортера.
Параметр: units - константа, задающая единицу измерения ускорения.

setAcceleration(double acceleration, AccelerationUnits units) - Задает новое значение ускорения транспортера.
Параметры:
acceleration - новое значение ускорения;
units - константа, задающая единицу измерения ускорения.

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

setDeceleration(double deceleration, AccelerationUnits units) - Задает новое значение замедления транспортера.
Параметры:
deceleration - новое значение замедления;
units - константа, задающая единицу измерения ускорения.

Размещение материального объекта

Position getCargoPosition() - Возвращает размещение материального объекта по отношению к центральной точке транспортера (в заданных единицах изменения длины).

setCargoPosition(double dx, double dy, double dz, LengthUnits units) - Задает размещение материального объекта по отношению к центральной точке транспортера (в заданных единицах измерения длины).
Параметры:
dx - расстояние до точки по оси X;
dy - расстояние до точки по оси Y;
dz - расстояние до точки по оси Z;
units - константа, задающая единицу измерения длины.

setCargoPosition(double dx, double dy, double dz, LengthUnits units, double rotation, double verticalRotation) - Задает размещение материального объекта по отношению к центральной точке транспортера, включая ориентацию объекта по горизонтали и вертикали.
Параметры:
dx - расстояние до точки по оси X;
dy - расстояние до точки по оси Y;
dz - расстояние до точки по оси Z;
units - константа, задающая единицу измерения длины.
rotation - ориентация объекта по горизонтали;
verticalRotation - ориентация объекта по вертикали.

resetCargoPosition() - Заново задает положение материального объекта в центральной точке транспортера.

Составление маршрута

recalculateRoute() - Заново рассчитывает текущий маршрут транспортера. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново вычислен с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.

recalculateRoute(double x, double y, double z) - Заново рассчитывает текущий маршрут транспортера для новой точки назначения с заданными координатами. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет читан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметры:
x - X-координата новой точки назначения транспортера;
y - Y-координата новой точки назначения транспортера;
z - Z-координата новой точки назначения транспортера.

recalculateRoute(Level level, double x, double y, double z) - Заново рассчитывает текущий маршрут транспортера для новой точки назначения с заданными координатами. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметры:
level - уровень, на котором находится новая точка назначения транспортера;
x - X-координата новой точки назначения транспортера;
y - Y-координата новой точки назначения транспортера;
z - Z-координата новой точки назначения транспортера.

recalculateRoute(Node node) - Заново рассчитывает текущий маршрут транспортера для нового места назначения. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметр: node - узел, который является новым местом назначения транспортера.

recalculateRoute(Attractor attractor) - Заново рассчитывает текущий маршрут транспортера для нового места назначения. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметр: attractor - аттрактор, который является новым местом назначения транспортера.

recalculateRoute(Path path, double offset, LengthUnits units) - Заново рассчитывает текущий маршрут транспортера для нового места назначения. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметры: path - путь, на котором расположена новая точка назначения транспортера;
offset - расстояние от начальной точки пути до новой точки назначения транспортера;
units - константа, задающая единицу измерения длины.

recalculateRoute(ConveyorPath conveyor, double offset, LengthUnits units) - Заново рассчитывает текущий маршрут транспортера для нового места назначения. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметры:
conveyor - конвейер, на котором расположена новая точка назначения транспортера;
offset - расстояние от начальной точки конвейера до новой точки назначения транспортера;
units - константа, задающая единицу измерения длины.

recalculateRoute(PositionOnConveyor positionOnConveyor) - Заново рассчитывает текущий маршрут транспортера. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметр: conveyor - точка конвейера, которая является новой точкой назначения конвейера.

recalculateRoute(ConveyorStation station) - Заново рассчитывает текущий маршрут транспортера для нового места назначения. Если до этого вы задали собственный маршрут в блоке TransporterControl, то маршрут будет заново рассчитан с учетом заданных вами условий. Эту функцию можно вызывать только в том случае, когда транспортер уже двигается, т.е. находится в одном из следующих состояний: DELIVERING, GOING_TO_AGENT, GOING_HOME.
Параметр: station - станция, которая является новым местом назначения конвейера.

RouteData getRouteData() - Возвращает информацию об оставшемся участке маршрута для данного транспортера (от его текущего местонахождения до места назначения). Информация возвращается в виде списка задач по движению, которые транспортер выполнит по пути к месту назначения. Задачи по движению перечислены последовательно, начиная с текущего местоположения и до места назначения. Каждая задача содержит информацию о пути и тип движения. Допустимые типы движения: PLAIN - движение от точечного узла к пути или движение внутри узла сети, а в случае транспортеров с произвольным типом навигации - движение внутри ячейки навигационной сетки; PATH - движение по сетевому пути; PORT - движение между двумя сетевыми портами.

Управление коллизиями

void ignoreCollisions(boolean ignore) - Управляет способностью транспортера воспринимать другие транспортеры как препятствия и быть препятствием для других транспортеров в свою очередь. Чтобы включить эту способность, передайте true в качестве аргумента. Чтобы отключить эту способность, передайте в качестве аргумента false.
Параметр:
ignore - если true, транспортер начинает игнорировать столкновения; если false - транспортер перестает игнорировать столкновения.

void ignoreCollisionsFor(double time, TimeUnits units) - Отключает способность транспортера воспринимать другие транспортеры как препятствия и быть препятствием для других транспортеров в свою очередь в течение заданного отрезка времени в указанных единицах времени. Когда заданный отрезок времени истекает, транспортер снова начинает воспринимать другие транспортеры в качестве препятствий и сам становится препятствием для них.
Параметры:
time - отрезок времени, в течение которого транспортер игнорирует столкновения.
units - константа, с помощью которой задаются единицы измерения времени.

Расчет расстояния

Вы можете рассчитать расстояние от транспортера до указанной точки в пространстве с помощью унаследованного от типа агента API.

double getDistanceTravelled(LengthUnits units) - Возвращает расстояние, пройденное транспортером с момента запуска модели или c момента последнего вызова функции resetDistanceTravelled(), функции resetStats() отдельного транспортера или функции resetStats() автопарка, которому принадлежит данный транспортер.
Параметр: units - константа, задающая единицу измерения длины

resetDistanceTravelled() - Выполняет сброс расстояния, пройденного транспортером, до нуля.