mirror of
https://github.com/kidoman/embd
synced 2025-07-03 03:47:33 +02:00
led: support led functionality on the bbb
This commit is contained in:
parent
f7b316332e
commit
bf8a4be4d9
9 changed files with 322 additions and 3 deletions
59
led.go
Normal file
59
led.go
Normal file
|
@ -0,0 +1,59 @@
|
|||
package embd
|
||||
|
||||
type LED interface {
|
||||
On() error
|
||||
Off() error
|
||||
|
||||
Toggle() error
|
||||
|
||||
Close() error
|
||||
}
|
||||
|
||||
type LEDDriver interface {
|
||||
LED(key interface{}) (LED, error)
|
||||
|
||||
Close() error
|
||||
}
|
||||
|
||||
var ledDriverInstance LEDDriver
|
||||
|
||||
func InitLED() error {
|
||||
desc, err := DescribeHost()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if desc.LEDDriver == nil {
|
||||
return ErrFeatureNotSupport
|
||||
}
|
||||
|
||||
ledDriverInstance = desc.LEDDriver()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func CloseLED() error {
|
||||
return ledDriverInstance.Close()
|
||||
}
|
||||
|
||||
func NewLED(key interface{}) (LED, error) {
|
||||
return ledDriverInstance.LED(key)
|
||||
}
|
||||
|
||||
func LEDOn(key interface{}) error {
|
||||
led, err := NewLED(key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return led.On()
|
||||
}
|
||||
|
||||
func LEDOff(key interface{}) error {
|
||||
led, err := NewLED(key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return led.Off()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue