#[non_exhaustive]pub struct HallCall {
pub stop: EntityId,
pub direction: CallDirection,
pub press_tick: u64,
pub acknowledged_at: Option<u64>,
pub ack_latency_ticks: u32,
pub pending_riders: Vec<EntityId>,
pub destination: Option<EntityId>,
pub assigned_car: Option<EntityId>,
pub pinned: bool,
}Expand description
A pressed hall button at stop requesting service in direction.
Stored per (stop, direction) pair — at most two per stop. Built-in
dispatch reads calls via DispatchManifest::hall_calls.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.stop: EntityIdStop where the button was pressed.
direction: CallDirectionDirection the button requests.
press_tick: u64Tick at which the button was first pressed.
acknowledged_at: Option<u64>Tick at which dispatch first sees this call (after ack latency).
None while still pending acknowledgement.
ack_latency_ticks: u32Ticks the controller took to acknowledge this call, copied from
the serving group’s ElevatorGroup::ack_latency_ticks when the
button was first pressed. Stored on the call itself so
advance_transient can tick the counter without needing to
look up the group.
pending_riders: Vec<EntityId>Riders currently waiting on this call. Empty in
HallCallMode::Destination mode
— calls there carry a single destination per press instead of a
shared direction.
destination: Option<EntityId>Destination requested at press time. Populated in
HallCallMode::Destination mode
(lobby kiosk); None in Classic mode.
assigned_car: Option<EntityId>Car assigned to this call by dispatch, if any.
pinned: boolWhen true, dispatch is forbidden from reassigning this call to
a different car. Set by
Simulation::pin_assignment.