Open Lighting Architecture  0.9.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
ola::rdm::DimmerResponder Class Reference

Detailed Description

A RDM responder that simulates a dimmer rack. This has a configurable number of sub-devices.

Inheritance diagram for ola::rdm::DimmerResponder:
Inheritance graph
[legend]
Collaboration diagram for ola::rdm::DimmerResponder:
Collaboration graph
[legend]

Public Member Functions

 DimmerResponder (const UID &uid, uint16_t number_of_subdevices)
virtual ~DimmerResponder ()
void SendRDMRequest (RDMRequest *request, RDMCallback *callback)
 Send a RDM command.

Constructor & Destructor Documentation

ola::rdm::DimmerResponder::DimmerResponder ( const UID uid,
uint16_t  number_of_subdevices 
)

Create a new dummy dimmer responder.

Parameters
uidthe UID of the responder
number_of_subdevicesthe number of sub devices for this responder. Valid range is 0 to 512.
ola::rdm::DimmerResponder::~DimmerResponder ( )
virtual

Cleanup this responder

Member Function Documentation

void ola::rdm::DimmerResponder::SendRDMRequest ( RDMRequest request,
RDMCallback on_complete 
)
virtual

Send a RDM command.

Parameters
requestthe RDMRequest, ownership is transferred.
on_completeThe 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.


The documentation for this class was generated from the following files: