У меня есть PN532, подключенный через UART к Raspberry Pi 3B. В скрипте Python (V3.7.4) я активирую читателя и читаю в форме данных тег. Если есть сообщение NDEF, я читаю данные тега и возвращаю записи NDEF в словаре. Все это основано на библиотеках nfcpy и ndeflib.
Проблема в том, что проверка тега для сообщения NDEF не работает должным образом. При эмуляции тега с помощью Android App NFC Tools Pro можно прочитать сообщение NDEF. При использовании различных других приложений сообщение NDEF не может быть прочитано. Когда я программирую реальный тег или карту с помощью инструментов NFC Pro, сообщение NDEF также не может быть найдено. Используя другие приложения или метку с помощью USB NFC-ридера или сканируя метку с помощью телефона, можно найти и прочитать данные NDEF.
Так что по некоторым причинам результат, если tag.ndef:
не всегда возвращаетправда, даже если он должен вернуть его.
from time import sleep
import nfc
import ndef
from nfc.clf import RemoteTarget
def parseNDEF():
with nfc.ContactlessFrontend("tty:S0:pn532") as clf:
while True:
target = clf.sense(RemoteTarget("106A"), RemoteTarget("106B"),
RemoteTarget("212F"))
print("Traget: "+str(target))
if target is None:
print("No target found ...")
sleep(0.5)
continue
serial = target.sdd_res.hex()
print("Found a target with serial " + serial + "!")
tag = nfc.tag.activate(clf, target)
print("tag data:\n" + str(tag.dump))
nfcrecs = {}
if tag.ndef:
print("Tag is NDEF formatted!")
print("It has " + str(len(tag.ndef.records)) + " records.")
i=1;
for record in tag.ndef.records:
print("Record: "+str(record))
nfcrecs["rec"+str(i)] = record.text
i+=1;
else:
print("No NDEF formatted tag.")
if (len(nfcrecs)>0):
return nfcrecs
Это результат чтения данных из инструментов Android App NFC Pro с PN532 на Pi: нажмите здесь
Я запрограммировал чип сте же данные, которые я отправил с приложением. Программирование также выполнялось с помощью инструментов NFC Pro. Это результат чтения чипа с помощью инструментов NFC Pro: нажмите здесь
Это результат, когда я прочитал запрограммированный выше чип с PN532 на Pi: нажмите здесь
Есть идеи, что здесь происходит?
Заранее благодарен за любую помощь.