0

我正在研究 RFID 标签。我正在使用 Speedway Revolution Reader(R-420) 读取标签。 http://www.impinj.com/Speedway_Revolution_UHF_RFID_Reader.aspx 我正在使用 Confidex Steelware Micro ETSI Monza 标签(货号 3000127) http://www.confidex.com/products-and-services/compare-uhf-products/ 524-confidex-steelwave-micro . 我正在使用 Impinj 的 Octane SDK。我面临的问题是,当我尝试锁定用户内存时,出现错误。

这是我正在使用的代码:

    static void Main(string[] args)
    {
        try
        {
            // Connect to the reader.
            // Change the ReaderHostname constant in SolutionConstants.cs 
            // to the IP address or hostname of your reader.
            reader.Connect(SolutionConstants.ReaderHostname);

            // Assign the TagOpComplete event handler.
            // This specifies which method to call
            // when tag operations are complete.
            reader.TagOpComplete += OnTagOpComplete;

            // Configure the reader with the default settings.
            reader.ApplyDefaultSettings();

            // Create a tag operation sequence.
            // You can add multiple read, write, lock, kill and QT
            // operations to this sequence.
            TagOpSequence seq = new TagOpSequence();


            // Define a tag write operation that sets the access password. 
            TagWriteOp writeOp = new TagWriteOp();
            // Assumes that current access password is not set
            // (zero is the default)
            writeOp.AccessPassword = null;
            // The access password is in the Reserved memory bank.
            writeOp.MemoryBank = MemoryBank.Reserved;
            // A pointer to the start of the access password.
            writeOp.WordPointer = WordPointers.AccessPassword;
            // The new access password to write.
            writeOp.Data = TagData.FromHexString("11112222");

            // Add this tag write op to the tag operation sequence.
            seq.Ops.Add(writeOp);

            // Create a tag lock operation to lock the 
            // access password and User memory.
            TagLockOp lockOp = new TagLockOp();
            lockOp.AccessPasswordLockType = TagLockState.Lock;
            lockOp.EpcLockType = TagLockState.Lock;


            // Add this tag lock op to the tag operation sequence.
            seq.Ops.Add(lockOp);

            // Add the tag operation sequence to the reader.
            // The reader supports multiple sequences.
            reader.AddOpSequence(seq);

            // Start the reader
            reader.Start();
        }
        catch (OctaneSdkException e)
        {
            // Handle Octane SDK errors.
            Console.WriteLine("Octane SDK exception: {0}", e.Message);
        }
        catch (Exception e)
        {
            // Handle other .NET errors.
            Console.WriteLine("Exception : {0}", e.Message);
        }

        // Wait for the user to press enter.
        Console.WriteLine("Press enter to exit.");
        Console.ReadLine();

        // Stop reading.
        reader.Stop();

        // Disconnect from the reader.
        reader.Disconnect();
    }

    // This event handler will be called when tag 
    // operations have been executed by the reader.
    static void OnTagOpComplete(ImpinjReader reader, TagOpReport report)
    {
        // Loop through all the completed tag operations
        foreach (TagOpResult result in report)
        {
            if (result is TagWriteOpResult)
            {
                // These are the results of settings the access password.
                // Cast it to the correct type.
                TagWriteOpResult writeResult = result as TagWriteOpResult;
                // Print out the results.
                Console.WriteLine("Set access password complete.");
                Console.WriteLine("EPC : {0}", writeResult.Tag.Epc);
                Console.WriteLine("Status : {0}", writeResult.Result);
                Console.WriteLine("Number of words written : {0}", writeResult.NumWordsWritten);
            }
            else if (result is TagLockOpResult)
            {
                // Cast it to the correct type.
                // These are the results of locking the access password or user memory.
                TagLockOpResult lockResult = result as TagLockOpResult;
                // Print out the results.
                Console.WriteLine("Lock operation complete.");
                Console.WriteLine("EPC : {0}", lockResult.Tag.Epc);
                Console.WriteLine("Status : {0}", lockResult.Result);
            }
        }
    }
}

}

这是我得到的错误:“标签没有响应”

4

2 回答 2

0

如果您按照上述指南中的步骤进行操作,那么除非标签已被锁定,否则它没有理由不工作。

因为锁定状态通常不能被阅读器读取而只能被推断,在这种情况下,您使用的标签(或多个标签)可能由于某种原因已经被锁定。我建议尝试几种不同类型的标签(如果可能,使用不同的 IC)来查看错误是否仍然存在。

于 2013-08-23T23:41:57.077 回答
0

您是否遵循本指南?http://learn.impinj.com/articles/en_US/RFID/Locking-Memory-on-EPC-RFID-Tags/

于 2013-07-18T19:13:02.047 回答