- add Makefile
- improve README.md - smaller fixes regarding configuration
This commit is contained in:
@@ -10,7 +10,7 @@ type Pin struct {
|
||||
Name string
|
||||
Direction PinDirection
|
||||
PullConfig PinPull
|
||||
InitialState PinCommand
|
||||
InitialState *PinCommand
|
||||
PinHandle HardwarePinInterface
|
||||
SendPollingEvents bool
|
||||
SendChangeEvents bool
|
||||
@@ -37,11 +37,7 @@ func NewPin(config PinConfig) Pin {
|
||||
p.SendChangeEvents = true
|
||||
}
|
||||
|
||||
if config.InitialState != "" {
|
||||
p.InitialState = PinCommand(config.InitialState)
|
||||
} else {
|
||||
p.InitialState = Off
|
||||
}
|
||||
p.InitialState = config.InitialState
|
||||
|
||||
return p
|
||||
}
|
||||
@@ -80,8 +76,11 @@ func (p *Pin) Configure() {
|
||||
} else if p.Direction == Output {
|
||||
log.Infof("configuring pin %s (pin no: %d) as Output", p.Name, p.Id)
|
||||
p.PinHandle.Output()
|
||||
log.Infof("set initial state \"%s\" for pin %s (pin no: %d)", p.InitialState, p.Name, p.Id)
|
||||
_ = p.Command(p.InitialState)
|
||||
if p.InitialState != nil {
|
||||
log.Infof("set initial state \"%s\" for pin %s (pin no: %d)", p.InitialState, p.Name, p.Id)
|
||||
_ = p.Command(*p.InitialState)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
p.PinHandle.Detect(AnyEdge)
|
||||
@@ -92,6 +91,8 @@ func (p *Pin) Configure() {
|
||||
p.PinHandle.PullDown()
|
||||
} else if p.PullConfig == PullOff {
|
||||
p.PinHandle.PullOff()
|
||||
} else {
|
||||
log.Errorf("unknown config value \"%s\" for pull-config", p.PullConfig)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,25 +1,23 @@
|
||||
package PinControlService
|
||||
|
||||
type PinConfig struct {
|
||||
PinNumber int `yaml:"number"`
|
||||
Name string `yaml:"name"`
|
||||
Direction PinDirection `yaml:"direction"`
|
||||
PullConfig PinPull `yaml:"pull-config"`
|
||||
InitialState PinCommand `yaml:"initial-state"`
|
||||
SendPollingEvents *bool `yaml:"send-polling-events"`
|
||||
SendChangeEvents *bool `yaml:"send-change-events"`
|
||||
|
||||
PinNumber int `yaml:"number"`
|
||||
Name string `yaml:"name"`
|
||||
Direction PinDirection `yaml:"direction"`
|
||||
PullConfig PinPull `yaml:"pull-config"`
|
||||
InitialState *PinCommand `yaml:"initial-state"`
|
||||
SendPollingEvents *bool `yaml:"send-polling-events"`
|
||||
SendChangeEvents *bool `yaml:"send-change-events"`
|
||||
}
|
||||
|
||||
type PinControlConfig struct {
|
||||
GpioPins []PinConfig `yaml:"gpio-pins"`
|
||||
PollingTimeMs int `yaml:"polling-time-ms"`
|
||||
|
||||
GpioPins []PinConfig `yaml:"gpio-pins"`
|
||||
PollingTimeMs int `yaml:"polling-time-ms"`
|
||||
}
|
||||
|
||||
func NewPinControlConfig() PinControlConfig {
|
||||
return PinControlConfig{
|
||||
GpioPins: make([]PinConfig, 0),
|
||||
GpioPins: make([]PinConfig, 0),
|
||||
PollingTimeMs: 100,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ type PinPull string
|
||||
type PinCallback func(pinName string, state PinState)
|
||||
|
||||
const (
|
||||
On PinCommand = "ON"
|
||||
Off PinCommand = "OFF"
|
||||
On PinCommand = "ON"
|
||||
Off PinCommand = "OFF"
|
||||
Toggle PinCommand = "TOGGLE"
|
||||
|
||||
StateOn PinState = "ON"
|
||||
@@ -17,7 +17,7 @@ const (
|
||||
Input PinDirection = "Input"
|
||||
Output PinDirection = "Output"
|
||||
|
||||
PullUp PinPull = "PULL_UP"
|
||||
PullDown PinPull = "PULL_DOWN"
|
||||
PullOff PinPull = "PULL_OFF"
|
||||
PullUp PinPull = "PullUp"
|
||||
PullDown PinPull = "PullDown"
|
||||
PullOff PinPull = "PullOff"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user