From 946aa2694f7886f1e03b8a7764ba29d9f018a0af Mon Sep 17 00:00:00 2001 From: Karan Misra Date: Fri, 11 Apr 2014 10:51:29 +0530 Subject: [PATCH] samples: full blinker rpi example this is a more complete version of the simple blinker. this cleans up after itself --- samples/.gitignore | 1 + samples/fullblinker.go | 50 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 samples/fullblinker.go diff --git a/samples/.gitignore b/samples/.gitignore index 76f5b5c..e3c16bb 100644 --- a/samples/.gitignore +++ b/samples/.gitignore @@ -3,6 +3,7 @@ analogshort bh1750fvi bmp085 bmp180 +fullblinker gpio gpiodetect gpiodirect diff --git a/samples/fullblinker.go b/samples/fullblinker.go new file mode 100644 index 0000000..6d18ef6 --- /dev/null +++ b/samples/fullblinker.go @@ -0,0 +1,50 @@ +// +build ignore + +// LED blinker, works OOTB on a RPi. + +package main + +import ( + "flag" + "fmt" + "os" + "os/signal" + "time" + + "github.com/kidoman/embd" + _ "github.com/kidoman/embd/host/rpi" +) + +func main() { + flag.Parse() + + if err := embd.InitLED(); err != nil { + panic(err) + } + defer embd.CloseLED() + + led, err := embd.NewLED(0) + if err != nil { + panic(err) + } + defer func() { + led.Off() + led.Close() + }() + + quit := make(chan os.Signal, 1) + signal.Notify(quit, os.Interrupt, os.Kill) + defer signal.Stop(quit) + + for { + select { + case <-time.After(250 * time.Millisecond): + if err := led.Toggle(); err != nil { + panic(err) + } + fmt.Printf("Toggled\n") + case <-quit: + return + } + } +}