Skip to content

Instantly share code, notes, and snippets.

@sora
Forked from gucchan22/attendance.py
Last active October 2, 2016 16:25
Show Gist options
  • Save sora/4fd48fa20b88f3aaec17fc4d14471415 to your computer and use it in GitHub Desktop.
Save sora/4fd48fa20b88f3aaec17fc4d14471415 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, time, random
import nfc
import pprint
#import requests
import binascii
usbid = 'usb:054c:06c3'
servcode = 0x110B
class StudentIDReader(object):
def on_connect(self, tag):
print "touched"
service_code = [nfc.tag.tt3.ServiceCode(servcode >> 6, servcode & 0x3f)]
students_id = [nfc.tag.tt3.BlockCode(i) for i in range(1, 2)]
result_id = tag.read_without_encryption(service_code, students_id)
self.res_id = int(result_id[0:8])
def read_id(self):
print "read"
try:
clf = nfc.ContactlessFrontend(usbid)
except IOError as error:
sys.stderr.write("no device found")
return 3
try:
clf.connect(rdwr={'on-connect': self.on_connect})
finally:
clf.close()
def main():
cr = StudentIDReader()
previd = 0
while True:
print "touch card:"
try:
cr.read_id()
finally:
print "unknown error"
sys.exit()
print "release"
if cr.res_id != previd:
print cr.res_id
previd = cr.res_id
if __name__ == '__main__':
main()
# -*- coding: utf-8 -*-
import datetime
import sqlite3
class MeiboDB(object):
def __init__(self):
self.filename = "meibo_%s.sqlite3" % str(datetime.date.today())
self.conn = sqlite3.connect(self.filename)
def filename(self):
print self.filename
def close(self):
self.conn.close()
def main():
db = MeiboDB()
print "create database: %s" % db.filename
db.close
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment