X-Git-Url: https://git.ucc.asn.au/?p=uccvend-vendserver.git;a=blobdiff_plain;f=sql-edition%2Fservers%2FVendServer.py;h=585e34bdc1384f0bc9b4f023dfabff490cf3a3b7;hp=8c5ab7323fca2abab4688a8c66294f1881d8173c;hb=247e57bba8f0d39711887737bd171a68ec977fa3;hpb=c76c74d4824b3a3ddf8d31dceae09a63bc083969 diff --git a/sql-edition/servers/VendServer.py b/sql-edition/servers/VendServer.py index 8c5ab73..585e34b 100755 --- a/sql-edition/servers/VendServer.py +++ b/sql-edition/servers/VendServer.py @@ -10,7 +10,7 @@ from traceback import format_tb if USE_DB: import pg from time import time, sleep from popen2 import popen2 -#from LATClient import LATClient, LATClientException +from LATClient import LATClient, LATClientException from SerialClient import SerialClient, SerialClientException from VendingMachine import VendingMachine, VendingException from MessageKeeper import MessageKeeper @@ -277,6 +277,7 @@ def run_forever(rfh, wfh, options, cf): if len(cur_pin) == PIN_LENGTH and mk.done() and time_to_autologout == None: # start autologout time_to_autologout = time() + 15 + last_timeout_refresh = None if time_to_idle == None and cur_user == '': time_to_idle = time() + 5 @@ -406,26 +407,33 @@ def run_forever(rfh, wfh, options, cf): continue elif cur_selection[1] == '8': v.display('GOT COKE?') - os.system('su - "%s" -c "dispense %s"'%(username, cur_selection[0])) + if ((os.system('su - "%s" -c "dispense %s"'%(username, cur_selection[0])) >> 8) != 0): + v.display('SEEMS NOT') + else: + v.display('GOT COKE!') else: - v.display('HERES A '+cur_selection) - v.vend(cur_selection) - sleep(0.5) - v.display('THANK YOU') - sleep(0.5) + v.display(cur_selection+' - $1.00') + if ((os.system('su - "%s" -c "dispense snack"'%(username)) >> 8) == 0): + v.vend(cur_selection) + v.display('THANK YOU') + else: + v.display('NO MONEY?') + sleep(1) cur_selection = '' time_to_autologout = time() + 8 + last_timeout_refresh = None def connect_to_vend(options, cf): - # Open vending machine via serial. - logging.info('Connecting to vending machine using serial') - serialclient = SerialClient(port = '/dev/ttyS1', baud = 9600) - return serialclient.get_fh() - + if options.use_lat: logging.info('Connecting to vending machine using LAT') latclient = LATClient(service = cf.ServiceName, password = cf.ServicePassword, server_name = cf.ServerName, connect_password = cf.ConnectPassword, priv_password = cf.PrivPassword) rfh, wfh = latclient.get_fh() + elif options.use_serial: + # Open vending machine via serial. + logging.info('Connecting to vending machine using serial') + serialclient = SerialClient(port = '/dev/ttyS1', baud = 9600) + rfh,wfh = serialclient.get_fh() else: #(rfh, wfh) = popen2('../../virtualvend/vvend.py') logging.info('Connecting to virtual vending machine on %s:%d'%(options.host,options.port)) @@ -442,7 +450,9 @@ def parse_args(): op = OptionParser(usage="%prog [OPTION]...") op.add_option('-f', '--config-file', default='/etc/dispense/servers.conf', metavar='FILE', dest='config_file', help='use the specified config file instead of /etc/dispense/servers.conf') - op.add_option('--virtualvend', action='store_false', default=True, dest='use_lat', help='use the virtual vending server instead of LAT') + op.add_option('--serial', action='store_true', default=True, dest='use_serial', help='use the serial port') + op.add_option('--lat', action='store_true', default=False, dest='use_lat', help='use LAT') + op.add_option('--virtualvend', action='store_false', default=True, dest='use_serial', help='use the virtual vending server instead of LAT') op.add_option('-n', '--hostname', dest='host', default='localhost', help='the hostname to connect to for virtual vending machine mode (default: localhost)') op.add_option('-p', '--port', dest='port', default=5150, type='int', help='the port number to connect to (default: 5150)') op.add_option('-l', '--log-file', metavar='FILE', dest='log_file', default='', help='log output to the specified file')