Mercurial > templog
diff server/ts.py @ 96:b2d0887fb306
be quicker responding
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Mon, 16 Jul 2012 22:56:41 +0800 |
parents | 229b740a607f |
children | 9485da05bc11 |
line wrap: on
line diff
--- a/server/ts.py Mon Jul 16 21:50:39 2012 +0800 +++ b/server/ts.py Mon Jul 16 22:56:41 2012 +0800 @@ -1,7 +1,7 @@ #!/usr/bin/env python2.7 # time that the bluetooth takes to get going? -EXTRA_WAKEUP = 0 +EXTRA_WAKEUP = -3 FETCH_TRIES = 3 @@ -34,8 +34,10 @@ def get_socket(addr): s = bluetooth.BluetoothSocket( bluetooth.RFCOMM ) + L("connecting") s.connect((addr, 1)) s.setblocking(False) + s.settimeout(1) return s @@ -49,7 +51,7 @@ lines = [] l = readline(sock) if l != 'START\n': - W("Bad expected START line '%s'\n" % l.rstrip('\n')) + W("Bad expected START line '%s'\n" % str(l).rstrip('\n')) return None crc = crc16(l, crc) @@ -108,7 +110,7 @@ rem = int(toks['rem']) tick_secs = int(toks['tick_secs']) - tick_secs = int(toks['tick_wake']) + tick_wake = int(toks['tick_wake']) next_wake = int(toks['next_wake']) rem_secs = float(rem) / tick_wake * tick_secs @@ -181,6 +183,7 @@ if '--daemon' in sys.argv: utils.cheap_daemon() + next_wake_time = 0 while True: sock = None try: @@ -188,7 +191,6 @@ except Exception, e: #logging.exception("Error connecting") pass - next_wake_time = 0 if sock: try: avr_wake = do_comms(sock) @@ -196,11 +198,14 @@ except Exception, e: logging.exception("Error in do_comms") - next_wake_interval = next_wake_time - time.time() - EXTRA_WAKEUP + next_wake_interval = next_wake_time - time.time() + EXTRA_WAKEUP sleep_time = config.SLEEP_TIME if next_wake_interval > 0: sleep_time = min(next_wake_interval, sleep_time) - L("Sleeping for %d, next wake time %f" % (sleep_time, next_wake_time)) + if next_wake_interval < 0 and next_wake_interval > -30: + L("not sleeping, next_wake_interval overdue %f" % next_wake_interval) + continue + L("Sleeping for %d, next wake interval %f" % (sleep_time, next_wake_interval)) sleep_for(sleep_time) if __name__ == '__main__':