Open Lighting Architecture  Latest Git
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
ola::rdm::RDMResponse Class Reference

Detailed Description

An RDM Command that represents responses (GET, SET or DISCOVER).

Inheritance diagram for ola::rdm::RDMResponse:
Inheritance graph
Collaboration diagram for ola::rdm::RDMResponse:
Collaboration graph

Public Member Functions

 RDMResponse (const UID &source, const UID &destination, uint8_t transaction_number, uint8_t response_type, uint8_t message_count, uint16_t sub_device, RDMCommand::RDMCommandClass command_class, uint16_t param_id, const uint8_t *data, unsigned int length)
 Create a new RDM Response. More...
virtual void Print (CommandPrinter *printer, bool summarize, bool unpack_param_data) const
 Output the contents of the command to a CommandPrinter. More...
RDMResponseDuplicate () const
 Make a copy of the response. More...
uint8_t ResponseType () const
 The Response Type. More...
RDMCommandClass CommandClass () const
 The CommmandClass of this message.
void SetDestinationUID (const UID &destination_uid)
 Set the destination UID. More...
void SetTransactionNumber (uint8_t transaction_number)
 Set the transaction number. More...
- Public Member Functions inherited from ola::rdm::RDMCommand
virtual uint16_t Checksum (uint16_t checksum) const
 Modify the calculated checksum for this command. More...
bool operator== (const RDMCommand &other) const
 Test for equality. More...
virtual uint8_t SubStartCode () const
 The Sub-Start code for the RDMCommand.
virtual uint8_t MessageLength () const
 The Message length field.
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 PortIdResponseType () const
 Returns the Port ID of the RDMCommand.
uint8_t MessageCount () const
 Returns the Message Count of the RDMCommand.
uint16_t SubDevice () const
 Returns the SubDevice of the RDMCommand.
uint16_t ParamId () const
 Returns the Parameter ID of the RDMCommand.
unsigned int ParamDataSize () const
 Returns the Size of the Parameter Data of the RDMCommand.
const uint8_t * ParamData () const
 Returns the Parameter Data of the RDMCommand.
std::string ToString () const
 Create a human readable string from the RDMCommand object. More...

Static Public Member Functions

static RDMResponseInflateFromData (const uint8_t *data, size_t length, RDMStatusCode *status_code, const RDMRequest *request=NULL)
static RDMResponseInflateFromData (const ola::io::ByteString &input, RDMStatusCode *status_code, const RDMRequest *request=NULL)
static RDMResponseCombineResponses (const RDMResponse *response1, const RDMResponse *response2)
 Combine two RDMResponses. More...
- Static Public Member Functions inherited from ola::rdm::RDMCommand
static RDMCommandInflate (const uint8_t *data, unsigned int length)
 Extract a RDMCommand from raw data. More...

Static Public Attributes

static const unsigned int MAX_OVERFLOW_SIZE = 4 << 10
 The maximum size of an ACK_OVERFLOW session that we'll buffer. More...
- Static Public Attributes inherited from ola::rdm::RDMCommand
static const uint8_t START_CODE = ola::rdm::START_CODE
 The RDM Start Code. More...

Additional Inherited Members

- Public Types inherited from ola::rdm::RDMCommand
enum  RDMCommandClass {
 A set of values representing CommandClasses in E1.20. More...
- Protected Member Functions inherited from ola::rdm::RDMCommand
 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)
 Protected constructor for derived classes.
void SetParamData (const uint8_t *data, unsigned int length)
- Static Protected Member Functions inherited from ola::rdm::RDMCommand
static RDMStatusCode VerifyData (const uint8_t *data, size_t length, RDMCommandHeader *command_message)
static RDMCommandClass ConvertCommandClass (uint8_t command_type)
- Protected Attributes inherited from ola::rdm::RDMCommand
uint8_t m_port_id
UID m_source
UID m_destination
uint8_t m_transaction_number

Constructor & Destructor Documentation

ola::rdm::RDMResponse::RDMResponse ( const UID source,
const UID destination,
uint8_t  transaction_number,
uint8_t  response_type,
uint8_t  message_count,
uint16_t  sub_device,
RDMCommand::RDMCommandClass  command_class,
uint16_t  param_id,
const uint8_t *  data,
unsigned int  length 

Create a new RDM Response.

sourceThe source UID.
destinationThe destination UID.
transaction_numberThe transaction number.
response_typeThe Response Type.
message_countSet to 0.
sub_deviceThe Sub Device index.
command_classThe Command Class of this request.
param_idThe PID value.
dataThe parameter data, or NULL if there isn't any.
lengthThe length of the parameter data.

Member Function Documentation

RDMResponse* ola::rdm::RDMResponse::Duplicate ( ) const

Make a copy of the response.

A new RDMResponse that is identical to this one.
static RDMResponse* ola::rdm::RDMResponse::InflateFromData ( const ola::io::ByteString input,
RDMStatusCode status_code,
const RDMRequest request = NULL 

Create a RDMResponse request from raw data in a ByteString.

inputthe raw response data.
[out]status_codea pointer to a RDMStatusCode to set
requestan optional RDMRequest object that this response is for
a new RDMResponse object, or NULL is this response is invalid
virtual void ola::rdm::RDMResponse::Print ( CommandPrinter printer,
bool  summarize,
bool  unpack_param_data 
) const

Output the contents of the command to a CommandPrinter.

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 from ola::rdm::RDMCommand.

Reimplemented in ola::rdm::RDMDiscoveryResponse.

uint8_t ola::rdm::RDMResponse::ResponseType ( ) const

The Response Type.

The Response Type (ACK, NACK, etc.)
void ola::rdm::RDMResponse::SetDestinationUID ( const UID destination_uid)

Set the destination UID.

destination_uidThe new destination UID.
void ola::rdm::RDMResponse::SetTransactionNumber ( uint8_t  transaction_number)

Set the transaction number.

transaction_numberthe new transaction number.

Member Data Documentation

const unsigned int ola::rdm::RDMResponse::MAX_OVERFLOW_SIZE = 4 << 10

The maximum size of an ACK_OVERFLOW session that we'll buffer.

4k should be big enough for everyone ;)

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