libnfc: запись и чтение пользовательских данных из NTAG
Я долго пытался писать и читать данные с моих карт NFC. Карты NTAG216. Я могу использовать примеры libnfc, чтобы прочитать идентификатор производителя, и он работает нормально. Но мне нужно записать в каждый тег некоторые пользовательские данные, например строку "abcdefg", и прочитать их обратно.
Я прочитал почти все, что мог найти о libnfc, но все они не говорят об этой конкретной области. Буду признателен за любые рекомендации. Пример кода будет оценен.
Я использую ACRU122 NFC для чтения / записи с libnfc 1.7.1 от Github.
1 ответ
После того как вы перечислили и активировали тег, вы можете использовать метод nfc_initiator_transceive_bytes()
отправлять необработанные команды NTAG (такие как READ/WRITE) в тег. Поскольку набор команд NTAG216 совместим с набором команд MIFARE Ultralight (включая команду COMPATIBILITY WRITE), вы также можете использовать вспомогательные методы для тегов MIFARE, определенных в utils / mifare.h:
nfc_initiator_mifare_cmd(pnd, MC_WRITE, page, &mp)
nfc_initiator_mifare_cmd(pnd, MC_READ, page, &mp)
См. Утилиту nfc-mfultralight для полных примеров кода: nfc-mfultralight.c.
Однако вы можете захотеть адаптировать этот код для использования более эффективной команды MIFARE Ultralight/NTAG WRITE (0xA2) вместо COMPATIBILITY WRITE (что MC_WRITE
использует).