Add MIFARE interface support, including LDAP layer.
[zanchey/dispense2.git] / sql-edition / servers / MIFAREClient.py
1 from MIFAREDriver import MIFAREReader, MIFAREException\r
2 from serial import Serial\r
3 from LDAPConnector import get_uid, set_card_id\r
4 \r
5 class MIFAREClient:\r
6     def __init__(self):\r
7         self.port = Serial('/dev/ttyS2', baudrate = 19200)\r
8         self.reader = MIFAREReader(self.port)\r
9         self.reader.set_led(red = False, green = True)\r
10         self.reader.beep(100)\r
11     \r
12     def get_card(self):\r
13         self.reader.set_led(red = True, green = False)\r
14         try:\r
15             card_id, capacity = self.reader.select_card()\r
16         except MIFAREException:\r
17             self.reader.set_led(red = False, green = True)\r
18             return None\r
19         else:\r
20             self.reader.set_led(red = False, green = True)\r
21             self.reader.beep(100)\r
22             return card_id\r
23     \r
24     def add_card(self, uid):\r
25         self.reader.set_led(red = True, green = False)\r
26         for attempt in range(5):\r
27             self.reader.beep(50)\r
28             try:\r
29                 card_id, capacity = self.reader.select_card()\r
30             except MIFAREException:\r
31                 pass\r
32             else:\r
33                 set_card_id(card_id, uid)\r
34                 self.reader.set_led(red = False, green = True)\r
35                 return True\r
36         self.reader.set_led(red = False, green = True)\r
37         return False

UCC git Repository :: git.ucc.asn.au