21#ifndef PLUGINS_ARTNET_ARTNETPACKETS_H_
22#define PLUGINS_ARTNET_ARTNETPACKETS_H_
28#include "ola/network/Interface.h"
31#ifndef ARTNET_PORT_COUNT
32#define ARTNET_PORT_COUNT 4
40enum { ARTNET_LONG_NAME_LENGTH = 64 };
41enum { ARTNET_MAX_PORTS = ARTNET_PORT_COUNT };
42enum { ARTNET_MAX_RDM_ADDRESS_COUNT = 32 };
45enum { ARTNET_MAX_RDM_DATA = 512 };
46enum { ARTNET_MAX_UID_COUNT = 200 };
47enum { ARTNET_REPORT_LENGTH = 64 };
48enum { ARTNET_SHORT_NAME_LENGTH = 18 };
54typedef enum artnet_packet_type_e {
56 ARTNET_REPLY = 0x2100,
59 ARTNET_TODREQUEST = 0x8000,
60 ARTNET_TODDATA = 0x8100,
61 ARTNET_TODCONTROL = 0x8200,
63 ARTNET_RDM_SUB = 0x8400,
64 ARTNET_TIME_CODE = 0x9700,
65 ARTNET_IP_PROGRAM = 0xf800,
66 ARTNET_IP_PROGRAM_REPLY = 0xf900,
76typedef struct artnet_poll_s artnet_poll_t;
79struct artnet_reply_s {
80 uint8_t ip[ola::network::IPV4Address::LENGTH];
84 uint8_t subnet_address;
89 char short_name[ARTNET_SHORT_NAME_LENGTH];
90 char long_name[ARTNET_LONG_NAME_LENGTH];
91 char node_report[ARTNET_REPORT_LENGTH];
92 uint8_t number_ports[2];
93 uint8_t port_types[ARTNET_MAX_PORTS];
94 uint8_t good_input[ARTNET_MAX_PORTS];
95 uint8_t good_output[ARTNET_MAX_PORTS];
96 uint8_t sw_in[ARTNET_MAX_PORTS];
97 uint8_t sw_out[ARTNET_MAX_PORTS];
105 uint8_t mac[ola::network::MACAddress::LENGTH];
106 uint8_t bind_ip[ola::network::IPV4Address::LENGTH];
112typedef struct artnet_reply_s artnet_reply_t;
115struct artnet_timecode_s {
126typedef struct artnet_timecode_s artnet_timecode_t;
139typedef struct artnet_dmx_s artnet_dmx_t;
142struct artnet_todrequest_s {
155 uint8_t address_count;
156 uint8_t addresses[ARTNET_MAX_RDM_ADDRESS_COUNT];
159typedef struct artnet_todrequest_s artnet_todrequest_t;
162struct artnet_toddata_s {
174 uint8_t command_response;
182typedef struct artnet_toddata_s artnet_toddata_t;
185struct artnet_todcontrol_s {
201typedef struct artnet_todcontrol_s artnet_todcontrol_t;
218 uint8_t data[ARTNET_MAX_RDM_DATA];
221typedef struct artnet_rdm_s artnet_rdm_t;
224struct artnet_ip_prog_s {
229 uint8_t ip[ola::network::IPV4Address::LENGTH];
230 uint8_t subnet[ola::network::IPV4Address::LENGTH];
235typedef struct artnet_ip_prog_s artnet_ip_prog_t;
238struct artnet_ip_reply_s {
243 uint8_t ip[ola::network::IPV4Address::LENGTH];
244 uint8_t subnet[ola::network::IPV4Address::LENGTH];
249typedef struct artnet_ip_reply_s artnet_ip_reply_t;
257 artnet_reply_t reply;
258 artnet_timecode_t timecode;
260 artnet_todrequest_t tod_request;
261 artnet_toddata_t tod_data;
262 artnet_todcontrol_t tod_control;
264 artnet_ip_prog_t ip_program;
265 artnet_ip_reply_t ip_reply;
Constants used throughout OLA.
Represents an IPv4 Address.
Represents a MAC Address.
#define PACK(__Declaration__)
Pack structures.
Definition Macro.h:171
A RDM unique identifier (UID).
@ UID_SIZE
Definition UID.h:260
The namespace containing all OLA symbols.
Definition Credentials.cpp:44
@ DMX_UNIVERSE_SIZE
Definition Constants.h:36
Definition ArtNetPackets.h:252