LLRP::CImpinjLowDutyCycle Class Reference
[Impinj Parameter Classes]

Class Definition CImpinjLowDutyCycle for LLRP parameter ImpinjLowDutyCycle. More...

#include <impinj_ltkcpp.h>

Inheritance diagram for LLRP::CImpinjLowDutyCycle:

LLRP::CParameter LLRP::CElement

List of all members.

Public Member Functions

EImpinjLowDutyCycleMode getLowDutyCycleMode (void)
 Get accessor functions for the LLRP LowDutyCycleMode field.
void setLowDutyCycleMode (EImpinjLowDutyCycleMode value)
 Set accessor functions for the LLRP LowDutyCycleMode field.
llrp_u16_t getEmptyFieldTimeout (void)
 Get accessor functions for the LLRP EmptyFieldTimeout field.
void setEmptyFieldTimeout (llrp_u16_t value)
 Set accessor functions for the LLRP EmptyFieldTimeout field.
llrp_u16_t getFieldPingInterval (void)
 Get accessor functions for the LLRP FieldPingInterval field.
void setFieldPingInterval (llrp_u16_t value)
 Set accessor functions for the LLRP FieldPingInterval field.
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.

Static Public Attributes

Internal Framework Functions


static const CFieldDescriptor s_fdLowDutyCycleMode
Internal Framework Functions


static const CFieldDescriptor s_fdEmptyFieldTimeout
Internal Framework Functions


static const CFieldDescriptor s_fdFieldPingInterval

Protected Attributes

EImpinjLowDutyCycleMode m_eLowDutyCycleMode
llrp_u16_t m_EmptyFieldTimeout
llrp_u16_t m_FieldPingInterval
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.
void assimilateSubParameters (CErrorDetails *pError)
 Assimilates the decoded sub-parameters into m_listAllSubParameters.
void encode (CEncoderStream *pEncoderStream) const
 Encode fields and subparameters.
llrp_bool_t isAllowedIn (const CTypeDescriptor *pEnclosingElementType) const
 Validate whether the element is allowed as a base type in the enclosing element.
static CElements_construct (void)
static void s_decodeFields (CDecoderStream *pDecoderStream, CElement *pElement)


Detailed Description

Class Definition CImpinjLowDutyCycle for LLRP parameter ImpinjLowDutyCycle.

This custom parameter provides additional control of the RF duty cycle of the Reader beyond that provided by the TagTransitTime field in the LLRP C1G2SingulationControl parameter. During inventory, if the Reader detects zero tags on all enabled antennas in the AISpec, EmptyFieldTimeout specifies in milliseconds the time the Reader will wait before entering low duty cycle mode. In this low duty cycle mode, the Reader will revisit each enabled antenna in the AISpec every FieldPingInterval milliseconds, checking for tags. When a tag is detected, full duty cycle will resume. The Reader will exit low duty cycle mode at the start of each AISpec and restart its EmptyFieldTimeout timer.

As an example, assume EmptyFieldTimeout is set to 500 ms and FieldPingInterval is set to 200 ms for each of the enabled antennas in an AISpec, and four antennas are enabled. Once the Reader detects zero tags on each of the four antennas, the EmptyFieldTimeout timer starts while the Reader continues to search the FOV for tags. If the Reader detects tags, the timer stops. If the Reader detects zero tags for 500 ms, a timeout occurs and the Reader enters low duty cycle mode. During this mode, the Reader will visit each of the four enabled antennas once in the FieldPingInterval of 200 ms. Therefore, the Reader will switch on the transmitter briefly every 50 ms to check for tags in the FOV of one of the enabled antennas.

Copyright 2007, 2008 Impinj Inc.


Definition at line 3641 of file impinj_ltkcpp.h.


Member Function Documentation

void LLRP::CImpinjLowDutyCycle::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] pError Error details for encoded stream

Implements LLRP::CElement.

void LLRP::CImpinjLowDutyCycle::decodeFields ( CDecoderStream pDecoderStream  )  [virtual]

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

Parameters:
[in] pDecoderStream The stream from which to decode fields
Returns:
void

Implements LLRP::CElement.

void LLRP::CImpinjLowDutyCycle::encode ( CEncoderStream pEncoderStream  )  const [virtual]

Encode fields and subparameters.

Parameters:
[in] pEncoderStream Stream to encode
Returns:
void

Implements LLRP::CElement.

llrp_bool_t LLRP::CImpinjLowDutyCycle::isAllowedIn ( const CTypeDescriptor pEnclosingTypeDescriptor  )  const [virtual]

Validate whether the element is allowed as a base type in the enclosing element.

Parameters:
[in] pEnclosingTypeDescriptor A pointer to the enclosing type
Returns:
TRUE if the element is allowed to be encoded within the EnclosingElement

FALSE if the element is not allowed to be encoded within the EnclosingElement

Reimplemented from LLRP::CParameter.


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

Generated on Wed Jun 6 11:55:50 2012 for LTKCPP-- LLRP Toolkit C Plus Plus Library by  doxygen 1.5.9