mirror of
https://github.com/Fishwaldo/CarTracker.git
synced 2025-03-15 19:31:33 +00:00
50 lines
No EOL
1 KiB
Go
50 lines
No EOL
1 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"fmt"
|
|
|
|
"github.com/jacobsa/go-serial/serial"
|
|
)
|
|
|
|
func main() {
|
|
signalChan := make(chan os.Signal, 1)
|
|
signal.Notify(signalChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT)
|
|
f, err := os.Create("./gps.txt")
|
|
if err != nil {
|
|
log.Panicf("Can't Open GPS File: %s", err)
|
|
}
|
|
defer f.Close()
|
|
options := serial.OpenOptions{
|
|
PortName: "/dev/ttyACM0",
|
|
BaudRate: 9600,
|
|
DataBits: 8,
|
|
StopBits: 1,
|
|
MinimumReadSize: 4,
|
|
}
|
|
serialport, err := serial.Open(options);
|
|
if err != nil {
|
|
log.Printf("Can't Open GPS Serial Port: %s", err)
|
|
return;
|
|
}
|
|
defer serialport.Close()
|
|
fmt.Printf("Capturing Serial Port Data\n")
|
|
fmt.Printf("Press Ctrl-C to exit\n")
|
|
scanner := bufio.NewScanner(bufio.NewReader(serialport))
|
|
for scanner.Scan() {
|
|
scanText := scanner.Text()
|
|
f.WriteString(scanText)
|
|
f.WriteString("\n")
|
|
select {
|
|
case <- signalChan:
|
|
log.Printf("Caught Signal - Exiting...")
|
|
return
|
|
default:
|
|
}
|
|
fmt.Printf(".")
|
|
}
|
|
} |