embd/describe.go

32 lines
524 B
Go

package embd
import (
"errors"
"github.com/kidoman/embd/gpio"
"github.com/kidoman/embd/host/bbb"
"github.com/kidoman/embd/host/rpi"
"github.com/kidoman/embd/i2c"
)
type descriptor interface {
GPIO() gpio.GPIO
I2C() i2c.I2C
}
func describeHost() (descriptor, error) {
host, rev, err := DetectHost()
if err != nil {
return nil, err
}
switch host {
case HostRPi:
return rpi.Descriptor(rev), nil
case HostBBB:
return bbb.Descriptor(rev), nil
default:
return nil, errors.New("host: invalid host")
}
}