Fleet Vehicle
A vehicle: the permanent identity a modeller declares, names, and reads statistics from.
What it is not is the thing that decides, and it is not the thing that occupies space. Those are two other objects, and both are hidden. The vehicle composes a VehicleBodyIfc for its physical presence, because every substrate's body is a Resource and a resource is passive by construction: inheriting one would expose a way to seize this vehicle as though it were a tool, which is exactly the modelling stance this subsystem exists to replace. And it holds a per-replication agent for its behaviour, because a KSLProcess runs once and a vehicle must run in every replication.
Substrate-independent. Nothing here names a guide path, a projection or a plane. What a subclass supplies is a body, a tow, and the two facts an interruption carries about where a vehicle stopped -- which is the only thing about stopping that differs between substrates.
A modeller names only the concrete subclass.
Inheritors
Constructors
Properties
Everything this vehicle is committed to. One at a time while capacity is one.
What it offers when a dispatcher calls for proposals. Consulted from the negotiated phase.
How much of the room was used, time-weighted, or null for a single-load vehicle.
How long this vehicle has been blocked so far this replication.
The task it is committed to, or null.
Where the vehicle is, as a place name, updated while it travels.
How fast it is going now, which is not the mean of its velocity distribution.
What it does with itself when the dispatcher has no work. Per vehicle, so a fleet may be heterogeneous.
How far this vehicle has travelled in this replication, in the layout's own length units.
when the vehicle breaks down and how long it takes to repair, or null for a vehicle that does not fail. Like battery, a vehicle without one reports no failure rows.
How much of the time it was full, or null for a single-load vehicle.
Fraction of time stopped by space it could not have; flat zero on a free path.
The fraction of time spent on a charger. Registered only for a vehicle that has a battery.
The fraction of time the vehicle was broken down. Registered only if it can fail.
Fraction of time travelling, loaded or empty.
Fraction of time travelling empty.
Fraction of time committed to a task, whether moving or standing.
Fraction of time travelling with a load aboard.
stateOfCharge as a fraction of capacity, or NaN for a vehicle with no battery.
True when the vehicle is committed to anything at all.
What happens when this vehicle stops and cannot carry on by itself.
True when there is no room for another load. The complement of spareCapacity being zero.
True when it has declared itself available and holds no assignment. Asserted by the vehicle, never inferred by the dispatcher.
True when anything is aboard.
True from the moment the vehicle stops until its policy has put it right -- and thereafter, for good, if the policy did not.
True while the vehicle is stopped mid-route because it ran out of charge.
True while somebody is moving it rather than it moving itself.
How many loads this vehicle can carry at once.
How many loads a loaded move carried, or null for a single-load vehicle.
How many loads each completed round carried.
What is aboard, in the order it came aboard.
The lowest charge the vehicle was seen to hold during the replication, one observation per replication.
How fast this vehicle travels, as most recently sampled.
Loads that were aboard, bound for a stop this vehicle was told past, and stayed on.
How many times the vehicle charged. Registered only for a vehicle that has a battery.
How many times the vehicle failed. Registered only if it can fail.
How many loads are aboard.
The mean number aboard, or null for a single-load vehicle.
How much expressing this vehicle did. Zero for a fleet whose control never says Skip.
How many times it was stopped by space it could not have.
How many times the vehicle stopped mid-route for want of charge.
How long this vehicle has been anything other than idle in this replication.
Who is aboard without a task, in the order they boarded.
How many more loads this vehicle could take.
How much charge is left, or NaN for a vehicle with no battery.
Who decides, stop by stop, whether this vehicle serves the next place in its tour.
How long the vehicle was out of service, one observation per failure.
How many units of discretised space it has entered this replication.
Functions
Builds the interruption for a breakdown, with whatever facts about where it stopped the substrate can supply -- what space it is denying to others, and what it was doing.
This method should be overridden by subclasses that need actions performed to initialize prior to a replication. It is called once before each replication occurs if the model element wants initialization. It is called after beforeReplication() is called
Builds the interruption for a flat battery. See failureInterruption.
Records the replication's lowest charge.
Who aboard is bound for location.
Commands the substrate to move this vehicle while it is under tow.