diff --git a/LICENSE b/LICENSE index dfccf58..18de59d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020 Kevin Matz +Copyright (c) 2020,2021 Kevin Matz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 7d32645..32a5d23 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ may not be inherited from sibling `PDU` in the data. | 0 to 10 V Analog Control | E1.3 | | | USITT DMX512-A | E1.11 | Data Abstraction | | ACN Root Layer Protocol (RLP) | E1.17 | ✓ | -| ACN Session Data Transport Protocol (SDT) | E1.17 | | +| ACN Session Data Transport Protocol (SDT) | E1.17 | i/o | | ACN Device Management Protocol (DMP) | E1.17 | Limited | | ACN Device Description Language (DDL) | E1.17 | | | EPI 10 - Autogeneration of Multicast Address on IPv4 Networks | E1.17 | | @@ -76,7 +76,7 @@ may not be inherited from sibling `PDU` in the data. | sACN Sync | E1.31 | Rx | | sACN Discovery | E1.31 | ✓ | | sACN Preview | E1.31 | - | -| RDMNet | E1.33 | | +| RDMNet | E1.33 | i/o | | RDM Dimmer Message Sets | E1.37-1 | Normative | | RDM IPv4 & DNS Configuration Messages | E1.37-2 | Normative | | RDM Gateway & Splitter Configuration Messages | E1.37-7 | Normative | diff --git a/docs/classdiagram.odg b/docs/classdiagram.odg index c61037f..ffdf810 100644 Binary files a/docs/classdiagram.odg and b/docs/classdiagram.odg differ diff --git a/docs/classdiagram.png b/docs/classdiagram.png index f26ecfa..3bc72f8 100644 Binary files a/docs/classdiagram.png and b/docs/classdiagram.png differ diff --git a/protocols/acn/README.md b/protocols/acn/README.md deleted file mode 100644 index 1fe299b..0000000 --- a/protocols/acn/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Library for E1.17 ACN -## `Architecture for Control Networks` - -## Top level include -Include `acn.h` for full protocol support. - -> ```#include "acn.h"``` - -## Logical components - -### Protocol Handling -* ACN Architecture - * `pdu.h`: [`ACN::PDU`] - * `rlp.h`: [`ACN::RLP`] - - -* Device Management Protocol - * `dmp.h`: [`ACN::DMP`] - - -* Session Data Transport - * `sdt.h`: [`ACN::SDT`] - -### EPI Support -* EPI 17. ACN Root Layer Protocol -Operation on UDP - * `rlp-udp.h`: [`ACN::RLP::UDP`] - - -* EPI 18. Operation of SDT on UDP Networks - * `sdt-udp.h`: [`ACN::SDT::UDP`] - - -* EPI 33. ACN Root Layer Protocol Operation on TCP - * `rlp-tcp.h`: [`ACN::RLP::TCP`] diff --git a/protocols/sacn/README.md b/protocols/sacn/README.md deleted file mode 100644 index 1785a43..0000000 --- a/protocols/sacn/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# 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 to also have the `acn` and `dmx` libraries in the include path. - -## Logical components - -### Protocol Handling -* `sacn.h`: [`SACN`] protocol constants. -* `data.h`: [`SACN::DATA`] protocol support for `VECTOR_ROOT_E131_DATA` packets. -* `extended.h`: [`SACN::EXTENDED`] protocol support for `VECTOR_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 for multiple universes. - -* `source.h`: [`SACN::Source`] A sACN component that assembles, formats, and transmits data to one or many receivers. - -* `node.h`: [`SACN::Node`] A class that inherits from both `SACN::Source` and `SACN::Receiver`. IE. can both send and receive. The node class also manages universe discovery. - -### Reference Implementations - -Several reference implementations may be available in the `platform` subdirectory. - -* `receiver-esp.h`: [`SACN::EspReceiver`] A reference implementation, derived from `SACN::Receiver` for use with ESP devices and Arduino. - -* `qsacnnode.h`: [`SACN::QSacnNode`] An implementation that inherits from `SACN::Node`, which handles all of the mucky hardware and network with Qt. - -## Usage with Arduino - -Include `receiver-esp.h` at the top of your sketch. - -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... -} -> ```