X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=sql-edition%2Fservers%2FMIFAREDriver.py;fp=sql-edition%2Fservers%2FMIFAREDriver.py;h=46a073192d48ae97a53c5ee3f658136f987bc9c5;hb=1dbac750026cfc6886c6bfd9139a4a87fa61b016;hp=a3a65b6797dd6744f4baae08b74c3bce1b01baa6;hpb=d2fa91c1c1601cf8918023716f31952c32b3391c;p=zanchey%2Fdispense2.git diff --git a/sql-edition/servers/MIFAREDriver.py b/sql-edition/servers/MIFAREDriver.py index a3a65b6..46a0731 100644 --- a/sql-edition/servers/MIFAREDriver.py +++ b/sql-edition/servers/MIFAREDriver.py @@ -7,7 +7,7 @@ Requires Python 2.5. Licensed under an MIT-style license: see LICENSE file for details. ''' -import serial +import serial, logging xor = lambda x, y: x ^ y def checksum(string): @@ -111,7 +111,12 @@ class MIFAREReader: serial = self.send_packet(command)[3:] # Select the card for use - capacity = ord(self.send_packet('\x03\x02' + serial)[3]) + try: + select_response = self.send_packet('\x03\x02' + serial) + capacity = ord(select_response[3]) + except IndexError: + logging.warning('Tried to select card but failed: card_type %s, serial %s, select_response %s' % (card_type.__repr__(), serial.__repr__(), select_response.__repr__())) + capacity = 0 return (serial, capacity) def sector_login(self, blockvect, key, keytype=0):