Add LED ring control per client and broadcast over REST and WebSocket.
Solid color mode fills all ring LEDs; master routes UART commands to slaves via ESPNOW_LED_RING. goTool exposes POST /api/led-ring, WebSocket set_led_ring, and a dashboard LED panel with master/slave/all targets. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-3
@@ -378,14 +378,19 @@ Control the 95-LED ring from the host. The firmware **does not** animate digits
|
||||
|
||||
| Field | Meaning |
|
||||
|-------|---------|
|
||||
| `mode` | `0` = clear, `1` = progress bar, `2` = digit, `3` = blink full ring, `4` = find-me (R/G/B ×3 @ full brightness) |
|
||||
| `mode` | `0` = clear, `1` = progress, `2` = digit (0–10), `3` = blink, `4` = find-me, `5` = solid color (all LEDs) |
|
||||
| `progress` | 0–100 (% of ring lit, mode `1`) |
|
||||
| `digit` | 0–10 (mode `2`, same segment maps as built-in digits) |
|
||||
| `digit` | 0–10 (mode `2`, segment maps in `led_ring.c`) |
|
||||
| `r`, `g`, `b` | Color 0–255 |
|
||||
| `intensity` | Brightness 0–255 (scaled into RGB; `0` → firmware default ~5 %) |
|
||||
| `blink_ms`, `blink_count` | Pulse length and count (mode `3`; defaults 350 ms, 1) |
|
||||
| `client_id` | `0` = master ring only; `>0` = ESP-NOW unicast to one slave |
|
||||
| `all_clients` | Broadcast to all registered slaves |
|
||||
| `slaves_only` | With `all_clients`: do not change master ring |
|
||||
|
||||
**Response:** `led_ring_progress_response` (`success`, `mode`, `progress`, `digit`).
|
||||
**Response:** `led_ring_progress_response` (`success`, `mode`, `progress`, `digit`, `client_id`, `slaves_updated`).
|
||||
|
||||
Slaves receive the same command via ESP-NOW `ESPNOW_LED_RING` and run it locally.
|
||||
|
||||
```bash
|
||||
go run . -port /dev/ttyUSB0 led-ring -mode progress -progress 75 -g 80 -b 255
|
||||
@@ -395,6 +400,8 @@ go run . -port /dev/ttyUSB0 led-ring -mode blink -g 255 -blink-count 2
|
||||
go run . -port /dev/ttyUSB0 find-me
|
||||
go run . -port /dev/ttyUSB0 find-me -client 16
|
||||
go run . -port /dev/ttyUSB0 led-ring -mode find-me
|
||||
go run . -port /dev/ttyUSB0 led-ring -mode color -r 255 -g 0 -b 0 -client 16
|
||||
go run . -port /dev/ttyUSB0 led-ring -mode digit -digit 5 -all
|
||||
```
|
||||
|
||||
### CLIENT_INFO command
|
||||
|
||||
Reference in New Issue
Block a user