Skip to content

Release 6.3

Latest
Compare
Choose a tag to compare
@martingr martingr released this 04 Feb 14:49
· 9 commits to master since this release
  • New features and enhancements:
    • Add support for transport order type priorities. For vehicle elements, every transport order type (that a vehicle is allowed to process) can now be assigned a priority.
    • Add a new key BY_ORDER_TYPE_PRIORITY that can be configured for the kernel configuration entries defaultdispatcher.orderCandidatePriorities and defaultdispatcher.vehicleCandidatePriorities. With this key configured, the priorities of a vehicle's acceptable order types are considered when assigning transport order to it.
    • Improve the integration of envelopes in combination with blocks. If blocks are involved when allocating resources, consider the envelopes of all resources in these blocks.
    • Add a creation time and finished time property to order sequences.
    • Allow automatic creation of parking and recharge orders to be delayed. The delay is configurable via the defaultdispatcher.parkIdleVehiclesDelay and defaultdispatcher.rechargeIdleVehiclesDelay kernel configuration entries.
    • Improve performance for updating transport orders, order sequences and peripheral jobs in the respective Ops Desk tables.
    • Update web API specification and implementation to version 1.10.0:
      • Add an endpoint PUT /vehicles/{NAME}/acceptableOrderTypes, which allows a vehicle's set of acceptable order types to be modified during runtime. This endpoint replaces PUT /vehicles/{NAME}/allowedOrderTypes, which is now deprecated.
      • Extend the endpoints for retrieving order sequences to include an order sequence's creation time and finished time.
      • Extend the endpoints for retrieving vehicles to include timestamps for changes to a vehicle's state and processing state.
  • Bugs fixed:
    • Avoid a NullPointerException when trying to park a vehicle whose current position is not known.
    • Ensure vehicles can process newly assigned transport orders after a peripheral job (created in the context of a previous transport order) has failed. Previously, failed peripheral jobs with the AFTER_ALLOCATION execution trigger could prevent vehicles from properly processing transport orders in some situations.
    • When loading v0.0.4 plant model files, points of type REPORT_POSITION will now be automatically converted to points of type HALT_POSITION, as support for REPORT_POSITIONs has been removed with openTCS 6.0.
    • When loading v0.0.4 plant model files, peripheral operations with the BEFORE_MOVEMENT execution trigger will now be automatically converted to peripheral operations with the AFTER_ALLOCATION execution trigger, as support for the BEFORE_MOVEMENT execution trigger has been removed with openTCS 6.0.
    • When saving a plant model via the Model Editor application with a new name, correctly set that name in the new plant model file.
    • Prevent vehicles whose transport order was withdrawn from being rerouted. This ensures that vehicles can finish their movement commands correctly in such cases.
    • Properly consider the GroupMapper implementation that is configured via dependency injection in the EXPLICIT_PROPERTIES edge evaluator.
    • Avoid ConcurrentModificationExceptions in the Operations Desk that could occur particularly in situations where vehicle updates are received at high frequency.
  • Changes affecting developers:
    • Deprecate methods in the Router interface that are technically outside its scope.
    • Deprecate Router.getCost(Vehicle, Point, Point, Set<TCSResourceReference<?>>) as Router.getRoute(Vehicle, Point, Point, Set<TCSResourceReference<?>>) already provides a way to retrieve the costs of a route.
    • Instead of having the total costs of a route only in Route itself, extend Route.Step to also contain the costs for a single step.