46 lines
753 B
Go
46 lines
753 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"time"
|
|
|
|
"github.com/tarm/serial"
|
|
)
|
|
|
|
func readSerial(s *serial.Port, interval *time.Duration) {
|
|
|
|
}
|
|
|
|
func main() {
|
|
var interval = flag.Duration("interval", 5*time.Second, "Minimum time between releve")
|
|
flag.Parse()
|
|
|
|
if len(flag.Args()) < 1 {
|
|
log.Println("missing required argument: serial device (eg. /dev/ttyUSB0)")
|
|
return
|
|
}
|
|
|
|
config := &serial.Config{
|
|
Name: flag.Args()[0],
|
|
Baud: 9600,
|
|
Size: 7,
|
|
Parity: serial.ParityNone,
|
|
StopBits: 1,
|
|
}
|
|
|
|
s, err := serial.OpenPort(config)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
go readSerial(s, interval)
|
|
|
|
interrupt := make(chan os.Signal, 1)
|
|
signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM)
|
|
<-interrupt
|
|
}
|