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

Detailed Description

A sub device in the simulated dimmer.

Inheritance diagram for ola::rdm::DimmerSubDevice:
ola::rdm::RDMControllerInterface

Classes

class  Personalities
class  RDMOps

Public Member Functions

 DimmerSubDevice (const UID &uid, uint16_t sub_device_number, uint16_t total_sub_devices)
void SendRDMRequest (const RDMRequest *request, RDMCallback *callback)
uint16_t Footprint () const
bool SetDmxStartAddress (uint16_t start_address)
uint16_t GetDmxStartAddress () const

Constructor & Destructor Documentation

ola::rdm::DimmerSubDevice::DimmerSubDevice ( const UID uid,
uint16_t  sub_device_number,
uint16_t  total_sub_devices 
)

We need the total sub device count here because the sub device field in DEVICE_INFO must be the same for both the root and all sub devices (10.5).

Member Function Documentation

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

Assumption: A class that implements this MUST ensure that as time tends to infinity, the probably that the callback is run tends to 1. That is, 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 should re-write the transaction #, and possibly the UID (changing src UIDs isn't addressed by the RDM spec).

Implements ola::rdm::RDMControllerInterface.


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