mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-02 03:52:11 +08:00
body: web joystick
old-commit-hash: d7b849720cc6354543b60718414b2a07bf45a172
This commit is contained in:
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
from flask import Flask
|
||||
import cereal.messaging as messaging
|
||||
|
||||
app = Flask(__name__)
|
||||
pm = messaging.PubMaster(['testJoystick'])
|
||||
|
||||
index = """
|
||||
<html>
|
||||
<head>
|
||||
<script src="https://github.com/bobboteck/JoyStick/releases/download/v1.1.6/joy.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="joyDiv" style="width:100%;height:100%"></div>
|
||||
<script type="text/javascript">
|
||||
// Create JoyStick object into the DIV 'joyDiv'
|
||||
var joy = new JoyStick('joyDiv');
|
||||
setInterval(function(){
|
||||
var x = -joy.GetX()/100;
|
||||
var y = joy.GetY()/100;
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "/control/"+x+"/"+y);
|
||||
xhr.send();
|
||||
}, 50);
|
||||
</script>
|
||||
"""
|
||||
|
||||
@app.route("/")
|
||||
def hello_world():
|
||||
return index
|
||||
|
||||
@app.route("/control/<x>/<y>")
|
||||
def control(x, y):
|
||||
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)
|
||||
return ""
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host="0.0.0.0")
|
||||
|
||||
Reference in New Issue
Block a user