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:
parent
ef87ad7879
commit
3d08995000
26 changed files with 237 additions and 170 deletions
63
gpio/gpio.go
63
gpio/gpio.go
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue