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
33 #endif // ARTNET_PORT_COUNT
40 enum { ARTNET_LONG_NAME_LENGTH = 64 };
41 enum { ARTNET_MAX_PORTS = ARTNET_PORT_COUNT };
42 enum { ARTNET_MAX_RDM_ADDRESS_COUNT = 32 };
45 enum { ARTNET_MAX_RDM_DATA = 512 };
46 enum { ARTNET_MAX_UID_COUNT = 200 };
47 enum { ARTNET_REPORT_LENGTH = 64 };
48 enum { ARTNET_SHORT_NAME_LENGTH = 18 };
54 typedef enum artnet_packet_type_e {
56 ARTNET_REPLY = 0x2100,
58 ARTNET_TODREQUEST = 0x8000,
59 ARTNET_TODDATA = 0x8100,
60 ARTNET_TODCONTROL = 0x8200,
62 ARTNET_RDM_SUB = 0x8400,
63 ARTNET_TIME_CODE = 0x9700,
64 ARTNET_IP_PROGRAM = 0xf800,
65 ARTNET_IP_PROGRAM_REPLY = 0xf900,
69 struct artnet_poll_s {
75 typedef struct artnet_poll_s artnet_poll_t;
78 struct artnet_reply_s {
79 uint8_t ip[ola::network::IPV4Address::LENGTH];
83 uint8_t subnet_address;
88 char short_name[ARTNET_SHORT_NAME_LENGTH];
89 char long_name[ARTNET_LONG_NAME_LENGTH];
90 char node_report[ARTNET_REPORT_LENGTH];
91 uint8_t number_ports[2];
92 uint8_t port_types[ARTNET_MAX_PORTS];
93 uint8_t good_input[ARTNET_MAX_PORTS];
94 uint8_t good_output[ARTNET_MAX_PORTS];
95 uint8_t sw_in[ARTNET_MAX_PORTS];
96 uint8_t sw_out[ARTNET_MAX_PORTS];
104 uint8_t mac[ola::network::MACAddress::LENGTH];
105 uint8_t bind_ip[ola::network::IPV4Address::LENGTH];
111 typedef struct artnet_reply_s artnet_reply_t;
114 struct artnet_timecode_s {
125 typedef struct artnet_timecode_s artnet_timecode_t;
128 struct artnet_dmx_s {
138 typedef struct artnet_dmx_s artnet_dmx_t;
141 struct artnet_todrequest_s {
154 uint8_t address_count;
155 uint8_t addresses[ARTNET_MAX_RDM_ADDRESS_COUNT];
158 typedef struct artnet_todrequest_s artnet_todrequest_t;
161 struct artnet_toddata_s {
173 uint8_t command_response;
181 typedef struct artnet_toddata_s artnet_toddata_t;
184 struct artnet_todcontrol_s {
200 typedef struct artnet_todcontrol_s artnet_todcontrol_t;
203 struct artnet_rdm_s {
217 uint8_t data[ARTNET_MAX_RDM_DATA];
220 typedef struct artnet_rdm_s artnet_rdm_t;
223 struct artnet_ip_prog_s {
228 uint8_t ip[ola::network::IPV4Address::LENGTH];
229 uint8_t subnet[ola::network::IPV4Address::LENGTH];
234 typedef struct artnet_ip_prog_s artnet_ip_prog_t;
237 struct artnet_ip_reply_s {
242 uint8_t ip[ola::network::IPV4Address::LENGTH];
243 uint8_t subnet[ola::network::IPV4Address::LENGTH];
248 typedef struct artnet_ip_reply_s artnet_ip_reply_t;
256 artnet_reply_t reply;
257 artnet_timecode_t timecode;
259 artnet_todrequest_t tod_request;
260 artnet_toddata_t tod_data;
261 artnet_todcontrol_t tod_control;
263 artnet_ip_prog_t ip_program;
264 artnet_ip_reply_t ip_reply;
270 #endif // PLUGINS_ARTNET_ARTNETPACKETS_H_
#define PACK(__Declaration__)
Pack structures.
Definition: Macro.h:170
A RDM unique identifier (UID).
Constants used throughout OLA.
Definition: ArtNetPackets.h:251
Definition: Constants.h:36
Represents an IPv4 Address.
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44
Represents a MAC Address.