Dim LED ring, add blink mode, and signal OTA outcome on the ring.
Default brightness is ~5%; UART blink mode and green/red pulses mark OTA success or failure. Failed UART uploads skip ESP-NOW distribution. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+17
-10
@@ -11,17 +11,20 @@ const (
|
||||
ledRingModeClear = 0
|
||||
ledRingModeProgress = 1
|
||||
ledRingModeDigit = 2
|
||||
ledRingModeBlink = 3
|
||||
)
|
||||
|
||||
func runLedRing(sp *serialPort, args []string) error {
|
||||
fs := flag.NewFlagSet("led-ring", flag.ExitOnError)
|
||||
mode := fs.String("mode", "progress", "clear, progress, or digit")
|
||||
mode := fs.String("mode", "progress", "clear, progress, digit, or blink")
|
||||
progress := fs.Uint("progress", 0, "fill level 0–100 (mode=progress)")
|
||||
digit := fs.Uint("digit", 0, "digit 0–10 (mode=digit)")
|
||||
r := fs.Uint("r", 0, "red 0–255")
|
||||
g := fs.Uint("g", 255, "green 0–255")
|
||||
b := fs.Uint("b", 0, "blue 0–255")
|
||||
intensity := fs.Uint("intensity", 255, "brightness 0–255")
|
||||
intensity := fs.Uint("intensity", 0, "brightness 0–255 (0 = device default ~5%)")
|
||||
blinkMs := fs.Uint("blink-ms", 350, "pulse length in ms (mode=blink)")
|
||||
blinkCount := fs.Uint("blink-count", 1, "number of pulses (mode=blink)")
|
||||
if err := fs.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -34,18 +37,22 @@ func runLedRing(sp *serialPort, args []string) error {
|
||||
modeVal = ledRingModeProgress
|
||||
case "digit":
|
||||
modeVal = ledRingModeDigit
|
||||
case "blink":
|
||||
modeVal = ledRingModeBlink
|
||||
default:
|
||||
return fmt.Errorf("unknown -mode %q (clear, progress, digit)", *mode)
|
||||
return fmt.Errorf("unknown -mode %q (clear, progress, digit, blink)", *mode)
|
||||
}
|
||||
|
||||
resp, err := sp.ledRingProgress(&pb.LedRingProgressRequest{
|
||||
Mode: modeVal,
|
||||
Progress: uint32(*progress),
|
||||
Digit: uint32(*digit),
|
||||
R: uint32(*r),
|
||||
G: uint32(*g),
|
||||
B: uint32(*b),
|
||||
Intensity: uint32(*intensity),
|
||||
Mode: modeVal,
|
||||
Progress: uint32(*progress),
|
||||
Digit: uint32(*digit),
|
||||
R: uint32(*r),
|
||||
G: uint32(*g),
|
||||
B: uint32(*b),
|
||||
Intensity: uint32(*intensity),
|
||||
BlinkMs: uint32(*blinkMs),
|
||||
BlinkCount: uint32(*blinkCount),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user