Что означает ошибка «ACCESS_TAG_MEMORY_OVERRUN_ERROR» в Zebra Android SDK и как ее исправить? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь прочитать данные банка памяти из тегов, исключений нет, но статус операции возвращает «ACCESS_TAG_MEMORY_OVERRUN_ERROR»

Это происходит сейчас с каждым тегом, в то время как официальное приложение SKD RFID Zebra имеет ошибку времени ожидания при попытке чтения, когда раньше этого не происходило, поэтому мне интересно, не сломался ли мой читатель. Я в недоумении. В документации абсолютно ничего не говорится о том, что означают эти ошибки, и почти нет ресурсов по кодированию RFID.

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 "";
    }
}

Несмотря на то, что это метод чтения, я не совсем уверен, что он здесь виноват, поскольку он скопирован из руководства по Zebra в http://techdocs.zebra.com/dcs/rfid/android/2-15/tutorials/readaccess/, но я в растерянности. Он просто возвращает значение «ноль» (несмотря на то, что я знаю, что у него есть данные) и даёт мне «ACCESS_TAG_MEMORY_OVERRUN_ERROR» в качестве статуса. Просто зная, что это значит, я укажу в правильном направлении. На самом деле, я могу только догадываться вслепую, и это очень расстраивает. Спасибо.

1 Ответ

0 голосов
/ 08 июля 2019

Ошибка возникает из-за того, что вы пытаетесь прочитать больше слов, чем есть в банке памяти epc вашего тега rfid.Вы можете опустить оператор

// readAccessParams.setCount(4);

.

...