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;
79 unsigned int m_newPassword;
86 : m_Verbose(0), m_pConnectionToReader(NULL)
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"))
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)
669 printf(
"INFO: Connection status OK\n");
681 printf(
"ERROR: checkConnectionStatus failed\n");
704 CMyApplication::enableImpinjExtensions (
void)
718 pRspMsg = transact(pCmd);
743 "enableImpinjExtensions"))
760 printf(
"INFO: Impinj Extensions are enabled\n");
790 CMyApplication::resetConfigurationToFactoryDefaults (
void)
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;
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)
1118 pRspMsg = transact(pCmd);
1143 "setImpinjReaderConfig"))
1160 printf(
"INFO: Set Impinj Reader Configuration \n");
1247 CMyApplication::addROSpec (
void)
1316 pRspMsg = transact(pCmd);
1341 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addROSpec"))
1358 printf(
"INFO: ROSpec added\n");
1386 CMyApplication::enableROSpec (
void)
1402 pRspMsg = transact(pCmd);
1426 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"enableROSpec"))
1443 printf(
"INFO: ROSpec enabled\n");
1471 CMyApplication::startROSpec (
void)
1487 pRspMsg = transact(pCmd);
1511 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"startROSpec"))
1528 printf(
"INFO: ROSpec started\n");
1555 CMyApplication::stopROSpec (
void)
1571 pRspMsg = transact(pCmd);
1595 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"stopROSpec"))
1612 printf(
"INFO: ROSpec stopped\n");
1634 CMyApplication::addAccessSpec (
void)
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);
1878 pRspMsg = transact(pCmd);
1902 if(0 != checkLLRPStatus(pRsp->
getLLRPStatus(),
"addAccessSpec"))
1919 printf(
"INFO: AccessSpec added\n");
1943 CMyApplication::enableAccessSpec (
void)
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 (
2285 int bufsize = buflen;
2290 written = snprintf(p, bufsize,
"%s", startStr);
2295 written = snprintf(p, bufsize,
"result=%d", result);
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 (
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 (
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 (
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);
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 (
2657 llrp_u16_t AntennaID;
2666 pStateStr =
"disconnected";
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];
EResultCode addAntennaConfiguration(CAntennaConfiguration *pValue)
Add a AntennaConfiguration to the LLRP sub-parameter list.
Class Definition CImpinjInventorySearchMode for LLRP parameter ImpinjInventorySearchMode.
Class Definition CROBoundarySpec for LLRP parameter ROBoundarySpec.
CGeneralDeviceCapabilities * getGeneralDeviceCapabilities(void)
Get accessor functions for the LLRP GeneralDeviceCapabilities sub-parameter.
void enrollImpinjTypesIntoRegistry(CTypeRegistry *pTypeRegistry)
Enrolls the types for Impinj into the LTKCPP registry.
void setOperationCountValue(llrp_u16_t value)
Set accessor functions for the LLRP OperationCountValue field.
Class Definition CC1G2EPCMemorySelector for LLRP parameter C1G2EPCMemorySelector. ...
Class Definition CGET_READER_CAPABILITIES_RESPONSE for LLRP message GET_READER_CAPABILITIES_RESPONSE...
llrp_u16v_t getTID(void)
Get accessor functions for the LLRP TID field.
EResultCode addAirProtocolEPCMemorySelector(CParameter *pValue)
Add a AirProtocolEPCMemorySelector to the LLRP sub-parameter list.
void setTagData(llrp_u1v_t value)
Set accessor functions for the LLRP TagData field.
void setDurationTrigger(llrp_u32_t value)
Set accessor functions for the LLRP DurationTrigger field.
EResultCode setROReportSpec(CROReportSpec *pValue)
Set accessor functions for the LLRP ROReportSpec sub-parameter.
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.
EResultCode addCustom(CParameter *pValue)
Add a Custom to the LLRP sub-parameter list.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword 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.
void setWordPointer(llrp_u16_t value)
Set accessor functions for the LLRP WordPointer field.
Class Definition CImpinjEnableRFPhaseAngle for LLRP parameter ImpinjEnableRFPhaseAngle.
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.
void setEnablePCBits(llrp_u1_t value)
Set accessor functions for the LLRP EnablePCBits field.
std::list< CTagReportData * >::iterator beginTagReportData(void)
Returns the first element of the TagReportData sub-parameter list.
EC1G2ReadResultType
Global enumeration EC1G2ReadResultType for LLRP enumerated field C1G2ReadResultType.
const CFieldDescriptor * m_pRefField
If non-NULL this is the field descriptors for the errored field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
Class Definition CAccessReportSpec for LLRP parameter AccessReportSpec.
EImpinjGetQTConfigResultType getResult(void)
Get accessor functions for the LLRP Result 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 CImpinjEnableSerializedTID for LLRP parameter ImpinjEnableSerializedTID.
llrp_u16v_t getReadData(void)
Get accessor functions for the LLRP ReadData field.
void setPriority(llrp_u8_t value)
Set accessor functions for the LLRP Priority field.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
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.
EResultCode setC1G2RFControl(CC1G2RFControl *pValue)
Set accessor functions for the LLRP C1G2RFControl sub-parameter.
void setAccessRange(EImpinjQTAccessRange value)
Set accessor functions for the LLRP AccessRange field.
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.
void setModeIndex(llrp_u16_t value)
Set accessor functions for the LLRP ModeIndex field.
Class Definition CSTART_ROSPEC for LLRP message START_ROSPEC.
EResultCode setAccessSpec(CAccessSpec *pValue)
Set accessor functions for the LLRP AccessSpec sub-parameter.
void setCurrentState(EROSpecState value)
Set accessor functions for the LLRP CurrentState field.
EC1G2WriteResultType getResult(void)
Get accessor functions for the LLRP Result 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()
Class Definition CImpinjSetQTConfig for LLRP parameter ImpinjSetQTConfig.
EResultCode addAccessCommandOpSpec(CParameter *pValue)
Add a AccessCommandOpSpec to the LLRP sub-parameter list.
CReaderEventNotificationData * getReaderEventNotificationData(void)
Get accessor functions for the LLRP ReaderEventNotificationData sub-parameter.
Class Definition CROSpecStartTrigger for LLRP parameter ROSpecStartTrigger.
void setFieldPingInterval(llrp_u16_t value)
Set accessor functions for the LLRP FieldPingInterval 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.
void usage(char *pProgName)
Print usage message and exit.
EC1G2WriteResultType
Global enumeration EC1G2WriteResultType for LLRP enumerated field C1G2WriteResultType.
void setAccessReportTrigger(EAccessReportTriggerType value)
Set accessor functions for the LLRP AccessReportTrigger field.
Class Definition CRO_ACCESS_REPORT for LLRP message RO_ACCESS_REPORT.
std::list< CParameter * >::iterator endCustom(void)
Returns the last element of the Custom sub-parameter list.
llrp_u16_t m_nValue
The number of arrray elements.
int closeConnectionToReader(void)
Close connection to reader, allow reuse of instance.
Class Definition CAccessCommand for LLRP parameter AccessCommand.
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.
std::list< CParameter * >::iterator beginCustom(void)
Returns the first element of the Custom sub-parameter list.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
void setPointer(llrp_u16_t value)
Set accessor functions for the LLRP Pointer field.
EImpinjSetQTConfigResultType
Global enumeration EImpinjSetQTConfigResultType for LLRP enumerated field ImpinjSetQTConfigResultType...
Class Definition CConnectionAttemptEvent for LLRP parameter ConnectionAttemptEvent.
Class Definition CENABLE_ACCESSSPEC_RESPONSE for LLRP message ENABLE_ACCESSSPEC_RESPONSE.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
Class Definition CSTART_ROSPEC_RESPONSE for LLRP message START_ROSPEC_RESPONSE.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
EResultCode setAccessReportSpec(CAccessReportSpec *pValue)
Set accessor functions for the LLRP AccessReportSpec sub-parameter.
EResultCode setImpinjEnablePeakRSSI(CImpinjEnablePeakRSSI *pValue)
Set accessor functions for the LLRP ImpinjEnablePeakRSSI sub-parameter.
llrp_utf8v_t getReaderFirmwareVersion(void)
Get accessor functions for the LLRP ReaderFirmwareVersion field.
void setWriteData(llrp_u16v_t value)
Set accessor functions for the LLRP WriteData field.
void setWordPointer(llrp_u16_t value)
Set accessor functions for the LLRP WordPointer field.
Class Definition CC1G2Write for LLRP parameter C1G2Write.
Class Definition CReaderEventNotificationData for LLRP parameter ReaderEventNotificationData.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
EImpinjSetQTConfigResultType getResult(void)
Get accessor functions for the LLRP Result 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.
llrp_u16_t m_nValue
The number of arrray elements.
Class Definition CTagReportContentSelector for LLRP parameter TagReportContentSelector.
Class Definition CADD_ROSPEC_RESPONSE for LLRP message ADD_ROSPEC_RESPONSE.
void setEnableCRC(llrp_u1_t value)
Set accessor functions for the LLRP EnableCRC field.
void setTari(llrp_u16_t value)
Set accessor functions for the LLRP Tari field.
Class Definition CADD_ACCESSSPEC_RESPONSE for LLRP message ADD_ACCESSSPEC_RESPONSE.
File that includes all Impinj Custom extension classes and types.
Class Definition CENABLE_ACCESSSPEC for LLRP message ENABLE_ACCESSSPEC.
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.
EImpinjQTAccessRange getAccessRange(void)
Get accessor functions for the LLRP AccessRange field.
EResultCode setROSpec(CROSpec *pValue)
Set accessor functions for the LLRP ROSpec sub-parameter.
EImpinjGetQTConfigResultType
Global enumeration EImpinjGetQTConfigResultType for LLRP enumerated field ImpinjGetQTConfigResultType...
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 CGeneralDeviceCapabilities for LLRP parameter GeneralDeviceCapabilities.
std::list< CParameter * >::iterator endAccessCommandOpSpecResult(void)
Returns the last element of the AccessCommandOpSpecResult sub-parameter list.
Class Definition CAccessSpec for LLRP parameter AccessSpec.
Class Definition CImpinjGetQTConfig for LLRP parameter ImpinjGetQTConfig.
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)
EResultCode setImpinjEnableRFPhaseAngle(CImpinjEnableRFPhaseAngle *pValue)
Set accessor functions for the LLRP ImpinjEnableRFPhaseAngle sub-parameter.
void setPersistence(EImpinjQTPersistence value)
Set accessor functions for the LLRP Persistence field.
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.
Class Definition CImpinjTagReportContentSelector for LLRP parameter ImpinjTagReportContentSelector.
int openConnectionToReader(const char *pReaderHostName)
Open a connection to the reader over an unencrypted socket.
void setSerializedTIDMode(EImpinjSerializedTIDMode value)
Set accessor functions for the LLRP SerializedTIDMode field.
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
Class Definition CC1G2TargetTag for LLRP parameter C1G2TargetTag.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
EResultCode setAccessSpecStopTrigger(CAccessSpecStopTrigger *pValue)
Set accessor functions for the LLRP AccessSpecStopTrigger 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.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
void setOpSpecID(llrp_u16_t value)
Set accessor functions for the LLRP OpSpecID field.
Class Definition CC1G2RFControl for LLRP parameter C1G2RFControl.
Class Definition CSTOP_ROSPEC_RESPONSE for LLRP message STOP_ROSPEC_RESPONSE.
Class Definition CImpinjSetQTConfigOpSpecResult for LLRP parameter ImpinjSetQTConfigOpSpecResult.
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.
void setAntennaID(llrp_u16_t value)
Set accessor functions for the LLRP AntennaID 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.
void setLowDutyCycleMode(EImpinjLowDutyCycleMode value)
Set accessor functions for the LLRP LowDutyCycleMode field.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
Class Definition CROSpec for LLRP parameter ROSpec.
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.
Class Definition CImpinjLowDutyCycle for LLRP parameter ImpinjLowDutyCycle.
EResultCode setAirProtocolTagSpec(CParameter *pValue)
Set accessor functions for the LLRP AirProtocolTagSpec sub-parameter.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
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.
void setAccessSpecID(llrp_u32_t value)
Set accessor functions for the LLRP AccessSpecID field.
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.
Class Definition CImpinjGetQTConfigOpSpecResult for LLRP parameter ImpinjGetQTConfigOpSpecResult.
void setSession(llrp_u2_t value)
Set accessor functions for the LLRP Session field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
void setROSpecStopTriggerType(EROSpecStopTriggerType value)
Set accessor functions for the LLRP ROSpecStopTriggerType field.
std::list< CParameter * >::iterator beginAccessCommandOpSpecResult(void)
Returns the first element of the AccessCommandOpSpecResult sub-parameter list.
llrp_u1v_t getEPC(void)
Get accessor functions for the LLRP EPC field.
void setRequestedData(EGetReaderCapabilitiesRequestedData value)
Set accessor functions for the LLRP RequestedData field.
EC1G2ReadResultType getResult(void)
Get accessor functions for the LLRP Result field.
void setProtocolID(EAirProtocols value)
Set accessor functions for the LLRP ProtocolID field.
llrp_u16_t * m_pValue
Pointer to the first array element.
Class Definition CAccessSpecStopTrigger for LLRP parameter AccessSpecStopTrigger. ...
void setWordCount(llrp_u16_t value)
Set accessor functions for the LLRP WordCount field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus 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.
Class Definition CC1G2ReadOpSpecResult for LLRP parameter C1G2ReadOpSpecResult.
int main(int ac, char *av[])
Command main routine.
void setMB(llrp_u2_t value)
Set accessor functions for the LLRP MB field.
Base Class for All LLRP LTK Parameters.
Base Class for All LLRP LTK Messages.
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.
Class Definition CC1G2Read for LLRP parameter C1G2Read.
void setTagTransitTime(llrp_u32_t value)
Set accessor functions for the LLRP TagTransitTime field.
EResultCode addCustom(CParameter *pValue)
Add a Custom to the LLRP sub-parameter list.
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 CImpinjSerializedTID for LLRP parameter ImpinjSerializedTID.
Class Definition CReaderExceptionEvent for LLRP parameter ReaderExceptionEvent.
CAntennaEvent * getAntennaEvent(void)
Get accessor functions for the LLRP AntennaEvent sub-parameter.
void setCurrentState(EAccessSpecState value)
Set accessor functions for the LLRP CurrentState field.
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 setRFPhaseAngleMode(EImpinjRFPhaseAngleMode value)
Set accessor functions for the LLRP RFPhaseAngleMode field.
void setROSpecID(llrp_u32_t value)
Set accessor functions for the LLRP ROSpecID field.
EImpinjQTDataProfile getDataProfile(void)
Get accessor functions for the LLRP DataProfile field.
Class Definition CTagReportData for LLRP parameter TagReportData.
void setMessageID(llrp_u32_t MessageID)
Sets the LLRP Message ID for the Message.
llrp_u32_t getDeviceManufacturerName(void)
Get accessor functions for the LLRP DeviceManufacturerName field.
void setAISpecStopTriggerType(EAISpecStopTriggerType value)
Set accessor functions for the LLRP AISpecStopTriggerType field.
Class Definition CC1G2WriteOpSpecResult for LLRP parameter C1G2WriteOpSpecResult. ...
void setMatch(llrp_u1_t value)
Set accessor functions for the LLRP Match field.
Class Definition CADD_ACCESSSPEC for LLRP message ADD_ACCESSSPEC.
Class Definition CAISpecStopTrigger for LLRP parameter AISpecStopTrigger.
void setAccessPassword(llrp_u32_t value)
Set accessor functions for the LLRP AccessPassword field.
CLLRPStatus * getLLRPStatus(void)
Get accessor functions for the LLRP LLRPStatus sub-parameter.
void setTagMask(llrp_u1v_t value)
Set accessor functions for the LLRP TagMask field.
EResultCode addInventoryParameterSpec(CInventoryParameterSpec *pValue)
Add a InventoryParameterSpec to the LLRP sub-parameter list.
void setDataProfile(EImpinjQTDataProfile value)
Set accessor functions for the LLRP DataProfile field.
void setEmptyFieldTimeout(llrp_u16_t value)
Set accessor functions for the LLRP EmptyFieldTimeout field.
EImpinjQTAccessRange
Global enumeration EImpinjQTAccessRange for LLRP enumerated field ImpinjQTAccessRange.
void setTagPopulation(llrp_u16_t value)
Set accessor functions for the LLRP TagPopulation field.
EAntennaEventType
Global enumeration EAntennaEventType for LLRP enumerated field AntennaEventType.
Class Definition CGET_READER_CAPABILITIES for LLRP message GET_READER_CAPABILITIES.
void setEnableInventoryParameterSpecID(llrp_u1_t value)
Set accessor functions for the LLRP EnableInventoryParameterSpecID field.
EResultCode setAccessCommand(CAccessCommand *pValue)
Set accessor functions for the LLRP AccessCommand sub-parameter.
CConnectionAttemptEvent * getConnectionAttemptEvent(void)
Get accessor functions for the LLRP ConnectionAttemptEvent sub-parameter.
llrp_utf8_t * m_pValue
Pointer to the first array element.
void setAccessSpecID(llrp_u32_t value)
Set accessor functions for the LLRP AccessSpecID field.
EAntennaEventType getEventType(void)
Get accessor functions for the LLRP EventType field.
EResultCode setImpinjEnableSerializedTID(CImpinjEnableSerializedTID *pValue)
Set accessor functions for the LLRP ImpinjEnableSerializedTID sub-parameter.
EResultCode setAISpecStopTrigger(CAISpecStopTrigger *pValue)
Set accessor functions for the LLRP AISpecStopTrigger sub-parameter.
void setInventorySearchMode(EImpinjInventorySearchType value)
Set accessor functions for the LLRP InventorySearchMode field.
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.
void setAccessSpecStopTrigger(EAccessSpecStopTriggerType value)
Set accessor functions for the LLRP AccessSpecStopTrigger field.