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 names one property of an object, and can
narrow it to a single element when the property is an array:
| Field | Tag | Type | Optional |
|---|---|---|---|
object-identifier | [0] | BACnetObjectIdentifier | no |
property-identifier | [1] | BACnetPropertyIdentifier | no |
property-array-index | [2] | Unsigned | yes; only meaningful for array properties |
BACnetSetpointReference wraps at most one such reference:
| Field | Tag | Type | Optional |
|---|---|---|---|
setpoint-reference | [0] | BACnetObjectPropertyReference | yes |
Every member is context-tagged, so a property value 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, and leaves the
frame out entirely when it holds no reference (an absent optional member
has no encoding, Clause 20.2.16). 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 decode_dopr_body codec accepts
[3]; this codec narrows it).
Functions§
- decode_
object_ property_ reference - Decode a whole property-value payload as the bare
BACnetObjectPropertyReferencemember sequence: the members, read bydecode_object_property_reference_at, must use all ofdata. - decode_
object_ property_ reference_ at - Decode the bare
BACnetObjectPropertyReferencemembers starting atoffset, [0], [1] and the optional [2]; returns the reference and the offset just past its last member. - decode_
setpoint_ reference - Decode a whole property-value payload as the
BACnetSetpointReferenceform, the frame read bydecode_setpoint_reference_at, which must use all ofdata. - decode_
setpoint_ reference_ at - Decode the
BACnetSetpointReferenceframe atoffsetholding a reference: opening context tag 0, the bare members, which must fill the frame, and the closing tag. Returns the reference and the offset just past the closing tag; what follows is the caller’s to judge. - encode_
object_ property_ reference - Encode the bare
BACnetObjectPropertyReferencemember sequence: context-tagged [0]/[1] plus [2] when the reference is indexed. - encode_
setpoint_ reference - Encode the
BACnetSetpointReferenceform: the reference inside an opening/closing context tag 0 frame (the production’ssetpoint-reference [0]member).