Open Lighting Architecture
Latest Git
|
The internal implementation of an Enttec port
Public Types | |
typedef ola::Callback3< bool, uint8_t, const uint8_t *, unsigned int > | SendCallback |
Public Types inherited from ola::rdm::DiscoveryTargetInterface | |
typedef ola::BaseCallback1< void, bool > | MuteDeviceCallback |
The callback run when a mute command completes. More... | |
typedef ola::BaseCallback0< void > | UnMuteDeviceCallback |
The callback run when an unmute command completes. | |
typedef ola::BaseCallback2< void, const uint8_t *, unsigned int > | BranchCallback |
The callback run when a DUB command completes. More... | |
Public Member Functions | |
EnttecPortImpl (const OperationLabels &ops, const ola::rdm::UID &uid, SendCallback *send_cb, bool no_rdm_dub_timeout=false) | |
void | Stop () |
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) |
void | SendRDMRequest (ola::rdm::RDMRequest *request, ola::rdm::RDMCallback *on_complete) |
void | RunFullDiscovery (ola::rdm::RDMDiscoveryCallback *callback) |
void | RunIncrementalDiscovery (ola::rdm::RDMDiscoveryCallback *callback) |
void | MuteDevice (const ola::rdm::UID &target, MuteDeviceCallback *mute_complete) |
void | UnMuteAll (UnMuteDeviceCallback *unmute_complete) |
void | Branch (const ola::rdm::UID &lower, const ola::rdm::UID &upper, BranchCallback *callback) |
void | HandleRDMTimeout (unsigned int length) |
void | HandleParameters (const uint8_t *data, unsigned int length) |
void | HandleIncomingDataMessage (const uint8_t *data, unsigned int length) |
void | HandleDMXDiff (const uint8_t *data, unsigned int length) |
void | ClockWatchdog () |
void | WatchdogFired () |
|
virtual |
Send a Discovery Unique Branch
Implements ola::rdm::DiscoveryTargetInterface.
void ola::plugin::usbpro::EnttecPortImpl::GetParameters | ( | usb_pro_params_callback * | callback | ) |
Send a request for the widget's parameters. TODO(simon): add timers to these
void ola::plugin::usbpro::EnttecPortImpl::HandleIncomingDataMessage | ( | const uint8_t * | data, |
unsigned int | length | ||
) |
Handle an incoming frame.
data | the incoming data buffer |
length | the length of the data buffer. |
The first byte is a status code: 0: good, non-0: bad The second byte is the start code The remaining bytes are the actual data.
void ola::plugin::usbpro::EnttecPortImpl::HandleRDMTimeout | ( | unsigned int | length | ) |
Called to indicate the completion of an RDM request. According to the spec: The timeout message will follow the RDM discovery reply message, whether or not the reply is partial or complete. This doesn't seem to be the case in reality for DUBs with newer firmware (>=4.15) The timeout message will follow the RDM reply message (GET or SET), only when the reply is incomplete or unrecognizable.
Experiments suggest that sending another RDM message before this 'timeout' is received results in Bad Things Happening.
The length of this message should be 0.
|
virtual |
Mute a responder
target | the UID to mute |
mute_complete | the callback to run once the mute request completes. |
Implements ola::rdm::DiscoveryTargetInterface.
|
virtual |
Start full discovery for this widget.
Implements ola::rdm::DiscoverableRDMControllerInterface.
|
virtual |
Start incremental discovery for this widget
Implements ola::rdm::DiscoverableRDMControllerInterface.
bool ola::plugin::usbpro::EnttecPortImpl::SendDMX | ( | const DmxBuffer & | buffer | ) |
Send a DMX message
|
virtual |
Send an RDM Request.
Implements ola::rdm::RDMControllerInterface.
void ola::plugin::usbpro::EnttecPortImpl::SetDMXCallback | ( | ola::Callback0< void > * | callback | ) |
Set the callback to run when new DMX data arrives
bool ola::plugin::usbpro::EnttecPortImpl::SetParameters | ( | uint8_t | break_time, |
uint8_t | mab_time, | ||
uint8_t | rate | ||
) |
Set the widget's parameters. Due to the lack of confirmation, this returns immediately.
|
virtual |
Unmute all responders
unmute_complete | the callback to run once the unmute request completes. |
Implements ola::rdm::DiscoveryTargetInterface.