From fc7c9284cee71e552ee65304e6d970d66adabec8 Mon Sep 17 00:00:00 2001 From: Aleksander Mistewicz Date: Mon, 5 Mar 2018 18:38:42 +0100 Subject: [PATCH] Add stm SetLED support to CLI New flags, "-led1" and "-led2", take a string argument of 3 commma separated values in 0-255 range (8-bit). Each value represents a basic color, in red, green, blue order. Example (set led1 to pink): stm -led1 128,16,32 SetLED is a part of STM interface that only priviledged users should have access to. "-remote" flag should be set to correct path. Change-Id: Idd1b6b39b420f8a91c0aa1cf0f05c2586efdd66b --- sw/nanopi/cmd/stm/client.go | 27 +++++++++++++++++++++++++++ sw/nanopi/cmd/stm/stm.go | 1 + 2 files changed, 28 insertions(+) diff --git a/sw/nanopi/cmd/stm/client.go b/sw/nanopi/cmd/stm/client.go index 7fd86f9..a6ad9b6 100644 --- a/sw/nanopi/cmd/stm/client.go +++ b/sw/nanopi/cmd/stm/client.go @@ -104,3 +104,30 @@ func (d *display) run(dev stm.Interface) { checkErr("failed to print on the display: ", dev.PrintText(d.x, d.y, stm.Foreground, d.text)) } } + +type leds struct { + led1, led2 string +} + +func (l *leds) setFlags() { + flag.StringVar(&l.led1, "led1", "", + "set the color of led1; accepted format 'r,g,b' where each is value in 0-255 range") + flag.StringVar(&l.led2, "led2", "", + "set the color of led2; accepted format 'r,g,b' where each is value in 0-255 range") +} + +func (l *leds) setLED(dev stm.Interface, led string, stmLED stm.LED) { + var r, g, b uint8 + _, err := fmt.Sscanf(led, "%d,%d,%d", &r, &g, &b) + checkErr("failed to parse the led argument: ", err) + checkErr("failed to update value for led: ", dev.SetLED(stmLED, r, g, b)) +} + +func (l *leds) run(dev stm.Interface) { + if l.led1 != "" { + l.setLED(dev, l.led1, stm.LED1) + } + if l.led2 != "" { + l.setLED(dev, l.led2, stm.LED2) + } +} diff --git a/sw/nanopi/cmd/stm/stm.go b/sw/nanopi/cmd/stm/stm.go index 26ac7eb..34d4263 100644 --- a/sw/nanopi/cmd/stm/stm.go +++ b/sw/nanopi/cmd/stm/stm.go @@ -50,6 +50,7 @@ func main() { new(cutter), new(current), new(display), + new(leds), } for _, cmd := range allCommands { cmd.setFlags() -- 2.7.4