if USE_DB: import pg
from time import time, sleep
from popen2 import popen2
-from LATClient import LATClient
+from LATClient import LATClient, LATClientException
from VendingMachine import VendingMachine, VendingException
from HorizScroll import HorizScroll
from random import random, seed
else:
return None
-def door_open_mode(vending_machine):
+def door_open_mode(v):
print "Entering open door mode"
v.display("-FEED ME-")
while True:
return rfh, wfh
-if __name__ == '__main__':
- from ConfigParser import ConfigParser
+def parse_args():
from optparse import OptionParser
op = OptionParser(usage="%prog [OPTION]...")
if len(args) != 0:
op.error('extra command line arguments: ' + ' '.join(args))
- cp = ConfigParser()
- cp.read(options.config_file)
- DBServer = cp.get('Database', 'Server')
- DBName = cp.get('Database', 'Name')
- DBUser = cp.get('VendingMachine', 'DBUser')
- DBPassword = cp.get('VendingMachine', 'DBPassword')
+ return options
+
+if __name__ == '__main__':
+ import ConfigParser
- ServiceName = cp.get('VendingMachine', 'ServiceName')
- ServicePassword = cp.get('VendingMachine', 'Password')
+ options = parse_args()
- ServerName = cp.get('DecServer', 'Name')
- ConnectPassword = cp.get('DecServer', 'ConnectPassword')
- PrivPassword = cp.get('DecServer', 'PrivPassword')
+ try:
+ cp = ConfigParser.ConfigParser()
+ cp.read(options.config_file)
+ DBServer = cp.get('Database', 'Server')
+ DBName = cp.get('Database', 'Name')
+ DBUser = cp.get('VendingMachine', 'DBUser')
+ DBPassword = cp.get('VendingMachine', 'DBPassword')
+
+ ServiceName = cp.get('VendingMachine', 'ServiceName')
+ ServicePassword = cp.get('VendingMachine', 'Password')
+
+ ServerName = cp.get('DecServer', 'Name')
+ ConnectPassword = cp.get('DecServer', 'ConnectPassword')
+ PrivPassword = cp.get('DecServer', 'PrivPassword')
+ except ConfigParser.Error, e:
+ print "Error reading config file: " + str(e)
+ sys.exit(1)
while True:
try:
- rfh, wfh = connect_to_vend(options, DBServer, DBName, DBUser, DBPassword, ServiceName, ServicePassword, ServerName, ConnectPassword, PrivPassword)
- except Exception:
+ rfh, wfh = connect_to_vend(options, DBServer, DBName, DBUser, DBPassword, ServiceName, ServicePassword, ServerName, ConnectPassword, PrivPassword)
+ except (LATClientException, socket.error), e:
(exc_type, exc_value, exc_traceback) = sys.exc_info()
- print "Connection error ("+str(exc_type)+"):"
+ print
+ print "Connection error: "+str(exc_type)+" "+str(e)
print_tb(exc_traceback)
del exc_traceback
print "Trying again in 5 seconds."
try:
run_forever(rfh, wfh)
except VendingException:
+ print
print "Connection died, trying again..."