63 #define snprintf _snprintf 70 unsigned int m_PowerLevelIndex;
71 unsigned int m_messageID;
82 : m_Verbose(0), m_pConnectionToReader(NULL)
89 char * pReaderHostName);
92 checkConnectionStatus (
void);
95 enableImpinjExtensions (
void);
98 resetConfigurationToFactoryDefaults (
void);
101 getReaderCapabilities(
void);
104 setImpinjReaderConfig(
void);
122 enableAccessSpec(
void);
125 awaitAndPrintReport (
int timeoutSec);
132 printOneTagReportData (
142 formatOneReadResult (
148 handleReaderEventNotification (
156 handleReaderExceptionEvent (
214 CMyApplication myApp;
215 char * pReaderHostName;
224 pReaderHostName = av[1];
250 pReaderHostName = av[2];
261 rc = myApp.run(pReaderHostName);
263 printf(
"INFO: Done\n");
296 printf(
"Usage: %s [-v[v]] READERHOSTNAME\n", pProgName);
298 printf(
"Each -v increases verbosity level\n");
301 printf(
"Usage: %s [/v[v]] READERHOSTNAME\n", pProgName);
303 printf(
"Each /v increases verbosity level\n");
354 CMyApplication::run (
355 char * pReaderHostName)
365 pTypeRegistry = getTheTypeRegistry();
366 if(NULL == pTypeRegistry)
368 printf(
"ERROR: getTheTypeRegistry failed\n");
388 printf(
"ERROR: new CConnection failed\n");
397 printf(
"INFO: Connecting to %s....\n", pReaderHostName);
412 m_pConnectionToReader = pConn;
416 printf(
"INFO: Connected, checking status....\n");
425 if(0 == checkConnectionStatus())
428 if(0 == enableImpinjExtensions())
431 if(0 == resetConfigurationToFactoryDefaults())
434 if(0 == getReaderCapabilities())
437 if(0 == setImpinjReaderConfig())
443 if(0 == addAccessSpec())
446 if(0 == enableAccessSpec())
449 if(0 == enableROSpec())
452 if(0 == startROSpec())
455 if(0 == awaitAndPrintReport(60))
458 if(0 == stopROSpec())
479 printf(
"INFO: Clean up reader configuration...\n");
481 resetConfigurationToFactoryDefaults();
487 printf(
"INFO: Finished\n");
499 delete pTypeRegistry;
540 CMyApplication::checkConnectionStatus (
void)
551 pMessage = recvMessage(10000);
567 if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor != pMessage->
m_pType)
596 if(ConnectionAttemptStatusType_Success != pEvent->
getStatus())
608 printf(
"INFO: Connection status OK\n");
620 printf(
"ERROR: checkConnectionStatus failed\n");
643 CMyApplication::enableImpinjExtensions (
void)
653 pCmd->setMessageID(m_messageID++);
657 pRspMsg = transact(pCmd);
682 "enableImpinjExtensions"))
699 printf(
"INFO: Impinj Extensions are enabled\n");
729 CMyApplication::resetConfigurationToFactoryDefaults (
void)
739 pCmd->setMessageID(m_messageID++);
745 pRspMsg = transact(pCmd);
770 "resetConfigurationToFactoryDefaults"))
787 printf(
"INFO: Configuration reset to factory defaults\n");
811 CMyApplication::getReaderCapabilities(
void)
823 pCmd->setMessageID(m_messageID++);
829 pRspMsg = transact(pCmd);
854 "getReaderCapabilities"))
889 printf(
"INFO: Found LLRP Capabilities \n");
976 CMyApplication::setImpinjReaderConfig(
void)
986 pCmd->setMessageID(m_messageID++);
1051 pRspMsg = transact(pCmd);
1076 "setImpinjReaderConfig"))
1093 printf(
"INFO: Set Impinj Reader Configuration \n");
1180 CMyApplication::addROSpec (
void)
1185 ROSpecStartTriggerType_Null);
1197 AISpecStopTriggerType_Null);
1203 pInventoryParameterSpec->
setProtocolID(AirProtocols_EPCGlobalClass1Gen2);
1219 pActionGID->
setAction(C1G2StateUnawareAction_Select_Unselect);
1225 pFilterGID->
setT(C1G2TruncateAction_Do_Not_Truncate);
1234 pMaskGRAI->
setMB(1);
1241 pActionGRAI->
setAction(C1G2StateUnawareAction_Select_DoNothing);
1247 pFilterGRAI->
setT(C1G2TruncateAction_Do_Not_Truncate);
1294 pCmd->setMessageID(m_messageID++);
1300 pRspMsg = transact(pCmd);
1325 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addROSpec"))
1342 printf(
"INFO: ROSpec added\n");
1370 CMyApplication::enableROSpec (
void)
1380 pCmd->setMessageID(m_messageID++);
1386 pRspMsg = transact(pCmd);
1410 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableROSpec"))
1427 printf(
"INFO: ROSpec enabled\n");
1455 CMyApplication::startROSpec (
void)
1465 pCmd->setMessageID(m_messageID++);
1471 pRspMsg = transact(pCmd);
1495 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"startROSpec"))
1512 printf(
"INFO: ROSpec started\n");
1539 CMyApplication::stopROSpec (
void)
1549 pCmd->setMessageID(m_messageID++);
1555 pRspMsg = transact(pCmd);
1579 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"stopROSpec"))
1596 printf(
"INFO: ROSpec stopped\n");
1661 CMyApplication::addAccessSpec (
void)
1668 pCmd->setMessageID(m_messageID++);
1673 ptargetTag->
setMB(1);
1710 AccessReportTriggerType_Whenever_ROReport_Is_Generated);
1715 AccessSpecStopTriggerType_Null);
1723 pAccessSpec->
setProtocolID(AirProtocols_EPCGlobalClass1Gen2);
1735 pRspMsg = transact(pCmd);
1759 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addAccessSpec"))
1776 printf(
"INFO: AccessSpec added\n");
1800 CMyApplication::enableAccessSpec (
void)
1810 pCmd->setMessageID(m_messageID++);
1816 pRspMsg = transact(pCmd);
1840 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableAccessSpec"))
1857 printf(
"INFO: AccessSpec enabled\n");
1887 CMyApplication::awaitAndPrintReport (
int timeout)
1891 time_t startTime = time(NULL);
1893 time_t pollTime = time(NULL);
1908 pMessage = recvMessage(1000);
1911 tempTime = time(NULL);
1912 if(difftime(tempTime, startTime) > timeout)
1917 if(difftime(tempTime, pollTime) > 10)
1921 sendMessage(preport);
1923 pollTime = tempTime;
1926 if(NULL == pMessage)
1941 if(&CRO_ACCESS_REPORT::s_typeDescriptor == pType)
1947 printTagReportData(pNtf);
1954 else if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor == pType)
1962 if(NULL != pNtfData)
1964 handleReaderEventNotification(pNtfData);
1972 printf(
"WARNING: READER_EVENT_NOTIFICATION without data\n");
1981 printf(
"WARNING: Ignored unexpected message during monitor: %s\n",
2010 CMyApplication::printTagReportData (
2013 std::list<CTagReportData *>::iterator Cur;
2015 unsigned int nEntry = 0;
2030 printf(
"INFO: %u tag report entries\n", nEntry);
2041 printOneTagReportData(*Cur);
2055 CMyApplication::formatOneEPC (
2061 int bufsize = buflen;
2064 if(NULL != pEPCParameter)
2069 llrp_u8_t * pValue = NULL;
2072 pType = pEPCParameter->
m_pType;
2073 if(&CEPC_96::s_typeDescriptor == pType)
2077 pEPC_96 = (
CEPC_96 *) pEPCParameter;
2078 my_u96 = pEPC_96->
getEPC();
2082 else if(&CEPCData::s_typeDescriptor == pType)
2086 pEPCData = (
CEPCData *) pEPCParameter;
2087 my_u1v = pEPCData->
getEPC();
2089 n = (my_u1v.
m_nBit + 7u) / 8u;
2094 for(i = 0; i < n; i++)
2096 if(0 < i && i%2 == 0 && 1 < bufsize)
2103 written = snprintf(p, bufsize,
"%02X", pValue[i]);
2111 written = snprintf(p, bufsize,
"%s",
"---unknown-epc-data-type---");
2118 written = snprintf(p, bufsize,
"%s",
"--null epc---");
2124 buf[buflen-1] =
'\0';
2137 CMyApplication::formatOneReadResult (
2142 EC1G2ReadResultType result;
2145 int bufsize = buflen;
2152 written = snprintf(p, bufsize,
"ReadResult %d", result);
2156 if(result == C1G2ReadResultType_Success)
2160 written = snprintf(p, bufsize,
": Data ");
2164 for(i = 0; i < readData.
m_nValue - 1 ; i++)
2166 written =snprintf(p, bufsize,
"%04x-", readData.
m_pValue[i]);
2172 written =snprintf(p, bufsize,
"%04x", readData.
m_pValue[i]);
2177 buf[buflen-1] =
'\0';
2189 CMyApplication::printOneTagReportData (
2194 std::list<CParameter *>::iterator OpSpecResults;
2204 formatOneEPC(pEPCParameter, aBuf, 64);
2216 if( (*OpSpecResults)->m_pType == &CC1G2ReadOpSpecResult::s_typeDescriptor)
2218 formatOneReadResult(*OpSpecResults, bBuf, 64);
2225 printf(
"EPC: %s %s\n", aBuf, bBuf);
2243 CMyApplication::handleReaderEventNotification (
2251 if(NULL != pAntennaEvent)
2253 handleAntennaEvent(pAntennaEvent);
2258 if(NULL != pReaderExceptionEvent)
2260 handleReaderExceptionEvent(pReaderExceptionEvent);
2280 printf(
"NOTICE: Unexpected (unhandled) ReaderEvent\n");
2297 CMyApplication::handleAntennaEvent (
2300 EAntennaEventType eEventType;
2301 llrp_u16_t AntennaID;
2309 case AntennaEventType_Antenna_Disconnected:
2310 pStateStr =
"disconnected";
2313 case AntennaEventType_Antenna_Connected:
2314 pStateStr =
"connected";
2318 pStateStr =
"?unknown-event?";
2322 printf(
"NOTICE: Antenna %d is %s\n", AntennaID, pStateStr);
2339 CMyApplication::handleReaderExceptionEvent (
2344 Message = pReaderExceptionEvent->
getMessage();
2348 printf(
"NOTICE: ReaderException '%.*s'\n",
2353 printf(
"NOTICE: ReaderException but no message\n");
2377 CMyApplication::checkLLRPStatus (
2387 if(NULL == pLLRPStatus)
2389 printf(
"ERROR: %s missing LLRP status\n", pWhatStr);
2408 printf(
"ERROR: %s failed, no error description given\n",
2413 printf(
"ERROR: %s failed, %.*s\n",
2450 CMyApplication::transact (
2462 printf(
"\n===================================\n");
2463 printf(
"INFO: Transact sending\n");
2464 printXMLMessage(pSendMsg);
2472 pRspMsg = pConn->
transact(pSendMsg, 5000);
2478 printf(
"ERROR: %s transact failed, %s\n",
2484 printf(
"ERROR: ... reference type %s\n",
2490 printf(
"ERROR: ... reference field %s\n",
2503 printf(
"\n- - - - - - - - - - - - - - - - - -\n");
2504 printf(
"INFO: Transact received response\n");
2505 printXMLMessage(pRspMsg);
2513 if(&CERROR_MESSAGE::s_typeDescriptor == pRspMsg->
m_pType)
2519 printf(
"ERROR: Received ERROR_MESSAGE instead of %s\n",
2554 CMyApplication::recvMessage (
2569 if(NULL == pMessage)
2576 printf(
"ERROR: recvMessage failed, %s\n",
2582 printf(
"ERROR: ... reference type %s\n",
2588 printf(
"ERROR: ... reference field %s\n",
2601 printf(
"\n===================================\n");
2602 printf(
"INFO: Message received\n");
2603 printXMLMessage(pMessage);
2628 CMyApplication::sendMessage (
2639 printf(
"\n===================================\n");
2640 printf(
"INFO: Sending\n");
2641 printXMLMessage(pSendMsg);
2653 printf(
"ERROR: %s sendMessage failed, %s\n",
2659 printf(
"ERROR: ... reference type %s\n",
2665 printf(
"ERROR: ... reference field %s\n",
2693 CMyApplication::printXMLMessage (
2696 char aBuf[100*1024];
void setEnableFirstSeenTimestamp(llrp_u1_t value)
Set accessor functions for the LLRP EnableFirstSeenTimestamp field.
llrp_utf8v_t getMessage(void)
Get accessor functions for the LLRP Message field.
void setAccessSpecID(llrp_u32_t value)
Set accessor functions for the LLRP AccessSpecID field.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CConnectionAttemptEvent for LLRP parameter ConnectionAttemptEvent.
void setEnableCRC(llrp_u1_t value)
Set accessor functions for the LLRP EnableCRC field.
Class Definition CADD_ACCESSSPEC_RESPONSE for LLRP message ADD_ACCESSSPEC_RESPONSE.
void setAccessSpecID(llrp_u32_t value)
Set accessor functions for the LLRP AccessSpecID field.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
EResultCode addCustom(CParameter *pValue)
Add a Custom to the LLRP sub-parameter list.
char * m_pName
String name of field (e.g. "ROSpecID")
const CTypeDescriptor * m_pType
The type descriptor desribing this element.
void setWordPointer(llrp_u16_t value)
Set accessor functions for the LLRP WordPointer field.
Class Definition CEPC_96 for LLRP parameter EPC_96.
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)
Class Definition CIMPINJ_ENABLE_EXTENSIONS_RESPONSE for LLRP message IMPINJ_ENABLE_EXTENSIONS_RESPONS...
void setDurationTrigger(llrp_u32_t value)
Set accessor functions for the LLRP DurationTrigger field.
void setEnablePeakRSSI(llrp_u1_t value)
Set accessor functions for the LLRP EnablePeakRSSI field.
Class Definition CSTART_ROSPEC_RESPONSE for LLRP message START_ROSPEC_RESPONSE.
Class Definition CAccessCommand for LLRP parameter AccessCommand.
const CFieldDescriptor * m_pRefField
If non-NULL this is the field descriptors for the errored field.
void setMatch(llrp_u1_t value)
Set accessor functions for the LLRP Match field.
void setDurationTriggerValue(llrp_u32_t value)
Set accessor functions for the LLRP DurationTriggerValue field.
Class Definition CENABLE_ROSPEC for LLRP message ENABLE_ROSPEC.
void setEnableLastSeenTimestamp(llrp_u1_t value)
Set accessor functions for the LLRP EnableLastSeenTimestamp field.
const CTypeDescriptor * m_pRefType
If non-NULL this is the type descriptors for the errored type.
Class Definition CC1G2TagInventoryMask for LLRP parameter C1G2TagInventoryMask.
std::list< CParameter * >::iterator endAccessCommandOpSpecResult(void)
Returns the last element of the AccessCommandOpSpecResult sub-parameter list.
void setTagData(llrp_u1v_t value)
Set accessor functions for the LLRP TagData field.
void setROReportTrigger(EROReportTriggerType value)
Set accessor functions for the LLRP ROReportTrigger field.
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
EResultCode addAirProtocolEPCMemorySelector(CParameter *pValue)
Add a AirProtocolEPCMemorySelector to the LLRP sub-parameter list.
void setFieldPingInterval(llrp_u16_t value)
Set accessor functions for the LLRP FieldPingInterval field.
CParameter * getEPCParameter(void)
Get accessor functions for the LLRP EPCParameter sub-parameter.
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.
Class Definition CAntennaEvent for LLRP parameter AntennaEvent.
Class Definition CENABLE_ACCESSSPEC for LLRP message ENABLE_ACCESSSPEC.
Class Definition CSTOP_ROSPEC_RESPONSE for LLRP message STOP_ROSPEC_RESPONSE.
void setAISpecStopTriggerType(EAISpecStopTriggerType value)
Set accessor functions for the LLRP AISpecStopTriggerType field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
void setAction(EC1G2StateUnawareAction value)
Set accessor functions for the LLRP Action field.
void setPointer(llrp_u16_t value)
Set accessor functions for the LLRP Pointer field.
void enrollImpinjTypesIntoRegistry(CTypeRegistry *pTypeRegistry)
Enrolls the types for Impinj into the LTKCPP registry.
void usage(char *pProgName)
Print usage message and exit.
llrp_u96_t getEPC(void)
Get accessor functions for the LLRP EPC field.
void setAccessReportTrigger(EAccessReportTriggerType value)
Set accessor functions for the LLRP AccessReportTrigger field.
const char * m_pWhatStr
Descriptive printable error string.
void setWordCount(llrp_u16_t value)
Set accessor functions for the LLRP WordCount field.
EResultCode toXMLString(char *pBuffer, int nBuffer)
A wrapper around LLRP::toXMLString()
Class Definition CGeneralDeviceCapabilities for LLRP parameter GeneralDeviceCapabilities.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CImpinjLowDutyCycle for LLRP parameter ImpinjLowDutyCycle.
void setCurrentState(EAccessSpecState value)
Set accessor functions for the LLRP CurrentState field.
Class Definition CROReportSpec for LLRP parameter ROReportSpec.
EStatusCode getStatusCode(void)
Get accessor functions for the LLRP StatusCode field.
void setRequestedData(EGetReaderCapabilitiesRequestedData value)
Set accessor functions for the LLRP RequestedData field.
Class Definition CC1G2TagInventoryStateUnawareFilterAction for LLRP parameter C1G2TagInventoryStateUn...
llrp_u16_t m_nValue
The number of arrray elements.
void setPointer(llrp_u16_t value)
Set accessor functions for the LLRP Pointer field.
Class Definition CAccessSpecStopTrigger for LLRP parameter AccessSpecStopTrigger. ...
int closeConnectionToReader(void)
Close connection to reader, allow reuse of instance.
CGeneralDeviceCapabilities * getGeneralDeviceCapabilities(void)
Get accessor functions for the LLRP GeneralDeviceCapabilities sub-parameter.
Class Definition CROSpecStartTrigger for LLRP parameter ROSpecStartTrigger.
EAntennaEventType getEventType(void)
Get accessor functions for the LLRP EventType field.
void setOperationCountValue(llrp_u16_t value)
Set accessor functions for the LLRP OperationCountValue field.
A collection of pointers to CTypeDescriptors.
CAntennaEvent * getAntennaEvent(void)
Get accessor functions for the LLRP AntennaEvent sub-parameter.
llrp_u32_t getDeviceManufacturerName(void)
Get accessor functions for the LLRP DeviceManufacturerName field.
const CErrorDetails * getTransactError(void)
Get the details that explains transact() error.
EResultCode setROBoundarySpec(CROBoundarySpec *pValue)
Set accessor functions for the LLRP ROBoundarySpec sub-parameter.
void setLowDutyCycleMode(EImpinjLowDutyCycleMode value)
Set accessor functions for the LLRP LowDutyCycleMode field.
Class Definition CRO_ACCESS_REPORT for LLRP message RO_ACCESS_REPORT.
Class Definition CC1G2ReadOpSpecResult for LLRP parameter C1G2ReadOpSpecResult.
void setEnableAccessSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableAccessSpecID field.
Class Definition CAISpec for LLRP parameter AISpec.
Class Definition CROSpec for LLRP parameter ROSpec.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CInventoryParameterSpec for LLRP parameter InventoryParameterSpec.
EResultCode setC1G2TagInventoryStateUnawareFilterAction(CC1G2TagInventoryStateUnawareFilterAction *pValue)
Set accessor functions for the LLRP C1G2TagInventoryStateUnawareFilterAction sub-parameter.
Class Definition CSET_READER_CONFIG_RESPONSE for LLRP message SET_READER_CONFIG_RESPONSE.
void setEnableTagSeenCount(llrp_u1_t value)
Set accessor functions for the LLRP EnableTagSeenCount field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
EResultCode setAccessSpec(CAccessSpec *pValue)
Set accessor functions for the LLRP AccessSpec sub-parameter.
CReaderExceptionEvent * getReaderExceptionEvent(void)
Get accessor functions for the LLRP ReaderExceptionEvent sub-parameter.
Class Definition CReaderExceptionEvent for LLRP parameter ReaderExceptionEvent.
Class Definition CLLRPStatus for LLRP parameter LLRPStatus.
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 CEPCData for LLRP parameter EPCData.
Class Definition CREADER_EVENT_NOTIFICATION for LLRP message READER_EVENT_NOTIFICATION.
Class Definition CAccessSpec for LLRP parameter AccessSpec.
CMessage * recvMessage(int nMaxMS)
Receive a message from a connection.
llrp_u16_t m_nValue
The number of arrray elements.
std::list< CTagReportData * >::iterator beginTagReportData(void)
Returns the first element of the TagReportData sub-parameter list.
void setTagInventoryStateAware(llrp_u1_t value)
Set accessor functions for the LLRP TagInventoryStateAware field.
EResultCode setAISpecStopTrigger(CAISpecStopTrigger *pValue)
Set accessor functions for the LLRP AISpecStopTrigger sub-parameter.
EResultCode setTagReportContentSelector(CTagReportContentSelector *pValue)
Set accessor functions for the LLRP TagReportContentSelector sub-parameter.
File that includes all Impinj Custom extension classes and types.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CADD_ACCESSSPEC for LLRP message ADD_ACCESSSPEC.
void setEnableChannelIndex(llrp_u1_t value)
Set accessor functions for the LLRP EnableChannelIndex field.
void setROSpecStartTriggerType(EROSpecStartTriggerType value)
Set accessor functions for the LLRP ROSpecStartTriggerType field.
llrp_u1v_t getEPC(void)
Get accessor functions for the LLRP EPC field.
Class Definition CSET_READER_CONFIG for LLRP message SET_READER_CONFIG.
CMessage * transact(CMessage *pSendMessage, int nMaxMS)
Transact a LLRP request and response to a connection.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CAccessReportSpec for LLRP parameter AccessReportSpec.
void setEnablePCBits(llrp_u1_t value)
Set accessor functions for the LLRP EnablePCBits field.
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.
void setTagMask(llrp_u1v_t value)
Set accessor functions for the LLRP TagMask field.
Class for LLRP basic type u1v (vector of unsigned 1-bit values)
void setAntennaIDs(llrp_u16v_t value)
Set accessor functions for the LLRP AntennaIDs field.
EResultCode addAntennaConfiguration(CAntennaConfiguration *pValue)
Add a AntennaConfiguration to the LLRP sub-parameter list.
int openConnectionToReader(const char *pReaderHostName)
Open a connection to the reader over an unencrypted socket.
void setT(EC1G2TruncateAction value)
Set accessor functions for the LLRP T field.
Class Definition CENABLE_ROSPEC_RESPONSE for LLRP message ENABLE_ROSPEC_RESPONSE. ...
Class Definition CGET_READER_CAPABILITIES for LLRP message GET_READER_CAPABILITIES.
Class Definition CC1G2Read for LLRP parameter C1G2Read.
const CTypeDescriptor * m_pResponseType
For messages (bIsMessage==TRUE), this is the type descriptor for the corresponding response...
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
EResultCode sendMessage(CMessage *pMessage)
Send a LLRP message to a connection.
std::list< CTagReportData * >::iterator endTagReportData(void)
Returns the last element of the TagReportData sub-parameter list.
Class to return error details in LTKCPP operations.
void setN(llrp_u16_t value)
Set accessor functions for the LLRP N field.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
Class Definition CTagReportData for LLRP parameter TagReportData.
char * m_pName
String name of parameter/message type (e.g. "ROSpec")
EResultCode setROSpec(CROSpec *pValue)
Set accessor functions for the LLRP ROSpec sub-parameter.
EResultCode setAccessSpecStopTrigger(CAccessSpecStopTrigger *pValue)
Set accessor functions for the LLRP AccessSpecStopTrigger sub-parameter.
void setAccessSpecStopTrigger(EAccessSpecStopTriggerType value)
Set accessor functions for the LLRP AccessSpecStopTrigger field.
llrp_u16_t getAntennaID(void)
Get accessor functions for the LLRP AntennaID field.
File that includes all LLRP classes and types.
Class Definition CC1G2InventoryCommand for LLRP parameter C1G2InventoryCommand.
Class Definition CADD_ROSPEC for LLRP message ADD_ROSPEC.
void setAntennaID(llrp_u16_t value)
Set accessor functions for the LLRP AntennaID field.
Class Definition CSTART_ROSPEC for LLRP message START_ROSPEC.
void setROSpecStopTriggerType(EROSpecStopTriggerType value)
Set accessor functions for the LLRP ROSpecStopTriggerType field.
Class Definition CIMPINJ_ENABLE_EXTENSIONS for LLRP message IMPINJ_ENABLE_EXTENSIONS.
EResultCode setROSpecStopTrigger(CROSpecStopTrigger *pValue)
Set accessor functions for the LLRP ROSpecStopTrigger sub-parameter.
int main(int ac, char *av[])
Command main routine.
Class Definition CAntennaConfiguration for LLRP parameter AntennaConfiguration.
Class Definition CROSpecStopTrigger for LLRP parameter ROSpecStopTrigger.
EResultCode addC1G2Filter(CC1G2Filter *pValue)
Add a C1G2Filter to the LLRP sub-parameter list.
void setInventoryParameterSpecID(llrp_u16_t value)
Set accessor functions for the LLRP InventoryParameterSpecID field.
llrp_u16_t * m_pValue
Pointer to the first array element.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
llrp_u8_t m_aValue[12]
Simple array of basic type llrp_u8_t.
Class Definition CC1G2TargetTag for LLRP parameter C1G2TargetTag.
Base Class for All LLRP LTK Parameters.
Base Class for All LLRP LTK Messages.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
EResultCode setROReportSpec(CROReportSpec *pValue)
Set accessor functions for the LLRP ROReportSpec sub-parameter.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CADD_ROSPEC_RESPONSE for LLRP message ADD_ROSPEC_RESPONSE.
EResultCode addAirProtocolInventoryCommandSettings(CParameter *pValue)
Add a AirProtocolInventoryCommandSettings to the LLRP sub-parameter list.
Class Definition CAISpecStopTrigger for LLRP parameter AISpecStopTrigger.
const char * getConnectError(void)
Get the string that explains openReaderConnection() error.
void setEnableInventoryParameterSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableInventoryParameterSpecID field.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
void setEnableAntennaID(llrp_u1_t value)
Set accessor functions for the LLRP EnableAntennaID field.
CReaderEventNotificationData * getReaderEventNotificationData(void)
Get accessor functions for the LLRP ReaderEventNotificationData sub-parameter.
void setResetToFactoryDefault(llrp_u1_t value)
Set accessor functions for the LLRP ResetToFactoryDefault field.
EResultCode addAccessCommandOpSpec(CParameter *pValue)
Add a AccessCommandOpSpec to the LLRP sub-parameter list.
void setTagMask(llrp_u1v_t value)
Set accessor functions for the LLRP TagMask field.
void setAntennaID(llrp_u16_t value)
Set accessor functions for the LLRP AntennaID field.
EResultCode setROSpecStartTrigger(CROSpecStartTrigger *pValue)
Set accessor functions for the LLRP ROSpecStartTrigger sub-parameter.
EResultCode addAntennaConfiguration(CAntennaConfiguration *pValue)
Add a AntennaConfiguration to the LLRP sub-parameter list.
llrp_u16v_t getReadData(void)
Get accessor functions for the LLRP ReadData field.
Class Definition CC1G2EPCMemorySelector for LLRP parameter C1G2EPCMemorySelector. ...
void setEnableSpecIndex(llrp_u1_t value)
Set accessor functions for the LLRP EnableSpecIndex field.
EResultCode setC1G2TagInventoryMask(CC1G2TagInventoryMask *pValue)
Set accessor functions for the LLRP C1G2TagInventoryMask sub-parameter.
EResultCode setAirProtocolTagSpec(CParameter *pValue)
Set accessor functions for the LLRP AirProtocolTagSpec sub-parameter.
Class Definition CGET_READER_CAPABILITIES_RESPONSE for LLRP message GET_READER_CAPABILITIES_RESPONSE...
EResultCode setAccessCommand(CAccessCommand *pValue)
Set accessor functions for the LLRP AccessCommand sub-parameter.
llrp_utf8v_t getErrorDescription(void)
Get accessor functions for the LLRP ErrorDescription field.
Class Definition CTagReportContentSelector for LLRP parameter TagReportContentSelector.
Class Definition CENABLE_ACCESSSPEC_RESPONSE for LLRP message ENABLE_ACCESSSPEC_RESPONSE.
EC1G2ReadResultType getResult(void)
Get accessor functions for the LLRP Result field.
Class Definition CSTOP_ROSPEC for LLRP message STOP_ROSPEC.
EResultCode setAccessReportSpec(CAccessReportSpec *pValue)
Set accessor functions for the LLRP AccessReportSpec sub-parameter.
std::list< CParameter * >::iterator beginAccessCommandOpSpecResult(void)
Returns the first element of the AccessCommandOpSpecResult sub-parameter list.
void setCurrentState(EROSpecState value)
Set accessor functions for the LLRP CurrentState field.
Class Definition CC1G2Filter for LLRP parameter C1G2Filter.
void setEnableROSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableROSpecID field.
llrp_utf8_t * m_pValue
Pointer to the first array element.
Class Definition CGET_REPORT for LLRP message GET_REPORT.
EResultCode addInventoryParameterSpec(CInventoryParameterSpec *pValue)
Add a InventoryParameterSpec to the LLRP sub-parameter list.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
void setPriority(llrp_u8_t value)
Set accessor functions for the LLRP Priority field.
Class Definition CROBoundarySpec for LLRP parameter ROBoundarySpec.
void setEmptyFieldTimeout(llrp_u16_t value)
Set accessor functions for the LLRP EmptyFieldTimeout field.
CConnectionAttemptEvent * getConnectionAttemptEvent(void)
Get accessor functions for the LLRP ConnectionAttemptEvent sub-parameter.
Describes a message or parameter type.
const CErrorDetails * getSendError(void)
Get the details that explains sendMessage() error.
EConnectionAttemptStatusType getStatus(void)
Get accessor functions for the LLRP Status field.
Class Definition CReaderEventNotificationData for LLRP parameter ReaderEventNotificationData.