Open Lighting Architecture  0.9.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
ola::rdm::RDMCommand Class Reference

Detailed Description

The base class that all RDM commands inherit from.

Note
RDMCommands are immutable.
RDMCommands may hold more than 231 bytes of data. Use the RDMCommandSerializer class if you want the wire format.
Inheritance diagram for ola::rdm::RDMCommand:
ola::rdm::RDMRequest ola::rdm::RDMResponse ola::rdm::RDMDiscoveryRequest ola::rdm::RDMGetSetRequest ola::rdm::RDMDiscoveryResponse ola::rdm::RDMGetSetResponse ola::rdm::BaseRDMRequest< command_class > ola::rdm::BaseRDMResponse< command_class >

Public Types

enum  RDMCommandClass {
  DISCOVER_COMMAND = 0x10, DISCOVER_COMMAND_RESPONSE = 0x11, GET_COMMAND = 0x20, GET_COMMAND_RESPONSE = 0x21,
  SET_COMMAND = 0x30, SET_COMMAND_RESPONSE = 0x31, INVALID_COMMAND = 0xff
}
 A set of values representing CommandClasses in E1.20. More...

Public Member Functions

bool operator== (const RDMCommand &other) const
 Equality Operator.
rdm_message_type CommandType () const
 Used as a quick way to determine if the command is a request or a response.
virtual RDMCommandClass CommandClass () const =0
 a virtual method to return the current CommmandClass.
virtual void Print (CommandPrinter *printer, bool summarize, bool unpack_param_data) const
 Used to print the data in an RDM Command to a CommandPrinter.
void Write (ola::io::OutputStream *stream) const
 Write this RDMCommand to an OutputStream.
Accessors
const UIDSourceUID () const
 Returns the Source UID of the RDMCommand.
const UIDDestinationUID () const
 Returns the Destination UID of the RDMCommand.
uint8_t TransactionNumber () const
 Returns the Transaction Number of the RDMCommand.
uint8_t MessageCount () const
 Returns the Message Count of the RDMCommand.
uint16_t SubDevice () const
 Returns the SubDevice of the RDMCommand.
uint8_t PortIdResponseType () const
 Returns the Port ID of the RDMCommand.
uint16_t ParamId () const
 Returns the Parameter ID of the RDMCommand.
uint8_t * ParamData () const
 Returns the Parameter Data of the RDMCommand.
unsigned int ParamDataSize () const
 Returns the Size of the Parameter Data of the RDMCommand.

Static Public Member Functions

static RDMCommandInflate (const uint8_t *data, unsigned int length)

Static Public Attributes

static const uint8_t START_CODE = 0xcc

Protected Member Functions

 RDMCommand (const UID &source, const UID &destination, uint8_t transaction_number, uint8_t port_id, uint8_t message_count, uint16_t sub_device, uint16_t param_id, const uint8_t *data, unsigned int length)
void SetParamData (const uint8_t *data, unsigned int length)

Static Protected Member Functions

static rdm_response_code VerifyData (const uint8_t *data, unsigned int length, RDMCommandHeader *command_message)
static RDMCommandClass ConvertCommandClass (uint8_t command_type)

Protected Attributes

uint8_t m_port_id

String Methods

std::string ToString () const
 Create a string from the RDMCommand object.
std::ostream & operator<< (std::ostream &out, const RDMCommand &command)
 Output an RDMCommand object to an ostream.

Member Enumeration Documentation

A set of values representing CommandClasses in E1.20.

Note
Please see section 6.2.10 of ANSI E1.20 for more information.
Enumerator:
DISCOVER_COMMAND 

Discovery Command

DISCOVER_COMMAND_RESPONSE 

Discovery Response

GET_COMMAND 

Get Command

GET_COMMAND_RESPONSE 

Get Response

SET_COMMAND 

Set Command

SET_COMMAND_RESPONSE 

Set Response

INVALID_COMMAND 

Invalid Command, specific to OLA

Member Function Documentation

rdm_message_type ola::rdm::RDMCommand::CommandType ( ) const
inline

Used as a quick way to determine if the command is a request or a response.

Note
This doesn't correspond to a field in the RDM message, but it's a useful shortcut to determine the direction of the message.
Returns
RDM_REQUEST or RDM_RESPONSE.
virtual void ola::rdm::RDMCommand::Print ( CommandPrinter printer,
bool  summarize,
bool  unpack_param_data 
) const
inlinevirtual

Used to print the data in an RDM Command to a CommandPrinter.

Parameters
printerCommandPrinter which will use the information
summarizeenable a one line summary
unpack_param_dataif the summary isn't enabled, this controls if we unpack and display parameter data

Reimplemented in ola::rdm::RDMDiscoveryResponse, ola::rdm::RDMDiscoveryRequest, ola::rdm::RDMResponse, and ola::rdm::RDMRequest.


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