body: web joystick handle timeout

pull/24219/head
George Hotz 3 years ago
parent acd455ed3a
commit df6c2b6af9
  1. 17
      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/<x>/<y>")
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")

Loading…
Cancel
Save