52 lines
663 B
Go
52 lines
663 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/goburrow/serial"
|
|
)
|
|
|
|
type port struct {
|
|
*serial.Config
|
|
samp chan []byte
|
|
}
|
|
|
|
func (p *port) watch() {
|
|
log.Println("Opening serial port...")
|
|
port, err := serial.Open(p.Config)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer port.Close()
|
|
|
|
buf := bufio.NewReader(port)
|
|
|
|
for {
|
|
f, err := buf.ReadBytes(0xff)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
if len(f) < 9*8 {
|
|
continue
|
|
}
|
|
|
|
fmt.Print(".")
|
|
p.samp <- f
|
|
}
|
|
}
|
|
|
|
func newPort(addr string) *port {
|
|
return &port{
|
|
Config: &serial.Config{
|
|
Address: addr,
|
|
BaudRate: 115200,
|
|
//BaudRate: 1000000,
|
|
Parity: "N",
|
|
},
|
|
samp: make(chan []byte),
|
|
}
|
|
}
|