pub struct AccessZoneObject { /* private fields */ }Expand description
BACnet Access Zone object (type 36).
Represents a physical zone or area controlled by access points. Table 12-37 has neither Present_Value nor Access_Doors, so the object serves neither (#1064).
The zone counts occupancy (#1284): Occupancy_State follows
Occupancy_Count, the occupancy limits and Occupancy_Count_Enable, and a
client adjusts the count through Adjust_Value. The module
zone_occupancy has the rules.
The zone reports intrinsically on Occupancy_State with the
CHANGE_OF_STATE algorithm (Clause 12.32; #1305): Event_State goes
OFFNORMAL once Occupancy_State has stayed in Alarm_Values for Time_Delay
seconds and back to NORMAL once it has stayed out of them for
Time_Delay_Normal, and a Reliability other than NO_FAULT_DETECTED puts it
in FAULT. The event rows are served and written through
ChangeOfStateReporting, and the server sends the notifications to the
Notification Class recipients. Alarm_Values never holds NORMAL, the state
with no limit crossed: listed, it would put the zone in alarm whenever its
count sat inside its limits (#1401).
Entry_Points and Exit_Points list the Access Points leading into and out
of the zone as BACnetDeviceObjectReference values (Clauses 12.32.23 and
12.32.24; #1306), set by the application and read-only over the network.
While Out_Of_Service is TRUE a client can simulate Occupancy_Count and
Reliability by writing them, and the zone’s own values come back on the
return to service (Table 12-37 footnote 1; #1247). The module
zone_out_of_service has the details.
Implementations§
Source§impl AccessZoneObject
impl AccessZoneObject
Sourcepub fn new(instance: u32, name: impl Into<String>) -> Result<Self, Error>
pub fn new(instance: u32, name: impl Into<String>) -> Result<Self, Error>
Create a new Access Zone object.
Sourcepub fn set_entry_points(
&mut self,
points: impl IntoIterator<Item = impl Into<BACnetDeviceObjectReference>>,
) -> Result<(), Error>
pub fn set_entry_points( &mut self, points: impl IntoIterator<Item = impl Into<BACnetDeviceObjectReference>>, ) -> Result<(), Error>
Set Entry_Points, the Access Points leading into the zone (Clause 12.32.23). A reference with no device identifier names an object in this device.
Each reference has to name an Access Point object, and its device identifier, when given, a Device object (#1285); a list breaking either rule is refused with VALUE_OUT_OF_RANGE and the points set before are kept. The list is read-only over the network.
Sourcepub fn set_exit_points(
&mut self,
points: impl IntoIterator<Item = impl Into<BACnetDeviceObjectReference>>,
) -> Result<(), Error>
pub fn set_exit_points( &mut self, points: impl IntoIterator<Item = impl Into<BACnetDeviceObjectReference>>, ) -> Result<(), Error>
Set Exit_Points, the Access Points leading out of the zone
(Clause 12.32.24), with the checks Self::set_entry_points makes.
Sourcepub fn set_alarm_values(
&mut self,
states: impl IntoIterator<Item = AccessZoneOccupancyState>,
) -> Result<(), Error>
pub fn set_alarm_values( &mut self, states: impl IntoIterator<Item = AccessZoneOccupancyState>, ) -> Result<(), Error>
Set Alarm_Values, the occupancy states the zone reports as offnormal (Clause 12.32.27). NORMAL, or a value outside the BACnetAccessZoneOccupancyState production, named or proprietary (64 to 65535), is refused with VALUE_OUT_OF_RANGE naming the element, and the values set before are kept. Clients can write the list too, as they can the zone’s other event configuration (Time_Delay, Notification_Class, Event_Enable and the rest), and meet the same checks.
Sourcepub fn set_occupancy_count(&mut self, count: u64)
pub fn set_occupancy_count(&mut self, count: u64)
Record the zone’s occupancy count, as the application’s counting works it out (Clause 12.32.11). Over the network Occupancy_Count takes writes only while Out_Of_Service is TRUE; meanwhile the client’s simulated count keeps being served, and this one takes over on the return to service. While counting is off the count stays zero and the call changes nothing.
Sourcepub fn set_occupancy_count_enable(&mut self, enabled: bool)
pub fn set_occupancy_count_enable(&mut self, enabled: bool)
Set Occupancy_Count_Enable (Clause 12.32.12), read-only over the network. Turning counting off zeroes Occupancy_Count, the count set aside while out of service and Adjust_Value, and Occupancy_State reads DISABLED until counting is turned on again, starting from zero.
Sourcepub fn set_occupancy_limits(
&mut self,
lower: u64,
upper: u64,
) -> Result<(), Error>
pub fn set_occupancy_limits( &mut self, lower: u64, upper: u64, ) -> Result<(), Error>
Set Occupancy_Lower_Limit and Occupancy_Upper_Limit together, zero meaning no limit (Clauses 12.32.14 and 12.32.15). Both are read-only over the network. A nonzero upper limit at or below the lower one is refused with VALUE_OUT_OF_RANGE and both limits are kept.
Sourcepub fn occupancy_state(&self) -> AccessZoneOccupancyState
pub fn occupancy_state(&self) -> AccessZoneOccupancyState
Occupancy_State as served: DISABLED while counting is off, else the served count against the limits (Clause 12.32.6).
Trait Implementations§
Source§impl BACnetObject for AccessZoneObject
impl BACnetObject for AccessZoneObject
Source§fn set_reliability_internal(
&mut self,
reliability: Reliability,
) -> Result<(), Error>
fn set_reliability_internal( &mut self, reliability: Reliability, ) -> Result<(), Error>
The Reliability the zone’s fault detection works out. Like the other Reliability carriers, the zone refuses it with WRITE_ACCESS_DENIED while Out_Of_Service is TRUE, so a client’s simulated value stays served; the return to service brings back the value from before. A value outside the BACnetReliability production is refused with VALUE_OUT_OF_RANGE.
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 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 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 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_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