diff --git a/tools/joystick/web.py b/tools/joystick/web.py index 63dcbbae99..403041362e 100755 --- a/tools/joystick/web.py +++ b/tools/joystick/web.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 from flask import Flask +import time +import threading import cereal.messaging as messaging app = Flask(__name__) @@ -29,8 +31,10 @@ setInterval(function(){ def hello_world(): return index +last_send_time = time.time() @app.route("/control//") def control(x, y): + global last_send_time x,y = float(x), float(y) x = max(-1, min(1, x)) y = max(-1, min(1, y)) @@ -38,8 +42,21 @@ def control(x, y): dat.testJoystick.axes = [y,x] dat.testJoystick.buttons = [False] pm.send('testJoystick', dat) + last_send_time = time.time() return "" +def handle_timeout(): + while 1: + this_time = time.time() + if (last_send_time+0.5) < this_time: + print("timeout, no web in %.2f s" % (this_time-last_send_time)) + dat = messaging.new_message('testJoystick') + dat.testJoystick.axes = [0,0] + dat.testJoystick.buttons = [False] + pm.send('testJoystick', dat) + time.sleep(0.1) + if __name__ == '__main__': + threading.Thread(target=handle_timeout, daemon=True).start() app.run(host="0.0.0.0")