Files
tele-recv/utils/serial.go
T
2020-12-22 12:08:06 +08:00

49 lines
963 B
Go

package utils
import (
"io"
"log"
"time"
"github.com/tarm/serial"
)
var (
device string
baudrate int
bytesize byte
port *serial.Port
portOpened = false
)
func OpenPort(device string, baudrate int, bytesize byte) error {
log.Println("opening port device:", device, ", baudrate=", baudrate, ", bytesize=", bytesize)
config := &serial.Config{Name: device, Baud: baudrate, Size: bytesize, ReadTimeout: time.Second * 1}
var err error
port, err = serial.OpenPort(config)
if err != nil {
log.Fatalln("error in open serial port ", err)
return err
}
log.Println("opened port ", port)
portOpened = true
return nil
}
func ReadPort() ([]byte, int) {
buffer := make([]byte, 256)
if !ServerRunning {
return buffer, 0
}
count, err := port.Read(buffer)
if err != nil && err != io.EOF {
log.Println("error in read port ", err)
//TODO: 3 time fail try to
}
return buffer, count
}
func IsPortOpen() bool {
return portOpened
}