X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=VendServer%2FVendServer.py;h=77cc0bfe07493c80d98a68faef5414848938c7bb;hb=612326d117d22e76c65a729271b2fa4d02bb71b8;hp=3ac2b81cb710486eb52750ccada0ccb7cc951155;hpb=2a07cd688d615b7996be7420b2e9e38696c210cd;p=uccvend-vendserver.git diff --git a/VendServer/VendServer.py b/VendServer/VendServer.py index 3ac2b81..77cc0bf 100755 --- a/VendServer/VendServer.py +++ b/VendServer/VendServer.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# vim:ts=4 +# vim: ts=4 sts=4 sw=4 noexpandtab USE_MIFARE = 1 @@ -370,7 +370,8 @@ class VendServer(): self.vstatus.cur_pin = '' self.vstatus.cur_user = '' self.vstatus.cur_selection = '' - _last_card_id = -1 + self._last_card_id = -1 + self.dispense.logOut() self.vstatus.mk.set_messages([(self.center('BYE!'), False, 1.5)]) self.reset_idler(2) return @@ -385,7 +386,7 @@ class VendServer(): return else: self.vstatus.cur_selection += chr(key + ord('0')) - if self.vstatus.cur_user: + if self.dispense.isLoggedIn(): self.make_selection() self.vstatus.cur_selection = '' self.vstatus.time_to_autologout = time() + 8 @@ -405,6 +406,7 @@ class VendServer(): Triggered when the user has entered the id of something they would like to purchase. """ def make_selection(self): + logging.debug('Dispense item "%s"' % (self.vstatus.cur_selection,)) # should use sudo here if self.vstatus.cur_selection == '55': self.vstatus.mk.set_message('OPENSESAME') @@ -470,6 +472,7 @@ class VendServer(): if key == 11: if self.vstatus.cur_pin == '': self.vstatus.cur_user = '' + self.dispense.logOut() slef.reset_idler() return @@ -479,8 +482,8 @@ class VendServer(): self.vstatus.cur_pin += chr(key + ord('0')) self.vstatus.mk.set_message('PIN: '+'X'*len(self.vstatus.cur_pin)) if len(self.vstatus.cur_pin) == PIN_LENGTH: - self.dispense.authUserIdPin(self.vstatus.cur_user, self.vstatus.cur_pin) - if self.dispense.getUsername(): + if self.dispense.authUserIdPin(self.vstatus.cur_user, self.vstatus.cur_pin): + self.vstatus.username = self.dispense.getUsername() self.v.beep(0, False) self.vstatus.cur_selection = '' self.vstatus.change_state(STATE_GET_SELECTION) @@ -517,6 +520,7 @@ class VendServer(): if len(self.vstatus.cur_user) <8: if key == 11: self.vstatus.cur_user = '' + self.dispense.logOut() self.reset_idler() return @@ -596,6 +600,7 @@ class VendServer(): key = params if key == 11: self.vstatus.cur_user = '' + self.dispense.logOut() self.reset_idler() return @@ -760,6 +765,7 @@ class VendServer(): logging.warning("Entering open door mode") self.v.display("-FEED ME-") #door_open_mode(v); + self.dispense.logOut() self.vstatus.cur_user = '' self.vstatus.cur_pin = '' elif params == 1: #door closed @@ -780,9 +786,7 @@ class VendServer(): self._last_card_id = card_id - self.dispense.authMifareCard(card_id) - logging.info('Mapped card id to uid %s'%self.dispense.getUsername()) - if not self.dispense.isLoggedIn(): + if not self.dispense.authMifareCard(card_id): self.v.beep(40, False) self.vstatus.mk.set_messages( [(self.center('BAD CARD'), False, 1.0), @@ -794,6 +798,7 @@ class VendServer(): self.reset_idler(2) return elif self.dispense.isDisabled(): + logging.info('Mapped card id to uid %s'%self.dispense.getUsername()) self.v.beep(40, False) self.vstatus.mk.set_messages( [(self.center('ACCT DISABLED'), False, 1.0), @@ -802,6 +807,9 @@ class VendServer(): self.reset_idler(2) return else: + logging.info('Mapped card id to uid %s'%self.dispense.getUsername()) + self.vstatus.cur_user = '----' + self.vstatus.username = self.dispense.getUsername() self.vstatus.cur_selection = '' self.vstatus.change_state(STATE_GET_SELECTION) self.scroll_options(self.vstatus.username, self.vstatus.mk, True)