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...
 
RDMResponse * Duplicate () 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 UID & SourceUID () const
 Returns the Source UID of the RDMCommand.
 
const UID & DestinationUID () 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 RDMResponse * InflateFromData (const uint8_t *data, size_t length, RDMStatusCode *status_code, const RDMRequest *request=NULL)
 
static RDMResponse * InflateFromData (const ola::io::ByteString &input, RDMStatusCode *status_code, const RDMRequest *request=NULL)
 
static RDMResponse * CombineResponses (const RDMResponse *response1, const RDMResponse *response2)
 Combine two RDMResponses. More...
 
- Static Public Member Functions inherited from ola::rdm::RDMCommand
static RDMCommand * Inflate (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: