57 #define snprintf _snprintf
62 unsigned int m_messageID;
73 : m_Verbose(0), m_pConnectionToReader(NULL)
80 char * pReaderHostName);
83 checkConnectionStatus (
void);
86 enableImpinjExtensions (
void);
89 resetConfigurationToFactoryDefaults (
void);
104 awaitAndPrintReport (
int timeoutSec);
111 printOneTagReportData (
121 handleReaderEventNotification (
129 handleReaderExceptionEvent (
187 CMyApplication myApp;
188 char * pReaderHostName;
197 pReaderHostName = av[1];
223 pReaderHostName = av[2];
234 rc = myApp.run(pReaderHostName);
236 printf(
"INFO: Done\n");
269 printf(
"Usage: %s [-v[v]] READERHOSTNAME\n", pProgName);
271 printf(
"Each -v increases verbosity level\n");
274 printf(
"Usage: %s [/v[v]] READERHOSTNAME\n", pProgName);
276 printf(
"Each /v increases verbosity level\n");
316 CMyApplication::run (
317 char * pReaderHostName)
327 pTypeRegistry = getTheTypeRegistry();
328 if(NULL == pTypeRegistry)
330 printf(
"ERROR: getTheTypeRegistry failed\n");
350 printf(
"ERROR: new CConnection failed\n");
359 printf(
"INFO: Connecting to %s....\n", pReaderHostName);
374 m_pConnectionToReader = pConn;
378 printf(
"INFO: Connected, checking status....\n");
387 if(0 == checkConnectionStatus())
390 if(0 == enableImpinjExtensions())
393 if(0 == resetConfigurationToFactoryDefaults())
399 if(0 == enableROSpec())
405 if(0 == awaitAndPrintReport(10))
408 if(0 == stopROSpec())
425 printf(
"INFO: Clean up reader configuration...\n");
427 resetConfigurationToFactoryDefaults();
433 printf(
"INFO: Finished\n");
445 delete pTypeRegistry;
486 CMyApplication::checkConnectionStatus (
void)
497 pMessage = recvMessage(10000);
513 if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor != pMessage->
m_pType)
554 printf(
"INFO: Connection status OK\n");
566 printf(
"ERROR: checkConnectionStatus failed\n");
589 CMyApplication::enableImpinjExtensions (
void)
603 pRspMsg = transact(pCmd);
628 "enableImpinjExtensions"))
645 printf(
"INFO: Impinj Extensions are enabled\n");
675 CMyApplication::resetConfigurationToFactoryDefaults (
void)
691 pRspMsg = transact(pCmd);
716 "resetConfigurationToFactoryDefaults"))
733 printf(
"INFO: Configuration reset to factory defaults\n");
791 CMyApplication::addROSpec (
void)
835 pC1G2TagInvMask1->
setMB(2);
859 pC1G2TagInvMask2->
setMB(1);
883 pC1G2TagInvMask3->
setMB(3);
909 pC1G2TagInvMask4->
setMB(2);
932 pC1G2TagInvMask5->
setMB(1);
984 pROReportSpec->
setN(1000);
1028 pRspMsg = transact(pCmd);
1053 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addROSpec"))
1070 printf(
"INFO: ROSpec added\n");
1098 CMyApplication::enableROSpec (
void)
1114 pRspMsg = transact(pCmd);
1138 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableROSpec"))
1155 printf(
"INFO: ROSpec enabled\n");
1183 CMyApplication::startROSpec (
void)
1199 pRspMsg = transact(pCmd);
1223 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"startROSpec"))
1240 printf(
"INFO: ROSpec started\n");
1267 CMyApplication::stopROSpec (
void)
1283 pRspMsg = transact(pCmd);
1307 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"stopROSpec"))
1324 printf(
"INFO: ROSpec stopped\n");
1354 CMyApplication::awaitAndPrintReport (
int timeout)
1358 time_t startTime = time(NULL);
1374 pMessage = recvMessage(1000);
1377 tempTime = time(NULL);
1378 if(difftime(tempTime, startTime) > timeout)
1383 if(NULL == pMessage)
1398 if(&CRO_ACCESS_REPORT::s_typeDescriptor == pType)
1404 printTagReportData(pNtf);
1411 else if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor == pType)
1419 if(NULL != pNtfData)
1421 handleReaderEventNotification(pNtfData);
1429 printf(
"WARNING: READER_EVENT_NOTIFICATION without data\n");
1438 printf(
"WARNING: Ignored unexpected message during monitor: %s\n",
1467 CMyApplication::printTagReportData (
1470 std::list<CTagReportData *>::iterator Cur;
1472 unsigned int nEntry = 0;
1487 printf(
"INFO: %u tag report entries\n", nEntry);
1498 printOneTagReportData(*Cur);
1512 CMyApplication::formatOneEPC (
1518 int bufsize = buflen;
1521 if(NULL != pEPCParameter)
1526 llrp_u8_t * pValue = NULL;
1529 pType = pEPCParameter->
m_pType;
1530 if(&CEPC_96::s_typeDescriptor == pType)
1534 pEPC_96 = (
CEPC_96 *) pEPCParameter;
1535 my_u96 = pEPC_96->
getEPC();
1539 else if(&CEPCData::s_typeDescriptor == pType)
1543 pEPCData = (
CEPCData *) pEPCParameter;
1544 my_u1v = pEPCData->
getEPC();
1546 n = (my_u1v.
m_nBit + 7u) / 8u;
1551 for(i = 0; i < n; i++)
1553 if(0 < i && i%2 == 0 && 1 < bufsize)
1560 written = snprintf(p, bufsize,
"%02X", pValue[i]);
1568 written = snprintf(p, bufsize,
"%s",
"---unknown-epc-data-type---");
1575 written = snprintf(p, bufsize,
"%s",
"--null epc---");
1581 buf[buflen-1] =
'\0';
1594 CMyApplication::printOneTagReportData (
1607 formatOneEPC(pEPCParameter, aBuf, 64);
1612 printf(
"EPC: %s\n", aBuf);
1630 CMyApplication::handleReaderEventNotification (
1638 if(NULL != pAntennaEvent)
1640 handleAntennaEvent(pAntennaEvent);
1645 if(NULL != pReaderExceptionEvent)
1647 handleReaderExceptionEvent(pReaderExceptionEvent);
1667 printf(
"NOTICE: Unexpected (unhandled) ReaderEvent\n");
1684 CMyApplication::handleAntennaEvent (
1688 llrp_u16_t AntennaID;
1697 pStateStr =
"disconnected";
1701 pStateStr =
"connected";
1705 pStateStr =
"?unknown-event?";
1709 printf(
"NOTICE: Antenna %d is %s\n", AntennaID, pStateStr);
1726 CMyApplication::handleReaderExceptionEvent (
1731 Message = pReaderExceptionEvent->
getMessage();
1735 printf(
"NOTICE: ReaderException '%.*s'\n",
1740 printf(
"NOTICE: ReaderException but no message\n");
1764 CMyApplication::checkLLRPStatus (
1774 if(NULL == pLLRPStatus)
1776 printf(
"ERROR: %s missing LLRP status\n", pWhatStr);
1795 printf(
"ERROR: %s failed, no error description given\n",
1800 printf(
"ERROR: %s failed, %.*s\n",
1837 CMyApplication::transact (
1849 printf(
"\n===================================\n");
1850 printf(
"INFO: Transact sending\n");
1851 printXMLMessage(pSendMsg);
1859 pRspMsg = pConn->
transact(pSendMsg, 5000);
1865 printf(
"ERROR: %s transact failed, %s\n",
1871 printf(
"ERROR: ... reference type %s\n",
1877 printf(
"ERROR: ... reference field %s\n",
1890 printf(
"\n- - - - - - - - - - - - - - - - - -\n");
1891 printf(
"INFO: Transact received response\n");
1892 printXMLMessage(pRspMsg);
1900 if(&CERROR_MESSAGE::s_typeDescriptor == pRspMsg->
m_pType)
1906 printf(
"ERROR: Received ERROR_MESSAGE instead of %s\n",
1941 CMyApplication::recvMessage (
1956 if(NULL == pMessage)
1963 printf(
"ERROR: recvMessage failed, %s\n",
1969 printf(
"ERROR: ... reference type %s\n",
1975 printf(
"ERROR: ... reference field %s\n",
1988 printf(
"\n===================================\n");
1989 printf(
"INFO: Message received\n");
1990 printXMLMessage(pMessage);
2015 CMyApplication::sendMessage (
2026 printf(
"\n===================================\n");
2027 printf(
"INFO: Sending\n");
2028 printXMLMessage(pSendMsg);
2040 printf(
"ERROR: %s sendMessage failed, %s\n",
2046 printf(
"ERROR: ... reference type %s\n",
2052 printf(
"ERROR: ... reference field %s\n",
2080 CMyApplication::printXMLMessage (
2083 char aBuf[100*1024];
void setChannelIndex(llrp_u16_t value)
Set accessor functions for the LLRP ChannelIndex field.
Class Definition CROBoundarySpec for LLRP parameter ROBoundarySpec.
void enrollImpinjTypesIntoRegistry(CTypeRegistry *pTypeRegistry)
Enrolls the types for Impinj into the LTKCPP registry.
void setDurationTrigger(llrp_u32_t value)
Set accessor functions for the LLRP DurationTrigger field.
void setAction(EC1G2StateAwareAction value)
Set accessor functions for the LLRP Action field.
char * m_pName
String name of field (e.g. "ROSpecID")
void setAntennaIDs(llrp_u16v_t value)
Set accessor functions for the LLRP AntennaIDs field.
const CTypeDescriptor * m_pType
The type descriptor desribing this element.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CAntennaConfiguration for LLRP parameter AntennaConfiguration.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
llrp_u8_t * m_pValue
Pointer to the first array element.
Class for LLRP basic type u16v (List of unsigned 16-bit values)
EResultCode setTagReportContentSelector(CTagReportContentSelector *pValue)
Set accessor functions for the LLRP TagReportContentSelector sub-parameter.
EResultCode addC1G2Filter(CC1G2Filter *pValue)
Add a C1G2Filter to the LLRP sub-parameter list.
std::list< CTagReportData * >::iterator beginTagReportData(void)
Returns the first element of the TagReportData sub-parameter list.
const CFieldDescriptor * m_pRefField
If non-NULL this is the field descriptors for the errored field.
void setEnableFirstSeenTimestamp(llrp_u1_t value)
Set accessor functions for the LLRP EnableFirstSeenTimestamp field.
Class Definition CAISpec for LLRP parameter AISpec.
void setEnablePeakRSSI(llrp_u1_t value)
Set accessor functions for the LLRP EnablePeakRSSI field.
Class Definition CC1G2Filter for LLRP parameter C1G2Filter.
void setPriority(llrp_u8_t value)
Set accessor functions for the LLRP Priority field.
void usage(char *pProgName)
Print usage message and exit.
const CTypeDescriptor * m_pRefType
If non-NULL this is the type descriptors for the errored type.
Class Definition CInventoryParameterSpec for LLRP parameter InventoryParameterSpec.
EResultCode m_eResultCode
Result code from operation.
Class for LLRP basic type u96 (96-bit value)
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
void setEnableAccessSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableAccessSpecID field.
Class Definition CSTOP_ROSPEC for LLRP message STOP_ROSPEC.
llrp_u96_t getEPC(void)
Get accessor functions for the LLRP EPC field.
Class Definition CSTART_ROSPEC for LLRP message START_ROSPEC.
void setCurrentState(EROSpecState value)
Set accessor functions for the LLRP CurrentState field.
EStatusCode getStatusCode(void)
Get accessor functions for the LLRP StatusCode field.
const char * m_pWhatStr
Descriptive printable error string.
EResultCode toXMLString(char *pBuffer, int nBuffer)
A wrapper around LLRP::toXMLString()
CReaderEventNotificationData * getReaderEventNotificationData(void)
Get accessor functions for the LLRP ReaderEventNotificationData sub-parameter.
Class Definition CROSpecStartTrigger for LLRP parameter ROSpecStartTrigger.
void setTransmitPower(llrp_u16_t value)
Set accessor functions for the LLRP TransmitPower field.
Class Definition CEPC_96 for LLRP parameter EPC_96.
void setEnableChannelIndex(llrp_u1_t value)
Set accessor functions for the LLRP EnableChannelIndex field.
Class Definition CENABLE_ROSPEC_RESPONSE for LLRP message ENABLE_ROSPEC_RESPONSE. ...
Class Definition CROReportSpec for LLRP parameter ROReportSpec.
Class Definition CRO_ACCESS_REPORT for LLRP message RO_ACCESS_REPORT.
llrp_u16_t m_nValue
The number of arrray elements.
int closeConnectionToReader(void)
Close connection to reader, allow reuse of instance.
EConnectionAttemptStatusType getStatus(void)
Get accessor functions for the LLRP Status field.
void setEnableROSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableROSpecID field.
A collection of pointers to CTypeDescriptors.
Class Definition CREADER_EVENT_NOTIFICATION for LLRP message READER_EVENT_NOTIFICATION.
llrp_u16_t getAntennaID(void)
Get accessor functions for the LLRP AntennaID field.
const CErrorDetails * getTransactError(void)
Get the details that explains transact() error.
void setAntennaID(llrp_u16_t value)
Set accessor functions for the LLRP AntennaID field.
void setTagMask(llrp_u1v_t value)
Set accessor functions for the LLRP TagMask field.
void setTarget(EC1G2StateAwareTarget value)
Set accessor functions for the LLRP Target field.
Class Definition CConnectionAttemptEvent for LLRP parameter ConnectionAttemptEvent.
Class Definition CSTART_ROSPEC_RESPONSE for LLRP message START_ROSPEC_RESPONSE.
Class Definition CReaderEventNotificationData for LLRP parameter ReaderEventNotificationData.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CADD_ROSPEC for LLRP message ADD_ROSPEC.
void setResetToFactoryDefault(llrp_u1_t value)
Set accessor functions for the LLRP ResetToFactoryDefault field.
CMessage * recvMessage(int nMaxMS)
Receive a message from a connection.
Class Definition CTagReportContentSelector for LLRP parameter TagReportContentSelector.
Class Definition CADD_ROSPEC_RESPONSE for LLRP message ADD_ROSPEC_RESPONSE.
File that includes all Impinj Custom extension classes and types.
void setROReportTrigger(EROReportTriggerType value)
Set accessor functions for the LLRP ROReportTrigger field.
void setDurationTriggerValue(llrp_u32_t value)
Set accessor functions for the LLRP DurationTriggerValue field.
llrp_utf8v_t getErrorDescription(void)
Get accessor functions for the LLRP ErrorDescription field.
EResultCode setROSpec(CROSpec *pValue)
Set accessor functions for the LLRP ROSpec sub-parameter.
CMessage * transact(CMessage *pSendMessage, int nMaxMS)
Transact a LLRP request and response to a connection.
EResultCode addAntennaConfiguration(CAntennaConfiguration *pValue)
Add a AntennaConfiguration to the LLRP sub-parameter list.
Class Definition CAntennaEvent for LLRP parameter AntennaEvent.
const CErrorDetails * getRecvError(void)
Get the details that explains recvMessage() or recvResponse() error.
Class for LLRP basic type utf8v (vector of utf-8 encoded characters)
llrp_u16_t m_nBit
The number of arrray elements.
EResultCode setC1G2SingulationControl(CC1G2SingulationControl *pValue)
Set accessor functions for the LLRP C1G2SingulationControl sub-parameter.
Class for LLRP basic type u1v (vector of unsigned 1-bit values)
Class Definition CENABLE_ROSPEC for LLRP message ENABLE_ROSPEC.
int openConnectionToReader(const char *pReaderHostName)
Open a connection to the reader over an unencrypted socket.
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
void setHopTableID(llrp_u16_t value)
Set accessor functions for the LLRP HopTableID field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
EResultCode addSpecParameter(CParameter *pValue)
Add a SpecParameter to the LLRP sub-parameter list.
Class Definition CLLRPStatus for LLRP parameter LLRPStatus.
void setEnableSpecIndex(llrp_u1_t value)
Set accessor functions for the LLRP EnableSpecIndex field.
const CTypeDescriptor * m_pResponseType
For messages (bIsMessage==TRUE), this is the type descriptor for the corresponding response...
EResultCode addAirProtocolInventoryCommandSettings(CParameter *pValue)
Add a AirProtocolInventoryCommandSettings to the LLRP sub-parameter list.
Class Definition CC1G2SingulationControl for LLRP parameter C1G2SingulationControl.
Class Definition CSTOP_ROSPEC_RESPONSE for LLRP message STOP_ROSPEC_RESPONSE.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
CReaderExceptionEvent * getReaderExceptionEvent(void)
Get accessor functions for the LLRP ReaderExceptionEvent sub-parameter.
void setN(llrp_u16_t value)
Set accessor functions for the LLRP N field.
EResultCode sendMessage(CMessage *pMessage)
Send a LLRP message to a connection.
CParameter * getEPCParameter(void)
Get accessor functions for the LLRP EPCParameter sub-parameter.
Class to return error details in LTKCPP operations.
Class Definition CC1G2TagInventoryMask for LLRP parameter C1G2TagInventoryMask.
Class Definition CROSpec for LLRP parameter ROSpec.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
EResultCode setROBoundarySpec(CROBoundarySpec *pValue)
Set accessor functions for the LLRP ROBoundarySpec sub-parameter.
char * m_pName
String name of parameter/message type (e.g. "ROSpec")
Class Definition CC1G2InventoryCommand for LLRP parameter C1G2InventoryCommand.
File that includes all LLRP classes and types.
Class Definition CEPCData for LLRP parameter EPCData.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CSET_READER_CONFIG for LLRP message SET_READER_CONFIG.
void setEnableAntennaID(llrp_u1_t value)
Set accessor functions for the LLRP EnableAntennaID field.
void setTagInventoryStateAware(llrp_u1_t value)
Set accessor functions for the LLRP TagInventoryStateAware field.
void setSession(llrp_u2_t value)
Set accessor functions for the LLRP Session field.
void setROSpecStopTriggerType(EROSpecStopTriggerType value)
Set accessor functions for the LLRP ROSpecStopTriggerType field.
llrp_u1v_t getEPC(void)
Get accessor functions for the LLRP EPC field.
llrp_u16_t * m_pValue
Pointer to the first array element.
EResultCode setRFTransmitter(CRFTransmitter *pValue)
Set accessor functions for the LLRP RFTransmitter sub-parameter.
EResultCode setROSpecStopTrigger(CROSpecStopTrigger *pValue)
Set accessor functions for the LLRP ROSpecStopTrigger sub-parameter.
llrp_u8_t m_aValue[12]
Simple array of basic type llrp_u8_t.
void setInventoryParameterSpecID(llrp_u16_t value)
Set accessor functions for the LLRP InventoryParameterSpecID field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Base Class for All LLRP LTK Parameters.
Base Class for All LLRP LTK Messages.
EResultCode setC1G2TagInventoryMask(CC1G2TagInventoryMask *pValue)
Set accessor functions for the LLRP C1G2TagInventoryMask sub-parameter.
EResultCode setROSpecStartTrigger(CROSpecStartTrigger *pValue)
Set accessor functions for the LLRP ROSpecStartTrigger sub-parameter.
Class Definition CIMPINJ_ENABLE_EXTENSIONS_RESPONSE for LLRP message IMPINJ_ENABLE_EXTENSIONS_RESPONS...
std::list< CTagReportData * >::iterator endTagReportData(void)
Returns the last element of the TagReportData sub-parameter list.
llrp_utf8v_t getMessage(void)
Get accessor functions for the LLRP Message field.
const char * getConnectError(void)
Get the string that explains openReaderConnection() error.
void setTagTransitTime(llrp_u32_t value)
Set accessor functions for the LLRP TagTransitTime field.
Class Definition CSET_READER_CONFIG_RESPONSE for LLRP message SET_READER_CONFIG_RESPONSE.
Class Definition CIMPINJ_ENABLE_EXTENSIONS for LLRP message IMPINJ_ENABLE_EXTENSIONS.
Class Definition CReaderExceptionEvent for LLRP parameter ReaderExceptionEvent.
CAntennaEvent * getAntennaEvent(void)
Get accessor functions for the LLRP AntennaEvent sub-parameter.
void setEnableLastSeenTimestamp(llrp_u1_t value)
Set accessor functions for the LLRP EnableLastSeenTimestamp field.
void setEnableTagSeenCount(llrp_u1_t value)
Set accessor functions for the LLRP EnableTagSeenCount field.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CTagReportData for LLRP parameter TagReportData.
void setMessageID(llrp_u32_t MessageID)
Sets the LLRP Message ID for the Message.
void setAISpecStopTriggerType(EAISpecStopTriggerType value)
Set accessor functions for the LLRP AISpecStopTriggerType field.
void setS(EC1G2TagInventoryStateAwareS value)
Set accessor functions for the LLRP S field.
Class Definition CAISpecStopTrigger for LLRP parameter AISpecStopTrigger.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CC1G2TagInventoryStateAwareSingulationAction for LLRP parameter C1G2TagInventoryStat...
void setI(EC1G2TagInventoryStateAwareI value)
Set accessor functions for the LLRP I field.
void setPointer(llrp_u16_t value)
Set accessor functions for the LLRP Pointer field.
EResultCode addInventoryParameterSpec(CInventoryParameterSpec *pValue)
Add a InventoryParameterSpec to the LLRP sub-parameter list.
void setTagPopulation(llrp_u16_t value)
Set accessor functions for the LLRP TagPopulation field.
int main(int ac, char *av[])
Command main routine.
Class Definition CRFTransmitter for LLRP parameter RFTransmitter.
EAntennaEventType
Global enumeration EAntennaEventType for LLRP enumerated field AntennaEventType.
EResultCode setROReportSpec(CROReportSpec *pValue)
Set accessor functions for the LLRP ROReportSpec sub-parameter.
void setEnableInventoryParameterSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableInventoryParameterSpecID field.
CConnectionAttemptEvent * getConnectionAttemptEvent(void)
Get accessor functions for the LLRP ConnectionAttemptEvent sub-parameter.
llrp_utf8_t * m_pValue
Pointer to the first array element.
void setT(EC1G2TruncateAction value)
Set accessor functions for the LLRP T field.
Class Definition CC1G2TagInventoryStateAwareFilterAction for LLRP parameter C1G2TagInventoryStateAwar...
EAntennaEventType getEventType(void)
Get accessor functions for the LLRP EventType field.
EResultCode setAISpecStopTrigger(CAISpecStopTrigger *pValue)
Set accessor functions for the LLRP AISpecStopTrigger sub-parameter.
Describes a message or parameter type.
void setROSpecStartTriggerType(EROSpecStartTriggerType value)
Set accessor functions for the LLRP ROSpecStartTriggerType field.
Class Definition CROSpecStopTrigger for LLRP parameter ROSpecStopTrigger.
const CErrorDetails * getSendError(void)
Get the details that explains sendMessage() error.
EResultCode setC1G2TagInventoryStateAwareFilterAction(CC1G2TagInventoryStateAwareFilterAction *pValue)
Set accessor functions for the LLRP C1G2TagInventoryStateAwareFilterAction sub-parameter.
EResultCode setC1G2TagInventoryStateAwareSingulationAction(CC1G2TagInventoryStateAwareSingulationAction *pValue)
Set accessor functions for the LLRP C1G2TagInventoryStateAwareSingulationAction sub-parameter.