From 4edabc5c566fd76ce0cdbdc3a552235af23f6f5f Mon Sep 17 00:00:00 2001 From: hmelder Date: Sun, 10 Nov 2024 01:22:18 +0100 Subject: [PATCH] Add temperature and humidity stuff --- succbone/succd/http.go | 16 ++++++++++++++++ succbone/succd/index.html | 29 ++++++++++++++++++++++++++++- succbone/succd/main.go | 6 ++++++ succbone/succd/process.go | 7 +++++++ 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/succbone/succd/http.go b/succbone/succd/http.go index f1503e7..9a43281 100644 --- a/succbone/succd/http.go +++ b/succbone/succd/http.go @@ -62,6 +62,17 @@ type apiData struct { // DPOn means the diffusion pump is turned on. DPOn bool } + // Temperature state. + Temperatures struct { + DPBottom float32 + DPTop float32 + DPInlet float32 + SEM float32 + } + // Humidity state. + Humidity struct { + SEM float32 + } // Pressure feedback into evacuation board. Feedback struct { // RoughReached is true when the system has reached a rough vacuum @@ -115,6 +126,11 @@ func (s *webServer) apiData(skipSystem bool) *apiData { ad.Pirani.MbarFloat = mbar ad.Pumps.RPOn = state.rpOn ad.Pumps.DPOn = state.dpOn + ad.Temperatures.DPBottom = state.tempDPBottom + ad.Temperatures.DPTop = state.tempDPTop + ad.Temperatures.DPInlet = state.tempDPInlet + ad.Temperatures.SEM = state.tempSEM + ad.Humidity.SEM = state.humiditySEM ad.Feedback.RoughReached = rough ad.Feedback.HighReached = high ad.LoopLoad = s.d.loopLoad() diff --git a/succbone/succd/index.html b/succbone/succd/index.html index abd5695..c598f0c 100644 --- a/succbone/succd/index.html +++ b/succbone/succd/index.html @@ -111,6 +111,22 @@ td > span { DP {{ if .Pumps.DPOn }}ON{{ else }}OFF{{ end }} + + Temperatures + SEM + {{ .Temperatures.SEM }} + DPBottom + {{ .Temperatures.DPBottom }} + DPTop + {{ .Temperatures.DPTop }} + DPInlet + {{ .Temperatures.DPInlet }} + + + Humidity + SEM + {{ .Humidity.SEM }} + Safety Pirani
Failsafe @@ -316,6 +332,11 @@ window.addEventListener("load", (_) => { let trough = document.querySelector("#trough"); let thigh = document.querySelector("#thigh"); let load = document.querySelector("#load"); + let tempSEM = document.querySelector("#temp-sem"); + let tempDPBottom = document.querySelector("#temp-dp-bottom"); + let tempDPTop = document.querySelector("#temp-dp-top"); + let tempDPInlet = document.querySelector("#temp-dp-inlet"); + let humiditySEM = document.querySelector('#humidity-sem'); // Buttons let pd = document.querySelector("#pd"); @@ -388,6 +409,12 @@ window.addEventListener("load", (_) => { dp.style = colors.default; } + tempSEM.innerHTML = data.Temperatures.SEM + " °C"; + tempDPBottom.innerHTML = data.Temperatures.DPBottom + " °C"; + tempDPTop.innerHTML = data.Temperatures.DPTop + " °C"; + tempDPInlet.innerHTML = data.Temperatures.DPInlet + " °C"; + humiditySEM.innerHTML = data.Humidity.SEM + " %"; + let t = []; if (data.Feedback.RoughReached) { trough.innerHTML = "OK"; @@ -413,7 +440,7 @@ window.addEventListener("load", (_) => { // Indicate all process values as unknown - [failsafe, highpressure, rp, dp, trough, thigh, volts, mbar].forEach((el) => { + [failsafe, highpressure, rp, dp, trough, thigh, volts, mbar, tempDPBottom, tempDPTop, tempDPInlet].forEach((el) => { if (!el.innerHTML.includes("??")) { el.innerHTML += "??"; } diff --git a/succbone/succd/main.go b/succbone/succd/main.go index 64663a8..a56f2cc 100644 --- a/succbone/succd/main.go +++ b/succbone/succd/main.go @@ -35,6 +35,12 @@ func main() { d.daemonState.piraniVolts3.limit = 3 d.daemonState.piraniVolts100.limit = 100 + d.tempDPBottom = 420.6 + d.tempDPTop = 69.0 + d.tempDPInlet = 42.0 + d.tempSEM = 42.5 + d.humiditySEM = 66.6 + d.aboveRough.threshold = float64(flagPressureThresholdRough) d.aboveRough.hysteresis = float64(flagPressureThresholdRoughHysteresis) d.aboveHigh.threshold = float64(flagPressureThresholdHigh) diff --git a/succbone/succd/process.go b/succbone/succd/process.go index de99e84..c886260 100644 --- a/succbone/succd/process.go +++ b/succbone/succd/process.go @@ -55,6 +55,13 @@ type daemonState struct { pumpdown momentaryOutput aboveRough thresholdOutput aboveHigh thresholdOutput + + tempDPBottom float32 + tempDPTop float32 + tempDPInlet float32 + + tempSEM float32 + humiditySEM float32 } func (d *daemonState) vacuumStatus() (rough, high bool) {