Seite 1 von 1

Frage zu nfcpy

Verfasst: Mittwoch 13. April 2016, 17:04
von luemmel76
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

Re: Frage zu nfcpy

Verfasst: Mittwoch 13. April 2016, 17:20
von 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

Re: Frage zu nfcpy

Verfasst: Mittwoch 13. April 2016, 17:23
von 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.

Re: Frage zu nfcpy

Verfasst: Mittwoch 13. April 2016, 22:27
von luemmel76
@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