OpenLCP/protocol/artistic/artnet/README.md

215 lines
5.3 KiB
Markdown
Raw Normal View History

2022-06-08 16:06:30 -04:00
# OpenLCP support for Art-Net
The Art-Net 4 Release 1.4dd2 (1/2/2021) describes three members of an Art-Net network:
- **Controller** : A lighting console.
- **Node** : A DMX to / from Art-Net device.
- **Media Server** : A Media Server.
The ArtPollReply Styles (Table 4) enumerates those, plus an additional 4 device types:
- **Route** : A network routing device.
- **Backup** : A backup device.
- **Config** : A configuration or diagnostic tool
- **Visual** : A visualizer
The behaviors of Route, Backup, Config, and Visual devices is not specified. The behaviors of Controller, Node, and Media Server are defined, and summarized in a table below.
In OpenLCP, the base class for all Art-Net devices is the ARTNET::Device class. ARTNET::Controller and ARTNET::Node inherit from ARTNET::Device virtually, allowing custom implementations that may need to inherit from ARTNET::Controller _and_ ARTNET::Node to do so with a common base ARTNET::Device.
- ARTNET::Device carries the implementation for:
- Rx
- ArtPoll
- ArtTimeCode
- ArtCommand
- ArtTrigger
- ArtDmx
- ArtNzs
- ArtVlc
- ArtRdm
- ArtRdmSub
2022-11-15 11:40:47 -05:00
- Tx
- ArtPollReply
- ArtDiagData
- ArtTimeCode
- ArtCommand
- ArtTrigger
2022-11-15 11:40:47 -05:00
- ArtDmx (Peer to Peer)
- ArtNzs
- ArtVlc
- ArtRdm
- ArtRdmSub
- ARTNET::Controller extends ARTNET::Device with:
- Rx
- ArtPollReply
- ArtIpProgReply
- ArtDiagData
- ArtFirmwareReply
- ArtTodData
- Tx
- ArtPoll
- ArtIpProg
- ArtAddress
2022-11-15 11:40:47 -05:00
- ArtDmx (Controller to Peer)
- ArtSync
- ArtInput
- ArtFirmwareMaster
- ArtTodRequest
- ArtTodControl
- ARTNET::Node extends ARTNET::Device with:
- Rx
- ArtIpProg
- ArtAddress
- ArtSync
- ArtInput
- ArtFirmwareMaster
- ArtTodRequest
- ArtTodControl
- Tx
- ArtIpProgReply
- ArtFirmwareReply
- ArtTodData
## Art-Net Table of Behaviors
<table>
<tr>
<th rowspan=3>OpCode</th>
<th colspan=3>Controller</th>
<th colspan=3>Node</th>
<th colspan=3>Media Server</th>
</tr>
<tr>
<th rowspan=2>RX Behavior</th><th colspan=2>TX</th>
<th rowspan=2>RX Behavior</th><th colspan=2>TX</th>
<th rowspan=2>RX Behavior</th><th colspan=2>TX</th>
</tr>
<tr>
<th>uni</th><th>brd</th>
<th>uni</th><th>brd</th>
<th>uni</th><th>brd</th>
</tr>
<tr>
<td>ArtPoll</td>
<td>ArtPollReply</td><td></td><td>TX</td>
<td>ArtPollReply</td><td></td><td></td>
<td>ArtPollReply</td><td></td><td></td>
</tr>
<tr>
<td>ArtPollReply</td>
<td></td><td></td><td>TX</td>
<td></td><td></td><td>TX</td>
<td></td><td></td><td>TX</td>
</tr>
<tr>
<td>ArtIpProg</td>
<td></td><td>TX</td><td></td>
<td>ArtIpProgReply</td><td></td><td></td>
<td>ArtIpProgReply</td><td></td><td></td>
</tr>
<tr>
<td>ArtIpProgReply</td>
<td></td><td></td><td></td>
<td></td><td>TX</td><td></td>
<td></td><td>TX</td><td></td>
</tr>
<tr>
<td>ArtAddress</td>
<td></td><td>TX</td><td></td>
<td>ArtPollReply</td><td></td><td></td>
<td>ArtPollReply</td><td></td><td></td>
</tr>
<tr>
<td>ArtDiagData</td>
<td></td><td colspan=2>per ArtPoll</td>
<td></td><td colspan=2>per ArtPoll</td>
<td></td><td colspan=2>per ArtPoll</td>
</tr>
<tr>
<td>ArtTimeCode</td>
<td colspan=9>Application Specific</td>
</tr>
<tr>
<td>ArtCommand</td>
<td colspan=9>Application Specific</td>
</tr>
<tr>
<td>ArtTrigger</td>
<td colspan=9>Application Specific</td>
</tr>
<tr>
<td>ArtDmx</td>
<td>Application Specific</td><td>TX</td><td></td>
<td>Application Specific</td><td>TX</td><td></td>
<td>Application Specific</td><td>TX</td><td></td>
</tr>
<tr>
<td>ArtSync</td>
<td></td><td></td><td>TX</td>
<td>Sync</td><td></td><td></td>
<td>Sync</td><td></td><td></td>
</tr>
<tr>
<td>ArtNzs</td>
<td>Application Specific</td><td>TX</td><td></td>
<td>Application Specific</td><td>TX</td><td></td>
<td>Application Specific</td><td>TX</td><td></td>
</tr>
<tr>
<td>ArtVlc</td>
<td colspan=9>As ArtNzs</td>
</tr>
<tr>
<td>ArtInput</td>
<td></td><td>TX</td><td></td>
<td>ArtPollReply</td><td></td><td></td>
<td>ArtPollReply</td><td></td><td></td>
</tr>
<tr>
<td>ArtFirmwareMaster</td>
<td></td><td>TX</td><td></td>
<td>OpFirmwareReply</td><td></td><td></td>
<td>OpFirmwareReply</td><td></td><td></td>
</tr>
<tr>
<td>ArtFirmwareReply</td>
<td>Next OpFirmwareMaster</td><td></td><td></td>
<td></td><td>TX</td><td></td>
<td></td><td>TX</td><td></td>
</tr>
<tr>
<td>ArtTodRequest</td>
<td></td><td></td><td>TX</td>
<td>ArtTodData</td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td>ArtTodData</td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td>ArtTodControl</td>
<td></td><td></td><td>TX</td>
<td>ArtTodData</td><td></td><td></td>
<td></td><td></td><td></td>
</tr>
<tr>
<td>ArtRdm</td>
<td></td><td>TX</td><td>tx</td>
<td></td><td>TX</td><td>tx</td>
<td></td><td>TX</td><td>tx</td>
</tr>
<tr>
<td>ArtRdmSub</td>
<td></td><td>TX</td><td></td>
<td></td><td>TX</td><td></td>
<td></td><td></td><td></td>
</tr>
</table>
Art-Net™ is a trade mark of Artistic Licence Holdings Ltd. The Art-Net protocol and associated documentation is copyright Artistic Licence Holdings Ltd.