...
This commit is contained in:
55
internal/PinControlService/HardwarePinRpi.go
Normal file
55
internal/PinControlService/HardwarePinRpi.go
Normal file
@@ -0,0 +1,55 @@
|
||||
//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()
|
||||
}
|
||||
Reference in New Issue
Block a user