Files
tele-recv/utils/serial.go
T
2020-12-29 16:38:53 +08:00

51 lines
937 B
Go

package utils
import (
"time"
"github.com/argandas/serial"
"go.uber.org/zap"
)
var (
device string
baudrate int
// port *serial.Port
sp *serial.SerialPort
portOpened = false
Log *zap.Logger
)
const readDuration = 500 * time.Millisecond
// OpenPort open serial port
func OpenPort(device string, baudrate int) error {
Log.Info("opening serial device ",
zap.String("port", device),
zap.Int("baudrate", baudrate))
sp = serial.New()
sp.EOL('\r')
sp.Verbose = false
err := sp.Open(device, baudrate, time.Second*3)
Log.Info("open ", zap.String("device", device), zap.Error(err))
if err == nil {
portOpened = true
}
return err
}
//ReadPort read byte array from port
func ReadPort() (string, error) {
// buffer := make([]byte, 1)
// if !ServerRunning {
// return buffer, 0
// }
return sp.ReadLine()
}
//IsPortOpen check serial port status
func IsPortOpen() bool {
return portOpened
}