succd: Migrate to KEC1 MODBUS relay board
This commit is contained in:
parent
0e45650972
commit
606d470577
3 changed files with 61 additions and 63 deletions
|
|
@ -19,13 +19,6 @@ type daemon struct {
|
|||
// Pirani gauge.
|
||||
adcPirani adc
|
||||
|
||||
gpioDiffusionPump gpio
|
||||
gpioRoughingPump gpio
|
||||
gpioBtnPumpDown gpio
|
||||
gpioBtnVent gpio
|
||||
gpioBelowRough gpio
|
||||
gpioBelowHigh gpio
|
||||
|
||||
load atomic.Int64
|
||||
|
||||
// mu guards the state below.
|
||||
|
|
@ -171,33 +164,5 @@ func (d *daemon) processOnce(_ context.Context) error {
|
|||
d.dpOn = false
|
||||
}
|
||||
|
||||
// Update relay outputs.
|
||||
for _, rel := range []struct {
|
||||
name string
|
||||
gpio gpio
|
||||
// activeHigh means the relay is active high, ie. a true source will
|
||||
// mean that NO/COM get connected, and a false source means that NC/COM
|
||||
// get connected.
|
||||
activeHigh bool
|
||||
source bool
|
||||
}{
|
||||
{"rp", d.gpioRoughingPump, false, d.rpOn},
|
||||
{"dp", d.gpioDiffusionPump, true, d.dpOn},
|
||||
{"pumpdown", d.gpioBtnPumpDown, true, d.pumpdown.output},
|
||||
{"vent", d.gpioBtnVent, true, d.vent.output},
|
||||
{"rough", d.gpioBelowRough, false, d.aboveRough.output},
|
||||
{"high", d.gpioBelowHigh, false, d.aboveHigh.output},
|
||||
} {
|
||||
val := rel.source
|
||||
if rel.activeHigh {
|
||||
// Invert because the relays go through logical inversion (ie. a
|
||||
// GPIO false is a relay trigger).
|
||||
val = !val
|
||||
}
|
||||
if err := rel.gpio.set(val); err != nil {
|
||||
return fmt.Errorf("when outputting %s: %w", rel.name, err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue