$#! · 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
 Radix search using Patricia tree
 Reason codes
 Receive functions
 Relationship to OpenACN
 Root Layer API overview
 Root Layer for UDP
 Root Layer Protocol
 Root Layer,Sockets and Net interface
This tree uses the technique described in Sedgewick: “Algorithms” for folding the external nodes back into internal nodes - the value within the node is ignored when descending the tree (as the node is being treated as an internal one) and only the testbit is considered.
Random numbers are used in ACN occasionally.
Declarations and macros for pseudo random numbers.
void randomize(bool force)
Initialize the random library function to generate a fresh sequence that is unlikely to match other components and unlikely to repeat on another run.
Remote channel owned by a remote copmponent
extern struct uuidset_s Rcomponents
Remote component set
static int readprop(char **bpp,
int rem,
const struct dmpprop_s **dpp,
struct adspec_s *ofp)
Read a property specifier from the command line and check it against the property map for the device.
static int readremote(char **bpp)
Read a remote component specifier from the command line.
void readrxqueue()
Read the received wrapper queue (properly received wrappers only, there may be others awaiting sequencing) and dispatch to client protocol handlers.
static int readU32(char **bpp,
uint32_t *ip,
const char *delims)
Read a uint32_t value from the command line.
static inline void * reallocx(void *ptr,
size_t size)
Re-allocate memory or exit on failure.
From SDT spec Table 6.
Receive is handled by callback functions.
Recover the destination address for received packets
To send or receive from RLP you need at least one RLP socket.
ACN-2010 method
Project OpenACN is a very basic level open-source implementation of some parts of ACN available since 2007.
static inline void releaseLcomponent(struct Lcomponent_s *Lcomp)
Unlink a local component from Lcomponents and if it is unused free it.
static inline void releaseRcomponent(struct Rcomponent_s *Rcomp)
Unlink a remote component from Rcomponents and if it is unused free it.
array of remote components (they are also stored in a uuid set for rapid lookup by CID).
Resolve a UUID into a DDL file
UUID to DDL file resolver.
const ddlchar_t * resolveuuid(struct dcxt_s *dcxp,
const ddlchar_t *name,
uint8_t *dcid)
Resolve a UUID alias to a full UUID using currently scoped UUIDname definitions.
ACN Root Layer Protocol and Networking Interface
Implementation of ACN route layer protocol on BSD sockets API including Operating System and Stack dependent networking functions.
int rlp_init(void)
Initialize RLP and networking.
void rlp_packetRx(const uint8_t *buf,
ptrdiff_t length,
struct rxcontext_s *rcxt)
Length of RLP postamble
Length of RLP preamble
string representation of RLP preamble (assumes compiler will add NUL terminator)
int rlp_sendbuf(uint8_t *txbuf,
int length,
#if CF_RLP_MAX_CLIENT_PROTOCOLS > 1 protocolID_t protocol,
#endif struct rlpsocket_s *src,
netx_addr_t *dest,
uint8_t *srccid)
Finalizes a buffer and transmit it
A list of current RLP sockets.
struct rlpsocket_s * rlpSubscribe(netx_addr_t *lclad,
protocolID_t protocol,
rlpcallback_fn *callback,
void *ref)
Returns an rlpsocket_s suitable for sending and registers a callback function for receiving packets.
WARNING: This page may be out of date.
int rptProtoMsg(struct txwrap_s **txwrapp,
struct member_s *memb,
uint16_t wflags)
Repeat the previous message to another member of the same group.
static void run_controller(const char *uuidstr,
uint16_t port,
const char **interfaces)
Initialize ACN and SLP and run the event loop.
static int rx_sbsaccept(struct dmprcxt_s *rcxt,
const uint8_t *bp)
Callback function which receives subscribe-accept messages.
typedef struct rxbuf_s rxbuf_s
At minimum, the rxbuffer needs a usecount attaching.
Received data context.
Incoming wrappers.