adam-gui/main.go

75 lines
1.5 KiB
Go
Raw Normal View History

2024-04-21 21:45:18 +02:00
package main
import (
"adam-gui/comms"
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
"go.bug.st/serial"
)
func main() {
init := false
var port serial.Port
a := app.New()
w := a.NewWindow("ADAM GUI (fuck proprietary software.)")
w.Resize(fyne.NewSize(340, 200))
status := canvas.NewText("Waiting", color.White)
status.Alignment = fyne.TextAlignCenter
status.TextSize = 50
w.SetContent(container.NewVBox(
status,
widget.NewButton("Establish communications", func() {
if !init {
if comms.SetDefaultSerialPort() {
port = comms.EstablishComms()
init = true
status.Text = "Connected"
status.TextSize = 50
status.Refresh()
} else {
status.Text = "Cannot detect a device with the given name."
status.TextSize = 10
status.Refresh()
}
}
}),
widget.NewButton("Tare", func() {
if init {
comms.Tare(port)
}
}),
widget.NewButton("Hold", func() {
if init {
comms.Hold(port)
}
}),
widget.NewButton("Measure (net)", func() {
if init {
status.Text = comms.Measure(port, "N")
status.Refresh()
}
}),
widget.NewButton("Measure (gross)", func() {
if init {
status.Text = comms.Measure(port, "G")
status.Refresh()
}
}),
widget.NewButton("Measure (tare)", func() {
if init {
status.Text = comms.Measure(port, "T")
status.Refresh()
}
}),
))
w.ShowAndRun()
}