21#ifndef PLUGINS_USBPRO_DMXTERWIDGET_H_
22#define PLUGINS_USBPRO_DMXTERWIDGET_H_
25#include "ola/io/SelectServerInterface.h"
30#include "plugins/usbpro/BaseUsbProWidget.h"
61 std::auto_ptr<const ola::rdm::RDMRequest> m_pending_request;
63 uint8_t m_transaction_number;
65 void HandleMessage(uint8_t label,
68 void HandleTodResponse(
const uint8_t *data,
unsigned int length);
69 void HandleRDMResponse(
const uint8_t *data,
71 void HandleBroadcastRDMResponse(
const uint8_t *data,
unsigned int length);
72 void HandleShutdown(
const uint8_t *data,
unsigned int length);
74 static const uint8_t RDM_REQUEST_LABEL;
75 static const uint8_t RDM_BCAST_REQUEST_LABEL;
76 static const uint8_t TOD_LABEL;
77 static const uint8_t DISCOVERY_BRANCH_LABEL;
78 static const uint8_t FULL_DISCOVERY_LABEL;
79 static const uint8_t INCREMENTAL_DISCOVERY_LABEL;
80 static const uint8_t SHUTDOWN_LABAEL;
83 RC_CHECKSUM_ERROR = 1,
85 RC_FRAMING_ERROR2 = 3,
87 RC_BAD_SUB_STARTCODE = 5,
90 RC_PACKET_TOO_SHORT = 8,
91 RC_PACKET_TOO_LONG = 9,
92 RC_PHYSICAL_LENGTH_MISMATCH = 10,
93 RC_PDL_LENGTH_MISMATCH = 11,
94 RC_TRANSACTION_MISMATCH = 12,
95 RC_BAD_RESPONSE_TYPE = 13,
96 RC_GOOD_RESPONSE = 14,
106 RC_NACK_UNKNOWN_PID = 24,
107 RC_NACK_FORMAT_ERROR = 25,
108 RC_NACK_HARDWARE_FAULT = 26,
109 RC_NACK_PROXY_REJECT = 27,
110 RC_NACK_WRITE_PROECT = 28,
111 RC_NACK_COMMAND_CLASS = 29,
112 RC_NACK_DATA_RANGE = 30,
113 RC_NACK_BUFFER_FULL = 31,
114 RC_NACK_PACKET_SIZE = 32,
115 RC_NACK_SUB_DEVICE_RANGE = 33,
116 RC_NACK_PROXY_QUEUE_BUFFER_FULL = 34,
117 RC_DEST_UID_MISMATCH = 40,
118 RC_SRC_UID_MISMATCH = 41,
119 RC_SUBDEVICE_MISMATCH = 42,
120 RC_COMMAND_CLASS_MISMATCH = 43,
121 RC_PARAM_ID_MISMATCH = 44,
122 RC_DATA_RECEIVED_NO_BREAK = 46,
136 unsigned int queue_size = 20);
139 void Stop() { m_impl->
Stop(); }
155 return m_impl->GetDescriptor();
161 DmxterWidgetImpl *m_impl;
An RDM Controller that queues messages and only sends a single message at a time.
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
A RDM unique identifier (UID).
The base class for all 1 argument callbacks.
Definition Callback.h:982
A BidirectionalFileDescriptor that also generates notifications when closed.
Definition Descriptor.h:283
Definition QueueingRDMController.h:88
void RunIncrementalDiscovery(RDMDiscoveryCallback *callback)
Definition QueueingRDMController.cpp:261
void RunFullDiscovery(RDMDiscoveryCallback *callback)
Definition QueueingRDMController.cpp:251
The interface that can send RDM commands, as well as perform discovery operations.
Definition RDMControllerInterface.h:104
void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)
Definition QueueingRDMController.cpp:96
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition RDMCommand.h:234
Represents a RDM UID.
Definition UID.h:57
Represents a set of RDM UIDs.
Definition UIDSet.h:48
The namespace containing all OLA symbols.
Definition Credentials.cpp:44