pub struct LiftObject { /* private fields */ }Expand description
BACnet Lift object — represents a single lift/elevator car.
The object serves the rows of its table (Clause 12.59, Table 12-77) that it implements, each with its table datatype. The per-door arrays (Car_Door_Status, Landing_Door_Status, Assigned_Landing_Calls, Making_Car_Call, Registered_Car_Call and Car_Door_Command) hold one element per car door and always have the same size, as Clause 12.59 requires. They, and Car_Assigned_Direction, Car_Door_Zone, Car_Mode, Next_Stopping_Floor and Car_Drive_Status, are set by the application in service and take WriteProperty only while Out_Of_Service is TRUE.
Implementations§
Source§impl LiftObject
impl LiftObject
Sourcepub fn new(
instance: u32,
name: impl Into<String>,
num_floors: usize,
) -> Result<Self, Error>
pub fn new( instance: u32, name: impl Into<String>, num_floors: usize, ) -> Result<Self, Error>
Create a new Lift object with the given number of floors.
Floor text is initialized to “Floor 1”, “Floor 2”, etc. The car stands at floor 1 with one door, whose status is UNKNOWN and which reports no landing doors, calls or door command, and Car_Load is 0.0 percent. Car_Assigned_Direction, Car_Mode and Car_Drive_Status start UNKNOWN, Car_Door_Zone FALSE and Next_Stopping_Floor 1.
Sourcepub fn elevator_group(&self) -> ObjectIdentifier
pub fn elevator_group(&self) -> ObjectIdentifier
The Elevator Group object served as Elevator_Group. Until the application sets one it names instance 4194303, the reference Clauses 12.59 and 12.60 use when no Elevator Group lists this lift.
Sourcepub fn set_elevator_group(&mut self, oid: ObjectIdentifier) -> Result<(), Error>
pub fn set_elevator_group(&mut self, oid: ObjectIdentifier) -> Result<(), Error>
Set which Elevator Group counts this lift among its Group_Members.
Elevator_Group is read-only over the network, so this is the only way to change it. A reference to any other object type is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
Sourcepub fn set_group_id(&mut self, group_id: u8)
pub fn set_group_id(&mut self, group_id: u8)
Set the identification number of the group of the lift.
Group_ID is an Unsigned8 that is read-only over the network, so this is the only way to change it.
Sourcepub fn installation_id(&self) -> u8
pub fn installation_id(&self) -> u8
The identification number of the lift, served as Installation_ID.
Sourcepub fn set_installation_id(&mut self, installation_id: u8)
pub fn set_installation_id(&mut self, installation_id: u8)
Set the identification number of the lift within its group.
Installation_ID is an Unsigned8 that is read-only over the network, so this is the only way to change it.
Sourcepub fn energy_meter_ref(&self) -> &BACnetDeviceObjectReference
pub fn energy_meter_ref(&self) -> &BACnetDeviceObjectReference
The reference served as Energy_Meter_Ref. Until the application sets one it is uninitialized: Accumulator instance 4194303 with no device.
Sourcepub fn set_energy_meter_ref(
&mut self,
reference: BACnetDeviceObjectReference,
) -> Result<(), Error>
pub fn set_energy_meter_ref( &mut self, reference: BACnetDeviceObjectReference, ) -> Result<(), Error>
Point Energy_Meter_Ref at the meter object that totals the energy used by this lift.
Energy_Meter_Ref is read-only over the network, so this is the only way to change it. The object must be an Accumulator, Pulse Converter, Analog Input, Analog Value, Large Analog Value, Integer Value, Positive Integer Value or proprietary object type (128 to 1023), and a device, when given, a Device object; anything else is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
While the reference names an instance other than 4194303, Energy_Meter reads 0.0 (Clauses 12.59 and 12.60): setting it zeroes the reading, and a write of any other value is refused with VALUE_OUT_OF_RANGE. A reference to instance 4194303 clears it, and Energy_Meter then takes writes again, starting from 0.0.
Sourcepub fn car_door_status(&self) -> &[DoorStatus]
pub fn car_door_status(&self) -> &[DoorStatus]
The status of each car door, served as Car_Door_Status.
Sourcepub fn set_car_door_status(
&mut self,
status: Vec<DoorStatus>,
) -> Result<(), Error>
pub fn set_car_door_status( &mut self, status: Vec<DoorStatus>, ) -> Result<(), Error>
Set the status of each car door, one element per door.
Its size is the number of car doors, so a list of a different size changes that number, and the other per-door arrays follow: a removed door’s elements are dropped, and an added door starts with no landing doors, no assigned or registered calls, a Making_Car_Call of 0 and a Car_Door_Command of NONE. A WriteProperty, accepted only while Out_Of_Service is TRUE, can’t change the size, so this is the only way to. A status outside BACnetDoorStatus (a reserved value, or one above 65535) is refused with VALUE_OUT_OF_RANGE and nothing changes.
Sourcepub fn landing_door_status(&self) -> &[BACnetLandingDoorStatus]
pub fn landing_door_status(&self) -> &[BACnetLandingDoorStatus]
The landing doors of each car door, served as Landing_Door_Status.
Sourcepub fn set_landing_door_status(
&mut self,
status: Vec<BACnetLandingDoorStatus>,
) -> Result<(), Error>
pub fn set_landing_door_status( &mut self, status: Vec<BACnetLandingDoorStatus>, ) -> Result<(), Error>
Set the landing doors of each car door, one element per car door.
A list whose size differs from Car_Door_Status, or a landing door status outside BACnetDoorStatus, is refused with VALUE_OUT_OF_RANGE and the property is left unchanged. A WriteProperty, accepted only while Out_Of_Service is TRUE, follows the same rules.
Sourcepub fn assigned_landing_calls(&self) -> &[BACnetAssignedLandingCalls]
pub fn assigned_landing_calls(&self) -> &[BACnetAssignedLandingCalls]
The landing calls assigned to each car door, served as Assigned_Landing_Calls.
Sourcepub fn set_assigned_landing_calls(
&mut self,
calls: Vec<BACnetAssignedLandingCalls>,
) -> Result<(), Error>
pub fn set_assigned_landing_calls( &mut self, calls: Vec<BACnetAssignedLandingCalls>, ) -> Result<(), Error>
Set the landing calls assigned to each car door, one element per car door.
A list whose size differs from Car_Door_Status, or a call whose direction is outside BACnetLiftCarDirection, is refused with VALUE_OUT_OF_RANGE and the property is left unchanged. A WriteProperty, accepted only while Out_Of_Service is TRUE, follows the same rules.
Sourcepub fn making_car_call(&self) -> &[u8] ⓘ
pub fn making_car_call(&self) -> &[u8] ⓘ
The last car call made for each car door, served as Making_Car_Call: a universal floor number, or 0 when no call has been made.
Sourcepub fn set_making_car_call(&mut self, floors: Vec<u8>) -> Result<(), Error>
pub fn set_making_car_call(&mut self, floors: Vec<u8>) -> Result<(), Error>
Set the last car call made for each car door, one element per car door.
A list whose size differs from Car_Door_Status is refused with VALUE_OUT_OF_RANGE and the property is left unchanged. A WriteProperty, accepted only while Out_Of_Service is TRUE, follows the same rule.
Sourcepub fn registered_car_call(&self) -> &[BACnetLiftCarCallList]
pub fn registered_car_call(&self) -> &[BACnetLiftCarCallList]
The floors with a car call registered for each car door, served as Registered_Car_Call.
Sourcepub fn set_registered_car_call(
&mut self,
calls: Vec<BACnetLiftCarCallList>,
) -> Result<(), Error>
pub fn set_registered_car_call( &mut self, calls: Vec<BACnetLiftCarCallList>, ) -> Result<(), Error>
Set the floors with a car call registered for each car door, one element per car door.
A list whose size differs from Car_Door_Status is refused with VALUE_OUT_OF_RANGE and the property is left unchanged. A WriteProperty, accepted only while Out_Of_Service is TRUE, follows the same rule.
Sourcepub fn car_door_command(&self) -> &[LiftCarDoorCommand]
pub fn car_door_command(&self) -> &[LiftCarDoorCommand]
The pending command of each car door, served as Car_Door_Command.
Sourcepub fn set_car_door_command(
&mut self,
commands: Vec<LiftCarDoorCommand>,
) -> Result<(), Error>
pub fn set_car_door_command( &mut self, commands: Vec<LiftCarDoorCommand>, ) -> Result<(), Error>
Set the pending command of each car door, one element per car door, for instance back to NONE once a command has run.
A list whose size differs from Car_Door_Status, or a command other than NONE, OPEN or CLOSE, is refused with VALUE_OUT_OF_RANGE and the property is left unchanged. A WriteProperty, accepted only while Out_Of_Service is TRUE, follows the same rules.
Sourcepub fn car_assigned_direction(&self) -> LiftCarDirection
pub fn car_assigned_direction(&self) -> LiftCarDirection
The direction the car is assigned to move, served as Car_Assigned_Direction.
Sourcepub fn set_car_assigned_direction(
&mut self,
direction: LiftCarDirection,
) -> Result<(), Error>
pub fn set_car_assigned_direction( &mut self, direction: LiftCarDirection, ) -> Result<(), Error>
Set the direction the car is assigned to move.
A direction outside BACnetLiftCarDirection is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
Sourcepub fn car_door_zone(&self) -> bool
pub fn car_door_zone(&self) -> bool
Whether the car sits in its door zone, served as Car_Door_Zone.
Sourcepub fn set_car_door_zone(&mut self, in_zone: bool)
pub fn set_car_door_zone(&mut self, in_zone: bool)
Set whether the car sits in its door zone, close enough to a landing that its doors may begin to open.
Sourcepub fn car_mode(&self) -> LiftCarMode
pub fn car_mode(&self) -> LiftCarMode
The car’s operating mode, served as Car_Mode.
Sourcepub fn set_car_mode(&mut self, mode: LiftCarMode) -> Result<(), Error>
pub fn set_car_mode(&mut self, mode: LiftCarMode) -> Result<(), Error>
Set the car’s operating mode.
A mode outside BACnetLiftCarMode is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
Sourcepub fn next_stopping_floor(&self) -> u8
pub fn next_stopping_floor(&self) -> u8
The floor of the car’s next stop (universal numbering), served as Next_Stopping_Floor.
Sourcepub fn set_next_stopping_floor(&mut self, floor: u8)
pub fn set_next_stopping_floor(&mut self, floor: u8)
Set the floor of the car’s next stop, or, while it stands still, the floor it is at.
Sourcepub fn car_drive_status(&self) -> LiftCarDriveStatus
pub fn car_drive_status(&self) -> LiftCarDriveStatus
The state of the car’s motor drive, served as Car_Drive_Status.
Sourcepub fn set_car_drive_status(
&mut self,
status: LiftCarDriveStatus,
) -> Result<(), Error>
pub fn set_car_drive_status( &mut self, status: LiftCarDriveStatus, ) -> Result<(), Error>
Set the state of the car’s motor drive.
A status outside BACnetLiftCarDriveStatus is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
Sourcepub fn car_load_units(&self) -> EngineeringUnits
pub fn car_load_units(&self) -> EngineeringUnits
The units of Car_Load, served as Car_Load_Units.
Sourcepub fn set_car_load_units(
&mut self,
units: EngineeringUnits,
) -> Result<(), Error>
pub fn set_car_load_units( &mut self, units: EngineeringUnits, ) -> Result<(), Error>
Set the units Car_Load is measured in. A new Lift uses PERCENT.
Car_Load_Units is read-only over the network. A value above 65535, outside BACnetEngineeringUnits, is refused with VALUE_OUT_OF_RANGE and the property is left unchanged.
Trait Implementations§
Source§impl BACnetObject for LiftObject
impl BACnetObject for LiftObject
Source§fn object_identifier(&self) -> ObjectIdentifier
fn object_identifier(&self) -> ObjectIdentifier
Source§fn object_name(&self) -> &str
fn object_name(&self) -> &str
Source§fn read_property(
&self,
property: PropertyIdentifier,
array_index: Option<u32>,
) -> Result<PropertyValue, Error>
fn read_property( &self, property: PropertyIdentifier, array_index: Option<u32>, ) -> Result<PropertyValue, Error>
Source§fn write_property(
&mut self,
property: PropertyIdentifier,
array_index: Option<u32>,
value: PropertyValue,
_priority: Option<u8>,
) -> Result<(), Error>
fn write_property( &mut self, property: PropertyIdentifier, array_index: Option<u32>, value: PropertyValue, _priority: Option<u8>, ) -> Result<(), Error>
Source§fn property_metadata(&self) -> Cow<'_, [PropertyMetadata]>
fn property_metadata(&self) -> Cow<'_, [PropertyMetadata]>
Source§fn property_list(&self) -> Cow<'static, [PropertyIdentifier]>
fn property_list(&self) -> Cow<'static, [PropertyIdentifier]>
Source§fn write_property_from(
&mut self,
property: PropertyIdentifier,
array_index: Option<u32>,
value: PropertyValue,
priority: Option<u8>,
_origin: &CommandOrigin,
) -> Result<(), Error>
fn write_property_from( &mut self, property: PropertyIdentifier, array_index: Option<u32>, value: PropertyValue, priority: Option<u8>, _origin: &CommandOrigin, ) -> Result<(), Error>
Source§fn is_writable_property(&self, property: PropertyIdentifier) -> bool
fn is_writable_property(&self, property: PropertyIdentifier) -> bool
property for this object. Read moreSource§fn is_array_property(&self, property: PropertyIdentifier) -> bool
fn is_array_property(&self, property: PropertyIdentifier) -> bool
property accepts an array index on this object. Read moreSource§fn is_list_property(&self, property: PropertyIdentifier) -> bool
fn is_list_property(&self, property: PropertyIdentifier) -> bool
property is a BACnetLIST on this object. Read moreSource§fn is_createable(&self) -> bool
fn is_createable(&self) -> bool
Source§fn creation_only_properties(&self) -> &'static [PropertyIdentifier]
fn creation_only_properties(&self) -> &'static [PropertyIdentifier]
Source§fn initialize_property(
&mut self,
_property: PropertyIdentifier,
_value: PropertyValue,
) -> Result<(), Error>
fn initialize_property( &mut self, _property: PropertyIdentifier, _value: PropertyValue, ) -> Result<(), Error>
Self::creation_only_properties, written whole. Read moreSource§fn is_deleteable(&self) -> bool
fn is_deleteable(&self) -> bool
Source§fn required_properties(&self) -> Cow<'static, [PropertyIdentifier]>
fn required_properties(&self) -> Cow<'static, [PropertyIdentifier]>
Source§fn supports_cov(&self) -> bool
fn supports_cov(&self) -> bool
Source§fn supports_subscribe_cov_property(&self) -> bool
fn supports_subscribe_cov_property(&self) -> bool
Source§fn supports_cov_property(&self, property: PropertyIdentifier) -> bool
fn supports_cov_property(&self, property: PropertyIdentifier) -> bool
Source§fn cov_increment(&self) -> Option<f64>
fn cov_increment(&self) -> Option<f64>
Source§fn cov_reported_properties(&self) -> &'static [CovReportedProperty]
fn cov_reported_properties(&self) -> &'static [CovReportedProperty]
Source§fn set_overridden(&mut self, _overridden: bool)
fn set_overridden(&mut self, _overridden: bool)
Source§fn evaluate_intrinsic_reporting(&mut self) -> Option<TransitionOutcome>
fn evaluate_intrinsic_reporting(&mut self) -> Option<TransitionOutcome>
Source§fn tick_intrinsic_reporting(&mut self) -> Option<TransitionOutcome>
fn tick_intrinsic_reporting(&mut self) -> Option<TransitionOutcome>
Time_Delay countdown for a pending transition. Read moreSource§fn tick_schedule(
&mut self,
_today: SpecificDate,
_time: Time,
_calendar_active: &dyn Fn(ObjectIdentifier) -> bool,
) -> Option<ScheduleWrite>
fn tick_schedule( &mut self, _today: SpecificDate, _time: Time, _calendar_active: &dyn Fn(ObjectIdentifier) -> bool, ) -> Option<ScheduleWrite>
Source§fn take_owed_schedule_writes(&mut self) -> Vec<ScheduleWrite>
fn take_owed_schedule_writes(&mut self) -> Vec<ScheduleWrite>
Source§fn complete_schedule_write(
&mut self,
_write: &ScheduleWrite,
_outcomes: &[ScheduleTargetOutcome],
) -> bool
fn complete_schedule_write( &mut self, _write: &ScheduleWrite, _outcomes: &[ScheduleTargetOutcome], ) -> bool
write, one of this schedule’s writes:
outcomes holds one entry per member of write.references, in order. Read moreSource§fn retry_refusals_naming(
&self,
_target: ObjectIdentifier,
) -> Option<ScheduleWrite>
fn retry_refusals_naming( &self, _target: ObjectIdentifier, ) -> Option<ScheduleWrite>
retry of the current value to the
references whose last write was refused and that name target, an
object just added to the database (#1440), so the refusal can clear
without waiting for the next pass. None when no such refusal
stands, or when the pass itself would retry nothing: out of service,
outside Effective_Period, or with a NULL Present_Value. Only
meaningful for Schedule objects; default returns None.Source§fn acknowledge_alarm(
&mut self,
_transition_bit: EventTransitionBits,
) -> Result<(), Error>
fn acknowledge_alarm( &mut self, _transition_bit: EventTransitionBits, ) -> Result<(), Error>
transition_bit flags in acked_transitions.
Returns Ok(()) if the object supports event detection, Err otherwise.Source§fn apply_life_safety_operation(
&mut self,
_operation: LifeSafetyOperation,
) -> Result<LifeSafetyOperationOutcome, Error>
fn apply_life_safety_operation( &mut self, _operation: LifeSafetyOperation, ) -> Result<LifeSafetyOperationOutcome, Error>
Source§fn set_life_safety_operation_expected_internal(
&mut self,
_operation: LifeSafetyOperation,
) -> Result<(), Error>
fn set_life_safety_operation_expected_internal( &mut self, _operation: LifeSafetyOperation, ) -> Result<(), Error>
Source§fn set_event_state_internal(&mut self, _state: EventState) -> Result<(), Error>
fn set_event_state_internal(&mut self, _state: EventState) -> Result<(), Error>
Event_State transition. Read moreSource§fn enrollment_eval_state_internal(&self) -> Option<EventEnrollmentEvalState>
fn enrollment_eval_state_internal(&self) -> Option<EventEnrollmentEvalState>
Source§fn set_enrollment_eval_state_internal(
&mut self,
_state: EventEnrollmentEvalState,
) -> Result<(), Error>
fn set_enrollment_eval_state_internal( &mut self, _state: EventEnrollmentEvalState, ) -> Result<(), Error>
Source§fn enrollment_eval_source_internal(
&self,
) -> Option<Option<EventEnrollmentMonitoredSource>>
fn enrollment_eval_source_internal( &self, ) -> Option<Option<EventEnrollmentMonitoredSource>>
Source§fn set_enrollment_eval_source_internal(
&mut self,
_source: Option<EventEnrollmentMonitoredSource>,
) -> Result<(), Error>
fn set_enrollment_eval_source_internal( &mut self, _source: Option<EventEnrollmentMonitoredSource>, ) -> Result<(), Error>
Source§fn set_acked_transitions_internal(
&mut self,
_transition_bit: EventTransitionBits,
_acknowledged: bool,
) -> Result<(), Error>
fn set_acked_transitions_internal( &mut self, _transition_bit: EventTransitionBits, _acknowledged: bool, ) -> Result<(), Error>
Acked_Transitions bit on a received event-state
transition. Read moreSource§fn evaluate_reliability_internal(
&mut self,
) -> Result<ReliabilityEvaluation, Error>
fn evaluate_reliability_internal( &mut self, ) -> Result<ReliabilityEvaluation, Error>
Reliability. Read moreSource§fn set_reliability_internal(
&mut self,
_reliability: Reliability,
) -> Result<(), Error>
fn set_reliability_internal( &mut self, _reliability: Reliability, ) -> Result<(), Error>
Reliability value. Read moreSource§fn set_present_value_internal(
&mut self,
_value: PropertyValue,
) -> Result<(), Error>
fn set_present_value_internal( &mut self, _value: PropertyValue, ) -> Result<(), Error>
Present_Value supplied by the local application. Read moreSource§fn set_present_value_from_internal(
&mut self,
value: PropertyValue,
_origin: &CommandOrigin,
) -> Result<(), Error>
fn set_present_value_from_internal( &mut self, value: PropertyValue, _origin: &CommandOrigin, ) -> Result<(), Error>
Source§fn set_tracking_value_internal(
&mut self,
_value: PropertyValue,
) -> Result<(), Error>
fn set_tracking_value_internal( &mut self, _value: PropertyValue, ) -> Result<(), Error>
Tracking_Value the local application derived. Read moreSource§fn report_access_input_internal(
&mut self,
_input: AccessControlInput,
) -> Result<(), Error>
fn report_access_input_internal( &mut self, _input: AccessControlInput, ) -> Result<(), Error>
AccessControlInput. Read more