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();
readAccessParams.setAccessPassword(0);
readAccessParams.setByteCount(8);
readAccessParams.setMemoryBank(MEMORY_BANK.MEMORY_BANK_USER);
readAccessParams.setByteOffset(0);
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.setMemoryBank(MEMORY_BANK.MEMORY_BANK_RESERVED);
accessFilter.TagPatternA.setTagPattern(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });
accessFilter.TagPatternA.setTagPatternBitCount(8 * 8);
accessFilter.TagPatternA.setBitOffset(0);
accessFilter.TagPatternA.setTagMask(tagMask);
accessFilter.TagPatternA.setTagMaskBitCount(tagMask.length * 8);
accessFilter.setAccessFilterMatchPattern(FILTER_MATCH_PATTERN.A);
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.
1 Replies
Hi mate,
I'm trying to locate multiple tag at the same time. Did you find anything ?