56 lines
854 B
Go
56 lines
854 B
Go
//go:build (arm || arm64) && linux
|
|
|
|
package PinControlService
|
|
|
|
import "github.com/stianeikeland/go-rpio/v4"
|
|
|
|
type PinRpi struct {
|
|
pin rpio.Pin
|
|
}
|
|
|
|
func (p *PinRpi) Toggle() {
|
|
p.pin.Toggle()
|
|
}
|
|
|
|
func (p *PinRpi) High() {
|
|
p.pin.High()
|
|
}
|
|
func (p *PinRpi) Low() {
|
|
p.pin.Low()
|
|
}
|
|
func (p *PinRpi) Input() {
|
|
p.pin.Input()
|
|
}
|
|
func (p *PinRpi) Output() {
|
|
p.pin.Output()
|
|
}
|
|
func (p *PinRpi) Detect(e Edge) {
|
|
p.pin.Detect(rpio.Edge(e))
|
|
}
|
|
func (p *PinRpi) PullUp() {
|
|
p.pin.PullUp()
|
|
}
|
|
func (p *PinRpi) PullDown() {
|
|
p.pin.PullDown()
|
|
}
|
|
func (p *PinRpi) PullOff() {
|
|
p.pin.PullOff()
|
|
}
|
|
func (p *PinRpi) Read() State {
|
|
return State(p.pin.Read())
|
|
|
|
}
|
|
func (p *PinRpi) EdgeDetected() bool {
|
|
return p.pin.EdgeDetected()
|
|
}
|
|
|
|
func NewHardwarePin(n int) HardwarePinInterface {
|
|
return &PinRpi{
|
|
pin: rpio.Pin(n),
|
|
}
|
|
}
|
|
|
|
func HardwarePinOpen() error {
|
|
return rpio.Open()
|
|
}
|