Commit graph

100 commits

Author SHA1 Message Date
Rahix c031fa5a43 succd: Add metrics for RP and RP operating time
All checks were successful
/ test (push) Successful in 10s
/ test (pull_request) Successful in 10s
Add counter metrics that count the total operating time for the roughing
pump and the diffusion pump.
2024-10-07 07:42:42 +02:00
Rahix 0aba323779 succd: Export all process values as prometheus metrics
All checks were successful
/ test (pull_request) Successful in 10s
/ test (push) Successful in 9s
For more detailed monitoring, let's export all process values that are
exposed to the web API as prometheus metrics.
2024-10-07 07:42:42 +02:00
Rahix bd40c4f8df succd: Update rough vacuum hysteresis once more
All checks were successful
/ test (pull_request) Successful in 9s
/ test (push) Successful in 10s
We see fluctuation slightly above 4e-2 mbar so let's increase the
hysteresis value a bit more.
2024-10-05 19:46:14 +02:00
Rahix d5c42a4899 succd: Hint at invalid process values
When the succbone connection breaks, add hints to the UI that values may
no longer be correct.
2024-10-05 19:46:14 +02:00
Rahix 637f8748a8 succd: Only show voltage on hover
All checks were successful
/ test (push) Successful in 10s
Another HP HMI thing: "Only show information that is immediately
relevant".  Let's hide the pirani voltage as it is mostly no longer
interesting to the user.  For situations where it is, it can be revealed
by hovering over the pirani pressure value.
2024-10-05 17:37:10 +00:00
Rahix 1e21222705 succd: Optimize color usage for HP HMI
In the process automation world, there is a trend to move away from
colorful user-interfaces, towards more "boring" colorschemes.  The
argument is about situational awareness - by only using colors to
highlight abnormal situations, they become instantly recognizable to the
operators.

This design philosophy is outlined by the ISA-101 [1] under the name
"High Performance HMI".  While it covers much more than just colors, I
think this is the most important part and the one that is most
applicable for our usecase.

So let's do a bit of HP HMI - reduce colors usage such that only
important information is highlighted.

[1]: https://www.isa.org/standards-and-publications/isa-standards/isa-standards-committees/isa101
2024-10-05 17:37:10 +00:00
Rahix 7a56b0fe70 succd: Fix mobile layout
Use smaller font sizes for mobile devices so the full interface fits on
a single screen (mostly).
2024-10-05 17:37:10 +00:00
Rahix f4339e54ef succd: Fix layout on large screens
Make sure the grid cannot grow too large on big screens.  Also slightly
adjust the breakpoint to avoid some weird artifacts.
2024-10-05 17:37:10 +00:00
Rahix f2c0d67eed ph00524: Add image of the back PCB side
All checks were successful
/ test (pull_request) Successful in 10s
/ test (push) Successful in 10s
For documentation purposes.
2024-10-05 03:11:29 +02:00
Rahix e2fc15ed9b succd: Use tigher hysteresis values
All checks were successful
/ test (pull_request) Successful in 10s
/ test (push) Successful in 10s
It seems we can get away with less hysteresis still.  Make the values a
bit smaller.
2024-10-04 23:30:28 +02:00
Rahix ef959f4be3 succd: Configure hysteresis for rough and high thresholds
Add CLI flags for rough and high hysteresis and configure default values
based on experiments.
2024-10-04 23:30:28 +02:00
Rahix 8645718748 succd: Add hysteresis feature to thresholdOutput blocks
Add a hysteresis value that can be optionally configured for
thresholdOutput blocks.  This will hopefully help to prevent jumping
outputs from feedback that is caused by the thresholdOutput itself.
2024-10-04 23:30:28 +02:00
Rahix ed8adad611 succd: Fix table jiggle
Make sure the table size doesn't dynamically jiggle with movement of
width changes of the load-average value.
2024-10-04 23:30:28 +02:00
Rahix 313569e1dc succd: Use grid layout to show all info on a single screen
Use CSS grids to all information on a single screen if possible.  There
is a breakpoint for smaller screens.
2024-10-04 23:30:28 +02:00
Rahix 102393a689 succbone: Update title pic
All checks were successful
/ test (pull_request) Successful in 3s
/ test (push) Successful in 3s
2024-09-28 23:35:09 +02:00
Serge Bazanski 2899677059 succd: add info on how to run tests
All checks were successful
/ test (pull_request) Successful in 4s
/ test (push) Successful in 4s
2024-09-28 16:13:10 +02:00
Serge Bazanski 2454a44350 succd: add ci, tests
All checks were successful
/ test (push) Successful in 4s
2024-09-28 16:09:07 +02:00
Serge Bazanski 96e07ece2d succd: run at 100Hz, monitor load and jitter 2024-09-28 14:27:43 +02:00
Serge Bazanski 12f6815673 succd: gofmt 2024-09-28 14:27:43 +02:00
zdmx f5d80a335f succd: remove redundant if 2024-09-28 11:20:25 +02:00
Serge Bazanski fbf41203de succd: do not engage pirani failsafe on startup, as that prohibits restarting succd when the machine runs 2024-09-28 10:23:15 +02:00
Serge Bazanski dda098f634 succd: early refuse unsafe operations 2024-09-28 10:22:40 +02:00
Serge Bazanski 960be9cd23 succd: rewrite processing loop 2024-09-28 10:17:05 +02:00
Serge Bazanski 3d81a1f56c succd: roll process_state.go back into process.go 2024-09-28 09:48:50 +02:00
Serge Bazanski 185525ca30 succd: downgrade high pressure lockout message to warning 2024-09-28 09:46:49 +02:00
Serge Bazanski 590e93e43e succd: log pressures in error messages 2024-09-28 09:46:18 +02:00
Serge Bazanski 451b44e31b succd: move out processing blocks to separate file 2024-09-28 09:39:44 +02:00
Serge Bazanski 4df00f0a63 succd: factor out ringbuffer, do not recalculate average on every request 2024-09-28 09:35:41 +02:00
Serge Bazanski 42c9ae2fa7 succd: httpServer -> webServer 2024-09-28 09:19:14 +02:00
Serge Bazanski f66afc0c8f succd: restyle slightly 2024-09-28 08:32:07 +02:00
Serge Bazanski 8f7ec7e141 succd: split out http server, daemon state, daemon controller
This improves the structure of the code, separating the data/control
interface out and then implementing the http interface as a user of this
interface.
2024-09-28 08:10:35 +02:00
Serge Bazanski 3ec6fd1d1b succd: unify html/js data source 2024-09-28 07:54:18 +02:00
Serge Bazanski 776f7a9911 succd: add hysteresis for high pressure safety interlock 2024-09-28 07:36:37 +02:00
Serge Bazanski 239a5c40cc succd: factor out safety status to separate struct 2024-09-28 07:36:37 +02:00
Serge Bazanski 80f482b732 succd: tristate pirani safety detection 2024-09-28 07:31:06 +02:00
Rahix 85d2afbdd0 succd: Fix javascript and template syntax errors
Turns out the go templating engine fails silently when unclosed strings
are present in the templated file.........

Fix javascript code :))
2024-09-28 00:05:18 +02:00
zdmx 908727608a succd: add safety status to web frontend 2024-09-27 23:49:24 +02:00
zdmx eb7707f1a0 succd: change safety reset threshold 2024-09-27 23:35:44 +02:00
zdmx ae9ac4ea0e succd: reset failsafe only after vent 2024-09-27 23:33:03 +02:00
Rahix 93ca80706f succbone: panel: Wire fake-pirani signals to NC contacts
Pirani thresholds are signalled by breaking the connection so let's wire
this up correctly.
2024-09-27 23:25:11 +02:00
zdmx 7a64ce91d4 succd: check currentmost pirani values for safety lock 2024-09-27 23:24:55 +02:00
zdmx 9db2213fa6 succd: log rate of change 2024-09-27 23:06:56 +02:00
zdmx 9ad6ce7dad succd: calcuate change rate for safety interlock directly from adc ringbuffer 2024-09-27 23:02:21 +02:00
zdmx d3391b28ec succd: add additional safety interlocks 2024-09-27 22:29:56 +02:00
Rahix f7752922c2 succd: Cleanup whitespace in HTML file 2024-09-27 02:32:36 +02:00
Serge Bazanski 34ab508b13 succd: add pirani failsafe 2024-09-27 02:24:19 +02:00
Serge Bazanski 6d97eb62a8 succd: implement threshold outputs, rework processing 2024-09-27 02:12:38 +02:00
Serge Bazanski 781bbaaeb4 succd: show logo 2024-09-27 02:12:38 +02:00
Serge Bazanski 7dffd2a4b4 succd: add logo 2024-09-27 02:12:38 +02:00
Serge Bazanski 0eacd74484 succd: README: add pin table 2024-09-27 02:12:38 +02:00