From ef959f4be3226dadbb59275157c6e2ecec4489a2 Mon Sep 17 00:00:00 2001 From: Rahix Date: Fri, 4 Oct 2024 23:13:43 +0200 Subject: [PATCH] succd: Configure hysteresis for rough and high thresholds Add CLI flags for rough and high hysteresis and configure default values based on experiments. --- succbone/succd/main.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/succbone/succd/main.go b/succbone/succd/main.go index 23427b6..a8ae0f8 100644 --- a/succbone/succd/main.go +++ b/succbone/succd/main.go @@ -11,17 +11,21 @@ import ( ) var ( - flagFake bool - flagListenHTTP string - flagPressureThresholdRough = ScientificNotationValue(1e-1) - flagPressureThresholdHigh = ScientificNotationValue(1e-4) + flagFake bool + flagListenHTTP string + flagPressureThresholdRough = ScientificNotationValue(1e-1) + flagPressureThresholdRoughHysteresis = ScientificNotationValue(5e-2) + flagPressureThresholdHigh = ScientificNotationValue(1e-4) + flagPressureThresholdHighHysteresis = ScientificNotationValue(5e-5) ) func main() { flag.BoolVar(&flagFake, "fake", false, "Enable fake mode which allows to run succd for tests outside the succbone") flag.StringVar(&flagListenHTTP, "listen_http", ":8080", "Address at which to listen for HTTP requests") flag.TextVar(&flagPressureThresholdRough, "pressure_threshold_rough", &flagPressureThresholdRough, "Threshold for opening up diffusion pump (mbar)") + flag.TextVar(&flagPressureThresholdRoughHysteresis, "pressure_threshold_rough_hysteresis", &flagPressureThresholdRoughHysteresis, "+-Hysteresis for rough threshold (mbar)") flag.TextVar(&flagPressureThresholdHigh, "pressure_threshold_high", &flagPressureThresholdHigh, "Threshold for enabling high voltage circuits (mbar)") + flag.TextVar(&flagPressureThresholdHighHysteresis, "pressure_threshold_high_hysteresis", &flagPressureThresholdHighHysteresis, "+-Hysteresis for high threshold (mbar)") flag.Parse() ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt) @@ -32,7 +36,9 @@ func main() { d.daemonState.piraniVolts100.limit = 100 d.aboveRough.threshold = float64(flagPressureThresholdRough) + d.aboveRough.hysteresis = float64(flagPressureThresholdRoughHysteresis) d.aboveHigh.threshold = float64(flagPressureThresholdHigh) + d.aboveHigh.hysteresis = float64(flagPressureThresholdHighHysteresis) if flagFake { klog.Infof("Starting with fake peripherals") d.adcPirani = &fakeADC{}