Skip to content

Instantly share code, notes, and snippets.

@splatch
Created May 9, 2019 19:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save splatch/d511cd4a3d73137763f498db75ecaf1f to your computer and use it in GitHub Desktop.
Save splatch/d511cd4a3d73137763f498db75ecaf1f to your computer and use it in GitHub Desktop.
BACnetPDU ::= CHOICE {
confirmed-request-pdu
unconfirmed-request-pdu
simple-ack-pdu
complex-ack-pdu
segment-ack-pdu
error-pdu
reject-pdu
abort-pdu
}
BACnet-Confirmed-Request-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 0 for this PDU type
segmented-message [1] BOOLEAN,
more-follows [2] BOOLEAN,
segmented-response-accepted [3] BOOLEAN,
reserved [4] Unsigned (0..3), -- shall be set to zero
max-segments-accepted [5] Unsigned (0..7), -- as per Clause 20.1.2.4
max-apdu-length-accepted [6] Unsigned (0..15), -- as per Clause 20.1.2.5
invoke-id [7] Unsigned (0..255),
sequence-number [8] Unsigned (0..255) OPTIONAL, -- only if segmented message
proposed-window-size [9] Unsigned (1..127) OPTIONAL, -- only if segmented message
service-choice [10] BACnetConfirmedServiceChoice,
service-request [11] BACnet-Confirmed-Service-Request OPTIONAL
-- Context-specific tags 0..11 are NOT used in header encoding
}
BACnet-Unconfirmed-Request-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 1 for this PDU type
reserved [1] Unsigned (0..15), -- shall be set to zero
service-choice [2] BACnetUnconfirmedServiceChoice,
service-request [3] BACnet-Unconfirmed-Service-Request
-- Context-specific tags 0..3 are NOT used in header encoding
}
BACnet-SimpleACK-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 2 for this PDU type
reserved [1] Unsigned (0..15), -- shall be set to zero
invoke-id [2] Unsigned (0..255),
service-ack-choice [3] BACnetConfirmedServiceChoice
-- Context-specific tags 0..3 are NOT used in header encoding
}
BACnet-ComplexACK-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 3 for this PDU type
segmented-message [1] BOOLEAN,
more-follows [2] BOOLEAN,
reserved [3] Unsigned (0..3), -- shall be set to zero
invoke-id [4] Unsigned (0..255),
sequence-number [5] Unsigned (0..255) OPTIONAL, -- only if segmented message
proposed-window-size [6] Unsigned (1..127) OPTIONAL, -- only if segmented message
service-ack-choice [7] BACnetConfirmedServiceChoice,
service-ack [8] BACnet-Confirmed-Service-ACK
-- Context-specific tags 0..8 are NOT used in header encoding
}
BACnet-SegmentACK-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 4 for this PDU type
reserved [1] Unsigned (0..3), -- shall be set to zero
negative-ack [2] BOOLEAN,
server [3] BOOLEAN,
original-invoke-id [4] Unsigned (0..255),
sequence-number [5] Unsigned (0..255),
actual-window-size [6] Unsigned (1..127)
-- Context-specific tags 0..6 are NOT used in header encoding
}
BACnet-Error-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 5 for this PDU type
reserved [1] Unsigned (0..15), -- shall be set to zero
original-invoke-id [2] Unsigned (0..255),
error-choice [3] BACnetConfirmedServiceChoice,
error [4] BACnet-Error
-- Context-specific tags 0..4 are NOT used in header encoding
}
BACnet-Reject-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 6 for this PDU type
reserved [1] Unsigned (0..15), -- shall be set to zero
original-invoke-id [2] Unsigned (0..255),
reject-reason [3] BACnetRejectReason
-- Context-specific tags 0..3 are NOT used in the header encoding
}
BACnet-Abort-PDU ::= SEQUENCE {
pdu-type [0] Unsigned (0..15), -- 7 for this PDU type
reserved [1] Unsigned (0..7), -- shall be set to zero
server [2] BOOLEAN,
original-invoke-id [3] Unsigned (0..255),
abort-reason [4] BACnetAbortReason
-- Context-specific tags 0..4 are NOT used in header encoding
}
BACnetConfirmedServiceChoice ::= ENUMERATED {
-- Alarm and Event Services
acknowledge-alarm (0),
confirmed-cov-notification (1),
confirmed-cov-notification-multiple (31),
confirmed-event-notification (2),
get-alarm-summary (3),
get-enrollment-summary (4),
get-event-information (29),
life-safety-operation (27),
subscribe-cov (5),
subscribe-cov-property (28),
subscribe-cov-property-multiple (30),
-- File Access Services
atomic-read-file (6),
atomic-write-file (7),
-- Object Access Services
add-list-element (8),
remove-list-element (9),
create-object (10),
delete-object (11),
read-property (12),
read-property-multiple (14),
read-range (26),
write-property (15),
write-property-multiple (16),
-- Remote Device Management Services
device-communication-control (17),
confirmed-private-transfer (18),
confirmed-text-message (19),
reinitialize-device (20),
-- Virtual Terminal Services
vt-open (21),
vt-close (22)
vt-data (23)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment