mirror of
https://github.com/kidoman/embd
synced 2024-11-10 19:48:53 +01:00
60 lines
833 B
Go
60 lines
833 B
Go
// +build ignore
|
|
|
|
// Universal LED blinker, works OOTB on a RPi / BBB.
|
|
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"os"
|
|
"os/signal"
|
|
"time"
|
|
|
|
"github.com/kidoman/embd"
|
|
_ "github.com/kidoman/embd/host/all"
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
panicIf(embd.InitLED())
|
|
defer embd.CloseLED()
|
|
|
|
led, err := embd.NewLED(ledToBlink())
|
|
panicIf(err)
|
|
defer led.Off()
|
|
|
|
quit := make(chan os.Signal, 1)
|
|
signal.Notify(quit, os.Interrupt, os.Kill)
|
|
defer signal.Stop(quit)
|
|
|
|
for {
|
|
select {
|
|
case <-time.After(200 * time.Millisecond):
|
|
panicIf(led.Toggle())
|
|
case <-quit:
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
func ledToBlink() string {
|
|
host, _, err := embd.DetectHost()
|
|
panicIf(err)
|
|
|
|
switch host {
|
|
case embd.HostRPi:
|
|
return "LED0"
|
|
case embd.HostBBB:
|
|
return "USR3"
|
|
}
|
|
|
|
panic("Unsupported host")
|
|
}
|
|
|
|
func panicIf(err error) {
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|