Schnittstelle Router

Alle Superschnittstellen:
Lifecycle

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

A router finds routes from a start point to an end point, rating them according to implementation specific criteria/costs parameters.

  • Felddetails

    • PROPKEY_ROUTING_GROUP

      static final String PROPKEY_ROUTING_GROUP
      The key of a vehicle property defining the group of vehicles that may share the same routing.

      The value is expected to be an integer.

      Siehe auch:
    • PROPKEY_ROUTING_COST_FORWARD

      static final String PROPKEY_ROUTING_COST_FORWARD
      The key (prefix) of a path property defining the routing cost when its travelled in forward direction.

      The value is expected to be a (long) integer.

      Siehe auch:
    • PROPKEY_ROUTING_COST_REVERSE

      static final String PROPKEY_ROUTING_COST_REVERSE
      The key (prefix) of a path property defining the routing cost when its travelled in reverse direction.

      The value is expected to be a (long) integer.

      Siehe auch:
  • Methodendetails

    • updateRoutingTopology

      void updateRoutingTopology(@Nonnull Set<Path> paths)
      Notifies the router to update its routing topology with respect to the given paths.

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

      Parameter:
      paths - The paths to update in the routing topology. An empty set of paths results in the router updating the entire routing topology.
    • checkRoutability

      @Nonnull Set<Vehicle> checkRoutability(@Nonnull TransportOrder order)
      Checks the routability of a given transport order.

      The check for routability is affected by path properties and configured edge evaluators. This means that whether a transport order is considered routable can change between consecutive calls to this method.

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

      Parameter:
      order - The transport order to check for routability.
      Gibt zurück:
      A set of vehicles for which a route for the given transport order would be computable.
    • checkGeneralRoutability

      @ScheduledApiChange(when="7.0", details="Default implementation will be removed.") default boolean checkGeneralRoutability(@Nonnull TransportOrder order)
      Checks the general routability of a given transport order.

      The check for general routability is not affected by any path properties or any configured edge evaluators. This means that whether a transport order is considered generally routable will not change between consecutive calls to this method.

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

      Parameter:
      order - The transport order to check for routability.
      Gibt zurück:
      true, if the transport order is generally routable, otherwise false.
    • getRoute

      @Nonnull Optional<List<DriveOrder>> getRoute(@Nonnull Vehicle vehicle, @Nonnull Point sourcePoint, @Nonnull TransportOrder transportOrder)
      Returns a complete route for a given vehicle that starts on a specified point and allows the vehicle to process a given transport order. The route is encapsulated into drive orders which correspond to those drive orders that the transport order is composed of. The transport order itself is not modified.

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

      Parameter:
      vehicle - The vehicle for which the calculated route must be passable.
      sourcePoint - The position at which the vehicle would start processing the transport order (i.e. the vehicle's current position).
      transportOrder - The transport order to be processed by the vehicle.
      Gibt zurück:
      A list of drive orders containing the complete calculated route for the given transport order, passable the given vehicle and starting on the given point, or the empty optional, if no such route exists.
    • getRoute

      @Nonnull Optional<Route> getRoute(@Nonnull Vehicle vehicle, @Nonnull Point sourcePoint, @Nonnull Point destinationPoint, @Nonnull Set<TCSResourceReference<?>> resourcesToAvoid)
      Returns a route from one point to another, passable for a given vehicle.

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

      Parameter:
      vehicle - The vehicle for which the route must be passable.
      sourcePoint - The starting point of the route to calculate.
      destinationPoint - The end point of the route to calculate.
      resourcesToAvoid - Resources to avoid when calculating the route.
      Gibt zurück:
      The calculated route, or the empty optional, if a route between the given points does not exist.
    • getCosts

      long getCosts(@Nonnull Vehicle vehicle, @Nonnull Point sourcePoint, @Nonnull Point destinationPoint, @Nonnull Set<TCSResourceReference<?>> resourcesToAvoid)
      Returns the costs for travelling a route from one point to another with a given vehicle.

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

      Parameter:
      vehicle - The vehicle for which the route must be passable.
      sourcePoint - The starting point of the route.
      destinationPoint - The end point of the route.
      resourcesToAvoid - Resources to avoid when calculating the route.
      Gibt zurück:
      The costs of the route, or Long.MAX_VALUE, if no such route exists.
    • selectRoute

      void selectRoute(@Nonnull Vehicle vehicle, @Nullable List<DriveOrder> driveOrders)
      Notifies the router of a route being selected for a vehicle.

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

      Parameter:
      vehicle - The vehicle for which a route is being selected.
      driveOrders - The drive orders encapsulating the route being selected, or null, if no route is being selected for the vehicle (i.e. an existing entry for the given vehicle would be removed).
    • getSelectedRoutes

      @Nonnull Map<Vehicle,List<DriveOrder>> getSelectedRoutes()
      Returns an unmodifiable view on the selected routes the router knows about. The returned map contains an entry for each vehicle for which a selected route is known.

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

      Gibt zurück:
      An unmodifiable view on the selected routes the router knows about.
    • getTargetedPoints

      @Nonnull Set<Point> getTargetedPoints()
      Returns all points which are currently targeted by any vehicle.

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

      Gibt zurück:
      A set of all points currently targeted by any vehicle.