-
Notifications
You must be signed in to change notification settings - Fork 110
/
gpio_pin.go
25 lines (18 loc) · 936 Bytes
/
gpio_pin.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package board
import "context"
// A GPIOPin represents an individual GPIO pin on a board.
type GPIOPin interface {
// Set sets the pin to either low or high.
Set(ctx context.Context, high bool, extra map[string]interface{}) error
// Get gets the high/low state of the pin.
Get(ctx context.Context, extra map[string]interface{}) (bool, error)
// PWM gets the pin's given duty cycle.
PWM(ctx context.Context, extra map[string]interface{}) (float64, error)
// SetPWM sets the pin to the given duty cycle.
SetPWM(ctx context.Context, dutyCyclePct float64, extra map[string]interface{}) error
// PWMFreq gets the PWM frequency of the pin.
PWMFreq(ctx context.Context, extra map[string]interface{}) (uint, error)
// SetPWMFreq sets the given pin to the given PWM frequency. For Raspberry Pis,
// 0 will use a default PWM frequency of 800.
SetPWMFreq(ctx context.Context, freqHz uint, extra map[string]interface{}) error
}