|
|
|
|
|
|
|
import eventlet |
|
|
|
eventlet.monkey_patch() |
|
|
|
|
|
from flask import Flask, request, send_from_directory |
|
from flask_cors import CORS |
|
from flask_socketio import SocketIO |
|
|
|
|
|
app = Flask(__name__, static_folder="static", static_url_path="/static") |
|
CORS(app) |
|
socketio = SocketIO(app, cors_allowed_origins="*") |
|
|
|
motor_states = {f"motor_{i}": 0.0 for i in range(6)} |
|
|
|
|
|
@app.route("/") |
|
def index(): |
|
return send_from_directory("static", "index.html") |
|
|
|
|
|
@app.route("/sinus") |
|
def sinus(): |
|
return send_from_directory("static", "sinus.html") |
|
|
|
|
|
@app.route("/motor_control", methods=["POST"]) |
|
def http_control(): |
|
data = request.json or {} |
|
motor_states.update(data) |
|
print("HTTP POST:", data) |
|
return {"status": "ok", "motor_states": motor_states} |
|
|
|
|
|
@socketio.on("connect") |
|
def on_connect(): |
|
print("Client connected") |
|
|
|
|
|
@socketio.on("motor_control") |
|
def on_ws_control(data): |
|
motor_states.update(data) |
|
print("WS:", data) |
|
socketio.emit("motor_states", motor_states) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
socketio.run(app, host="0.0.0.0", port=7860) |
|
|