1
0
Fork 0
A collection of C++ libraries for Lighting Control Protocols, focusing on ESTA sponsored ANSI standards.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Kevin Matz ce1e17e9fc use reinterpret_cast on data() instead of c style cast on constData() that silently removed the const. 4 months ago
docs Prepare to support the Art-Net protocol. 4 months ago
example uint -> unsigned int for MinGW 1 year ago
platform use reinterpret_cast on data() instead of c style cast on constData() that silently removed the const. 4 months ago
protocol globally configurable Art-Net OEM value 4 months ago
test qt6 versionless targets 1 year ago
.gitignore build with cmake 1 year ago
ARTISTIC.bib Prepare to support the Art-Net protocol. 4 months ago
CMakeLists.txt cmake track generated doxygen work output 1 year ago
ESTA.bib more bibs 1 year ago
IETF.bib enhanced IP address 1 year ago
LICENSE doc updates 1 year ago
README.md Prepare to support the Art-Net protocol. 4 months ago

README.md

OpenLCP

A collection of C++ libraries for Lighting Control Protocols, focusing on ESTA sponsored ANSI standards.

ESTA Protocols Block Diagram

Object Architecture

The library encompases both the structured data being communicated between controllable components, and the control objects that expose the data in meaningful ways, without needing to know or understand the underlying protocols.

Objects

Control objects are structured thusly;

Architecture Flowchart

Data

Serveral of the ESTA protocols use the E1.17 Protocol Data Unit to transfer data. The PDU are a series of nested hierarchical data structures. PDU may encapsulate one or more PDU of an embedded protocol, or be a data endpoint for that protocol. The following slide describes the relational hierocracy of the PDU within ACN, sACN, RDMnet, and OTP. While similiar in structure and concept, the PDU in RDMnet do not inherit directly from the PDU in ACN, and the PDU in OTP are notably simpler, as data segments may not be inherited from sibling PDU in the data.

PDU Hierarch Flowchart

Supported Standards

Protocol Name Standard Implementation Status
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 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
EPI 11 - Retrieval of Device Descriptions from DMP Devices on IPv4 Networks E1.17
EPI 12 - ACN on Homogeneous Ethernet Networks E1.17
EPI 13 - Allocation of Internet Protocol Version 4 Addresses to ACN Hosts E1.17
EPI 15 - ACN Allocation of Multicast Addresses on IPv4 Networks E1.17
EPI 16 - ESTA Registered Names and Identifiers E1.17
EPI 17 - ACN Root Layer Protocol Operation on UDP E1.17
EPI 18 - Operation of SDT on UDP Networks E1.17
EPI 19 - ACN Discovery on IP Networks E1.17 Names
EPI 20 - MTU Size for ACN on IPv4 Networks E1.17
EPI 22 - DDL Core Modules for ACN Devices E1.17
Remote Device Management (RDM) E1.20 Responder
RDM Subdevice E1.20
RDM Sensors E1.20
RDM Discovery E1.20
RDM Required PIDs E1.20
RDM Status collection PIDs E1.20
EPI 23 - Device Identification Subdevice E1.30-1
EPI 25 - Time Reference in ACN Systems Using SNTP and NTP E1.30-3
EPI 26 - DDL Extensions for DMX and RDM Devices E1.30-4
EPI 32 - Identification of Draft DDL Modules E1.30-10
EPI 33 - ACN RLP Operation on TCP E1.30-11
Streaming ACN (sACN) E1.31 Data/Discovery
sACN Receiver E1.31
sACN Source E1.31
sACN Data E1.31
sACN Sync E1.31 Rx
sACN Discovery E1.31
sACN Preview E1.31 -
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

Non-Standard Protocols

Protocol Designer Version Implementation Status
Art-Net Artistic Licence Holdings Ltd. Protocol 4 v1.4

Dependent Protocols

Protocol Name Standard Referenced By Implementation Status
UUID Universally Unique Identifier RFC 4122 RLP, DDL Partial
Service Location Protocol (SLP) RFC 2609 EPI 19
Trivial File Transfer Protocol (TFTP) RFC 1350 EPI 25

License

Copyright © 2020-2022 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.