NFC-V ICODE SLIX (SL2S2002) - PullRequest
       85

NFC-V ICODE SLIX (SL2S2002)

0 голосов
/ 09 октября 2018

Я разрабатываю приложение для управления тегами ICODE SLIX-S под Android.Я нахожу проблемы с "SET_PASSWORD", как определено в листе данных (https://www.nxp.com/docs/en/data-sheet/SL2S2002_SL2S2102.pdf стр. 16).Об этой проблеме уже идет обсуждение ( пароль записи NFC-V SLIX-S ), но она не решена.Проблема, я думаю, заключается в формате команды, переданной в трансивер, я пробовал разные форматы, но без решения.Если кто-то решил, спасибо большое!

cmd = new byte[] {
    (byte)0x00,  // FLAGS
    (byte)0xB3,  // SET_PASSWORD!
    (byte)0x04, //manufacturer code (NXP should be 0x04)
    //0, 0, 0, 0, 0, 0, 0, 0,
    (byte)0x10,
    0, 0, 0, 0
};
//System.arraycopy(detectedTag.getId(), 0, cmd, 3, 8);  // paste tag UID into command
System.arraycopy(exorPassword, 0, cmd, 4, 4);
response = nfcV.transceive(cmd);  


W/System.err: android.nfc.TagLostException: Tag was lost.
    at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48) <- THIS ON TRANSCEIVE

1 Ответ

0 голосов
/ 14 марта 2019

Стек Android NFC-V не работает должным образом.Выход из проблемы тайм-аута на ОС Android.Таким образом, иногда, даже если вы получаете TagLost, команда выполняется на Icode SLIX2.Лучшее решение, которое я нашел, это использовать библиотеку NXP TapLink.Он заменяет стек NFC android и отлично работает с их тегами NXP (от Mifare до ICode).

Установленный пароль станет:

byte[] rand = iCodeSLIX2.getRandomNumber();
byte[] pwd = Utilities.xor(password, Utilities.append(rand, rand));
iCodeSLIX2.setPasswordWrite(pwd);
...