LTKCPP-- LLRP Toolkit C Plus Plus Library
Public Member Functions | Protected Attributes | List of all members
LLRP::CTagReportData Class Reference

Class Definition CTagReportData for LLRP parameter TagReportData. More...

#include <ltkcpp.h>

Inheritance diagram for LLRP::CTagReportData:
LLRP::CParameter LLRP::CElement

Public Member Functions

CParametergetEPCParameter (void)
 Get accessor functions for the LLRP EPCParameter sub-parameter.
 
EResultCode setEPCParameter (CParameter *pValue)
 Set accessor functions for the LLRP EPCParameter sub-parameter.
 
CROSpecIDgetROSpecID (void)
 Get accessor functions for the LLRP ROSpecID sub-parameter.
 
EResultCode setROSpecID (CROSpecID *pValue)
 Set accessor functions for the LLRP ROSpecID sub-parameter.
 
CSpecIndexgetSpecIndex (void)
 Get accessor functions for the LLRP SpecIndex sub-parameter.
 
EResultCode setSpecIndex (CSpecIndex *pValue)
 Set accessor functions for the LLRP SpecIndex sub-parameter.
 
CInventoryParameterSpecIDgetInventoryParameterSpecID (void)
 Get accessor functions for the LLRP InventoryParameterSpecID sub-parameter.
 
EResultCode setInventoryParameterSpecID (CInventoryParameterSpecID *pValue)
 Set accessor functions for the LLRP InventoryParameterSpecID sub-parameter.
 
CAntennaIDgetAntennaID (void)
 Get accessor functions for the LLRP AntennaID sub-parameter.
 
EResultCode setAntennaID (CAntennaID *pValue)
 Set accessor functions for the LLRP AntennaID sub-parameter.
 
CPeakRSSIgetPeakRSSI (void)
 Get accessor functions for the LLRP PeakRSSI sub-parameter.
 
EResultCode setPeakRSSI (CPeakRSSI *pValue)
 Set accessor functions for the LLRP PeakRSSI sub-parameter.
 
CChannelIndexgetChannelIndex (void)
 Get accessor functions for the LLRP ChannelIndex sub-parameter.
 
EResultCode setChannelIndex (CChannelIndex *pValue)
 Set accessor functions for the LLRP ChannelIndex sub-parameter.
 
CFirstSeenTimestampUTCgetFirstSeenTimestampUTC (void)
 Get accessor functions for the LLRP FirstSeenTimestampUTC sub-parameter.
 
EResultCode setFirstSeenTimestampUTC (CFirstSeenTimestampUTC *pValue)
 Set accessor functions for the LLRP FirstSeenTimestampUTC sub-parameter.
 
CFirstSeenTimestampUptimegetFirstSeenTimestampUptime (void)
 Get accessor functions for the LLRP FirstSeenTimestampUptime sub-parameter.
 
EResultCode setFirstSeenTimestampUptime (CFirstSeenTimestampUptime *pValue)
 Set accessor functions for the LLRP FirstSeenTimestampUptime sub-parameter.
 
CLastSeenTimestampUTCgetLastSeenTimestampUTC (void)
 Get accessor functions for the LLRP LastSeenTimestampUTC sub-parameter.
 
EResultCode setLastSeenTimestampUTC (CLastSeenTimestampUTC *pValue)
 Set accessor functions for the LLRP LastSeenTimestampUTC sub-parameter.
 
CLastSeenTimestampUptimegetLastSeenTimestampUptime (void)
 Get accessor functions for the LLRP LastSeenTimestampUptime sub-parameter.
 
EResultCode setLastSeenTimestampUptime (CLastSeenTimestampUptime *pValue)
 Set accessor functions for the LLRP LastSeenTimestampUptime sub-parameter.
 
CTagSeenCountgetTagSeenCount (void)
 Get accessor functions for the LLRP TagSeenCount sub-parameter.
 
EResultCode setTagSeenCount (CTagSeenCount *pValue)
 Set accessor functions for the LLRP TagSeenCount sub-parameter.
 
std::list< CParameter * >::iterator beginAirProtocolTagData (void)
 Returns the first element of the AirProtocolTagData sub-parameter list.
 
std::list< CParameter * >::iterator endAirProtocolTagData (void)
 Returns the last element of the AirProtocolTagData sub-parameter list.
 
void clearAirProtocolTagData (void)
 Clears the LLRP AirProtocolTagData sub-parameter list.
 
int countAirProtocolTagData (void)
 Count of the LLRP AirProtocolTagData sub-parameter list.
 
EResultCode addAirProtocolTagData (CParameter *pValue)
 Add a AirProtocolTagData to the LLRP sub-parameter list.
 
CAccessSpecIDgetAccessSpecID (void)
 Get accessor functions for the LLRP AccessSpecID sub-parameter.
 
EResultCode setAccessSpecID (CAccessSpecID *pValue)
 Set accessor functions for the LLRP AccessSpecID sub-parameter.
 
std::list< CParameter * >::iterator beginAccessCommandOpSpecResult (void)
 Returns the first element of the AccessCommandOpSpecResult sub-parameter list.
 
std::list< CParameter * >::iterator endAccessCommandOpSpecResult (void)
 Returns the last element of the AccessCommandOpSpecResult sub-parameter list.
 
void clearAccessCommandOpSpecResult (void)
 Clears the LLRP AccessCommandOpSpecResult sub-parameter list.
 
int countAccessCommandOpSpecResult (void)
 Count of the LLRP AccessCommandOpSpecResult sub-parameter list.
 
EResultCode addAccessCommandOpSpecResult (CParameter *pValue)
 Add a AccessCommandOpSpecResult to the LLRP sub-parameter list.
 
std::list< CParameter * >::iterator beginCustom (void)
 Returns the first element of the Custom sub-parameter list.
 
std::list< CParameter * >::iterator endCustom (void)
 Returns the last element of the Custom sub-parameter list.
 
void clearCustom (void)
 Clears the LLRP Custom sub-parameter list.
 
int countCustom (void)
 Count of the LLRP Custom sub-parameter list.
 
EResultCode addCustom (CParameter *pValue)
 Add a Custom to the LLRP sub-parameter list.
 
- Public Member Functions inherited from LLRP::CParameter
virtual llrp_bool_t isAllowedIn (const CTypeDescriptor *pEnclosingTypeDescriptor) const
 Validate whether the element is allowed as a base type in the enclosing element. More...
 
llrp_bool_t isAllowedExtension (const CTypeDescriptor *pEnclosingTypeDescriptor)
 Validate whether the element is allowed as an extension in the enclosing element. More...
 
- Public Member Functions inherited from LLRP::CElement
void addSubParameterToAllList (CParameter *pParameter)
 Add a subparameter to m_listAllSubParameters. Called by the accessor functions setXXX and addXXX. More...
 
void removeSubParameterFromAllList (CParameter *pParameter)
 Delete a subparameter from m_listAllSubParameters. Called by the accessor functions setXXX (to remove prior reference) clearXXX(). More...
 
void clearSubParameterList (tListOfParameters *pParameterList)
 Clear a list of subparameters. For each entry apply removeSubParameter(). More...
 
int walk (int(*pFunc)(const CElement *pElement, void *pArg), void *pArg, int iDepth, int nMaxDepth) const
 Recursive tree walk. The callback is invoked for each element.
 
EResultCode toXMLString (char *pBuffer, int nBuffer)
 A wrapper around LLRP::toXMLString() More...
 

Protected Attributes

CParameterm_pEPCParameter
 
CROSpecIDm_pROSpecID
 
CSpecIndexm_pSpecIndex
 
CInventoryParameterSpecIDm_pInventoryParameterSpecID
 
CAntennaIDm_pAntennaID
 
CPeakRSSIm_pPeakRSSI
 
CChannelIndexm_pChannelIndex
 
CFirstSeenTimestampUTCm_pFirstSeenTimestampUTC
 
CFirstSeenTimestampUptimem_pFirstSeenTimestampUptime
 
CLastSeenTimestampUTCm_pLastSeenTimestampUTC
 
CLastSeenTimestampUptimem_pLastSeenTimestampUptime
 
CTagSeenCountm_pTagSeenCount
 
std::list< CParameter * > m_listAirProtocolTagData
 
CAccessSpecIDm_pAccessSpecID
 
std::list< CParameter * > m_listAccessCommandOpSpecResult
 
std::list< CParameter * > m_listCustom
 

Internal Framework Functions

static const CFieldDescriptor
*const 
s_apFieldDescriptorTable []
 
static const CTypeDescriptor s_typeDescriptor
 
void decodeFields (CDecoderStream *pDecoderStream)
 Virtual function provided by each specific element type to decode fields (simple values). Leaves pDecoderStream at first subparameter. More...
 
void assimilateSubParameters (CErrorDetails *pError)
 Assimilates the decoded sub-parameters into m_listAllSubParameters. More...
 
void encode (CEncoderStream *pEncoderStream) const
 Encode fields and subparameters. More...
 
static CElements_construct (void)
 
static void s_decodeFields (CDecoderStream *pDecoderStream, CElement *pElement)
 

Additional Inherited Members

- Public Attributes inherited from LLRP::CElement
const CTypeDescriptorm_pType
 The type descriptor desribing this element.
 
CElementm_pParent
 Element that encloses this one, NULL if this is top-level element.
 
tListOfParameters m_listAllSubParameters
 List of all sub elements.
 

Detailed Description

Class Definition CTagReportData for LLRP parameter TagReportData.

Document Reference LLRP Specification Section 13.2.3

Document Reference LLRP Specification Section 16.2.7.3

<p>This report parameter is generated per tag per accumulation scope. The only mandatory portion of this parameter is the EPCData parameter. If there was an access operation performed on the tag, the results of the OpSpecs are mandatory in the report. The other sub-parameters in this report are optional. LLRP provides three ways to make the tag reporting efficient:</p> 



<li>
<p>Allow parameters to be enabled or disabled via TagReportContentSelector (section 13.2.1.1) in TagReportSpec. </p> 
<li>
<p>If an optional parameter is enabled, and is absent in the report, the Client 

SHALL assume that the value is identical to the last parameter of the same type received. For example, this allows the Readers to not send a parameter in the report whose value has not changed since the last time it was sent by the Reader.

<li>
<p>Allow accumulation of tag reports. See next section for details of accumulation.</p> 
<p>A Reader 

MAY accumulate multiple tag reports into a single tag report.. If a Reader accumulates, the Reader SHALL follow the accumulation rules specified in this section. The following specifies the rules for accumulating multiple tag observations into a single TagReportData:

<ul>

<li>
<p>EPCData:</p> 
<ul>
<li>
<p>The Reader 

SHALL not accumulate tag reports that do not have the same EPCData value.

<li>
<p>OpSpecResultList:</p> 
<ul>
<li>
<p>The Reader 

SHALL not accumulate tag reports that do not have the same value for the OpSpec results in the OpSpecResultList.

<li>
<p>SpecID, SpecIndex, InventoryParameterSpecID, AntennaID, AirProtocolTagData, AccessSpecID:</p> 
<ul>
<li>
<p>These fields are optional, and their reporting can be enabled by the Client. If the Client has enabled one or more fields listed above, the Reader 

SHALL not accumulate tag reports that do not have the same value for all the enabled fields.

<li>
<p>FirstSeenTimestamp, LastSeenTimestamp, PeakRSSI, TagSeenCount, ChannelIndex</p> 
<ul>
<li>
<p>These fields are optional, and their reporting can be enabled by the Client. If the field is enabled, the Reader sets the value of these fields as follows:</p> 
<ul>

<li>
<p>FirstSeenTimestamp: The Reader 

SHALL set it to the time of the first observation amongst the tag reports that get accumulated in the TagReportData.

<li>
<p>LastSeenTimestamp: The Reader 

SHALL set it to the time of the last observation amongst the tag reports that get accumulated in the TagReportData.

<li>
<p>PeakRSSI: The Reader 

SHALL set it to the maximum RSSI value observed amongst the tag reports that get accumulated in the TagReportData.

<li>
<p>ChannelIndex: The Reader 

MAY set it to the index of the first channel the tag was seen.

<li>
<p>TagSeenCount: The Reader 

SHALL set it to the number of tag reports that get accumulated in the TagReportData.

             </ul> 

            </ul> 

       </ul> 

 <SMALL><i>Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.</i></SMALL> 

Definition at line 14396 of file ltkcpp.h.

Member Function Documentation

void LLRP::CTagReportData::assimilateSubParameters ( CErrorDetails pError)
virtual

Assimilates the decoded sub-parameters into m_listAllSubParameters.

After fields are decoded, the CDecoder itself takes care of gathering the subparameters into m_listAllSubParameters. Once the end of the enclosing TLV (or message) is reached this assimilateSubParameters() function is called to create parameter refrences from the primary member variables.

Parameters
[out]pErrorError details for encoded stream

Implements LLRP::CElement.

void LLRP::CTagReportData::decodeFields ( CDecoderStream pDecoderStream)
virtual

Virtual function provided by each specific element type to decode fields (simple values). Leaves pDecoderStream at first subparameter.

Parameters
[in]pDecoderStreamThe stream from which to decode fields
Returns
void

Implements LLRP::CElement.

void LLRP::CTagReportData::encode ( CEncoderStream pEncoderStream) const
virtual

Encode fields and subparameters.

Parameters
[in]pEncoderStreamStream to encode
Returns
void

Implements LLRP::CElement.


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