1
0
Fork 0
forked from bton/matekasse
matekasse/nfcreader.py
2023-07-28 23:30:45 +02:00

43 lines
No EOL
1.3 KiB
Python

import nfc
import subprocess
import datetime
import requests
import sys
time_tag = {}
def get_reader():
devices = subprocess.check_output("lsusb")
for i in devices.split(b'\n'):
if str(i).__contains__("Advanced Card Systems, Ltd ACR122U"):
bus = str(i).split(":")[0].split(" Device ")[0].split("Bus ")[1]
device = str(i).split(":")[0].split("Device ")[1]
return("usb:{}:{}".format(bus, device))
sys.exit("\n\n Error: NFC reader konnte nicht erkannt werden! \n\n")
def onTagSense(tag):
id = int.from_bytes(tag.identifier, "big")
if id in time_tag and time_tag[id] > datetime.datetime.now().timestamp() - float(2):
return False
else:
time_tag[id] = datetime.datetime.now().timestamp()
print(id)
response = requests.get(f"http://localhost:5000/api/tag_id?id={id}")
print(response.text)
if response.text == "True":
return True
elif response.text == "False":
return False
else:
print("Error: falstsche Response erhalten")
return False
def main():
device = get_reader()
clf = nfc.ContactlessFrontend(device)
clf.open(device)
while True:
print("sensing")
clf.connect(rdwr={'on-connect': onTagSense, 'beep-on-connect': True})
main()