//go:build (arm || arm64) && linux package PinControlService import "github.com/stianeikeland/go-rpio" 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() }