git.ucc.asn.au
/
uccvend-vendserver.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix stupid crypto bug
[uccvend-vendserver.git]
/
sql-edition
/
servers
/
VendServer.py
diff --git
a/sql-edition/servers/VendServer.py
b/sql-edition/servers/VendServer.py
index
c82dda8
..
8c5ab73
100755
(executable)
--- a/
sql-edition/servers/VendServer.py
+++ b/
sql-edition/servers/VendServer.py
@@
-10,12
+10,13
@@
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 random import random, seed
from VendingMachine import VendingMachine, VendingException
from MessageKeeper import MessageKeeper
from HorizScroll import HorizScroll
from random import random, seed
-from Idler import TrainIdler,GrayIdler,StringIdler
+from Idler import TrainIdler,GrayIdler,StringIdler
,ClockIdler,FortuneIdler,FileIdler
import socket
from posix import geteuid
import socket
from posix import geteuid
@@
-189,28
+190,49
@@
idler = None
def setup_idlers(v):
global idlers, idler
idlers = [
def setup_idlers(v):
global idlers, idler
idlers = [
- StringIdler(v),
+ GrayIdler(v),
+ StringIdler(v, text="Kill 'em all", repeat=False),
+ GrayIdler(v,one="*",zero="-"),
StringIdler(v, text=CREDITS),
StringIdler(v, text=CREDITS),
+ GrayIdler(v,one="/",zero="\\"),
+ FileIdler(v, '/etc/passwd'),
+ GrayIdler(v,one="X",zero="O"),
+ FileIdler(v, '/usr/share/common-licenses/GPL-2'),
+ GrayIdler(v,one="*",zero="-",reorder=1),
StringIdler(v, text=str(math.pi) + " "),
StringIdler(v, text=str(math.pi) + " "),
+ GrayIdler(v,one="/",zero="\\",reorder=1),
StringIdler(v, text=str(math.e) + " "),
StringIdler(v, text=str(math.e) + " "),
- GrayIdler(v),
+ GrayIdler(v,one="X",zero="O",reorder=1),
+ FortuneIdler(v),
+ ClockIdler(v),
+ StringIdler(v),
TrainIdler(v),
TrainIdler(v),
- GrayIdler(v,one="*",zero="-"),
- GrayIdler(v,one="/",zero="\\"),
- GrayIdler(v,one="X",zero="O"),
- GrayIdler(v,one="*",zero="-",reorder=1),
- GrayIdler(v,one="/",zero="\\",reorder=1),
- GrayIdler(v,one="X",zero="O",reorder=1),
+ ]
+ disabled = [
]
idler = choose_idler()
def choose_idler():
global idler
]
idler = choose_idler()
def choose_idler():
global idler
- idler = idlers[int(random()*len(idlers))]
+ iiindex = 0
+
+ if idler:
+ iiindex = idlers.index(idler)
+
+ iilen = len(idlers)
+
+ move = int(random()*len(idlers)) + 1
+
+ while move >= 0:
+ idler = idlers[( (iiindex + 1) % iilen)]
+ move = move - idler.affinity()
+
idler.reset()
def idle_step():
global idler
idler.reset()
def idle_step():
global idler
+ if idler.finished():
+ choose_idler()
idler.next()
def run_forever(rfh, wfh, options, cf):
idler.next()
def run_forever(rfh, wfh, options, cf):
@@
-395,7
+417,11
@@
def run_forever(rfh, wfh, options, cf):
time_to_autologout = time() + 8
def connect_to_vend(options, cf):
time_to_autologout = time() + 8
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)
@@
-536,7
+562,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