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:
@@ -160,8 +160,8 @@ message EspNowUnicastTestResponse {
|
||||
uint32 seq = 2;
|
||||
}
|
||||
|
||||
// Host → device: LED ring display (progress bar, digit, clear, blink, or find-me).
|
||||
// mode: 0=clear, 1=progress (0–100 %), 2=digit (0–10), 3=blink full ring, 4=find-me (R/G/B ×3 @ full brightness).
|
||||
// Host → master: LED ring on master (client_id=0) and/or slaves via ESP-NOW.
|
||||
// mode: 0=clear, 1=progress (0–100 %), 2=digit (0–10), 3=blink, 4=find-me, 5=all LEDs solid color.
|
||||
message LedRingProgressRequest {
|
||||
uint32 mode = 1;
|
||||
/** 0–100: fraction of ring LEDs to light (mode=progress) */
|
||||
@@ -177,6 +177,12 @@ message LedRingProgressRequest {
|
||||
uint32 blink_ms = 8;
|
||||
/** Number of pulses (mode=blink, default 1) */
|
||||
uint32 blink_count = 9;
|
||||
/** 0 = master ring only; >0 = one slave; ignored when all_clients */
|
||||
uint32 client_id = 10;
|
||||
/** Broadcast to all registered slaves (and optionally master unless slaves_only) */
|
||||
bool all_clients = 11;
|
||||
/** With all_clients: do not change master ring */
|
||||
bool slaves_only = 12;
|
||||
}
|
||||
|
||||
message LedRingProgressResponse {
|
||||
@@ -184,6 +190,8 @@ message LedRingProgressResponse {
|
||||
uint32 mode = 2;
|
||||
uint32 progress = 3;
|
||||
uint32 digit = 4;
|
||||
uint32 client_id = 5;
|
||||
uint32 slaves_updated = 6;
|
||||
}
|
||||
|
||||
/** Host → master: find-me on local ring (client_id=0) or ESP-NOW unicast to one slave. */
|
||||
|
||||
Reference in New Issue
Block a user