# HG changeset patch # User Matt Johnston # Date 1338825042 -28800 # Node ID 740438e21ea07721bfe683d16839531da6fa8d9c # Parent 46070aaf29ea9c34fdacce19e4abff55513528af Fix bugs in server code (try actually running it) diff -r 46070aaf29ea -r 740438e21ea0 server/ts.py --- a/server/ts.py Sat May 26 10:17:27 2012 +0800 +++ b/server/ts.py Mon Jun 04 23:50:42 2012 +0800 @@ -2,13 +2,18 @@ BTADDR = "00:12:03:27:70:88" SLEEP_TIME = 180 +# time that the bluetooth takes to get going? +EXTRA_WAKEUP = 0 + +# avoid turning off the bluetooth etc. +TESTING = True import sys import httplib import time import traceback -from utils import monotonic_time, retry +from utils import monotonic_time, retry, readline lightblue = None try: @@ -19,7 +24,7 @@ def get_socket(addr): if lightblue: s = lightblue.socket() - s.connect(addr, 1) + s.connect((addr, 1)) else: s = bluetooth.BluetoothSocket( bluetooth.RFCOMM ) s.connect((addr, 1)) @@ -93,6 +98,8 @@ @retry() def turn_off(sock): + if TESTING: + return None sock.send("btoff\n"); # read newline l = readline(sock) @@ -106,7 +113,6 @@ return int(next_wake) - def do_comms(sock): d = None # serial could be unreliable, try a few times @@ -131,7 +137,7 @@ testcount = 0 def sleep_for(secs): - until = monotonic_time + secs + until = monotonic_time() + secs while True: length = until < monotonic_time() if length <= 0: @@ -141,7 +147,12 @@ def main(): while True: - sock = get_socket() + sock = None + try: + sock = get_socket(BTADDR) + except Exception, e: + print>>sys.stderr, "Error connecting:" + traceback.print_exc(file=sys.stderr) sleep_time = SLEEP_TIME if sock: next_wake = None @@ -149,10 +160,12 @@ next_wake = do_comms(sock) except Exception, e: print>>sys.stderr, "Error in do_comms:" - traceback.print_last(file=sys.stderr) + traceback.print_exc(file=sys.stderr) if next_wake: - sleep_time = min(next_wake, sleep_time) + sleep_time = min(next_wake+EXTRA_WAKEUP, sleep_time) + if TESTING: + print "Sleeping for %d" % sleep_time sleep_for(sleep_time) if __name__ == '__main__': diff -r 46070aaf29ea -r 740438e21ea0 server/utils.py --- a/server/utils.py Sat May 26 10:17:27 2012 +0800 +++ b/server/utils.py Mon Jun 04 23:50:42 2012 +0800 @@ -5,6 +5,7 @@ import select DEFAULT_TRIES = 3 +READLINE_SELECT_TIMEOUT = 20 __all__ = ('monotonic_time', 'retry') @@ -43,11 +44,8 @@ # Must be used as "@retry()" if arguments are defaulted def retry(retries=DEFAULT_TRIES, try_time = 1): def inner(func): - print "inner" def new_f(*args, **kwargs): - print "newf" for i in range(retries): - print "retry %d" % i d = func(*args, **kwargs) if d: return d