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,
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,
70 struct artnet_poll_s {
76 typedef struct artnet_poll_s artnet_poll_t;
79 struct 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];
112 typedef struct artnet_reply_s artnet_reply_t;
115 struct artnet_timecode_s {
126 typedef struct artnet_timecode_s artnet_timecode_t;
129 struct artnet_dmx_s {
139 typedef struct artnet_dmx_s artnet_dmx_t;
142 struct artnet_todrequest_s {
155 uint8_t address_count;
156 uint8_t addresses[ARTNET_MAX_RDM_ADDRESS_COUNT];
159 typedef struct artnet_todrequest_s artnet_todrequest_t;
162 struct artnet_toddata_s {
174 uint8_t command_response;
182 typedef struct artnet_toddata_s artnet_toddata_t;
185 struct artnet_todcontrol_s {
201 typedef struct artnet_todcontrol_s artnet_todcontrol_t;
204 struct artnet_rdm_s {
218 uint8_t data[ARTNET_MAX_RDM_DATA];
221 typedef struct artnet_rdm_s artnet_rdm_t;
224 struct artnet_ip_prog_s {
229 uint8_t ip[ola::network::IPV4Address::LENGTH];
230 uint8_t subnet[ola::network::IPV4Address::LENGTH];
235 typedef struct artnet_ip_prog_s artnet_ip_prog_t;
238 struct artnet_ip_reply_s {
243 uint8_t ip[ola::network::IPV4Address::LENGTH];
244 uint8_t subnet[ola::network::IPV4Address::LENGTH];
249 typedef 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;
271 #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:252
Definition: Constants.h:36
Represents an IPv4 Address.
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44
Represents a MAC Address.