Open Lighting Architecture  Latest Git
Classes | Typedefs | Enumerations | Functions | Variables
ola::plugin::artnet Namespace Reference

Detailed Description

The Art-Net plugin.

An Art-Net device is an instance of libartnet bound to a single IP address Art-Net is limited to four ports per direction per IP, so in this case our device has 8 ports :

IDs 0-3 : Input ports (recv DMX) IDs 4-7 : Output ports (send DMX)

Classes

struct  artnet_packet
 
class  ArtNetDevice
 
class  ArtNetInputPort
 
class  ArtNetNode
 The actual Art-Net Node. More...
 
class  ArtNetNodeImpl
 
class  ArtNetNodeImplRDMWrapper
 
class  ArtNetNodeOptions
 
class  ArtNetOutputPort
 
class  ArtNetPlugin
 

Typedefs

typedef map< UID, std::pair< IPV4Address, uint8_t > > uid_map
 
typedef enum ola::plugin::artnet::artnet_packet_type_e artnet_packet_type
 
typedef struct artnet_poll_s artnet_poll_t
 
typedef struct artnet_reply_s artnet_reply_t
 
typedef struct artnet_timecode_s artnet_timecode_t
 
typedef struct artnet_dmx_s artnet_dmx_t
 
typedef struct artnet_todrequest_s artnet_todrequest_t
 
typedef struct artnet_toddata_s artnet_toddata_t
 
typedef struct artnet_todcontrol_s artnet_todcontrol_t
 
typedef struct artnet_rdm_s artnet_rdm_t
 
typedef struct artnet_ip_prog_s artnet_ip_prog_t
 
typedef struct artnet_ip_reply_s artnet_ip_reply_t
 

Enumerations

enum  artnet_port_type { ARTNET_INPUT_PORT, ARTNET_OUTPUT_PORT }
 
enum  artnet_merge_mode { ARTNET_MERGE_HTP, ARTNET_MERGE_LTP }
 
enum  { ARTNET_LONG_NAME_LENGTH = 64 }
 
enum  { ARTNET_MAX_PORTS = ARTNET_PORT_COUNT }
 
enum  { ARTNET_MAX_RDM_ADDRESS_COUNT = 32 }
 
enum  { ARTNET_MAX_RDM_DATA = 512 }
 
enum  { ARTNET_MAX_UID_COUNT = 200 }
 
enum  { ARTNET_REPORT_LENGTH = 64 }
 
enum  { ARTNET_SHORT_NAME_LENGTH = 18 }
 
enum  artnet_packet_type_e {
  ARTNET_POLL = 0x2000, ARTNET_REPLY = 0x2100, ARTNET_DMX = 0x5000, ARTNET_SYNC = 0x5200,
  ARTNET_TODREQUEST = 0x8000, ARTNET_TODDATA = 0x8100, ARTNET_TODCONTROL = 0x8200, ARTNET_RDM = 0x8300,
  ARTNET_RDM_SUB = 0x8400, ARTNET_TIME_CODE = 0x9700, ARTNET_IP_PROGRAM = 0xf800, ARTNET_IP_PROGRAM_REPLY = 0xf900
}
 

Functions

 PACK (struct artnet_poll_s { uint16_t version;uint8_t talk_to_me;uint8_t priority;})
 
 PACK (struct artnet_reply_s { uint8_t ip[ola::network::IPV4Address::LENGTH];uint16_t port;uint16_t version;uint8_t net_address;uint8_t subnet_address;uint16_t oem;uint8_t ubea;uint8_t status1;uint16_t esta_id;char short_name[ARTNET_SHORT_NAME_LENGTH];char long_name[ARTNET_LONG_NAME_LENGTH];char node_report[ARTNET_REPORT_LENGTH];uint8_t number_ports[2];uint8_t port_types[ARTNET_MAX_PORTS];uint8_t good_input[ARTNET_MAX_PORTS];uint8_t good_output[ARTNET_MAX_PORTS];uint8_t sw_in[ARTNET_MAX_PORTS];uint8_t sw_out[ARTNET_MAX_PORTS];uint8_t sw_video;uint8_t sw_macro;uint8_t sw_remote;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t style;uint8_t mac[ola::network::MACAddress::LENGTH];uint8_t bind_ip[ola::network::IPV4Address::LENGTH];uint8_t bind_index;uint8_t status2;uint8_t filler[26];})
 
 PACK (struct artnet_timecode_s { uint16_t version;uint8_t filler;uint8_t filler2;uint8_t frames;uint8_t seconds;uint8_t minutes;uint8_t hours;uint8_t type;})
 
 PACK (struct artnet_dmx_s { uint16_t version;uint8_t sequence;uint8_t physical;uint8_t universe;uint8_t net;uint8_t length[2];uint8_t data[DMX_UNIVERSE_SIZE];})
 
 PACK (struct artnet_todrequest_s { uint16_t version;uint8_t filler1;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address_count;uint8_t addresses[ARTNET_MAX_RDM_ADDRESS_COUNT];})
 
 PACK (struct artnet_toddata_s { uint16_t version;uint8_t rdm_version;uint8_t port;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command_response;uint8_t address;uint16_t uid_total;uint8_t block_count;uint8_t uid_count;uint8_t tod[ARTNET_MAX_UID_COUNT][ola::rdm::UID::UID_SIZE];})
 
 PACK (struct artnet_todcontrol_s { uint16_t version;uint8_t filler1;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address;})
 
 PACK (struct artnet_rdm_s { uint16_t version;uint8_t rdm_version;uint8_t filler2;uint8_t spare1;uint8_t spare2;uint8_t spare3;uint8_t spare4;uint8_t spare5;uint8_t spare6;uint8_t spare7;uint8_t net;uint8_t command;uint8_t address;uint8_t data[ARTNET_MAX_RDM_DATA];})
 
 PACK (struct artnet_ip_prog_s { uint16_t version;uint16_t filler;uint8_t command;uint8_t filler1;uint8_t ip[ola::network::IPV4Address::LENGTH];uint8_t subnet[ola::network::IPV4Address::LENGTH];uint16_t port;uint8_t spare[8];})
 
 PACK (struct artnet_ip_reply_s { uint16_t version;uint16_t filler;uint8_t command;uint8_t filler1;uint8_t ip[ola::network::IPV4Address::LENGTH];uint8_t subnet[ola::network::IPV4Address::LENGTH];uint16_t port;uint8_t spare[8];})
 

Variables

static const uint8_t ARTNET_DISABLE_PORT = 0xf0
 
const char plugin_description []