acnstd.h

Constants from ACN Standards

These constants represent requirements defined in standard documents of ANSI E1.17

Summary
acnstd.hThese constants represent requirements defined in standard documents of ANSI E1.17
Protocol IdentifiersEPI16 defines the method for registration of ACN protocol identifiers including both numeric codes as used on the wire in ACN PDUs and text names as used in discovery.
Macros
Numeric protocol codes
Protocol Names
DDL Access Protocol Identifiers
Constants from ACN ArchitectureThese constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – ACN Architecture
Macros
PDU flagsFlags for PDU flag and length field.
SDT ConstantsConstants from Session Data Transport
Enumerations
PDU vector codesFrom SDT spec Table 3.
Reason codesFrom SDT spec Table 6.
Address specification typesFrom SDT spec Table 7
Macros
miscellaneous flags and vlaues
DMP ConstantsConstants from Device Management Protocol
Macros
field lengths
Address specification bits - in header fieldIndividual bit-field definitions DMPAD_A0 - A1 A0 specify the address size DMPAD_A1 - A1 A0 specify the address size DMPAD_X0 - Must be zero DMPAD_X1 - Must be zero DMPAD_D0 - D1 D0 give the address format DMPAD_D1 - D1 D0 give the address format DMPAD_R - Address is relative to previous property DMPAD_Z - Must be zero DMPAD_ZMASK - Combined mask of bits which must be zero
Address types (combined from individual bits)
Address sizes (combined from individual bits)
Enumerations
dmp_reason_eReason codes (From DMP spec)
dmp_message_eDMP messsage vectors (commands)
EPI-10 ConstantsThese constants represent requirements defined in standard document ANSI E1.17-2010 Architecture for Control Networks EPI 10.
Macros
Multicast AutogenerationAll constants except EPI10_HOST_PART_MASK are defined in network byte order.
Constants from EPI-17These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 17.
Macros
Root Layer for UDP
EPI-18 ConstantsThese constants represent requirements defined in standard document ANSI E1.17-2010, Architecture for Control Networks EPI 18.
Macros
Constants from EPI18.  SDT on UDPThese values and the method of specification changed between ACN-2006 and ACN-2010 with ACN-2010 defining several timeouts in terms of a timeout factor which relates the timeout to variable channel expiry time.
EPI-19 ConstantsThese constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 19.
Macros
SLP scopes
EPI-20 ConstantsThese constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 20.
Macros
Constants from EPI20.  Maximum Transmission Unit (MTU)

Protocol Identifiers

EPI16 defines the method for registration of ACN protocol identifiers including both numeric codes as used on the wire in ACN PDUs and text names as used in discovery.  DDL also defines identifiers for different access protocols.  Specific protocol identifiers are mostly defined in individual standard docs.

Macros

Numeric protocol codes

ESTA_PROTOCOL_NONEunspecified or no protocol
SDT_PROTOCOL_IDSession Data Transport (SDT section 7)
DMP_PROTOCOL_IDDevice Management Protocol (DMP section 13)
E131_PROTOCOL_IDE1.31 “Streaming ACN” or “sACN” (E1.31 section 5.5)

Protocol Names

SDT_PROTOCOL_NAMESession Data Transport (EPI-19)
DMP_PROTOCOL_NAMEDevice Management Protocol (EPI-19)
E131_PROTOCOL_NAMEE1.31 “Streaming ACN” or “sACN” (E1.31 section 5.5)

DDL Access Protocol Identifiers

DMP_PROTOCOL_DDLNAMEDMP (DDL appendix B)
E131_PROTOCOL_DDLNAMEsACN and DMX512 (EPI-26)

Constants from ACN Architecture

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – ACN Architecture

Summary
Macros
PDU flagsFlags for PDU flag and length field.

Macros

PDU flags

Flags for PDU flag and length field.  These flags apply to the complete 16-bit flags and length field

LENGTH_FLAGSet if length > 4095 (can never be set if epi20 used)
VECTOR_FLAGif set vector is present
HEADER_FLAGif set header is present
DATA_FLAGif set data is present
LENGTH_MASKmask off flags leaving length
FLAG_MASKmask off length leaving flags

Sometimes we just want to apply flags to the first octet

LENGTH_bFLAG8-bit equivalent of LENGTH_FLAG
VECTOR_bFLAG8-bit equivalent of VECTOR_FLAG
HEADER_bFLAG8-bit equivalent of HEADER_FLAG
DATA_bFLAG8-bit equivalent of DATA_FLAG
LENGTH_bMASK8-bit equivalent of LENGTH_MASK
FLAG_bMASK8-bit equivalent of FLAG_MASK

SDT Constants

Constants from Session Data Transport

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – Session Data Transport

Summary

Enumerations

PDU vector codes

From SDT spec Table 3.

SDT_REL_WRAP
SDT_UNREL_WRAP
SDT_CHANNEL_PARAMS
SDT_JOIN
SDT_JOIN_REFUSE
SDT_JOIN_ACCEPT
SDT_LEAVE
SDT_LEAVING
SDT_CONNECT
SDT_CONNECT_ACCEPT
SDT_CONNECT_REFUSE
SDT_DISCONNECT
SDT_DISCONNECTING
SDT_ACK
SDT_NAK
SDT_GET_SESSIONS
SDT_SESSIONS

Reason codes

From SDT spec Table 6.

SDT_REASON_NONSPEC
SDT_REASON_PARAMETERS
SDT_REASON_RESOURCES
SDT_REASON_ALREADY_MEMBER
SDT_REASON_BAD_ADDR
SDT_REASON_NO_RECIPROCAL
SDT_REASON_CHANNEL_EXPIRED
SDT_REASON_LOST_SEQUENCE
SDT_REASON_SATURATED
SDT_REASON_ADDR_CHANGING
SDT_REASON_ASKED_TO_LEAVE
SDT_REASON_NO_RECIPIENT
SDT_REASON_ONLY_UNICAST

Address specification types

From SDT spec Table 7

SDT_ADDR_NULL
SDT_ADDR_IPV4
SDT_ADDR_IPV6

Macros

miscellaneous flags and vlaues

NAK_OUTBOUNDSend NAKs to the multicast group as well as unicast to the leader
PARAM_FLAG_MASKMask to extract parameter flags
ALL_MEMBERSMID value for PDUs addressed to all members

DMP Constants

Constants from Device Management Protocol

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – Device Managemenet Protocol

Summary
Macros
field lengths
Address specification bits - in header fieldIndividual bit-field definitions DMPAD_A0 - A1 A0 specify the address size DMPAD_A1 - A1 A0 specify the address size DMPAD_X0 - Must be zero DMPAD_X1 - Must be zero DMPAD_D0 - D1 D0 give the address format DMPAD_D1 - D1 D0 give the address format DMPAD_R - Address is relative to previous property DMPAD_Z - Must be zero DMPAD_ZMASK - Combined mask of bits which must be zero
Address types (combined from individual bits)
Address sizes (combined from individual bits)
Enumerations
dmp_reason_eReason codes (From DMP spec)
dmp_message_eDMP messsage vectors (commands)

Macros

field lengths

DMP_VECTOR_LENLength of vector in DMP
DMP_HEADER_LENLength of header in DMP

Address specification bits - in header field

Individual bit-field definitions DMPAD_A0 - A1 A0 specify the address size DMPAD_A1 - A1 A0 specify the address size DMPAD_X0 - Must be zero DMPAD_X1 - Must be zero DMPAD_D0 - D1 D0 give the address format DMPAD_D1 - D1 D0 give the address format DMPAD_R - Address is relative to previous property DMPAD_Z - Must be zero DMPAD_ZMASK - Combined mask of bits which must be zero

Address types (combined from individual bits)

DMPAD_SINGLEA single property
DMPAD_RANGE_NODATARange address, no property values (e.g. in get-property message)
DMPAD_RANGE_SINGLERange address, single value for all properties in range
DMPAD_RANGE_ARRAYRedundant in ACN-2010 (applied to obsolete virtual addresses)
DMPAD_RANGE_STRUCTRange address, one value per property in range
DMPAD_TYPEMASKMask to select just the address type from header field

Address sizes (combined from individual bits)

DMPAD_1BYTEAddress, and count and increment if range, are 1 byte each
DMPAD_2BYTEAddress, and count and increment if range, are 2 bytes each
DMPAD_4BYTEAddress, and count and increment if range, are 4 bytes each
DMPAD_BADSIZEIllegal value
DMPAD_SIZEMASKMask to select just the address size from header field
ADDR_SIZE(hdr)Extract the address size (1,2 or 4) from the header field

Enumerations

dmp_reason_e

Reason codes (From DMP spec)

DMPRC_SUCCESSsuccess
DMPRC_UNSPECIFIEDunspecified refusal or failure
DMPRC_NOSUCHPROPproperty does not exist
DMPRC_NOREADproperty is not readable by Get-Property
DMPRC_NOWRITEproperty is not writeable by Set-Property
DMPRC_BADDATA”illegal” data value supplied
DMPRC_NOEVENTproperty does not support event generation
DMPRC_NOSUBSCRIBEdevice cannot accept subscriptions (does not generate events)
DMPRC_NORESOURCESunspecified resource limit
DMPRC_NOPERMISSIONrequester does not have permission for request

dmp_message_e

DMP messsage vectors (commands)

DMP_GET_PROPERTYGet-Property
DMP_SET_PROPERTYSet-Property
DMP_GET_PROPERTY_REPLYGet-Property reply
DMP_EVENTEvent
DMP_SUBSCRIBEEubscribe
DMP_UNSUBSCRIBEUnsubscribe
DMP_GET_PROPERTY_FAILGet-Property fail
DMP_SET_PROPERTY_FAILSet-Property fail
DMP_SUBSCRIBE_ACCEPTSubscribe accept
DMP_SUBSCRIBE_REJECTSubscribe reject
DMP_SYNC_EVENTSynchronization event

EPI-10 Constants

These constants represent requirements defined in standard document ANSI E1.17-2010 Architecture for Control Networks EPI 10.  Autogeneration of Multicast Address on IPv4 Networks

Summary
Macros
Multicast AutogenerationAll constants except EPI10_HOST_PART_MASK are defined in network byte order.

Macros

Multicast Autogeneration

All constants except EPI10_HOST_PART_MASK are defined in network byte order.

E1_17_AUTO_SCOPE_ADDRESS  - see epi10 for details
E1_17_AUTO_SCOPE_MASK    - see epi10 for details
E1_17_AUTO_SCOPE_BITS    - see epi10 for details

EPI10_SCOPE_MIN_MASK     - see epi10 for details
EPI10_SCOPE_MIN_BITS     - see epi10 for details
EPI10_SCOPE_MAX_MASK     - see epi10 for details
EPI10_SCOPE_MAX_BITS     - see epi10 for details

EPI10_HOST_PART_MASK  - see epi10 for details

Constants from EPI-17

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 17.  ACN Root Layer Protocol Operation on UDP

Macros

Root Layer for UDP

RLP_PREAMBLE_LENGTHLength of RLP preamble
RLP_POSTAMBLE_LENGTHLength of RLP postamble
RLP_PREAMBLE_VALUEstring representation of RLP preamble (assumes compiler will add NUL terminator)

EPI-18 Constants

These constants represent requirements defined in standard document ANSI E1.17-2010, Architecture for Control Networks EPI 18.  Operation of SDT on UDP Networks

Summary
Macros
Constants from EPI18.  SDT on UDPThese values and the method of specification changed between ACN-2006 and ACN-2010 with ACN-2010 defining several timeouts in terms of a timeout factor which relates the timeout to variable channel expiry time.

Macros

Constants from EPI18.  SDT on UDP

Note

These values and the method of specification changed between ACN-2006 and ACN-2010 with ACN-2010 defining several timeouts in terms of a timeout factor which relates the timeout to variable channel expiry time.  Values are provided for both versions (controlled by CF_VERSION).

MAK_TIMEOUT_FACTORACN-2010 method
MAK_TIMEOUT_msACN-2006 only
MAK_MAX_RETRIESboth ACN-2006 and ACN-2010
AD_HOC_TIMEOUT_msboth ACN-2006 and ACN-2010
AD_HOC_RETRIESboth ACN-2006 and ACN-2010
RECIPROCAL_TIMEOUT_FACTORACN-2010 method
MIN_EXPIRY_TIME_sACN-2010 method
MIN_EXPIRY_TIME_msACN-2006 method
NAK_TIMEOUT_FACTORACN-2010 method
NAK_TIMEOUT_msACN-2006 only
NAK_MAX_RETRIESboth ACN-2006 and ACN-2010
NAK_HOLDOFF_INTERVAL_msboth ACN-2006 and ACN-2010
NAK_MAX_TIME(hldoff)calculate based on holdoff
NAK_BLANKTIME(hldoff)calculate based on holdoff
NAK_MAX_TIME_msbased on EPI-18 suggested value for holdoff
NAK_BLANKTIME_msbased on EPI-18 suggested value for holdoff
SDT_MULTICAST_PORTACN-2006 and ACN-2010

EPI-19 Constants

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 19.  ACN Discovery on IP Networks

Macros

SLP scopes

SLP_DEFAULT_SCOPEDefault scope for SLP (RFC2608), not ACN specific.
EPI19_DEFAULT_SCOPEDefault scope defined in EPI 19.

EPI-20 Constants

These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 20.  Maximum Transmission Unit (MTU) Size for ACN on IPv4 Networks

Macros

Constants from EPI20.  Maximum Transmission Unit (MTU)

DEFAULT_MTUdefault value
MAX_MTUimplementation maximum
An integer which represents the ACN revision to be compiled.
Close