X-Git-Url: https://git.ucc.asn.au/?p=uccvend-vendserver.git;a=blobdiff_plain;f=VendServer%2FMIFAREClient.py;fp=VendServer%2FMIFAREClient.py;h=e0b6a6c83eed31f73bdbc6b1194b60adac73baee;hp=0000000000000000000000000000000000000000;hb=6c130dc942392ccc8b7ffa0ec2ede5f9327f99e6;hpb=e423f11f190d685156cb557319b169d2b79b752f diff --git a/VendServer/MIFAREClient.py b/VendServer/MIFAREClient.py new file mode 100644 index 0000000..e0b6a6c --- /dev/null +++ b/VendServer/MIFAREClient.py @@ -0,0 +1,44 @@ +from MIFAREDriver import MIFAREReader, MIFAREException +from serial import Serial +from LDAPConnector import get_uid, set_card_id + +class MIFAREClient: + def __init__(self): + self.port = Serial('/dev/ttyS2', baudrate = 19200) + self.reader = MIFAREReader(self.port) + self.reader.set_led(red = False, green = True) + self.reader.beep(100) + + def get_card_id(self): + self.reader.set_led(red = True, green = False) + try: + card_id, capacity = self.reader.select_card() + except MIFAREException: + self.reader.set_led(red = False, green = True) + return None + else: + self.reader.set_led(red = False, green = True) + self.reader.beep(100) + return card_id + + def get_card_uid(self): + card_id = self.get_card_id() + if card_id == None: + return None + else: + return get_uid(card_id) + + def add_card(self, uid): + self.reader.set_led(red = True, green = False) + for attempt in range(5): + self.reader.beep(50) + try: + card_id, capacity = self.reader.select_card() + except MIFAREException: + pass + else: + set_card_id(uid, card_id) + self.reader.set_led(red = False, green = True) + return True + self.reader.set_led(red = False, green = True) + return False