本文整理汇总了Golang中github.com/hybridgroup/gobot/sysfs.NewDigitalPin函数的典型用法代码示例。如果您正苦于以下问题:Golang NewDigitalPin函数的具体用法?Golang NewDigitalPin怎么用?Golang NewDigitalPin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewDigitalPin函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: connectArduinoBoard
func (e *EdisonAdaptor) connectArduinoBoard() (err error) {
if err = e.tristate.Direction(sysfs.OUT); err != nil {
return err
}
if err = e.tristate.Write(sysfs.LOW); err != nil {
return err
}
// Setup mux HIGH
for _, i := range []int{263, 262} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return err
}
if err = io.Direction(sysfs.OUT); err != nil {
return err
}
if err = io.Write(sysfs.HIGH); err != nil {
return err
}
if err = io.Unexport(); err != nil {
return err
}
}
// Setup mux LOW
for _, i := range []int{240, 241, 242, 243} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return err
}
if err = io.Direction(sysfs.OUT); err != nil {
return err
}
if err = io.Write(sysfs.LOW); err != nil {
return err
}
if err = io.Unexport(); err != nil {
return err
}
}
// Arduino IO1, IO4 and IO13
for _, i := range []string{"131", "129", "40"} {
if err = changePinMode(i, "0"); err != nil {
return err
}
}
err = e.tristate.Write(sysfs.HIGH)
return
}
开发者ID:abourget,项目名称:gobot,代码行数:53,代码来源:edison_adaptor.go
示例2: I2cStart
// I2cStart initializes i2c device for addresss
func (e *EdisonAdaptor) I2cStart(address int) (err error) {
if e.i2cDevice != nil {
return
}
if err = e.tristate.Write(sysfs.LOW); err != nil {
return
}
for _, i := range []int{14, 165, 212, 213} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return
}
if err = io.Direction(sysfs.IN); err != nil {
return
}
if err = io.Unexport(); err != nil {
return
}
}
for _, i := range []int{236, 237, 204, 205} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return
}
if err = io.Direction(sysfs.OUT); err != nil {
return
}
if err = io.Write(sysfs.LOW); err != nil {
return
}
if err = io.Unexport(); err != nil {
return
}
}
for _, i := range []string{"28", "27"} {
if err = changePinMode(i, "1"); err != nil {
return
}
}
if err = e.tristate.Write(sysfs.HIGH); err != nil {
return
}
e.i2cDevice, err = sysfs.NewI2cDevice("/dev/i2c-6", address)
return
}
开发者ID:ympons,项目名称:gobot,代码行数:52,代码来源:edison_adaptor.go
示例3: digitalPin
// digitalPin returns matched digitalPin for specified values
func (r *RaspiAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
var i int
if val, ok := pins[pin][r.revision]; ok {
i = val
} else if val, ok := pins[pin]["*"]; ok {
i = val
} else {
err = errors.New("Not a valid pin")
return
}
if r.digitalPins[i] == nil {
r.digitalPins[i] = sysfs.NewDigitalPin(i)
if err = r.digitalPins[i].Export(); err != nil {
return
}
}
if err = r.digitalPins[i].Direction(dir); err != nil {
return
}
return r.digitalPins[i], nil
}
开发者ID:katgironpe,项目名称:gobot,代码行数:26,代码来源:raspi_adaptor.go
示例4: digitalPin
// digitalPin retrieves digital pin value by name
func (b *BeagleboneAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
i, err := b.translatePin(pin)
if err != nil {
return
}
if b.digitalPins[i] == nil {
b.digitalPins[i] = sysfs.NewDigitalPin(i)
err := b.digitalPins[i].Export()
if err != nil {
return nil, err
}
}
if err = b.digitalPins[i].Direction(dir); err != nil {
return
}
return b.digitalPins[i], nil
}
开发者ID:ympons,项目名称:gobot,代码行数:18,代码来源:beaglebone_adaptor.go
示例5: digitalPin
// digitalPin returns matched digitalPin for specified values
func (r *RaspiAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
i, err := r.translatePin(pin)
if err != nil {
return
}
if r.digitalPins[i] == nil {
r.digitalPins[i] = sysfs.NewDigitalPin(i)
if err = r.digitalPins[i].Export(); err != nil {
return
}
}
if err = r.digitalPins[i].Direction(dir); err != nil {
return
}
return r.digitalPins[i], nil
}
开发者ID:aryanugroho,项目名称:gobot,代码行数:21,代码来源:raspi_adaptor.go
示例6: digitalPin
// digitalPin returns matched digitalPin for specified values
func (c *ChipAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
i, err := c.translatePin(pin)
if err != nil {
return
}
if c.digitalPins[i] == nil {
c.digitalPins[i] = sysfs.NewDigitalPin(i)
if err = c.digitalPins[i].Export(); err != nil {
return
}
}
if err = c.digitalPins[i].Direction(dir); err != nil {
return
}
return c.digitalPins[i], nil
}
开发者ID:ympons,项目名称:gobot,代码行数:21,代码来源:chip_adaptor.go
示例7: NewEdisonAdaptor
// NewEdisonAdaptor returns a new EdisonAdaptor with specified name
func NewEdisonAdaptor(name string) *EdisonAdaptor {
return &EdisonAdaptor{
name: name,
//i2cDevices: make(map[int]io.ReadWriteCloser),
//i2cDevices: make(map[int]io.ReadWriteCloser),
connect: func(e *EdisonAdaptor) (err error) {
e.tristate = sysfs.NewDigitalPin(214)
if err = e.tristate.Export(); err != nil {
// edison: Failed to initialize Arduino board TriState
// assuming miniboard:
e.miniboard = true
e.sysfsPinMap = sysfsPinsMiniboard
return e.connectMiniboard()
} else {
e.sysfsPinMap = sysfsPinsArduino
return e.connectArduinoBoard()
}
},
}
}
开发者ID:abourget,项目名称:gobot,代码行数:22,代码来源:edison_adaptor.go
示例8: digitalPin
// digitalPin returns matched digitalPin for specified values
func (e *JouleAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
i := sysfsPinMap[pin]
if e.digitalPins[i.pin] == nil {
e.digitalPins[i.pin] = sysfs.NewDigitalPin(i.pin)
if err = e.digitalPins[i.pin].Export(); err != nil {
// TODO: log error
return
}
}
if dir == "in" {
if err = e.digitalPins[i.pin].Direction(sysfs.IN); err != nil {
return
}
} else if dir == "out" {
if err = e.digitalPins[i.pin].Direction(sysfs.OUT); err != nil {
return
}
}
return e.digitalPins[i.pin], nil
}
开发者ID:ympons,项目名称:gobot,代码行数:22,代码来源:joule_adaptor.go
示例9: I2cStart
// I2cStart initializes i2c device for addresss
func (e *EdisonAdaptor) I2cStart(address int) (err error) {
if e.i2cDevice != nil {
return
}
// FIXME: the I2cDevice interface doesn,t support multiple buses,
// like the miniboard.. We select bus-6 by default here.
if e.miniboard {
for _, i := range []string{"20", "19"} /* bus-1 */ {
//for _, i := range []string{"28", "27"} /* bus-6 */ {
if err = changePinMode(i, "1"); err != nil {
return
}
}
e.i2cDevice, err = sysfs.NewI2cDevice("/dev/i2c-1", address)
} else {
if err = e.tristate.Write(sysfs.LOW); err != nil {
return
}
// Confiure IO18, IO19
// (ref: mraa's intel_edison_fab_c.c, func mraa_intel_edison_i2c_init_pre)
for _, i := range []int{14, 165, 212, 213} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return
}
if err = io.Direction(sysfs.IN); err != nil {
return
}
if err = io.Unexport(); err != nil {
return
}
}
// Continue on..
for _, i := range []int{236, 237, 204, 205} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return
}
if err = io.Direction(sysfs.OUT); err != nil {
return
}
if err = io.Write(sysfs.LOW); err != nil {
return
}
if err = io.Unexport(); err != nil {
return
}
}
// Activate the I2c bus-6
for _, i := range []string{"28", "27"} {
if err = changePinMode(i, "1"); err != nil {
return
}
}
if err = e.tristate.Write(sysfs.HIGH); err != nil {
return
}
e.i2cDevice, err = sysfs.NewI2cDevice("/dev/i2c-6", address)
}
return
}
开发者ID:abourget,项目名称:gobot,代码行数:73,代码来源:edison_adaptor.go
示例10: digitalPin
// digitalPin returns matched digitalPin for specified values
func (e *EdisonAdaptor) digitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPin, err error) {
i := e.sysfsPinMap[pin]
if e.digitalPins[i.gpioPin] == nil {
e.digitalPins[i.gpioPin] = sysfs.NewDigitalPin(i.gpioPin)
if err = e.digitalPins[i.gpioPin].Export(); err != nil {
return
}
if i.resistor != 0 {
e.digitalPins[i.resistor] = sysfs.NewDigitalPin(i.resistor)
if err = e.digitalPins[i.resistor].Export(); err != nil {
return
}
}
if i.levelShifter != 0 {
e.digitalPins[i.levelShifter] = sysfs.NewDigitalPin(i.levelShifter)
if err = e.digitalPins[i.levelShifter].Export(); err != nil {
return
}
}
for _, mux := range i.mux {
e.digitalPins[mux.pin] = sysfs.NewDigitalPin(mux.pin)
if err = e.digitalPins[mux.pin].Export(); err != nil {
return
}
if err = e.digitalPins[mux.pin].Direction(sysfs.OUT); err != nil {
return
}
if err = e.digitalPins[mux.pin].Write(mux.value); err != nil {
return
}
}
}
if dir == "in" {
if err = e.digitalPins[i.gpioPin].Direction(sysfs.IN); err != nil {
return
}
if i.resistor != 0 {
if err = e.digitalPins[i.resistor].Direction(sysfs.OUT); err != nil {
return
}
if err = e.digitalPins[i.resistor].Write(sysfs.LOW); err != nil {
return
}
}
if i.levelShifter != 0 {
if err = e.digitalPins[i.levelShifter].Direction(sysfs.OUT); err != nil {
return
}
if err = e.digitalPins[i.levelShifter].Write(sysfs.LOW); err != nil {
return
}
}
} else if dir == "out" {
if err = e.digitalPins[i.gpioPin].Direction(sysfs.OUT); err != nil {
return
}
if i.resistor != 0 {
if err = e.digitalPins[i.resistor].Direction(sysfs.IN); err != nil {
return
}
}
if i.levelShifter != 0 {
if err = e.digitalPins[i.levelShifter].Direction(sysfs.OUT); err != nil {
return
}
if err = e.digitalPins[i.levelShifter].Write(sysfs.HIGH); err != nil {
return
}
}
}
return e.digitalPins[i.gpioPin], nil
}
开发者ID:abourget,项目名称:gobot,代码行数:89,代码来源:edison_adaptor.go
示例11: NewEdisonAdaptor
// NewEdisonAdaptor returns a new EdisonAdaptor with specified name
func NewEdisonAdaptor(name string) *EdisonAdaptor {
return &EdisonAdaptor{
name: name,
//i2cDevices: make(map[int]io.ReadWriteCloser),
//i2cDevices: make(map[int]io.ReadWriteCloser),
connect: func(e *EdisonAdaptor) (err error) {
e.tristate = sysfs.NewDigitalPin(214)
if err = e.tristate.Export(); err != nil {
return err
}
if err = e.tristate.Direction(sysfs.OUT); err != nil {
return err
}
if err = e.tristate.Write(sysfs.LOW); err != nil {
return err
}
for _, i := range []int{263, 262} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return err
}
if err = io.Direction(sysfs.OUT); err != nil {
return err
}
if err = io.Write(sysfs.HIGH); err != nil {
return err
}
if err = io.Unexport(); err != nil {
return err
}
}
for _, i := range []int{240, 241, 242, 243} {
io := sysfs.NewDigitalPin(i)
if err = io.Export(); err != nil {
return err
}
if err = io.Direction(sysfs.OUT); err != nil {
return err
}
if err = io.Write(sysfs.LOW); err != nil {
return err
}
if err = io.Unexport(); err != nil {
return err
}
}
for _, i := range []string{"111", "115", "114", "109"} {
if err = changePinMode(i, "1"); err != nil {
return err
}
}
for _, i := range []string{"131", "129", "40"} {
if err = changePinMode(i, "0"); err != nil {
return err
}
}
err = e.tristate.Write(sysfs.HIGH)
return
},
}
}
开发者ID:ympons,项目名称:gobot,代码行数:68,代码来源:edison_adaptor.go
注:本文中的github.com/hybridgroup/gobot/sysfs.NewDigitalPin函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论