RDMnet  0.3.0
Implementation of ANSI E1.33 (RDMnet)
View other versions:
rdmnet::llrp::SavedRdmResponse Class Reference

Overview

An RDM response received over LLRP and saved for later processing.

This type is not used by the library API, but can come in handy if an application wants to queue or copy RDM responses before acting on them. This type does heap allocation to hold the response parameter data.

#include <rdmnet/cpp/message_types/llrp_rdm_response.h>

Public Member Functions

 SavedRdmResponse ()=default
 Constructs an empty, invalid RDM response by default.
 
 SavedRdmResponse (const LlrpSavedRdmResponse &c_resp)
 Construct a SavedRdmResponse copied from an instance of the C LlrpSavedRdmResponse type.
 
SavedRdmResponseoperator= (const LlrpSavedRdmResponse &c_resp)
 Assign an instance of the C LlrpSavedRdmResponse type to an instance of this class.
 
 SavedRdmResponse (const RdmResponse &resp)
 Construct a SavedRdmResponse from an RdmResponse.
 
SavedRdmResponseoperator= (const RdmResponse &resp)
 Assign an RdmResponse to an instance of this class.
 
const etcpal::Uuidsource_cid () const noexcept
 Get the CID of the LLRP target that sent this response.
 
uint32_t seq_num () const noexcept
 Get the LLRP sequence number of this response, for matching with a corresponding command.
 
rdm::Uid source_uid () const noexcept
 Get the UID of the LLRP target that sent this response.
 
rdm::Uid dest_uid () const noexcept
 Get the UID of the LLRP manager to which this response is addressed.
 
rdm_response_type_t response_type () const noexcept
 Get the RDM response type of this response.
 
uint16_t subdevice () const noexcept
 Get the RDM subdevice from which this response originated (0 means the root device).
 
rdm_command_class_t command_class () const noexcept
 Get the RDM response class of this response.
 
uint16_t param_id () const noexcept
 Get the RDM parameter ID (PID) of this response.
 
const rdm::ResponseHeader & rdm_header () const noexcept
 Get the RDM protocol header contained within this response.
 
const uint8_t * data () const noexcept
 Get a pointer to the RDM parameter data buffer contained within this response.
 
uint8_t data_len () const noexcept
 Get the length of the RDM parameter data contained within this response.
 
const rdm::Response & rdm () const noexcept
 Get the RDM data in this response as an RDM response type.
 
bool IsValid () const noexcept
 Whether the values contained in this response are valid for an RDM response. More...
 
bool HasData () const noexcept
 Whether this RDM response includes any RDM parameter data.
 
bool IsAck () const noexcept
 Whether this response has an RDM response type of ACK. More...
 
bool IsNack () const noexcept
 Whether this response has an RDM response type of NACK_REASON. More...
 
bool IsGetResponse () const noexcept
 Whether this response is an RDM GET response.
 
bool IsSetResponse () const noexcept
 Whether this response is an RDM SET response.
 
etcpal::Expected< rdm::NackReason > GetNackReason () const noexcept
 Get the NACK reason code of this RDM response. More...
 

Member Function Documentation

◆ GetNackReason()

etcpal::Expected< rdm::NackReason > rdmnet::llrp::SavedRdmResponse::GetNackReason ( ) const
inlinenoexcept

Get the NACK reason code of this RDM response.

Returns
If IsNack(), the valid NackReason instance.
If !IsNack(), kEtcPalErrInvalid.

◆ IsAck()

bool rdmnet::llrp::SavedRdmResponse::IsAck ( ) const
inlinenoexcept

Whether this response has an RDM response type of ACK.

If this is false, it implies that IsNack() is true (ACK_TIMER and ACK_OVERFLOW are not allowed in LLRP).

◆ IsNack()

bool rdmnet::llrp::SavedRdmResponse::IsNack ( ) const
inlinenoexcept

Whether this response has an RDM response type of NACK_REASON.

If this is false, it implies that IsAck() is true (ACK_TIMER and ACK_OVERFLOW are not allowed in LLRP).

◆ IsValid()

bool rdmnet::llrp::SavedRdmResponse::IsValid ( ) const
inlinenoexcept

Whether the values contained in this response are valid for an RDM response.

In particular, a default-constructed SavedRdmResponse is not valid.


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