add mock mode, websocket display stream, and text editor
- mock_rpi_ws281x: stub for running without RPi hardware; auto-fallback on RuntimeError, forced via --mock flag or MOCK_LED env var - mock mode runs web server on port 8080 instead of 80 - replace display polling with WebSocket stream (/ws/display); client sends start/stop messages, server pushes binary RGB frames - force-button feedback: button shows waiting state and polls until the cycle clears the flag - text editor UI: edit top and bottom texts with per-segment color pickers; saved to texts.json for persistence across restarts - bottom and top texts read from server state instead of hardcoded - bottom text switched to _add_multi_color_node to support multi-color - fix bottom text invisible: split scroll_all_multi_color_texts into top (y<8) and bottom (y>=8) passes so fill_pixels does not wipe bottom nodes before they are drawn; this also fixes force-vehicles polling loop that stalled when the bottom node never expired Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"top": [
|
||||
{
|
||||
"text": "Witamy w PTI",
|
||||
"colors": [
|
||||
{"r": 40, "g": 40, "b": 40, "from": 0},
|
||||
{"r": 0, "g": 0, "b": 50, "from": 9}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bottom": [
|
||||
{"text": "Technik informatyk + ai, robotyka", "colors": [{"r": 0, "g": 0, "b": 50, "from": 0}]},
|
||||
{"text": "Technik programista", "colors": [{"r": 50, "g": 40, "b": 0, "from": 0}]},
|
||||
{"text": "Technik poligrafii i grafiki komputerowej", "colors": [{"r": 0, "g": 45, "b": 0, "from": 0}]},
|
||||
{"text": "Technik reklamy", "colors": [{"r": 60, "g": 20, "b": 0, "from": 0}]}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user