I am trying to read Memory Bank data from tags, and there are no exceptions, but the Operation Status returns "ACCESS_TAG_MEMORY_OVERRUN_ERROR"
This happens with every tag now, while the official SKD RFID Zebra Application has a timeout error, when trying to read, when it previously didn't, so I wonder if my reader didn't break. I'm at a loss. The documentation explains absolutely nothing about what these errors mean, and there are next to no resources on RFID coding.
public String readTag(String tagID){
String tagId = tagID;
TagAccess tagAccess = new TagAccess();
TagAccess.ReadAccessParams readAccessParams = tagAccess.new ReadAccessParams();
readAccessParams.setCount(4);
readAccessParams.setMemoryBank(MEMORY_BANK.MEMORY_BANK_USER);
readAccessParams.setOffset(0);
try {
TagData tagData = reader.Actions.TagAccess.readWait(tagId, readAccessParams, null);
System.out.println("OPERATION STATUS ---> " + tagData.getOpStatus());
return tagData.getMemoryBankData();
} catch (InvalidUsageException e) {
System.out.println("INVALID USAGE EXCEPTION ---> " + e.getInfo());
e.printStackTrace();
return "";
} catch (OperationFailureException e) {
System.out.println("INVALID USAGE EXCEPTION ---> " + e.getResults());
e.printStackTrace();
return "";
}
}
Despite that being the Read method, I'm not entirely sure it's at fault here, as it's copy-pasted from the Zebra guide at http://techdocs.zebra.com/dcs/rfid/android/2-15/tutorials/readaccess/ , but I'm at a loss. It just keeps returning "null" (despite the fact that I know it has data) and giving me "ACCESS_TAG_MEMORY_OVERRUN_ERROR" as the Status. Just knowing what it means would point me enough in the right direction. As it is, I can only guess blindly, and it's very frustrating. Thank you.
The error occurs because you try to read more words than the epc memory bank of your rfid tag has. You can omit the
// readAccessParams.setCount(4);
statement.