Open Lighting Architecture  Latest Git
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
[legend]
Collaboration diagram for ola::rdm::RDMResponse:
Collaboration graph
[legend]

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...
 
Accessors
uint8_t ResponseType () const
 The Response Type. More...
 
RDMCommandClass CommandClass () const
 The CommmandClass of this message.
 
Mutators
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 {
  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...
 
- 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

◆ RDMResponse()

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 
)
inline

Create a new RDM Response.

Parameters
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

◆ Duplicate()

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

Make a copy of the response.

Returns
A new RDMResponse that is identical to this one.

◆ InflateFromData()

static RDMResponse* ola::rdm::RDMResponse::InflateFromData ( const ola::io::ByteString input,
RDMStatusCode status_code,
const RDMRequest request = NULL 
)
inlinestatic

Create a RDMResponse request from raw data in a ByteString.

Parameters
inputthe raw response data.
[out]status_codea pointer to a RDMStatusCode to set
requestan optional RDMRequest object that this response is for
Returns
a new RDMResponse object, or NULL is this response is invalid

◆ Print()

virtual void ola::rdm::RDMResponse::Print ( CommandPrinter printer,
bool  summarize,
bool  unpack_param_data 
) const
inlinevirtual

Output the contents of the 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 from ola::rdm::RDMCommand.

Reimplemented in ola::rdm::RDMDiscoveryResponse.

◆ ResponseType()

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

The Response Type.

Returns
The Response Type (ACK, NACK, etc.)

◆ SetDestinationUID()

void ola::rdm::RDMResponse::SetDestinationUID ( const UID destination_uid)
inline

Set the destination UID.

Parameters
destination_uidThe new destination UID.

◆ SetTransactionNumber()

void ola::rdm::RDMResponse::SetTransactionNumber ( uint8_t  transaction_number)
inline

Set the transaction number.

Parameters
transaction_numberthe new transaction number.

Member Data Documentation

◆ MAX_OVERFLOW_SIZE

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

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: