Skip to main content

Module constructed

Module constructed 

Source
Expand description

Full ASN.1 framing codecs for constructed Clause-21 types whose property values are CHOICE/SEQUENCE productions — context-tagged framing per ASHRAE 135-2020 Clause 20.2.1.5/20.2.1.6.

These codecs encode to and decode from raw application-layer bytes, the same bytes carried by bacnet_types::primitives::PropertyValue::ApplicationData. Objects serve framed properties (e.g. Event_Parameters, Fault_Parameters, Recipient_List) by encoding with these functions; the flat application-tagged model in crate::primitives::encode_property_value cannot express their wire form.

Tag-form rules applied here:

  • A CHOICE alternative over a SEQUENCE is an opening/closing context tag pair around the SEQUENCE’s members.
  • A CHOICE alternative over a primitive base type is a context-specific primitive tag holding the raw contents (e.g. none [0] NULL).
  • A context-tagged inner CHOICE is always explicitly tagged: an opening/closing pair around the alternative’s own encoding.
  • Inner members declared [n] T over primitive T are context-tagged primitives; inner SEQUENCE OF / embedded SEQUENCE members are constructed opening/closing pairs holding application-tagged elements.

Re-exports§

pub use cov_subscription::encode_cov_subscription;
pub use cov_subscription::encode_cov_subscription_list;
pub use event_parameter::decode_event_parameter;
pub use event_parameter::encode_event_parameter;
pub use fault_parameter::decode_fault_parameters;
pub use fault_parameter::encode_fault_parameters;
pub use object_property_reference::decode_object_property_reference;
pub use object_property_reference::decode_setpoint_reference;
pub use object_property_reference::encode_object_property_reference;
pub use object_property_reference::encode_setpoint_reference;
pub use recipient::decode_destination;
pub use recipient::decode_destination_list;
pub use recipient::decode_recipient;
pub use recipient::encode_destination;
pub use recipient::encode_destination_list;
pub use recipient::encode_recipient;
pub use staging::decode_device_object_reference;
pub use staging::decode_stage_limit_value;
pub use staging::encode_device_object_reference;
pub use staging::encode_stage_limit_value;

Modules§

cov_subscription
Encode the constructed value carried by Device Active_COV_Subscriptions.
event_parameter
BACnetEventParameter full ASN.1 framing.
fault_parameter
BACnetFaultParameter full ASN.1 framing.
object_property_reference
BACnetObjectPropertyReference and its BACnetSetpointReference wrapper (ASHRAE 135-2020 Clause 21) — wire codecs for the object-reference properties of the Loop (Clause 12.17) and Pulse Converter (Clause 12.23) objects.
recipient
Recipient_List full ASN.1 framing (ASHRAE 135-2020 Clauses 12.21, 21).
staging
Clause 21 codecs used by the Staging object.

Functions§

decode_audit_log_record
Decode a complete bare BACnetAuditLogRecord field sequence.
decode_audit_log_record_result_at
Decode one adjacent result sequence starting at offset.
decode_audit_notification_at
Decode one bare BACnetAuditNotification starting at offset.
decode_property_state
Decode one BACnetPropertyStates CHOICE element at offset.
encode_audit_log_record
Encode one bare BACnetAuditLogRecord field sequence.
encode_audit_log_record_result
Encode one adjacent BACnetAuditLogRecordResult sequence.
encode_audit_notification
Encode one bare BACnetAuditNotification field sequence.
encode_property_state
Encode a BACnetPropertyStates using the Standard 135-2020 Clause 21 tags.
validate_tlv_sequence
Validate a BACnet TLV sequence without normalizing its encoded values.