Welcome To Our Support Portal

Browse Impinj resources for help with FAQ, downloads, quick links, and more.


Submit a request

How do I configure Monza 4QT with the LTK?

Follow


The Monza® 4QT tag chip features Impinj's patent-pending QT® technology—a unique ability to maintain two data profiles to support protection of business-sensitive data and consumer privacy. With QT technology, tag owners can use a private data profile to store confidential data, while a public data profile holds less sensitive information. The ability to switch between these two profiles is protected by the tag's access password, physical distance from a reader antenna via a short range mode, or both.

The following code sample shows how to configure an Impinj Monza 4QT tag using the LLRP Toolkit (LTK). The method below places an OpSpec on the reader that sets the access range (near / far), data profile (public / private) and persistence (permanent / temporary) properties of the tag.

 
public void Add_QT_AccessSpec(ENUM_ImpinjQTDataProfile dataProfile,
                             ENUM_ImpinjQTAccessRange accessRange,
                             ENUM_ImpinjQTPersistence persistence)
{
   MSG_ADD_ACCESSSPEC msg = new MSG_ADD_ACCESSSPEC();
    
   // AccessSpec
   msg.AccessSpec = new PARAM_AccessSpec();
   msg.AccessSpec.AccessSpecID = ACCESS_SPEC_ID;
   msg.AccessSpec.AntennaID = 0;
   msg.AccessSpec.ROSpecID = 0;
   msg.AccessSpec.ProtocolID = ENUM_AirProtocols.EPCGlobalClass1Gen2;
   msg.AccessSpec.CurrentState = ENUM_AccessSpecState.Disabled;
    
   // AccessSpecStopTrigger
   msg.AccessSpec.AccessSpecStopTrigger = new PARAM_AccessSpecStopTrigger();
   msg.AccessSpec.AccessSpecStopTrigger.AccessSpecStopTrigger =
       ENUM_AccessSpecStopTriggerType.Operation_Count;
   msg.AccessSpec.AccessSpecStopTrigger.OperationCountValue = 1;
    
   // AccessCommand
   msg.AccessSpec.AccessCommand = new PARAM_AccessCommand();
   msg.AccessSpec.AccessCommand.AirProtocolTagSpec = new UNION_AirProtocolTagSpec();
    
   // TagSpec
   PARAM_C1G2TagSpec tagSpec = new PARAM_C1G2TagSpec();
   tagSpec.C1G2TargetTag = new PARAM_C1G2TargetTag[1];
   tagSpec.C1G2TargetTag[0] = new PARAM_C1G2TargetTag();
   tagSpec.C1G2TargetTag[0].Match = true;
   tagSpec.C1G2TargetTag[0].MB = new TwoBits(1);
   tagSpec.C1G2TargetTag[0].Pointer = 16;
   tagSpec.C1G2TargetTag[0].TagData = LLRPBitArray.FromString("");
   tagSpec.C1G2TargetTag[0].TagMask = LLRPBitArray.FromString("");
   msg.AccessSpec.AccessCommand.AirProtocolTagSpec.Add(tagSpec);
    
   // AccessCommandOpSpec
   msg.AccessSpec.AccessCommand.AccessCommandOpSpec = new UNION_AccessCommandOpSpec();
    
   PARAM_ImpinjSetQTConfig qtConfig = new PARAM_ImpinjSetQTConfig();
   qtConfig.DataProfile = new ENUM_ImpinjQTDataProfile();
   qtConfig.OpSpecID = OP_SPEC_ID;
   qtConfig.AccessPassword = 0;
   qtConfig.Persistence = persistence;
   qtConfig.DataProfile = dataProfile;
   qtConfig.AccessRange = accessRange;
    
   msg.AccessSpec.AccessCommand.AccessCommandOpSpec.AddCustomParameter(qtConfig);
    
   MSG_ADD_ACCESSSPEC_RESPONSE rsp =
      reader.ADD_ACCESSSPEC(msg, out msg_err, MSG_TIMEOUT_MSEC);
   CheckLlrpReply(rsp.LLRPStatus);
}

To configure the tag, you would call the method like this:

 
// Put the tag in public mode. A zero EPC will be backscattered.
reader.Add_QT_AccessSpec(  ENUM_ImpinjQTDataProfile.Public,
                           ENUM_ImpinjQTAccessRange.Normal_Range,
                           ENUM_ImpinjQTPersistence.Permanent);
 

Was this article helpful?
0 out of 0 found this helpful

Comments

Impinj (NASDAQ: PI) wirelessly connects billions of everyday items such as apparel, medical supplies, and automobile parts to consumer and business applications such as inventory management, patient safety, and asset tracking. The Impinj platform uses RAIN RFID, delivering information about items to the digital world and enabling the Internet of Things.