1
0
Fork 0
mirror of https://github.com/kidoman/embd synced 2025-07-04 20:37:46 +02:00

make the framework easier to begin with

This commit is contained in:
Karan Misra 2014-03-01 20:19:44 +05:30
parent ef87ad7879
commit 3d08995000
26 changed files with 237 additions and 170 deletions

View file

@ -1,5 +1,7 @@
package gpio
import "github.com/kidoman/embd/host"
type Direction int
const (
@ -16,14 +18,71 @@ type DigitalPin interface {
Write(val int) error
Read() (int, error)
SetDir(dir Direction) error
SetDirection(dir Direction) error
ActiveLow(b bool) error
Close() error
}
type GPIO interface {
type gpio interface {
DigitalPin(key interface{}) (DigitalPin, error)
Close() error
}
var instance gpio
func Open() error {
desc, err := host.Describe()
if err != nil {
return err
}
instance = desc.GPIO().(gpio)
return nil
}
func Close() error {
return instance.Close()
}
func NewDigitalPin(key interface{}) (DigitalPin, error) {
return instance.DigitalPin(key)
}
func DigitalWrite(key interface{}, val int) error {
pin, err := NewDigitalPin(key)
if err != nil {
return err
}
return pin.Write(val)
}
func DigitalRead(key interface{}) (int, error) {
pin, err := NewDigitalPin(key)
if err != nil {
return 0, err
}
return pin.Read()
}
func SetDirection(key interface{}, dir Direction) error {
pin, err := NewDigitalPin(key)
if err != nil {
return err
}
return pin.SetDirection(dir)
}
func ActiveLow(key interface{}, b bool) error {
pin, err := NewDigitalPin(key)
if err != nil {
return err
}
return pin.ActiveLow(b)
}