2018 ROM installed - revert display workaround
[uccvend-vendserver.git] / VendServer / VendServer.py
index 77cc0bf..c3cb3cb 100755 (executable)
@@ -140,8 +140,6 @@ class VendServer():
                # If the user has just logged in, show them their balance
                if welcome:
                        balance = self.dispense.getBalance()
-                       balance = balance[:-4] + '.' + balance[-4] + balance[-2:]   # Work around display bug
-                       
                        msg = [(self.center('WELCOME'), False, TEXT_SPEED),
                                   (self.center(self.dispense.getUsername()), False, TEXT_SPEED),
                                   (self.center(balance), False, TEXT_SPEED),]
@@ -336,12 +334,14 @@ class VendServer():
                                self.vstatus.last_timeout_refresh = int(time_left)
                                self.vstatus.cur_selection = ''
 
+               # Login timed out: Log out the current user.
                if self.vstatus.time_to_autologout != None and self.vstatus.time_to_autologout - time() <= 0:
                        self.vstatus.time_to_autologout = None
                        self.vstatus.cur_user = ''
                        self.vstatus.cur_pin = ''
                        self.vstatus.cur_selection = ''
                        self._last_card_id = -1
+                       self.dispense.logOut()
                        self.reset_idler()
 
                ### State fully logged out ... reset variables
@@ -382,6 +382,7 @@ class VendServer():
                        if key == 11:
                                self.vstatus.cur_selection = ''
                                self.vstatus.time_to_autologout = None
+                               self.dispense.logOut()
                                self.scroll_options(self.vstatus.username, self.vstatus.mk)
                                return
                        else:
@@ -395,7 +396,6 @@ class VendServer():
                                        # Price check mode.
                                        (name,price) = self.dispense.getItemInfo(self.vstatus.cur_selection)
                                        dollarprice = "$%.2f" % ( price / 100.0 )
-                                       dollarprice = dollarprice[:-4] + '.' + dollarprice[-4] + dollarprice[-2:]   # Work around display bug
                                        self.v.display( self.vstatus.cur_selection+' - %s'%dollarprice)
 
                                        self.vstatus.cur_selection = ''
@@ -445,12 +445,13 @@ class VendServer():
                        exitcode = os.system('dispense -u "%s" snack:%s'%(self.vstatus.username, self.vstatus.cur_selection)) >> 8
                        if (exitcode == 0):
                                # magic dispense syslog service
-                               syslog.syslog(syslog.LOG_INFO | syslog.LOG_LOCAL4, "vended %s (slot %s) for %s" % (name, self.vstatus.cur_selection, self.vstatus.username))
                                (worked, code, string) = self.v.vend(self.vstatus.cur_selection)
                                if worked:
                                        self.v.display('THANK YOU')
+                                       syslog.syslog(syslog.LOG_INFO | syslog.LOG_LOCAL4, "vended %s (slot %s) for %s" % (name, self.vstatus.cur_selection, self.vstatus.username))
                                else:
                                        print "Vend Failed:", code, string
+                                       syslog.syslog(syslog.LOG_WARNING | syslog.LOG_LOCAL4, "vending %s (slot %s) for %s FAILED %r %r" % (name, self.vstatus.cur_selection, self.vstatus.username, code, string))
                                        self.v.display('VEND FAIL')
                        elif (exitcode == 5):   # RV_BALANCE
                                self.v.display('NO MONEY?')
@@ -473,7 +474,7 @@ class VendServer():
                                if self.vstatus.cur_pin == '':
                                        self.vstatus.cur_user = ''
                                        self.dispense.logOut()
-                                       slef.reset_idler()
+                                       self.reset_idler()
 
                                        return
                                self.vstatus.cur_pin = ''

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