first draft of QR Code serial reader

This commit is contained in:
Davide Alberani 2017-04-01 14:43:22 +02:00
parent c1f591a1ec
commit f43a429deb

50
tools/qrcode_reader.py Executable file
View file

@ -0,0 +1,50 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import io
import serial
import requests
class Connector():
def __init__(self, login_url, checkin_url, username=None, password=None):
self.login_url = login_url
self.checkin_url = checkin_url
self.session = requests.Session()
json = {}
if username:
json['username'] = username
if password:
json['password'] = password
req = self.session.post(login_url, json=json, verify=False)
req.raise_for_status()
req.connection.close()
def checkin(self, code):
req = self.session.put(self.checkin_url + '?order_nr=' + code[:9], json={'attended': True}, verify=False)
req.raise_for_status()
req.connection.close()
def scan():
ser = serial.Serial(port='/dev/ttyACM0', timeout=1)
ser_io = io.TextIOWrapper(io.BufferedRWPair(ser, ser, 1), newline='\r', line_buffering=True)
while True:
line = ser_io.readline().strip()
if not line:
continue
yield line
if __name__ == '__main__':
connector = Connector(login_url='https://localhost:5242/v1.0/login',
checkin_url='https://localhost:5242/v1.0/events/1490640884_8820477-7-7gvft6nlrs2o73fza54a6yeywiowmj8v/tickets/',
username='admin',
password='eventman')
try:
for code in scan():
print(code)
connector.checkin(code)
except KeyboardInterrupt:
print('exiting...')