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 для полных примеров кода: НФК-mfultralight.c.

Однако вы можете захотеть адаптировать этот код для использования более эффективной команды MIFARE Ultralight / NTAG WRITE (0xA2) вместо COMPATIBILITY WRITE (что MC_WRITE использует).

2

Другие решения

Других решений пока нет …