summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xwpa_supplicant/examples/wps-nfc.py51
1 files changed, 29 insertions, 22 deletions
diff --git a/wpa_supplicant/examples/wps-nfc.py b/wpa_supplicant/examples/wps-nfc.py
index 39c206f18..634ea6b49 100755
--- a/wpa_supplicant/examples/wps-nfc.py
+++ b/wpa_supplicant/examples/wps-nfc.py
@@ -46,6 +46,26 @@ def wpas_tag_read(message):
return
print wpas.request("WPS_NFC_TAG_READ " + message.encode("hex"))
+
+def wps_tag_read(tag):
+ if len(tag.ndef.message):
+ message = nfc.ndef.Message(tag.ndef.message)
+ print "message type " + message.type
+
+ for record in message:
+ print "record type " + record.type
+ if record.type == "application/vnd.wfa.wsc":
+ print "WPS tag - send to wpa_supplicant"
+ wpas_tag_read(tag.ndef.message)
+ break
+ else:
+ print "Empty tag"
+
+ print "Remove tag"
+ while tag.is_present:
+ time.sleep(0.1)
+
+
def main():
clf = nfc.ContactlessFrontend()
@@ -55,31 +75,18 @@ def main():
while True:
tag = clf.poll()
- if tag and tag.ndef:
+ if tag == None:
+ continue
+
+ if tag.ndef:
+ wps_tag_read(tag)
break
+
if tag:
- print "Not an NDEF tag"
+ print "Not an NDEF tag - remove tag"
while tag.is_present:
- time.sleep(0.2)
-
- if len(tag.ndef.message):
- message = nfc.ndef.Message(tag.ndef.message)
- print "message type " + message.type
-
- for record in message:
- print "record type " + record.type
- if record.type == "application/vnd.wfa.wsc":
- print "WPS tag - send to wpa_supplicant"
- wpas_tag_read(tag.ndef.message)
- break
- else:
- print "Empty tag"
-
- print "Remove tag"
- while tag.is_present:
- time.sleep(0.2)
-
- print "Ok"
+ time.sleep(0.1)
+ break
except KeyboardInterrupt:
raise SystemExit