File size: 1,219 Bytes
595094e b8c72c0 595094e b8c72c0 595094e b3a2577 b8c72c0 cf34346 b3a2577 cf34346 595094e b8c72c0 595094e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import eventlet
from flask import Flask, request, send_from_directory
from flask_cors import CORS
from flask_socketio import SocketIO
# 1) static under /static
app = Flask(__name__, static_folder="static", static_url_path="/static")
CORS(app)
# 2) Socket.IO with wildcard CORS
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)
# broadcast new states back if you like
socketio.emit("motor_states", motor_states)
if __name__ == "__main__":
# 3) run under eventlet on port 7860 (HF Spaces HTTPS)
eventlet.monkey_patch()
socketio.run(app, host="0.0.0.0", port=7860)
|