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 b95f6a72d6 keep a transaction number 1 month ago
docs cmake track generated doxygen work output 1 month ago
example uint -> unsigned int for MinGW 1 month ago
platform enabe MOC for qt platform driver 1 month ago
protocol keep a transaction number 1 month ago
test qt6 versionless targets 1 month ago
.gitignore build with cmake 5 months ago
CMakeLists.txt cmake track generated doxygen work output 1 month ago
ESTA.bib more bibs 2 months ago
IETF.bib enhanced IP address 2 months ago
LICENSE doc updates 2 months ago
README.md doc updates 2 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

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,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 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.