86 lines
1.7 KiB
Go
86 lines
1.7 KiB
Go
|
// Copyright 2017 The Periph Authors. All rights reserved.
|
||
|
// Use of this source code is governed under the Apache License, Version 2.0
|
||
|
// that can be found in the LICENSE file.
|
||
|
|
||
|
// Emulate independent GPIOs.
|
||
|
|
||
|
package ftdi
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"time"
|
||
|
|
||
|
"periph.io/x/conn/v3/gpio"
|
||
|
"periph.io/x/conn/v3/physic"
|
||
|
)
|
||
|
|
||
|
// invalidPin is a non-working (not implemented) pin on a FTDI device.
|
||
|
//
|
||
|
// invalidPin implements gpio.PinIO.
|
||
|
type invalidPin struct {
|
||
|
n string
|
||
|
num int
|
||
|
}
|
||
|
|
||
|
// String implements pin.Pin.
|
||
|
func (p *invalidPin) String() string {
|
||
|
return p.n
|
||
|
}
|
||
|
|
||
|
// Name implements pin.Pin.
|
||
|
func (p *invalidPin) Name() string {
|
||
|
return p.n
|
||
|
}
|
||
|
|
||
|
// Number implements pin.Pin.
|
||
|
func (p *invalidPin) Number() int {
|
||
|
return p.num
|
||
|
}
|
||
|
|
||
|
// Function implements pin.Pin.
|
||
|
func (p *invalidPin) Function() string {
|
||
|
return "N/A"
|
||
|
}
|
||
|
|
||
|
// Halt implements gpio.PinIO.
|
||
|
func (p *invalidPin) Halt() error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// In implements gpio.PinIn.
|
||
|
func (p *invalidPin) In(pull gpio.Pull, e gpio.Edge) error {
|
||
|
return errors.New("d2xx: to be implemented")
|
||
|
}
|
||
|
|
||
|
// Read implements gpio.PinIn.
|
||
|
func (p *invalidPin) Read() gpio.Level {
|
||
|
return gpio.Low
|
||
|
}
|
||
|
|
||
|
// WaitForEdge implements gpio.PinIn.
|
||
|
func (p *invalidPin) WaitForEdge(t time.Duration) bool {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
// Pull implements gpio.PinIn.
|
||
|
func (p *invalidPin) Pull() gpio.Pull {
|
||
|
return gpio.PullNoChange
|
||
|
}
|
||
|
|
||
|
// DefaultPull implements gpio.PinIn.
|
||
|
func (p *invalidPin) DefaultPull() gpio.Pull {
|
||
|
return gpio.PullNoChange
|
||
|
}
|
||
|
|
||
|
// Out implements gpio.PinOut.
|
||
|
func (p *invalidPin) Out(l gpio.Level) error {
|
||
|
return errors.New("d2xx: to be implemented")
|
||
|
}
|
||
|
|
||
|
// PWM implements gpio.PinOut.
|
||
|
func (p *invalidPin) PWM(d gpio.Duty, f physic.Frequency) error {
|
||
|
return errors.New("d2xx: to be implemented")
|
||
|
}
|
||
|
|
||
|
var _ gpio.PinIO = &invalidPin{}
|