Add websocket settings endpoint
This commit is contained in:
parent
cee8c20176
commit
0c219e0697
16
src/web.py
16
src/web.py
|
@ -24,18 +24,20 @@ def web(settings, patterns):
|
||||||
|
|
||||||
@app.post("/settings")
|
@app.post("/settings")
|
||||||
def settings_handler(request):
|
def settings_handler(request):
|
||||||
|
# Keep the POST handler for compatibility or alternative usage if needed
|
||||||
|
# For WebSocket updates, the /ws handler is now primary
|
||||||
return set_settings(request.body.decode('utf-8'), settings, patterns)
|
return set_settings(request.body.decode('utf-8'), settings, patterns)
|
||||||
|
|
||||||
|
@app.route("/ws")
|
||||||
@app.route("/external")
|
|
||||||
@with_websocket
|
@with_websocket
|
||||||
async def ws(request, ws):
|
async def ws(request, ws):
|
||||||
patterns.select("external")
|
|
||||||
while True:
|
while True:
|
||||||
data = await ws.receive()
|
data = await ws.receive()
|
||||||
print(data)
|
if data:
|
||||||
for i in range(min(patterns.num_leds, int(len(data)/3))):
|
# Process the received data
|
||||||
patterns.set(i, (data[i*3], data[i*3+1], data[i*3+2]))
|
_, status_code = set_settings(data, settings, patterns)
|
||||||
patterns.write()
|
await ws.send(status_code)
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
Loading…
Reference in New Issue