1
0
Fork 0
mirror of https://github.com/kidoman/embd synced 2025-07-03 03:47:33 +02:00

simplify package structure

This commit is contained in:
Karan Misra 2014-03-03 00:51:23 +05:30
parent 3cae4064dc
commit 36f2c0486d
41 changed files with 736 additions and 885 deletions

89
gpio.go Normal file
View file

@ -0,0 +1,89 @@
package embd
type Direction int
const (
In Direction = iota
Out
)
const (
Low int = iota
High
)
type DigitalPin interface {
Write(val int) error
Read() (int, error)
SetDirection(dir Direction) error
ActiveLow(b bool) error
PullUp() error
PullDown() error
Close() error
}
type GPIO interface {
DigitalPin(key interface{}) (DigitalPin, error)
Close() error
}
var gpioInstance GPIO
func InitGPIO() error {
desc, err := DescribeHost()
if err != nil {
return err
}
gpioInstance = desc.GPIO()
return nil
}
func CloseGPIO() error {
return gpioInstance.Close()
}
func NewDigitalPin(key interface{}) (DigitalPin, error) {
return gpioInstance.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)
}