Schnittstelle VehicleCommAdapter

Alle Superschnittstellen:
Lifecycle
Alle bekannten Unterschnittstellen:
SimVehicleCommAdapter
Alle bekannten Implementierungsklassen:
BasicVehicleCommAdapter

public interface VehicleCommAdapter extends Lifecycle
This interface declares the methods that a driver communicating with and controlling a physical vehicle must implement.

A communication adapter is basically a driver that converts high-level commands sent by openTCS to a form that the controlled vehicles understand.

  • Methodendetails

    • enable

      void enable()
      Enables this comm adapter, i.e. turns it on.
    • disable

      void disable()
      Disables this comm adapter, i.e. turns it off.
    • isEnabled

      boolean isEnabled()
      Checks whether this communication adapter is enabled.
      Gibt zurück:
      true if, and only if, this communication adapter is enabled.
    • getProcessModel

      @Nonnull VehicleProcessModel getProcessModel()
      Returns an observable model of the vehicle's and its comm adapter's attributes.
      Gibt zurück:
      An observable model of the vehicle's and its comm adapter's attributes.
    • createTransferableProcessModel

      @Nonnull VehicleProcessModelTO createTransferableProcessModel()
      Returns a transferable/serializable model of the vehicle's and its comm adapter's attributes.
      Gibt zurück:
      A transferable/serializable model of the vehicle's and its comm adapter's attributes.
    • getUnsentCommands

      Queue<MovementCommand> getUnsentCommands()
      Returns this adapter's queue of unsent commands.

      Unsent MovementCommands are commands that the comm adapter received from the VehicleController it's associated with. When a command is sent to the vehicle, the command is removed from this queue and added to the queue of sent commands.

      Gibt zurück:
      This adapter's queue of unsent commands.
      Siehe auch:
    • getSentCommands

      Queue<MovementCommand> getSentCommands()
      Returns this adapter's queue of sent commands.

      Sent MovementCommands are commands that the comm adapter has sent to the vehicle already but which have not yet been processed by it.

      Gibt zurück:
      This adapter's queue of sent commands.
      Siehe auch:
    • getCommandsCapacity

      int getCommandsCapacity()
      Indicates how many commands this comm adapter accepts.

      This capacity considers both the queue of unsent commands and the queue of sent commands. This means that:

      • The number of elements in both queues combined must not exceed this number.
      • The vehicle will have at most this number of (not yet completed) commands at any given point of time.
      Gibt zurück:
      The number of commands this comm adapter accepts.
    • canAcceptNextCommand

      boolean canAcceptNextCommand()
      Checks whether this comm adapter can accept the next (i.e. one more) command.
      Gibt zurück:
      true, if this adapter can accept another command, otherwise false.
    • getRechargeOperation

      String getRechargeOperation()
      Returns the string the comm adapter recognizes as a recharge operation.
      Gibt zurück:
      The string the comm adapter recognizes as a recharge operation.
    • enqueueCommand

      boolean enqueueCommand(@Nonnull MovementCommand newCommand)
      Appends a command to this communication adapter's queue of unsent commands.

      The return value of this method indicates whether the command was really added to the queue. The primary reason for a commmand not being added to the queue is that it would exceed the adapter's commands capacity.

      Parameter:
      newCommand - The command to be added to this adapter's queue of unsent commands.
      Gibt zurück:
      true if, and only if, the new command was added to the queue.
    • clearCommandQueue

      void clearCommandQueue()
      Clears this communication adapter's command queues (i.e. the queues of unsent and sent commands).

      All commands in the queue that have not been sent to this adapter's vehicle, yet, will be removed. Whether commands the vehicle has already received are still executed is up to the implementation and/or the vehicle.

    • canProcess

      @Nonnull ExplainedBoolean canProcess(@Nonnull TransportOrder order)
      Checks if the vehicle would be able to process the given transport order, taking into account its current state.
      Parameter:
      order - The transport order to be checked.
      Gibt zurück:
      An ExplainedBoolean indicating whether the vehicle would be able to process the given order.
    • onVehiclePaused

      void onVehiclePaused(boolean paused)
      Notifies the implementation that the vehicle's paused state in the kernel has changed. If pausing between points in the plant model is supported by the vehicle, the communication adapter may want to inform the vehicle about this change of state.
      Parameter:
      paused - The vehicle's new paused state.
    • processMessage

      void processMessage(@Nullable Object message)
      Processes a generic message to the communication adapter. This method provides a generic one-way communication channel to the comm adapter. The message can be anything, including null, and since VehicleService.sendCommAdapterMessage(org.opentcs.data.TCSObjectReference, Object) provides a way to send a message from outside the kernel, it can basically originate from any source. The message thus does not necessarily have to be meaningful to the concrete comm adapter implementation at all.

      Implementation notes: Meaningless messages should simply be ignored and not result in exceptions being thrown. If a comm adapter implementation does not support processing messages, it should simply provide an empty implementation. A call to this method should return quickly, i.e. this method should not execute long computations directly but start them in a separate thread.

      Parameter:
      message - The message to be processed.
    • execute

      void execute(@Nonnull AdapterCommand command)
      Executes the given AdapterCommand.
      Parameter:
      command - The command to execute.