Better cleanup code in invertercli.
This commit is contained in:
@@ -8,6 +8,9 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
"syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Basic CLI to serve as example lib usage
|
// Basic CLI to serve as example lib usage
|
||||||
@@ -19,7 +22,7 @@ func main() {
|
|||||||
dev := flag.String("dev", "/dev/ttyUSB0", "TTY device to use.")
|
dev := flag.String("dev", "/dev/ttyUSB0", "TTY device to use.")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
var p io.ReadWriter
|
var p io.ReadWriteCloser
|
||||||
var err error
|
var err error
|
||||||
var tcpAddr *net.TCPAddr
|
var tcpAddr *net.TCPAddr
|
||||||
|
|
||||||
@@ -29,9 +32,9 @@ func main() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
p, err = net.DialTCP("tcp", nil, tcpAddr)
|
p, err = net.DialTCP("tcp", nil, tcpAddr)
|
||||||
bf := make([]byte, 256)
|
if err != nil {
|
||||||
p.Read(bf)
|
panic(err)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
options := serial.RawOptions
|
options := serial.RawOptions
|
||||||
options.BitRate = 2400
|
options.BitRate = 2400
|
||||||
@@ -41,17 +44,25 @@ func main() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defer p.Close()
|
||||||
mk2, err := mk2if.NewMk2Connection(p)
|
mk2, err := mk2if.NewMk2Connection(p)
|
||||||
defer mk2.Close()
|
defer mk2.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
c := mk2.C()
|
c := mk2.C()
|
||||||
|
sigterm := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(sigterm, syscall.SIGTERM, os.Interrupt)
|
||||||
|
mainloop:
|
||||||
for {
|
for {
|
||||||
tmp := <-c
|
select {
|
||||||
|
case tmp := <-c:
|
||||||
if tmp.Valid {
|
if tmp.Valid {
|
||||||
PrintInfo(tmp)
|
PrintInfo(tmp)
|
||||||
}
|
}
|
||||||
|
case <-sigterm:
|
||||||
|
break mainloop
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log.Printf("Closing connection")
|
log.Printf("Closing connection")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user