#!/usr/bin/env python3
import time
import threading
from flask import Flask
import cereal.messaging as messaging
app = Flask(__name__)
pm = messaging.PubMaster(['testJoystick'])
index = """
"""
@app.route("/")
def hello_world():
return index
last_send_time = time.monotonic()
@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))
dat = messaging.new_message('testJoystick')
dat.testJoystick.axes = [y,x]
dat.testJoystick.buttons = [False]
pm.send('testJoystick', dat)
last_send_time = time.monotonic()
return ""
def handle_timeout():
while 1:
this_time = time.monotonic()
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)
def main():
threading.Thread(target=handle_timeout, daemon=True).start()
app.run(host="0.0.0.0")
if __name__ == '__main__':
main()