Class Vehicle

java.lang.Object
org.opentcs.data.TCSObject<Vehicle>
org.opentcs.data.model.Vehicle
All Implemented Interfaces:
java.io.Serializable

public class Vehicle
extends TCSObject<Vehicle>
implements java.io.Serializable
Describes a vehicle's current state.
See Also:
Serialized Form
  • Field Details

    • ROUTE_INDEX_DEFAULT

      public static final int ROUTE_INDEX_DEFAULT
      A value indicating that no route steps have been travelled for the current drive order, yet.
      See Also:
      Constant Field Values
    • PREFERRED_ADAPTER

      public static final java.lang.String PREFERRED_ADAPTER
      The key for a property to store the class name of the preferred communication adapter (factory) for this vehicle.
      See Also:
      Constant Field Values
  • Constructor Details

    • Vehicle

      public Vehicle​(java.lang.String name)
      Creates a new vehicle.
      Parameters:
      name - The new vehicle's name.
  • Method Details

    • withProperty

      public Vehicle withProperty​(java.lang.String key, java.lang.String value)
      Description copied from class: TCSObject
      Creates a copy of this object, with the given property integrated.
      Specified by:
      withProperty in class TCSObject<Vehicle>
      Parameters:
      key - The key of the property to be changed.
      value - The new value of the property, or null, if the property is to be removed.
      Returns:
      A copy of this object, with the given property integrated.
    • withProperties

      public Vehicle withProperties​(java.util.Map<java.lang.String,​java.lang.String> properties)
      Description copied from class: TCSObject
      Creates a copy of this object, with the given properties.
      Specified by:
      withProperties in class TCSObject<Vehicle>
      Parameters:
      properties - The properties.
      Returns:
      A copy of this object, with the given properties.
    • withHistoryEntry

      public TCSObject<Vehicle> withHistoryEntry​(ObjectHistory.Entry entry)
      Description copied from class: TCSObject
      Creates a copy of this object, with the given history entry integrated.
      Specified by:
      withHistoryEntry in class TCSObject<Vehicle>
      Parameters:
      entry - The history entry to be integrated.
      Returns:
      A copy of this object, with the given history entry integrated.
    • withHistory

      public TCSObject<Vehicle> withHistory​(ObjectHistory history)
      Description copied from class: TCSObject
      Creates a copy of this object, with the given history.
      Specified by:
      withHistory in class TCSObject<Vehicle>
      Parameters:
      history - The history.
      Returns:
      A copy of this object, with the given history.
    • getEnergyLevel

      public int getEnergyLevel()
      Returns this vehicle's remaining energy (in percent of the maximum).
      Returns:
      This vehicle's remaining energy.
    • withEnergyLevel

      public Vehicle withEnergyLevel​(int energyLevel)
      Creates a copy of this object, with the given energy level.
      Parameters:
      energyLevel - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • isEnergyLevelCritical

      public boolean isEnergyLevelCritical()
      Checks whether the vehicle's energy level is critical.
      Returns:
      true if, and only if, the vehicle's energy level is critical.
    • isEnergyLevelDegraded

      public boolean isEnergyLevelDegraded()
      Checks whether the vehicle's energy level is degraded (not good any more).
      Returns:
      true if, and only if, the vehicle's energy level is degraded.
    • isEnergyLevelGood

      public boolean isEnergyLevelGood()
      Checks whether the vehicle's energy level is good.
      Returns:
      true if, and only if, the vehicle's energy level is good.
    • isEnergyLevelFullyRecharged

      public boolean isEnergyLevelFullyRecharged()
      Checks whether the vehicle's energy level is fully recharged.
      Returns:
      true if, and only if, the vehicle's energy level is fully recharged.
    • isEnergyLevelSufficientlyRecharged

      public boolean isEnergyLevelSufficientlyRecharged()
      Checks whether the vehicle's energy level is sufficiently recharged.
      Returns:
      true if, and only if, the vehicle's energy level is sufficiently recharged.
    • getEnergyLevelCritical

      public int getEnergyLevelCritical()
      Returns this vehicle's critical energy level (in percent of the maximum). The critical energy level is the one at/below which the vehicle should be recharged.
      Returns:
      This vehicle's critical energy level.
    • withEnergyLevelCritical

      public Vehicle withEnergyLevelCritical​(int energyLevelCritical)
      Creates a copy of this object, with the given critical energy level.
      Parameters:
      energyLevelCritical - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getEnergyLevelGood

      public int getEnergyLevelGood()
      Returns this vehicle's good energy level (in percent of the maximum). The good energy level is the one at/above which the vehicle can be dispatched again when charging.
      Returns:
      This vehicle's good energy level.
    • withEnergyLevelGood

      public Vehicle withEnergyLevelGood​(int energyLevelGood)
      Creates a copy of this object, with the given good energy level.
      Parameters:
      energyLevelGood - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getEnergyLevelFullyRecharged

      public int getEnergyLevelFullyRecharged()
      Returns this vehicle's energy level for being fully recharged (in percent of the maximum).
      Returns:
      This vehicle's fully recharged treshold.
    • withEnergyLevelFullyRecharged

      public Vehicle withEnergyLevelFullyRecharged​(int energyLevelFullyRecharged)
      Creates a copy of this object, with the given fully recharged energy level.
      Parameters:
      energyLevelFullyRecharged - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getEnergyLevelSufficientlyRecharged

      public int getEnergyLevelSufficientlyRecharged()
      Returns this vehicle's energy level for being sufficiently recharged (in percent of the maximum).
      Returns:
      This vehicle's sufficiently recharged energy level.
    • withEnergyLevelSufficientlyRecharged

      public Vehicle withEnergyLevelSufficientlyRecharged​(int energyLevelSufficientlyRecharged)
      Creates a copy of this object, with the given sufficiently recharged energy level.
      Parameters:
      energyLevelSufficientlyRecharged - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getRechargeOperation

      public java.lang.String getRechargeOperation()
      Returns the operation that the vehicle's current communication adapter accepts as a command to recharge the vehicle.
      Returns:
      The operation that the vehicle's current communication adapter accepts as a command to recharge the vehicle.
    • withRechargeOperation

      public Vehicle withRechargeOperation​(java.lang.String rechargeOperation)
      Creates a copy of this object, with the given recharge operation.
      Parameters:
      rechargeOperation - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getLoadHandlingDevices

      public java.util.List<LoadHandlingDevice> getLoadHandlingDevices()
      Returns the current (state of the) load handling devices of this vehicle.
      Returns:
      The current (state of the) load handling devices of this vehicle.
    • withLoadHandlingDevices

      public Vehicle withLoadHandlingDevices​(java.util.List<LoadHandlingDevice> loadHandlingDevices)
      Creates a copy of this object, with the given load handling devices.
      Parameters:
      loadHandlingDevices - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getMaxVelocity

      public int getMaxVelocity()
      Returns this vehicle's maximum velocity (in mm/s).
      Returns:
      This vehicle's maximum velocity (in mm/s).
    • withMaxVelocity

      public Vehicle withMaxVelocity​(int maxVelocity)
      Creates a copy of this object, with the given maximum velocity.
      Parameters:
      maxVelocity - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getMaxReverseVelocity

      public int getMaxReverseVelocity()
      Returns this vehicle's maximum reverse velocity (in mm/s).
      Returns:
      This vehicle's maximum reverse velocity (in mm/s).
    • withMaxReverseVelocity

      public Vehicle withMaxReverseVelocity​(int maxReverseVelocity)
      Creates a copy of this object, with the given maximum reverse velocity.
      Parameters:
      maxReverseVelocity - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getState

      public Vehicle.State getState()
      Returns this vehicle's current state.
      Returns:
      This vehicle's current state.
    • hasState

      public boolean hasState​(Vehicle.State otherState)
      Checks if this vehicle's current state is equal to the given one.
      Parameters:
      otherState - The state to compare to this vehicle's one.
      Returns:
      true if, and only if, the given state is equal to this vehicle's one.
    • withState

      public Vehicle withState​(Vehicle.State state)
      Creates a copy of this object, with the given state.
      Parameters:
      state - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getProcState

      public Vehicle.ProcState getProcState()
      Returns this vehicle's current processing state.
      Returns:
      This vehicle's current processing state.
    • getIntegrationLevel

      public Vehicle.IntegrationLevel getIntegrationLevel()
      Returns this vehicle's integration level.
      Returns:
      This vehicle's integration level.
    • withIntegrationLevel

      public Vehicle withIntegrationLevel​(Vehicle.IntegrationLevel integrationLevel)
      Creates a copy of this object, with the given integration level.
      Parameters:
      integrationLevel - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • hasProcState

      public boolean hasProcState​(Vehicle.ProcState otherState)
      Checks if this vehicle's current processing state is equal to the given one.
      Parameters:
      otherState - The state to compare to this vehicle's one.
      Returns:
      true if, and only if, the given state is equal to this vehicle's one.
    • withProcState

      public Vehicle withProcState​(Vehicle.ProcState procState)
      Creates a copy of this object, with the given processing state.
      Parameters:
      procState - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getLength

      public int getLength()
      Returns this vehicle's current length.
      Returns:
      this vehicle's current length.
    • withLength

      public Vehicle withLength​(int length)
      Creates a copy of this object, with the given length.
      Parameters:
      length - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getTransportOrder

      public TCSObjectReference<TransportOrder> getTransportOrder()
      Returns a reference to the transport order this vehicle is currently processing.
      Returns:
      A reference to the transport order this vehicle is currently processing, or null, if it is not processing any transport order at the moment.
    • withTransportOrder

      public Vehicle withTransportOrder​(TCSObjectReference<TransportOrder> transportOrder)
      Creates a copy of this object, with the given transport order.
      Parameters:
      transportOrder - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getOrderSequence

      public TCSObjectReference<OrderSequence> getOrderSequence()
      Returns a reference to the order sequence this vehicle is currently processing.
      Returns:
      A reference to the order sequence this vehicle is currently processing, or null, if it is not processing any order sequence at the moment.
    • withOrderSequence

      public Vehicle withOrderSequence​(TCSObjectReference<OrderSequence> orderSequence)
      Creates a copy of this object, with the given order sequence.
      Parameters:
      orderSequence - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getAllowedOrderTypes

      public java.util.Set<java.lang.String> getAllowedOrderTypes()
      Returns the set of order types this vehicle is allowed to process.
      Returns:
      The set of order types this vehicle is allowed to process.
    • withAllowedOrderTypes

      public Vehicle withAllowedOrderTypes​(java.util.Set<java.lang.String> allowedOrderTypes)
      Creates a copy of this object, with the given set of allowed order types.
      Parameters:
      allowedOrderTypes - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getRouteProgressIndex

      public int getRouteProgressIndex()
      Returns the index of the last route step travelled for the current drive order of the current transport order.
      Returns:
      The index of the last route step travelled for the current drive order of the current transport order.
    • withRouteProgressIndex

      public Vehicle withRouteProgressIndex​(int routeProgressIndex)
      Creates a copy of this object, with the given route progress index.
      Parameters:
      routeProgressIndex - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getCurrentPosition

      public TCSObjectReference<Point> getCurrentPosition()
      Returns a reference to the point this vehicle currently occupies.
      Returns:
      A reference to the point this vehicle currently occupies, or null, if this vehicle's position is unknown or the vehicle is currently not in the system.
    • withCurrentPosition

      public Vehicle withCurrentPosition​(TCSObjectReference<Point> currentPosition)
      Creates a copy of this object, with the given current position.
      Parameters:
      currentPosition - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getNextPosition

      public TCSObjectReference<Point> getNextPosition()
      Returns a reference to the point this vehicle is expected to be seen at next.
      Returns:
      A reference to the point this vehicle is expected to be seen at next, or null, if this vehicle's next position is unknown.
    • withNextPosition

      public Vehicle withNextPosition​(TCSObjectReference<Point> nextPosition)
      Creates a copy of this object, with the given next position.
      Parameters:
      nextPosition - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getPrecisePosition

      public Triple getPrecisePosition()
      Returns the vehicle's position in world coordinates [mm], independent from logical positions/point names. May be null if the vehicle hasn't provided a precise position.
      Returns:
      The vehicle's precise position in mm.
    • withPrecisePosition

      public Vehicle withPrecisePosition​(Triple precisePosition)
      Creates a copy of this object, with the given precise position.
      Parameters:
      precisePosition - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • getOrientationAngle

      public double getOrientationAngle()
      Returns the vehicle's current orientation angle (-360..360). May be Double.NaN if the vehicle hasn't provided an orientation angle.
      Returns:
      The vehicle's current orientation angle.
    • withOrientationAngle

      public Vehicle withOrientationAngle​(double orientationAngle)
      Creates a copy of this object, with the given orientation angle.
      Parameters:
      orientationAngle - The value to be set in the copy.
      Returns:
      A copy of this object, differing in the given value.
    • isProcessingOrder

      public boolean isProcessingOrder()
      Checks if this vehicle is currently processing any transport order.
      Returns:
      true if, and only if, this vehicle is currently processing a transport order.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class TCSObject<Vehicle>