Open Lighting Architecture
Latest Git
|
A port represents a universe of DMX. It can be used to either send or receive DMX.
Public Member Functions | |
EnttecPort (EnttecPortImpl *impl, unsigned int queue_size, bool enable_rdm) | |
bool | SendDMX (const DmxBuffer &buffer) |
const DmxBuffer & | FetchDMX () const |
void | SetDMXCallback (ola::Callback0< void > *callback) |
bool | ChangeToReceiveMode (bool change_only) |
void | GetParameters (usb_pro_params_callback *callback) |
bool | SetParameters (uint8_t break_time, uint8_t mab_time, uint8_t rate) |
bool | SupportsRDM () const |
void | SendRDMRequest (ola::rdm::RDMRequest *request, ola::rdm::RDMCallback *on_complete) |
Send a RDM command. More... | |
void | RunFullDiscovery (ola::rdm::RDMDiscoveryCallback *callback) |
Start a full discovery operation. More... | |
void | RunIncrementalDiscovery (ola::rdm::RDMDiscoveryCallback *callback) |
Start an incremental discovery operation. More... | |
Friends | |
class | ::EnttecUsbProWidgetTest |
ola::plugin::usbpro::EnttecPort::EnttecPort | ( | EnttecPortImpl * | impl, |
unsigned int | queue_size, | ||
bool | enable_rdm | ||
) |
EnttecUsbProWidget Constructor
|
virtual |
Start a full discovery operation.
callback | The callback run when discovery completes. This may run immediately in some implementations. |
Implements ola::rdm::DiscoverableRDMControllerInterface.
|
virtual |
Start an incremental discovery operation.
callback | The callback run when discovery completes. This may run immediately in some implementations. |
Implements ola::rdm::DiscoverableRDMControllerInterface.
|
virtual |
Send a RDM command.
request | the RDMRequest, ownership is transferred. |
on_complete | The callback to run when the request completes. |
Implementors much ensure that the callback is always run at some point. In other words, there must be no way that a request can be dropped in such a way that the callback is never run. Doing so will either block all subsequent requests, or leak memory depending on the implementation.
Also the implementor of this class may want to re-write the transaction #, and possibly the UID (changing src UIDs isn't addressed by the RDM spec).
The RDMRequest may be a DISCOVERY_COMMAND, if the implementation does not support DISCOVERY_COMMANDs then the callback should be run with ola::rdm::RDM_PLUGIN_DISCOVERY_NOT_SUPPORTED.
Implements ola::rdm::RDMControllerInterface.