Schnittstelle Dispatcher

Alle Superschnittstellen:
Lifecycle

public interface Dispatcher extends Lifecycle
This interface declares the methods a dispatcher module for the openTCS kernel must implement.

A dispatcher manages the distribution of transport orders among the vehicles in a system. It is basically event-driven, where an event can be a new transport order being introduced into the system or a vehicle becoming available for processing existing orders.

  • Felddetails

    • PROPKEY_PARKING_POSITION_PRIORITY

      static final String PROPKEY_PARKING_POSITION_PRIORITY
      The key of a parking position property defining its priority.

      Whether and in what way this is respected for assigning a parking position to a vehicle is implementation-specific.

      Siehe auch:
    • PROPKEY_ASSIGNED_PARKING_POSITION

      static final String PROPKEY_ASSIGNED_PARKING_POSITION
      The key of a vehicle property defining the name of the vehicle's assigned parking position.

      Whether and in what way this is respected for selecting a parking position is implementation-specific.

      Siehe auch:
    • PROPKEY_PREFERRED_PARKING_POSITION

      static final String PROPKEY_PREFERRED_PARKING_POSITION
      The key of a vehicle property defining the name of the vehicle's preferred parking position.

      Whether and in what way this is respected for selecting a parking position is implementation-specific.

      Siehe auch:
    • PROPKEY_ASSIGNED_RECHARGE_LOCATION

      static final String PROPKEY_ASSIGNED_RECHARGE_LOCATION
      The key of a vehicle property defining the name of the vehicle's assigned recharge location.

      Whether and in what way this is respected for selecting a recharge location is implementation-specific.

      Siehe auch:
    • PROPKEY_PREFERRED_RECHARGE_LOCATION

      static final String PROPKEY_PREFERRED_RECHARGE_LOCATION
      The key of a vehicle property defining the name of the vehicle's preferred recharge location.

      Whether and in what way this is respected for selecting a recharge location is implementation-specific.

      Siehe auch:
  • Methodendetails

    • dispatch

      void dispatch()
      Notifies the dispatcher that it should start the dispatching process.

      This method is supposed to be called only from the kernel executor thread.

    • withdrawOrder

      void withdrawOrder(@Nonnull TransportOrder order, boolean immediateAbort)
      Notifies the dispatcher that the given transport order is to be withdrawn/aborted.

      This method is supposed to be called only from the kernel executor thread.

      Parameter:
      order - The transport order to be withdrawn/aborted.
      immediateAbort - Whether the order should be aborted immediately instead of withdrawn.
    • withdrawOrder

      void withdrawOrder(@Nonnull Vehicle vehicle, boolean immediateAbort)
      Notifies the dispatcher that any order a given vehicle might be processing is to be withdrawn.

      This method is supposed to be called only from the kernel executor thread.

      Parameter:
      vehicle - The vehicle whose order is withdrawn.
      immediateAbort - Whether the vehicle's order should be aborted immediately instead of withdrawn.
    • reroute

      void reroute(@Nonnull Vehicle vehicle, @Nonnull ReroutingType reroutingType)
      Notifies the dispatcher of a request to reroute the given vehicle considering the given rerouting type.

      This method is supposed to be called only from the kernel executor thread.

      Parameter:
      vehicle - The vehicle to be rerouted.
      reroutingType - The type of the requested rerouting.
    • rerouteAll

      void rerouteAll(@Nonnull ReroutingType reroutingType)
      Notifies the dispatcher to reroute all vehicles considering the given rerouting type.

      This method is supposed to be called only from the kernel executor thread.

      Parameter:
      reroutingType - The type of the requested rerouting.
    • assignNow

      void assignNow(@Nonnull TransportOrder transportOrder) throws TransportOrderAssignmentException
      Notifies the dispatcher that it should assign the given transport order (to its intended vehicle) now.

      This method is supposed to be called only from the kernel executor thread.

      Parameter:
      transportOrder - The transport order to be assigned.
      Löst aus:
      TransportOrderAssignmentException - If the given transport order could not be assigned to its intended vehicle.