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 }