ACR122u режим эмуляции карты отправлять команды PN532
Я только что прочитал этот ответ о том, как перевести мой ACR122U в режим эмуляции карты. Я понимаю цель, но как вам нужно отправить команды на ACR122u.
Насколько я знаю, FF000000 означает:
- FF [Класс]
- 00 [INS]
- 00 [P1]
- 00 [P2]
Я просто не могу понять, как я могу отправить фактическую команду PN532, например:
- FF000000 08 D406 6305 630D 6338
- FF000000 11 D408 6302 80 6303 80 6305 xx 630D гг 6338 zz
Я зашел так далеко:
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals;
try {
terminals = factory.terminals().list();
CardTerminal terminal = terminals.get(0);
Card card = terminal.connect("*");
CardChannel channel = card.getBasicChannel();
byte[] command = {???};
CommandAPDU command1 = new CommandAPDU(0xFF,0x00,0x00,0x00, command);
ResponseAPDU response1 = channel.transmit(command1);
System.out.println(bytesToHex(response1.getBytes()));
} catch (CardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Я ценю вашу помощь!
Спасибо заранее!!
1 ответ
Решение
Предполагая 08 D406 6305 630D 6338 означает
- 08 [Lc]
- D406 6305 630D 6338 [данные]
Это будет выглядеть так:
byte[] command = new byte[8] { (byte) 0xD4, 0x06, 0x63, 0x05, 0x63, 0x0D, 0x63, 0x38 };
Вы можете оставить 8
Поскольку Javac будет считать байты для вас.