pub struct CredentialDataInputObject { /* private fields */ }Expand description
BACnet Credential Data Input object (type 37).
Represents a credential reader device (card reader, biometric scanner, etc.).
Its Present_Value is the last factor read, a BACnetAuthenticationFactor
(Clause 12.36.4), and Update_Time a BACnetTimeStamp (Clause 12.36.11);
both go out in their Clause 21 forms. The enumerated
BACnetAuthenticationStatus belongs to the Access Point’s
Authentication_Status (Clause 12.31, Table 12-36), not here.
Supported_Formats and Supported_Format_Classes are BACnetARRAYs of the
same size (Clause 12.36.9.1), so the object keeps them as one list of
pairs, set by Self::set_supported_formats. Both take an array index.
Present_Value always names one of those formats with its class, or is the
UNDEFINED or ERROR factor (Clause 12.36.4; #1249): the module
credential_data_input_formats has the rule and how each route keeps it.
While Out_Of_Service is TRUE a client can simulate Present_Value and
Reliability by writing them, and the reader’s own values come back on the
return to service (Table 12-43 footnote 1; #1168). The module
credential_data_input_out_of_service has the details.
Implementations§
Source§impl CredentialDataInputObject
impl CredentialDataInputObject
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 Credential Data Input object.
Until the first read, Present_Value is the UNDEFINED factor (format
class 0, no value octets) and Update_Time the unspecified date and
time (Clauses 12.36.4 and 12.36.11). It supports no format until
Self::set_supported_formats declares some.
Sourcepub fn set_present_value(
&mut self,
factor: BACnetAuthenticationFactor,
update_time: BACnetTimeStamp,
) -> Result<(), Error>
pub fn set_present_value( &mut self, factor: BACnetAuthenticationFactor, update_time: BACnetTimeStamp, ) -> Result<(), Error>
Record a factor the reader has read: Present_Value takes factor and
Update_Time update_time, together, since Clause 12.36.11 moves
Update_Time on every Present_Value update. Reading the same factor
again is such an update.
The factor must name a declared format with the class declared beside it, or be the UNDEFINED or ERROR factor with class 0 (Clause 12.36.4); any other is refused with VALUE_OUT_OF_RANGE and nothing changes.
A change of Update_Time triggers a SubscribeCOV notification
(Table 13-1). While Out_Of_Service is TRUE a client’s simulated values
keep being served, and these take over on the return to service. A
running server’s route, BACnetServer::report_credential_read_local,
stores a read the same way (#1132).
Sourcepub fn set_supported_formats(
&mut self,
formats: impl IntoIterator<Item = (BACnetAuthenticationFactorFormat, u32)>,
) -> Result<(), Error>
pub fn set_supported_formats( &mut self, formats: impl IntoIterator<Item = (BACnetAuthenticationFactorFormat, u32)>, ) -> Result<(), Error>
Declare the formats this reader reads: Supported_Formats takes each pair’s format and Supported_Format_Classes, at the same position, the format class a factor read in it carries (Clauses 12.36.9 and 12.36.10). Zero is the class for a format that needs no differentiation.
Each format must be a named BACnetAuthenticationFactorType. A CUSTOM format must name its vendor and that vendor’s format number; any other format may carry those members only as zero (Clause 12.36.9). A list breaking either rule is refused with VALUE_OUT_OF_RANGE and the declared formats are kept.
A Present_Value whose format and class the new list doesn’t declare goes back to the UNDEFINED factor, with Update_Time stamped from the Device clock, or the object’s next sequence number when there is no usable clock (Clause 12.36.4). Out of service that covers both the simulated factor served and the reader’s factor put aside.
Trait Implementations§
Source§impl BACnetObject for CredentialDataInputObject
impl BACnetObject for CredentialDataInputObject
Source§fn supports_cov(&self) -> bool
fn supports_cov(&self) -> bool
Table 13-1 lists Credential Data Input, so it takes SubscribeCOV.
Source§fn report_access_input_internal(
&mut self,
input: AccessControlInput,
) -> Result<(), Error>
fn report_access_input_internal( &mut self, input: AccessControlInput, ) -> Result<(), Error>
Take a read the application reports (#1132): Present_Value and
Update_Time together, the time stamped from the Device clock, or the
object’s next sequence number, when the report has none. Checked and
stored as Self::set_present_value stores a read: while
Out_Of_Service is TRUE it replaces the reader’s values put aside, and
a client’s simulated ones stay served. Any other record is
OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED.
Source§fn set_reliability_internal(
&mut self,
reliability: Reliability,
) -> Result<(), Error>
fn set_reliability_internal( &mut self, reliability: Reliability, ) -> Result<(), Error>
The application’s Reliability for the reader. Like the other Reliability carriers, the reader 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 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_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_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 more