Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 c_putfooter
 c_putheader
 cancelWrapper
 cd_sdtev
 CF_ACNLOG
 CF_DDL
 CF_DDL_BEHAVIORS
 CF_DDL_HASHBITS
 CF_DDL_IMMEDIATEPROPS
 CF_DDL_MAXNEST
 CF_DDL_MAXTEXT
 CF_DDLACCESS_DMP
 CF_DDLACCESS_EPI26
 CF_DMP
 CF_DMP_RMAXCXNS
 CF_DMPAD_MAXBYTES
 CF_DMPCOMP__D
 CF_DMPCOMP_C_
 CF_DMPCOMP_CD
 CF_DMPMAP_INDEX
 CF_DMPMAP_NAME
 CF_DMPMAP_NONE
 CF_DMPMAP_SEARCH
 CF_DMPON_SDT
 CF_DMPON_TCP
 CF_E131
 CF_E131_IGNORE_PREVIEW
 CF_E131_RX
 CF_E131_TX
 CF_E131_ZSTART_ONLY
 CF_EPI10
 CF_EPI11
 CF_EPI12
 CF_EPI13
 CF_EPI15
 CF_EPI16
 CF_EPI17
 CF_EPI18
 CF_EPI19
 CF_EPI20
 CF_EPI26
 CF_EPI29
 CF_EVLOOP
 CF_JOIN_TX_GROUPS
 CF_Lcomp_HASHBITS
 CF_LOCALIP_ANY
 CF_LOGFUNCS
 CF_LOGLEVEL
 CF_MAPGEN
 CF_MARSHAL_INLINE
 CF_MAX_IPADS
 CF_MULTI_COMPONENT
 CF_MULTICAST_TTL
 CF_NET_IPV4
 CF_NET_IPV6
 CF_OS_LINUX
 CF_Rcomp_HASHBITS
 CF_RLP
 CF_RLP_CLIENTPROTO
 CF_RLP_MAX_CLIENT_PROTOCOLS
 CF_RLP_OPTIMIZE_PACK
 CF_SDT
 CF_SDT_CHECK_ASSOC
 CF_SDT_CLIENTPROTO
 CF_SDT_MAX_CLIENT_PROTOCOLS
 CF_SDTRX_AUTOCALL
 CF_STACK_xxx
 CF_STRICT_CHECKS
 CF_TIME_ms
 CF_TIME_POSIX_timespec
 CF_TIME_POSIX_timeval
 CF_UUIDS_HASH
 CF_UUIDS_RADIX
 CF_VERSION
 Channel and member structures
 Channel Flags
 Channels
 chanOpen_fn
 CHF_NOAUTOCON
 CHF_NOCLOSE
 CHF_RECIPROCAL
 CHF_UNICAST
 CID_bva
 clientRx_fn
 clog2(x)
 closeChannel
 Combined message code and address modes
 Command codes and classification
 Command line options
 Compiler and Platform
 Component Handling
 Component Model
 Component registration
 component.h
 Components
 Configuration
 Connection context
 Connections
 constant_bva
 Constants
 Constants from ACN Architecture
 Constants from EPI-17
 container_of(ptr,type,member)
 Controller Demo Makefile
 Controller description
 controller.c
 controllers
 Converting dotted decimal style literals to host or network
 cpwr2(x)
 ctlcxt
 ctlmbrs
 ctxtLcomp(rcxt)
 cyclic_bva
static inline void c_putfooter(void)
Print the closing text of the generated .c file.
static void c_putheader(const char *dcidstr,
const char **headers)
Print the opening text of the generated .c file
void cancelWrapper(struct txwrap_s *txwrap)
Cancel a txwrap
static void cd_sdtev(int event,
void *object,
void *info)
Callback function to handle out of band events from the SDT layer.
determine how messages are logged.
Enable DDL code
Parse and apply DDL behaviors
Hash size for DDL modules
Parse and record values for immediate properties.
Maximum XML nesting level within a single DDL module.
Size allocated for parsing text nodes.
Compile DDL for DMP access
Compile DDL for EPI26 (DMX/E1.31) access
enable the DMP layer
Number of connections to/from the same remote component.
Maximum DMP address size
Build DMP device code only
Build DMP controller code only
Build combined device and controller code
Store properties in an array indexed by address.
For a single device or a controller matched to a single device type, define to the name of the statically defined map structure to save a lot of passing pointers and references.
eliminate all address checking code in the DMP layer and simply passes up all addresses unchecked to the application.
Use a binary search to identify the property associated with an address.
Include SDT transport support
Include TCP transport support
Enable E1.31 code
Drop preview packets on read and never set preview on write.
Generate receive code
generate transmit code
Drop ASC packets on read and automatically add a zero start on write
Multicast address allocation
DDL Retrieval
Requirements on Homogeneous Ethernet Networks
IPv4 Addresses.
Multicast allocation infrastructure
ESTA/PLASA Identifiers
Root layer protocol for UDP
Requirements for SDT on UDP
Discovery using RLP
MTU
DDL syntax for E1.31/DMX access
IPv4 address assignment
Use Acacian event loop and timing services
Joining our own multicast groups
Hash size for local component table
Delegate all interface decisions to the OS/stack
Log function entry and exit
determine what level of messages are logged.
Enable static map generation extensions
Use inline functions for Data Marshalling
Maximum number of supported IP addresses
One or many components?
IP multicast TTL value
IP version 4
IP version 6 (experimental)
Operating system is Linux.
Hash size for remote component table
enable the ACN root layer
Client protocol ID for single protocol implementations.
Number of client protocols to allocate space for
Optimize PDU packing in RLP (at the cost of speed)
enable the SDT layer
The association field in SDT wrappers is entirely redundant and this implementation has no need of it.
Client protocol for single protocol implementations
Number of client protocols to allocate space for.
When an sdt wrapper is correctly received it is placed in an ordered queue.
Only needed where stack is not defined by the OS default.
Extra error checking
Use simple millisecond integers for times
Use timespec struictures for timing
Use POSIX timeval struictures for timing
Use a hash table to store UUIDs (not tested recently).
Use radix tree (patricia tree) to store UUIDs
An integer which represents the ACN revision to be compiled.
Each local component may have multiple local channels and each channel may contain many members.
Channels can be opened by calling openChannel().
typedef struct Lchannel_s *chanOpen_fn(
   ifMC(struct Lcomponent_s *Lcomp,) struct chanParams_s *params
)
Callback function (registered in sdt_register as joinRx) to handle unsolicited Join requests.
do not automatically issue connect requests
do not automatically close channel when last member is removed
is reciprocal for remote initiated channel
unicast channel
void CID_bva(struct dcxt_s *dcxp,
const struct bv_s *bv)
typedef void clientRx_fn(struct member_s *memb,
const uint8_t *data,
int length,
void *cookie)
Callback function (registered in<sdt_addClient>) to handle received client protocol data.
log2 of integer x rounded up to nearest integer.
void closeChannel(struct Lchannel_s *Lchan)
Close a channel removing all members if necessary.
For many purposes Acacian combines the message code with the address type (header) field.
See acnstd.h, SDT Constants.
These are parsed by library function getopt_long()
This code has currently only been built using GCC and GNU Make on Linux platforms - both desktop and small embedded.
Acacian makes a fundamental distinction between Local components and Remote components.
Utilities for management of local and remote components
DMP related data for local or remote components (see component.h).
DMP is concerned with connections – these structures maintain the transport protocol relevant information including state and context data, details of remote and local components etc.
Once a channel is established, it is no use without a protocol.
void constant_bva(struct dcxt_s *dcxp,
const struct bv_s *bv)
These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – ACN Architecture
These constants represent requirements defined in standard document ANSI E1.17 - 2010 Architecture for Control Networks – EPI 17.
Find the containing structure of a member.
Makefile for Demonstration Programs.
This demo controller is a very basic terminal program in which can discover devices, parse their DDL and access the properties exposed.
Simple demonstration controller application.
Controllers must parse DDL dynamically on encountering new device types.
order IPv4 addresses.
Round up to nearest power of 2 larger than or equal to x This is the same as (1 << clog2(x))
transmit context for control messages (see dmptcxt_s).
array holding SDT connections of members of the control group.
get the local component from receive context.
void cyclic_bva(struct dcxt_s *dcxp,
const struct bv_s *bv)
Close