1 Reply Latest reply on Jan 22, 2019 1:11 AM by Hien Alex

    RFD 8500 performing asynchronous operations in order to tag locate based on product ID.

    Swathi Shanmugasundaram

      I am connecting to RFD 8500 device and its RFID Reader and reading the tag location from my android application. In order to read the tag location (using API3 library) I am defining a RFID Reader and invoking "tag locationing" -


                rfidReader.Actions.TagLocationing.Perform("30740322381297EBF5E22D2B", null, null);


      I would like to do the tag locationing for multiple tags, but at the same time on an asynchronous manner using a single RFD 8500 device. I don't find any ways to do this from the device's developer guide. Is there a way to achieve this?

      Alternatively, if i could do tag locationing based on a product ID on the tag and not the tag ID that will solve my problem too. But i do not sue product ID being read or used anywhere using the API3 library. Does the memory bank data of a tag contain product ID?


      Also, are there options to do multiple operations on the RFD 8500 at the same time at any use case at all? For example, I would like to asynchronously query for tags in the vicinity, filter them and trigger a tag locationing event for a tag satisfying certain criteria.


      Say, I would need to the following operations asynchronously at the same point of time with a single device,


           rfidReader.Actions.Inventory.perform();  -- asynchronous operation 1

           rfidReader.Actions.TagLocationing.Perform(tagId, null, null); -- asynchronous operation 2



         OR say,



               //Asynchronous operation 1


                TagAccess tagAccess = new TagAccess();

                TagAccess.ReadAccessParams readAccessParams = tagAccess.new ReadAccessParams();





                AccessFilter accessFilter = new AccessFilter();


                byte[] tagMask = new byte[] { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff,

             (byte)0xff, (byte)0xff, (byte)0xff };

                // Tag Pattern A

                accessFilter.TagPatternA.setTagPattern(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });

                accessFilter.TagPatternA.setTagPatternBitCount(8 * 8);



                accessFilter.TagPatternA.setTagMaskBitCount(tagMask.length * 8);



                rfidReader.Actions.TagAccess.readEvent(readAccessParams, accessFilter, null);




                //Asynchronous operation 2



                rfidReader.Actions.TagLocationing.Perform(tagId, null, null);



      I am interested in doing these various asynchronous operations, so that I can find a tag for a product located in the closest proximity from the RFD 8500 device. So if there is a better solution to solve the use case I would be interested to learn. These are the various ad hoc operations I figured out from the developer guide of the device and put together to solve the problem of pulling out the closest tag for a product ID (UPC in this case).


      Thanks for reading.