aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go108
1 files changed, 0 insertions, 108 deletions
diff --git a/main.go b/main.go
index 7327ebd..fd3dde7 100644
--- a/main.go
+++ b/main.go
@@ -2,15 +2,11 @@ package main
import (
"fmt"
- "image"
- "image/color"
"os"
"sync"
"github.com/faiface/mainthread"
"volute/gui"
- "volute/gui/layout"
- "volute/gui/widget"
"volute/gui/win"
)
@@ -78,87 +74,6 @@ func run() {
eventLoop(env, &focus)
}
-func spawnWidgets(
- displacementChan chan uint,
- rpmChan, veChan, imapChan, actChan [POINTS]chan uint,
- flowChan [POINTS]chan float64,
- focus *Focus, mux *gui.Mux, wg *sync.WaitGroup,
-) {
- bounds := layout.Grid{
- Rows: []int{2, 7, 7, 7, 7, 7},
- Background: color.Gray{255},
- Gap: 1,
- Split: split,
- SplitRows: splitRows,
- Margin: 0,
- Border: 0,
- BorderColor: color.Gray{16},
- Flip: false,
- }.Lay(image.Rect(0, 0, WIDTH, HEIGHT))
-
- wg.Add(1)
- go widget.Label("displacement (cc)", bounds[0], mux.MakeEnv(), wg)
- wg.Add(1)
- go widget.Input(
- displacementChan,
- bounds[1],
- focus.widgets[0][0],
- mux.MakeEnv(),
- wg,
- )
- wg.Add(1)
- go widget.Label("speed (rpm)", bounds[2], mux.MakeEnv(), wg)
- wg.Add(1)
- go widget.Label("VE (%)", bounds[3+POINTS], mux.MakeEnv(), wg)
- wg.Add(1)
- go widget.Label("IMAP (mbar)", bounds[4+2*POINTS], mux.MakeEnv(), wg)
- wg.Add(1)
- go widget.Label("ACT (°C)", bounds[5+3*POINTS], mux.MakeEnv(), wg)
- wg.Add(1)
- go widget.Label("mass flow (kg/min)", bounds[6+4*POINTS], mux.MakeEnv(), wg)
- for i := 0; i < POINTS; i++ {
- wg.Add(1)
- go widget.Input( // speed
- rpmChan[i],
- bounds[3+i],
- focus.widgets[1][i],
- mux.MakeEnv(),
- wg,
- )
- wg.Add(1)
- go widget.Input( // VE
- veChan[i],
- bounds[4+POINTS+i],
- focus.widgets[2][i],
- mux.MakeEnv(),
- wg,
- )
- wg.Add(1)
- go widget.Input( // IMAP
- imapChan[i],
- bounds[5+2*POINTS+i],
- focus.widgets[3][i],
- mux.MakeEnv(),
- wg,
- )
- wg.Add(1)
- go widget.Input( // ACT
- actChan[i],
- bounds[6+3*POINTS+i],
- focus.widgets[4][i],
- mux.MakeEnv(),
- wg,
- )
- wg.Add(1)
- go widget.Output( // mass flow
- flowChan[i],
- bounds[7+4*POINTS+i],
- mux.MakeEnv(),
- wg,
- )
- }
-}
-
func eventLoop(env gui.Env, focus *Focus) {
for event := range env.Events() {
switch event := event.(type) {
@@ -189,29 +104,6 @@ func makeChans[T any](chanss ...[]chan T) {
}
}
-func split(elements int, space int) []int {
- bounds := make([]int, elements)
- widths := []int{
- widget.TextSize(WIDEST_LABEL).X,
- widget.TextSize("123456").X,
- }
- for i := 0; i < elements && space > 0; i++ {
- bounds[i] = min(widths[min(i, len(widths)-1)], space)
- space -= bounds[i]
- }
- return bounds
-}
-
-func splitRows(elements int, space int) []int {
- bounds := make([]int, elements)
- height := widget.TextSize("1").Y
- for i := 0; i < elements && space > 0; i++ {
- bounds[i] = min(height, space)
- space -= bounds[i]
- }
- return bounds
-}
-
func calculateFlow(
flow chan<- float64,
displacementChan, rpmChan, veChan, actChan, imapChan <-chan uint,