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 }