embd/led.go

60 lines
786 B
Go
Raw Normal View History

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()
}