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")
|
||||
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)
|
||||
|
||||
|
||||
@app.route("/external")
|
||||
@app.route("/ws")
|
||||
@with_websocket
|
||||
async def ws(request, ws):
|
||||
patterns.select("external")
|
||||
while True:
|
||||
data = await ws.receive()
|
||||
print(data)
|
||||
for i in range(min(patterns.num_leds, int(len(data)/3))):
|
||||
patterns.set(i, (data[i*3], data[i*3+1], data[i*3+2]))
|
||||
patterns.write()
|
||||
if data:
|
||||
# Process the received data
|
||||
_, status_code = set_settings(data, settings, patterns)
|
||||
await ws.send(status_code)
|
||||
else:
|
||||
break
|
||||
|
||||
return app
|
||||
|
|
Loading…
Reference in New Issue