git.ucc.asn.au
/
zanchey
/
dispense2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
allow dispensing of actual snacks.
[zanchey/dispense2.git]
/
sql-edition
/
servers
/
VendServer.py
diff --git
a/sql-edition/servers/VendServer.py
b/sql-edition/servers/VendServer.py
index
e17de1c
..
03a7bf5
100755
(executable)
--- a/
sql-edition/servers/VendServer.py
+++ b/
sql-edition/servers/VendServer.py
@@
-10,7
+10,8
@@
from traceback import format_tb
if USE_DB: import pg
from time import time, sleep
from popen2 import popen2
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
from HorizScroll import HorizScroll
from VendingMachine import VendingMachine, VendingException
from MessageKeeper import MessageKeeper
from HorizScroll import HorizScroll
@@
-276,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
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
if time_to_idle == None and cur_user == '':
time_to_idle = time() + 5
@@
-405,18
+407,28
@@
def run_forever(rfh, wfh, options, cf):
continue
elif cur_selection[1] == '8':
v.display('GOT COKE?')
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:
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
cur_selection = ''
time_to_autologout = time() + 8
+ last_timeout_refresh = None
def connect_to_vend(options, cf):
def connect_to_vend(options, cf):
- # Open vending machine via LAT?
+ # 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)
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)
@@
-557,7
+569,7
@@
def do_vend_server(options, config_opts):
while True:
try:
rfh, wfh = connect_to_vend(options, config_opts)
while True:
try:
rfh, wfh = connect_to_vend(options, config_opts)
- except (
LAT
ClientException, socket.error), e:
+ except (
Serial
ClientException, socket.error), e:
(exc_type, exc_value, exc_traceback) = sys.exc_info()
del exc_traceback
logging.error("Connection error: "+str(exc_type)+" "+str(e))
(exc_type, exc_value, exc_traceback) = sys.exc_info()
del exc_traceback
logging.error("Connection error: "+str(exc_type)+" "+str(e))
UCC
git Repository :: git.ucc.asn.au