Skip to main content

Module object_property_reference

Module object_property_reference 

Source
Expand description

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.

BACnetObjectPropertyReference ::= SEQUENCE {
    object-identifier    [0] BACnetObjectIdentifier,
    property-identifier  [1] BACnetPropertyIdentifier,
    property-array-index [2] Unsigned OPTIONAL  -- used only with array datatype
}

BACnetSetpointReference ::= SEQUENCE {
    setpoint-reference [0] BACnetObjectPropertyReference OPTIONAL
}

Every member is context-tagged, so a property write carries a reference as primitive context tags [0]/[1] (plus optional [2]) concatenated on the wire; the Setpoint_Reference property nests those members in the opening/closing tag 0 frame of BACnetSetpointReference. Unlike BACnetDeviceObjectPropertyReference there is NO device member in this production — these references name objects in the local device only — so a device-qualifying [3] element is rejected on decode rather than being silently absorbed (the tranche-J [super::decode_dopr_body] codec accepts [3]; this codec narrows it).

Functions§

decode_object_property_reference
Decode a whole property-value payload as the bare BACnetObjectPropertyReference member sequence.
decode_setpoint_reference
Decode a whole property-value payload as the BACnetSetpointReference form: an opening/closing context tag 0 frame whose content is the bare reference, decoded with decode_object_property_reference’s strictness.
encode_object_property_reference
Encode the bare BACnetObjectPropertyReference member sequence: context-tagged [0]/[1] plus [2] when the reference is indexed.
encode_setpoint_reference
Encode the BACnetSetpointReference form: the reference inside an opening/closing context tag 0 frame (the production’s setpoint-reference [0] member).