Frage zu nfcpy

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
luemmel76
User
Beiträge: 22
Registriert: Freitag 26. Februar 2016, 17:42
Wohnort: Südhessen

Hallo zusammen,

ich möchte mit nfcpy den reinen Text eines NFC-Tags auslesen, wie müsste ich dieses Beispiel erweitern damit ich nur noch 'TPNR0001' ausgegeben bekomme?
Also ohne die Angaben record 1, type, name und '\x02en vor ZPNR0001

nfctest.py

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: latin-1 -*-

import os
import sys
sys.path.insert(1, os.path.split(sys.path[0])[0])

import nfc
import nfc.clf
import nfc.ndef
import nfc.tag

def connected(tag): print(tag.ndef.message.pretty() if tag.ndef else "Sorry, no NDEF"); return False
clf = nfc.ContactlessFrontend('usb')
tag = clf.connect(rdwr={'on-connect': connected})

clf.close()
Ausgabe:

Code: Alles auswählen

record 1
  type   = 'urn:nfc:wkt:T'
  name   = ''
  data   = '\x02enTPNR0001'

Gruß
Thilo
BlackJack

@luemmel76: Du musst Dich halt durch die Dokumentation arbeiten wie so ein Message-Objekt aufgebaut ist (besteht aus 0 bis x Record-Objekten) und dann wie die Record-Objekte aufgebaut sind, speziell das welches Dich interessiert, und wie da dann die Attribute heissen welche die einzelnen Teile von `data` enthalten. https://nfcpy.readthedocs.org/en/latest ... /ndef.html
BlackJack

@luemmel76: Die `sys.path.insert()`-Geschichte am Anfang ist übrigens leicht merkwürdig. Es ist nicht spezifiziert was genau an Index 0 steht. Üblicherweise ist das aber die leere Zeichenkette für das aktuelle Arbeitsverzeichnis. Da kann aber auch sonst was stehen.
luemmel76
User
Beiträge: 22
Registriert: Freitag 26. Februar 2016, 17:42
Wohnort: Südhessen

@BlackJack: Zuerst noch der Link zu dem Bereich aus dem ich mein Beispiel habe: http://nfcpy.readthedocs.org/en/latest/ ... write-tags

Die `sys.path.insert()`-Geschichte am Anfang habe ich aus einem der mitgelieferten Python-Beispiele nehmen müssen da sonst die Meldung kam das nfc nicht gefunden werden kann (ergoogelt). Muß mal googeln wie man die nfc Modulpfade in Python einbindet...
Edit: Wollte eben den genauen Meldungswortlaut rausfinden und hab dazu diese `sys.path.insert()`-Geschichte auskommentiert, jetzt geht das auf einmal auch ohne...

Zurück zum eigentlichen Thema, mit Hilfe von nochmaligem googeln https://answers.launchpad.net/nfcpy/+question/262036 hab ich es jetzt doch hin bekommen :D

hier mein nfctest.py

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: latin-1 -*-

import nfc
import nfc.clf
import nfc.ndef
import nfc.tag

def connected(tag): print(nfc.ndef.TextRecord(tag.ndef.message[0]).text if tag.ndef else "Sorry, no NDEF"); return
False
clf = nfc.ContactlessFrontend('usb')
tag = clf.connect(rdwr={'on-connect': connected})

clf.close()
Danke und Gruß
Thilo
Antworten