Simplyfy the flags to specify a source
This commit is contained in:
committed by
ncthompson
parent
47e73a4eff
commit
8b0b4f64f1
@@ -36,6 +36,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/diebietse/invertergui/frontend"
|
"github.com/diebietse/invertergui/frontend"
|
||||||
"github.com/diebietse/invertergui/mk2core"
|
"github.com/diebietse/invertergui/mk2core"
|
||||||
@@ -49,22 +50,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
source := flag.String("source", "serial", "Set the source of data for the inverter gui. \"serial\", \"tcp\" or \"mock\"")
|
||||||
addr := flag.String("addr", ":8080", "TCP address to listen on.")
|
addr := flag.String("addr", ":8080", "TCP address to listen on.")
|
||||||
|
|
||||||
tcp := flag.Bool("tcp", false, "Use TCP instead of TTY")
|
|
||||||
ip := flag.String("ip", "localhost:8139", "IP to connect when using tcp connection.")
|
ip := flag.String("ip", "localhost:8139", "IP to connect when using tcp connection.")
|
||||||
dev := flag.String("dev", "/dev/ttyUSB0", "TTY device to use.")
|
dev := flag.String("dev", "/dev/ttyUSB0", "TTY device to use.")
|
||||||
mock := flag.Bool("mock", false, "Creates a mock device for test puposes")
|
|
||||||
cliEnable := flag.Bool("cli", false, "Enable CLI output")
|
cliEnable := flag.Bool("cli", false, "Enable CLI output")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
var mk2 mk2driver.Mk2
|
mk2 := getMk2Device(*source, *ip, *dev)
|
||||||
if *mock {
|
|
||||||
mk2 = mk2driver.NewMk2Mock()
|
|
||||||
} else {
|
|
||||||
mk2 = getMk2Device(*tcp, *ip, *dev)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer mk2.Close()
|
defer mk2.Close()
|
||||||
|
|
||||||
core := mk2core.NewCore(mk2)
|
core := mk2core.NewCore(mk2)
|
||||||
@@ -85,12 +78,19 @@ func main() {
|
|||||||
log.Fatal(http.ListenAndServe(*addr, nil))
|
log.Fatal(http.ListenAndServe(*addr, nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMk2Device(tcp bool, ip, dev string) mk2driver.Mk2 {
|
func getMk2Device(source, ip, dev string) mk2driver.Mk2 {
|
||||||
var p io.ReadWriteCloser
|
var p io.ReadWriteCloser
|
||||||
var err error
|
var err error
|
||||||
var tcpAddr *net.TCPAddr
|
var tcpAddr *net.TCPAddr
|
||||||
|
|
||||||
if tcp {
|
switch source {
|
||||||
|
case "serial":
|
||||||
|
serialConfig := &serial.Config{Name: dev, Baud: 2400}
|
||||||
|
p, err = serial.OpenPort(serialConfig)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
case "tcp":
|
||||||
tcpAddr, err = net.ResolveTCPAddr("tcp", ip)
|
tcpAddr, err = net.ResolveTCPAddr("tcp", ip)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@@ -99,13 +99,13 @@ func getMk2Device(tcp bool, ip, dev string) mk2driver.Mk2 {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
} else {
|
case "mock":
|
||||||
serialConfig := &serial.Config{Name: dev, Baud: 2400}
|
return mk2driver.NewMk2Mock()
|
||||||
p, err = serial.OpenPort(serialConfig)
|
default:
|
||||||
if err != nil {
|
log.Printf("Invalid source selection: %v\nUse \"serial\", \"tcp\" or \"mock\"", source)
|
||||||
panic(err)
|
os.Exit(1)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mk2, err := mk2driver.NewMk2Connection(p)
|
mk2, err := mk2driver.NewMk2Connection(p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user