1.7 KiB
1.7 KiB
Library for E1.31 sACN
Lightweight streaming protocol for transport of DMX512 using ACN
Top level include
Include sacn.h
for full protocol support.
#include "sacn.h"
Requirements
Expects the parent directory to contain the acn
and dmx
libraries.
Logical components
Protocol Handling
sacn.h
: [SACN
] protocol constants.data.h
: [SACN::DATA
] protocol support forVECTOR_ROOT_E131_DATA
packets.extended.h
: [SACN::EXTENDED
] protocol support forVECTOR_ROOT_E131_EXTENDED
packets
Data Classes
universe.h
: [SACN::Universe
] A set of up to 512 data slots identified by universe number. Note: In E1.31 there may be multiple sources for a universe.
For protocol agnostic universe refer to the base class,
DMX::Universe
receiver.h
: [SACN::Receiver
] A receiver is the intended target of information from a source. A receiver may listen on multiple universes.receiver-esp.h
: [SACN::EspReceiver
] A referance implimention, derived fromSACN::Receiver
for use with ESP devices and Arduino.
Usage with Arduino
Include receiver-esp.h
at the top of your sketch.
#include "src/lib/sacn/receiver-esp.h"
Create a receiver object.
EspReceiver * e131 = new EspReceiver();
In setup
, subscribe to a universe an register a callback for data activity.
setup() { e131->subscribe(1); e131->universe(1)->onData(std::bind(&universeHandler, std::placeholders::_1)); }
Write a handler function with the follow signature (returns void
, requires 1 argument, a Universe
pointer):
void universeHandler(Universe * universe) { do something... }