Skip to main content

Module recipient

Module recipient 

Source
Expand description

Recipient_List full ASN.1 framing (ASHRAE 135-2020 Clauses 12.21, 21).

Recipient_List ::= BACnetLIST OF BACnetDestination    -- concatenation, no wrapper

BACnetDestination ::= SEQUENCE {
    valid-days                    BACnetDaysOfWeek,          -- untagged
    from-time                     Time,                      -- untagged
    to-time                       Time,                      -- untagged
    recipient                     BACnetRecipient,           -- CHOICE
    process-identifier            Unsigned32,                -- untagged
    issue-confirmed-notifications BOOLEAN,                   -- untagged
    transitions                   BACnetEventTransitionBits  -- untagged
}

BACnetRecipient ::= CHOICE { device [0] BACnetObjectIdentifier,
                             address [1] BACnetAddress }

BACnetAddress ::= SEQUENCE { network-number Unsigned16,      -- untagged
                             mac-address OCTET STRING }      -- untagged

Tag forms: the destination members are UNTAGGED, so they travel as seven application-tagged elements in order (Bit String, Time, Time, recipient, Unsigned, Boolean, Bit String). device [0] tags a primitive ObjectIdentifier — a context-specific PRIMITIVE tag 0, length 4. BACnetAddress is constructed, so address [1] is an opening tag 1 / application-tagged Unsigned16 + OCTET STRING / closing tag 1.

Functions§

decode_destination
Decode one BACnetDestination at offset; returns it and the offset past the last member.
decode_destination_list
Decode a whole Recipient_List (BACnetLIST of BACnetDestination — concatenated entries). Every entry must parse; trailing garbage errors.
decode_recipient
Decode one BACnetRecipient at offset.
encode_destination
Encode one BACnetDestination.
encode_destination_list
Encode a BACnetLIST of BACnetDestination: plain concatenation, no wrapper (Clause 12.21 Recipient_List).
encode_recipient
Encode a BACnetRecipient.