fermentord/cmd/fermentord/gpio.go

36 lines
931 B
Go

package main
import (
"log"
"git.joco.dk/sng/fermentord/internal/configuration"
"git.joco.dk/sng/fermentord/internal/controllers"
"git.joco.dk/sng/fermentord/internal/hw"
"git.joco.dk/sng/fermentord/internal/metrics"
)
func gpioSetState(state controllers.ChamberState, gpio *hw.Gpio, config configuration.Configuration) {
switch state {
case controllers.ChamberStateIdle:
log.Printf("Setting chamber state idle")
metrics.State.Set(metrics.MetricStateIdle)
gpio.StopCooler()
gpio.StopHeater()
case controllers.ChamberStateCooling:
log.Printf("Setting chamber state cooling")
metrics.State.Set(metrics.MetricStateCooling)
gpio.StopHeater()
if config.CoolerEnabled {
gpio.StartCooler()
}
case controllers.ChamberStateHeating:
log.Printf("Setting chamber state heating")
metrics.State.Set(metrics.MetricStateHeating)
gpio.StopCooler()
if config.HeaterEnabled {
gpio.StartHeater()
}
}
}