Fleet System
A fleet of self-directing vehicles, and the dispatcher that tasks them.
Decision-making moved out of the entity's process and into objects that have processes of their own. An entity asks for transport and suspends; it never chooses a vehicle, never waits for a particular one, and cannot tell which one came.
Substrate-independent. Nothing here names a guide path, a projection or a plane. What a subclass supplies is a space -- named places and distances -- and, if its substrate measures anything about a journey, the three hooks below that let it report what it measured. Everything else -- the dispatcher, the tours, the stops, the lines, the control loop that walks them, and the audit that checks the whole account adds up -- is the same whatever the vehicles run on.
AgentModel, and therefore ProcessModel, because the vehicles and the dispatcher are agents with processes and mailboxes, and only an AgentModel can host them. A modeller's own ProcessModel holds this as a child element, and its entities suspend in this system's queues.
Inheritors
Constructors
Properties
Whether this system audits its own account of itself once, as each replication ends.
Per delivered load: how much of its journey the carrying vehicle spent out of service.
How many loads were still waiting to be collected when the last replication ended.
How many loads were still aboard a vehicle when the last replication ended.
How many vehicles were broken down when the replication ended.
How many vehicles carry no task: idle to the dispatcher.
How many vehicles are working a task.
How many vehicles are stopped and being dealt with -- broken down, waiting for a technician, being pushed out of the way, or out for the rest of the replication.
How many vehicles were stopped mid-route for want of charge when the replication ended.
The layout this fleet works over: named places, distances between them, and reachability.
How many tasks were still outstanding when the last replication ended.
In declaration order, which is the order ties are broken in.
Functions
Declares a place in the layout as a charger.
Drops this replication's agent references.
Asks to be told whenever a vehicle in this fleet stops and cannot carry on by itself.
Stops telling a listener about interruptions.
Creates a fresh agent for every vehicle and for the dispatcher, and activates them.
The declared charger nearest to a place along the layout's own paths, or null when none is reachable from there.
Reports whatever was still in flight when the horizon fell, and wakes nothing.
What space a vehicle is denying to everyone else, for the horizon diagnostic. Empty where a vehicle standing still is in nobody's way.
Switches reporting for the hold queues. Off by default.
Switches reporting on the substrate's own queues, if it has any.