61 #define snprintf _snprintf 68 unsigned int m_PowerLevelIndex;
69 unsigned int m_messageID;
75 unsigned int m_password;
76 unsigned short int m_qtmode;
77 unsigned short int m_tid;
78 EImpinjQTAccessRange m_shortRange;
79 unsigned int m_newPassword;
86 : m_Verbose(0), m_pConnectionToReader(NULL)
89 m_shortRange=ImpinjQTAccessRange_Normal_Range;
98 char * pReaderHostName);
101 checkConnectionStatus (
void);
104 enableImpinjExtensions (
void);
107 resetConfigurationToFactoryDefaults (
void);
110 getReaderCapabilities(
void);
113 setImpinjReaderConfig(
void);
131 enableAccessSpec(
void);
134 awaitAndPrintReport (
int timeoutSec);
141 printOneTagReportData (
152 formatOneWriteResult (
158 formatOneSetQTConfigResult (
165 formatOneGetQTConfigResult (
172 formatOneSerializedTID (
179 formatOneReadResult (
186 handleReaderEventNotification (
194 handleReaderExceptionEvent (
252 CMyApplication myApp;
253 char * pReaderHostName;
268 srand((
unsigned int) time(NULL));
272 for( i = 1; i < ac-1; i++)
274 if((0 == strcmp(av[i],
"-p")) && (i < (ac-1)))
277 myApp.m_password = atoi(av[i]);
279 else if((0 == strcmp(av[i],
"-n")) && (i < (ac-1)))
282 myApp.m_newPassword = atoi(av[i]);
284 else if(0==strcmp(av[i],
"-t"))
288 else if(0==strcmp(av[i],
"-s"))
290 myApp.m_shortRange=ImpinjQTAccessRange_Short_Range ;
292 else if((0 == strcmp(av[i],
"-v")) && (i < (ac-1)))
295 myApp.m_Verbose = atoi(av[i]);
297 else if((0 == strcmp(av[i],
"-q")) && (i < (ac-1)))
300 myApp.m_qtmode = atoi(av[i]);
309 pReaderHostName = av[i];
314 rc = myApp.run(pReaderHostName );
316 printf(
"INFO: Done\n");
348 printf(
"Usage: %s [options] READERHOSTNAME\n", pProgName);
349 printf(
" -p <password> -- specify an optional password for operations\n");
350 printf(
" -n <password> -- specifies a new password for the set password command\n");
351 printf(
" -t -- specify to automatically backscatter the TID\n");
352 printf(
" -s -- if setting QT config, -s will short range the tag\n");
353 printf(
" -q <n> -- run QT scenario n where n is defined as \n");
354 printf(
" 0 -- Read standard TID memory\n");
355 printf(
" 1 -- set tag password (uses -p, -n )\n");
356 printf(
" 2 -- Read private memory data without QT commands\n");
357 printf(
" 3 -- read QT status of tag (uses -p)\n");
358 printf(
" 4 -- set QT status of tag to private (uses -p, -s)\n");
359 printf(
" 5 -- set QT status of tag to public (uses -p, -s)\n");
360 printf(
" 6 -- Peek at private memory data with temporary QT command (uses -p)\n");
361 printf(
" 7 -- Write 32 words of user data to random values\n");
362 printf(
" 8 -- Write 6 words of public EPC data to random values\n");
363 printf(
" 9 -- Read Reserved memory\n");
415 CMyApplication::run (
416 char * pReaderHostName)
426 pTypeRegistry = getTheTypeRegistry();
427 if(NULL == pTypeRegistry)
429 printf(
"ERROR: getTheTypeRegistry failed\n");
449 printf(
"ERROR: new CConnection failed\n");
458 printf(
"INFO: Connecting to %s....\n", pReaderHostName);
473 m_pConnectionToReader = pConn;
477 printf(
"INFO: Connected, checking status....\n");
486 if(0 == checkConnectionStatus())
489 if(0 == enableImpinjExtensions())
492 if(0 == resetConfigurationToFactoryDefaults())
495 if(0 == getReaderCapabilities())
498 if(0 == setImpinjReaderConfig())
504 if(0 == addAccessSpec())
507 if(0 == enableAccessSpec())
510 if(0 == enableROSpec())
513 if(0 == startROSpec())
516 if(0 == awaitAndPrintReport(1))
519 if(0 == stopROSpec())
540 printf(
"INFO: Clean up reader configuration...\n");
542 resetConfigurationToFactoryDefaults();
548 printf(
"INFO: Finished\n");
560 delete pTypeRegistry;
601 CMyApplication::checkConnectionStatus (
void)
612 pMessage = recvMessage(10000);
628 if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor != pMessage->
m_pType)
657 if(ConnectionAttemptStatusType_Success != pEvent->
getStatus())
669 printf(
"INFO: Connection status OK\n");
681 printf(
"ERROR: checkConnectionStatus failed\n");
704 CMyApplication::enableImpinjExtensions (
void)
714 pCmd->setMessageID(m_messageID++);
718 pRspMsg = transact(pCmd);
743 "enableImpinjExtensions"))
760 printf(
"INFO: Impinj Extensions are enabled\n");
790 CMyApplication::resetConfigurationToFactoryDefaults (
void)
800 pCmd->setMessageID(m_messageID++);
806 pRspMsg = transact(pCmd);
831 "resetConfigurationToFactoryDefaults"))
848 printf(
"INFO: Configuration reset to factory defaults\n");
872 CMyApplication::getReaderCapabilities(
void)
878 unsigned int bMajorVersion, bMinorVersion, bDevVersion, bBuildVersion = 0;
885 pCmd->setMessageID(m_messageID++);
891 pRspMsg = transact(pCmd);
916 "getReaderCapabilities"))
949 printf(
"ERROR: Must have Firmware 4.4 or later for low level data example \n");
959 if( (bMajorVersion < 4) && (bMinorVersion < 4) )
961 printf(
"ERROR: Must have Firmware 4.4 or later for low level data example \n");
976 printf(
"INFO: Found LLRP Capabilities \n");
1001 CMyApplication::setImpinjReaderConfig(
void)
1011 pCmd->setMessageID(m_messageID++);
1118 pRspMsg = transact(pCmd);
1143 "setImpinjReaderConfig"))
1160 printf(
"INFO: Set Impinj Reader Configuration \n");
1247 CMyApplication::addROSpec (
void)
1252 ROSpecStartTriggerType_Null);
1264 AISpecStopTriggerType_Null);
1270 pInventoryParameterSpec->
setProtocolID(AirProtocols_EPCGlobalClass1Gen2);
1310 pCmd->setMessageID(m_messageID++);
1316 pRspMsg = transact(pCmd);
1341 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addROSpec"))
1358 printf(
"INFO: ROSpec added\n");
1386 CMyApplication::enableROSpec (
void)
1396 pCmd->setMessageID(m_messageID++);
1402 pRspMsg = transact(pCmd);
1426 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableROSpec"))
1443 printf(
"INFO: ROSpec enabled\n");
1471 CMyApplication::startROSpec (
void)
1481 pCmd->setMessageID(m_messageID++);
1487 pRspMsg = transact(pCmd);
1511 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"startROSpec"))
1528 printf(
"INFO: ROSpec started\n");
1555 CMyApplication::stopROSpec (
void)
1565 pCmd->setMessageID(m_messageID++);
1571 pRspMsg = transact(pCmd);
1595 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"stopROSpec"))
1612 printf(
"INFO: ROSpec stopped\n");
1634 CMyApplication::addAccessSpec (
void)
1641 pCmd->setMessageID(m_messageID++);
1646 ptargetTag->
setMB(1);
1685 preadStdTID->
setMB(2);
1695 Data.
m_pValue[0] = ((m_newPassword >> 16) & 0x0000ffff);
1696 Data.
m_pValue[1] = (m_newPassword & 0x0000ffff);
1711 preadSTID->
setMB(2);
1719 preadPEPC->
setMB(2);
1727 preadUser->
setMB(3);
1778 preadPrivEPC->
setMB(1);
1786 preadSTID->
setMB(2);
1794 preadUser->
setMB(3);
1805 for(
int x = 0; x < 32; x++)
1823 for(
int x = 0; x < 6; x++)
1841 preadRsvd->
setMB(0);
1853 AccessReportTriggerType_Whenever_ROReport_Is_Generated);
1858 AccessSpecStopTriggerType_Null);
1866 pAccessSpec->
setProtocolID(AirProtocols_EPCGlobalClass1Gen2);
1878 pRspMsg = transact(pCmd);
1902 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addAccessSpec"))
1919 printf(
"INFO: AccessSpec added\n");
1943 CMyApplication::enableAccessSpec (
void)
1953 pCmd->setMessageID(m_messageID++);
1959 pRspMsg = transact(pCmd);
1983 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableAccessSpec"))
2000 printf(
"INFO: AccessSpec enabled\n");
2030 CMyApplication::awaitAndPrintReport (
int timeout)
2034 time_t startTime = time(NULL);
2050 pMessage = recvMessage(1000);
2053 tempTime = time(NULL);
2054 if(difftime(tempTime, startTime) > timeout)
2059 if(NULL == pMessage)
2074 if(&CRO_ACCESS_REPORT::s_typeDescriptor == pType)
2080 printTagReportData(pNtf);
2087 else if(&CREADER_EVENT_NOTIFICATION::s_typeDescriptor == pType)
2095 if(NULL != pNtfData)
2097 handleReaderEventNotification(pNtfData);
2105 printf(
"WARNING: READER_EVENT_NOTIFICATION without data\n");
2114 printf(
"WARNING: Ignored unexpected message during monitor: %s\n",
2143 CMyApplication::printTagReportData (
2146 std::list<CTagReportData *>::iterator Cur;
2148 unsigned int nEntry = 0;
2163 printf(
"INFO: %u tag report entries\n", nEntry);
2174 printOneTagReportData(*Cur);
2188 CMyApplication::formatOneEPC (
2195 int bufsize = buflen;
2198 written = snprintf(p, bufsize,
"%s", startStr);
2202 if(NULL != pEPCParameter)
2207 llrp_u8_t * pValue = NULL;
2210 pType = pEPCParameter->
m_pType;
2211 if(&CEPC_96::s_typeDescriptor == pType)
2215 pEPC_96 = (
CEPC_96 *) pEPCParameter;
2216 my_u96 = pEPC_96->
getEPC();
2220 else if(&CEPCData::s_typeDescriptor == pType)
2224 pEPCData = (
CEPCData *) pEPCParameter;
2225 my_u1v = pEPCData->
getEPC();
2227 n = (my_u1v.
m_nBit + 7u) / 8u;
2232 for(i = 0; i < n; i++)
2234 if(0 < i && i%2 == 0 && 1 < bufsize)
2241 written = snprintf(p, bufsize,
"%02X", pValue[i]);
2249 written = snprintf(p, bufsize,
"%s",
"---unknown-epc-data-type---");
2256 written = snprintf(p, bufsize,
"%s",
"--null epc---");
2262 buf[buflen-1] =
'\0';
2264 return buflen - bufsize;
2276 CMyApplication::formatOneReadResult (
2282 EC1G2ReadResultType result;
2285 int bufsize = buflen;
2290 written = snprintf(p, bufsize,
"%s", startStr);
2295 written = snprintf(p, bufsize,
"result=%d", result);
2299 if(result == C1G2ReadResultType_Success)
2303 written = snprintf(p, bufsize,
" Data=");
2307 for(i = 0; i < readData.
m_nValue - 1 ; i++)
2309 written =snprintf(p, bufsize,
"%04x-", readData.
m_pValue[i]);
2315 written =snprintf(p, bufsize,
"%04x", readData.
m_pValue[i]);
2320 buf[buflen-1] =
'\0';
2321 return buflen - bufsize;
2333 CMyApplication::formatOneWriteResult (
2339 EC1G2WriteResultType result;
2342 int bufsize = buflen;
2346 written = snprintf(p, bufsize,
"%s", startStr);
2351 written = snprintf(p, bufsize,
"result=%d", result);
2355 buf[buflen-1] =
'\0';
2356 return buflen - bufsize;
2368 CMyApplication::formatOneSetQTConfigResult (
2374 EImpinjSetQTConfigResultType result;
2378 int bufsize = buflen;
2382 written = snprintf(p, bufsize,
"%s", startStr);
2388 written = snprintf(p, bufsize,
"result=%d", result);
2392 buf[buflen-1] =
'\0';
2393 return buflen - bufsize;
2405 CMyApplication::formatOneGetQTConfigResult (
2411 EImpinjGetQTConfigResultType result;
2414 int bufsize = buflen;
2416 const char * dataStrings[3] = {
"Unknown",
2420 const char * rangeStrings[3] = {
"Unknown",
2426 written = snprintf(p, bufsize,
"%s", startStr);
2431 written = snprintf(p, bufsize,
"result=%d ", result);
2435 if(ImpinjGetQTConfigResultType_Success == result)
2437 written = snprintf(p, bufsize,
"data=%s range=%s\n",
2444 buf[buflen-1] =
'\0';
2445 return buflen - bufsize;
2458 CMyApplication::formatOneSerializedTID (
2466 int bufsize = buflen;
2470 written = snprintf(p, bufsize,
"%s", startStr);
2476 for(
int i = 0; i < tid.
m_nValue; i++)
2478 if(0 < i && i%2 == 0 && 1 < bufsize)
2485 written = snprintf(p, bufsize,
"%02X", tid.
m_pValue[i]);
2491 buf[buflen-1] =
'\0';
2492 return buflen - bufsize;
2504 CMyApplication::printOneTagReportData (
2507 const int bufSize = 1024;
2511 int bufLimit = bufSize;
2513 std::list<CParameter *>::iterator OpSpecResults;
2514 std::list<CParameter *>::iterator Cur;
2524 written = formatOneEPC(pEPCParameter, ptr, bufLimit,
"epc=");
2528 aBuf[bufSize-1] =
'\0';
2537 if( (*OpSpecResults)->m_pType == &CC1G2ReadOpSpecResult::s_typeDescriptor)
2539 written = formatOneReadResult(*OpSpecResults, ptr, bufLimit,
"\n READ ");
2543 else if( (*OpSpecResults)->m_pType == &CC1G2WriteOpSpecResult::s_typeDescriptor)
2545 written = formatOneWriteResult(*OpSpecResults, ptr, bufLimit,
"\n WRITE ");
2549 else if( (*OpSpecResults)->m_pType == &CImpinjSetQTConfigOpSpecResult::s_typeDescriptor)
2551 written = formatOneSetQTConfigResult(*OpSpecResults, ptr, bufLimit,
"\n SETQT ");
2555 else if( (*OpSpecResults)->m_pType == &CImpinjGetQTConfigOpSpecResult::s_typeDescriptor)
2557 written = formatOneGetQTConfigResult(*OpSpecResults, ptr, bufLimit,
"\n GETQT ");
2570 if(&CImpinjSerializedTID ::s_typeDescriptor == (*Cur)->m_pType)
2572 written = formatOneSerializedTID(*Cur, ptr, bufLimit,
"\n SERIAL-TID ");
2574 bufLimit -= written;
2581 printf(
"%s\n", aBuf);
2599 CMyApplication::handleReaderEventNotification (
2607 if(NULL != pAntennaEvent)
2609 handleAntennaEvent(pAntennaEvent);
2614 if(NULL != pReaderExceptionEvent)
2616 handleReaderExceptionEvent(pReaderExceptionEvent);
2636 printf(
"NOTICE: Unexpected (unhandled) ReaderEvent\n");
2653 CMyApplication::handleAntennaEvent (
2656 EAntennaEventType eEventType;
2657 llrp_u16_t AntennaID;
2665 case AntennaEventType_Antenna_Disconnected:
2666 pStateStr =
"disconnected";
2669 case AntennaEventType_Antenna_Connected:
2670 pStateStr =
"connected";
2674 pStateStr =
"?unknown-event?";
2678 printf(
"NOTICE: Antenna %d is %s\n", AntennaID, pStateStr);
2695 CMyApplication::handleReaderExceptionEvent (
2700 Message = pReaderExceptionEvent->
getMessage();
2704 printf(
"NOTICE: ReaderException '%.*s'\n",
2709 printf(
"NOTICE: ReaderException but no message\n");
2733 CMyApplication::checkLLRPStatus (
2743 if(NULL == pLLRPStatus)
2745 printf(
"ERROR: %s missing LLRP status\n", pWhatStr);
2764 printf(
"ERROR: %s failed, no error description given\n",
2769 printf(
"ERROR: %s failed, %.*s\n",
2806 CMyApplication::transact (
2818 printf(
"\n===================================\n");
2819 printf(
"INFO: Transact sending\n");
2820 printXMLMessage(pSendMsg);
2828 pRspMsg = pConn->
transact(pSendMsg, 5000);
2834 printf(
"ERROR: %s transact failed, %s\n",
2840 printf(
"ERROR: ... reference type %s\n",
2846 printf(
"ERROR: ... reference field %s\n",
2859 printf(
"\n- - - - - - - - - - - - - - - - - -\n");
2860 printf(
"INFO: Transact received response\n");
2861 printXMLMessage(pRspMsg);
2869 if(&CERROR_MESSAGE::s_typeDescriptor == pRspMsg->
m_pType)
2875 printf(
"ERROR: Received ERROR_MESSAGE instead of %s\n",
2910 CMyApplication::recvMessage (
2925 if(NULL == pMessage)
2932 printf(
"ERROR: recvMessage failed, %s\n",
2938 printf(
"ERROR: ... reference type %s\n",
2944 printf(
"ERROR: ... reference field %s\n",
2957 printf(
"\n===================================\n");
2958 printf(
"INFO: Message received\n");
2959 printXMLMessage(pMessage);
2984 CMyApplication::sendMessage (
2995 printf(
"\n===================================\n");
2996 printf(
"INFO: Sending\n");
2997 printXMLMessage(pSendMsg);
3009 printf(
"ERROR: %s sendMessage failed, %s\n",
3015 printf(
"ERROR: ... reference type %s\n",
3021 printf(
"ERROR: ... reference field %s\n",
3049 CMyApplication::printXMLMessage (
3052 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.
Class Definition CImpinjTagReportContentSelector for LLRP parameter ImpinjTagReportContentSelector.
void setEnableCRC(llrp_u1_t value)
Set accessor functions for the LLRP EnableCRC field.
EC1G2WriteResultType getResult(void)
Get accessor functions for the LLRP Result field.
Class Definition CImpinjGetQTConfigOpSpecResult for LLRP parameter ImpinjGetQTConfigOpSpecResult.
Class Definition CADD_ACCESSSPEC_RESPONSE for LLRP message ADD_ACCESSSPEC_RESPONSE.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
EResultCode setC1G2SingulationControl(CC1G2SingulationControl *pValue)
Set accessor functions for the LLRP C1G2SingulationControl sub-parameter.
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.
Class Definition CC1G2Write for LLRP parameter C1G2Write.
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...
llrp_u16v_t getTID(void)
Get accessor functions for the LLRP TID field.
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 CC1G2SingulationControl for LLRP parameter C1G2SingulationControl.
Class Definition CAccessCommand for LLRP parameter AccessCommand.
const CFieldDescriptor * m_pRefField
If non-NULL this is the field descriptors for the errored field.
void setTari(llrp_u16_t value)
Set accessor functions for the LLRP Tari field.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword 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 CC1G2WriteOpSpecResult for LLRP parameter C1G2WriteOpSpecResult. ...
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 setSerializedTIDMode(EImpinjSerializedTIDMode value)
Set accessor functions for the LLRP SerializedTIDMode field.
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.
EImpinjGetQTConfigResultType getResult(void)
Get accessor functions for the LLRP Result field.
void enrollImpinjTypesIntoRegistry(CTypeRegistry *pTypeRegistry)
Enrolls the types for Impinj into the LTKCPP registry.
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.
EResultCode setImpinjEnableSerializedTID(CImpinjEnableSerializedTID *pValue)
Set accessor functions for the LLRP ImpinjEnableSerializedTID sub-parameter.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CImpinjLowDutyCycle for LLRP parameter ImpinjLowDutyCycle.
llrp_utf8v_t getReaderFirmwareVersion(void)
Get accessor functions for the LLRP ReaderFirmwareVersion field.
void setCurrentState(EAccessSpecState value)
Set accessor functions for the LLRP CurrentState field.
void setWordPointer(llrp_u16_t value)
Set accessor functions for the LLRP WordPointer field.
void setModeIndex(llrp_u16_t value)
Set accessor functions for the LLRP ModeIndex field.
Class Definition CROReportSpec for LLRP parameter ROReportSpec.
void usage(char *pProgName)
Print usage message and exit.
EStatusCode getStatusCode(void)
Get accessor functions for the LLRP StatusCode field.
void setRequestedData(EGetReaderCapabilitiesRequestedData value)
Set accessor functions for the LLRP RequestedData field.
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.
EResultCode setC1G2RFControl(CC1G2RFControl *pValue)
Set accessor functions for the LLRP C1G2RFControl sub-parameter.
void setRFPhaseAngleMode(EImpinjRFPhaseAngleMode value)
Set accessor functions for the LLRP RFPhaseAngleMode field.
Class Definition CROSpecStartTrigger for LLRP parameter ROSpecStartTrigger.
EResultCode setImpinjEnablePeakRSSI(CImpinjEnablePeakRSSI *pValue)
Set accessor functions for the LLRP ImpinjEnablePeakRSSI sub-parameter.
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.
void setPersistence(EImpinjQTPersistence value)
Set accessor functions for the LLRP Persistence 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.
std::list< CParameter * >::iterator endCustom(void)
Returns the last element of the Custom sub-parameter list.
EImpinjQTDataProfile getDataProfile(void)
Get accessor functions for the LLRP DataProfile field.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
Class Definition CImpinjInventorySearchMode for LLRP parameter ImpinjInventorySearchMode.
Class Definition CImpinjSetQTConfig for LLRP parameter ImpinjSetQTConfig.
Class Definition CC1G2RFControl for LLRP parameter C1G2RFControl.
Class Definition CInventoryParameterSpec for LLRP parameter InventoryParameterSpec.
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.
void setInventorySearchMode(EImpinjInventorySearchType value)
Set accessor functions for the LLRP InventorySearchMode field.
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.
void setWriteData(llrp_u16v_t value)
Set accessor functions for the LLRP WriteData field.
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.
Class Definition CImpinjEnableSerializedTID for LLRP parameter ImpinjEnableSerializedTID.
llrp_u1v_t getEPC(void)
Get accessor functions for the LLRP EPC field.
Class Definition CSET_READER_CONFIG for LLRP message SET_READER_CONFIG.
void setAccessRange(EImpinjQTAccessRange value)
Set accessor functions for the LLRP AccessRange field.
std::list< CParameter * >::iterator beginCustom(void)
Returns the first element of the Custom sub-parameter list.
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)
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
llrp_u16_t m_nBit
The number of arrray elements.
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.
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...
EResultCode addCustom(CParameter *pValue)
Add a Custom to the LLRP sub-parameter list.
void setTagPopulation(llrp_u16_t value)
Set accessor functions for the LLRP TagPopulation field.
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
EImpinjSetQTConfigResultType getResult(void)
Get accessor functions for the LLRP Result 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 setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID 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 setDataProfile(EImpinjQTDataProfile value)
Set accessor functions for the LLRP DataProfile field.
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.
Class Definition CImpinjSetQTConfigOpSpecResult for LLRP parameter ImpinjSetQTConfigOpSpecResult.
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.
Class Definition CAntennaConfiguration for LLRP parameter AntennaConfiguration.
Class Definition CROSpecStopTrigger for LLRP parameter ROSpecStopTrigger.
EImpinjQTAccessRange getAccessRange(void)
Get accessor functions for the LLRP AccessRange field.
Class Definition CImpinjGetQTConfig for LLRP parameter ImpinjGetQTConfig.
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.
int main(int ac, char *av[])
Command main routine.
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.
Class Definition CImpinjEnableRFPhaseAngle for LLRP parameter ImpinjEnableRFPhaseAngle.
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.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
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.
Class Definition CImpinjSerializedTID for LLRP parameter ImpinjSerializedTID.
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 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.
void setTagTransitTime(llrp_u32_t value)
Set accessor functions for the LLRP TagTransitTime field.
Class Definition CTagReportContentSelector for LLRP parameter TagReportContentSelector.
Class Definition CENABLE_ACCESSSPEC_RESPONSE for LLRP message ENABLE_ACCESSSPEC_RESPONSE.
void setSession(llrp_u2_t value)
Set accessor functions for the LLRP Session field.
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 setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
void setCurrentState(EROSpecState value)
Set accessor functions for the LLRP CurrentState field.
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.
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.
EResultCode setImpinjEnableRFPhaseAngle(CImpinjEnableRFPhaseAngle *pValue)
Set accessor functions for the LLRP ImpinjEnableRFPhaseAngle sub-parameter.
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.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
Class Definition CReaderEventNotificationData for LLRP parameter ReaderEventNotificationData.