From b63d152ab63998eb2abe4dbef8cf536be89685fa Mon Sep 17 00:00:00 2001 From: Roberto Sora Date: Wed, 4 Dec 2019 14:19:51 +0100 Subject: [PATCH] Revert "Port fix: Reinitialize serial buffer on every read to avoid concurrent rewrite" --- serialport.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/serialport.go b/serialport.go index 957828283..7b2952a29 100755 --- a/serialport.go +++ b/serialport.go @@ -95,13 +95,12 @@ type SpPortMessageRaw struct { func (p *serport) reader() { //var buf bytes.Buffer + ch := make([]byte, 1024) timeCheckOpen := time.Now() var buffered_ch bytes.Buffer for { - ch := make([]byte, 1024) - n, err := p.portIo.Read(ch) //if we detect that port is closing, break out o this for{} loop. @@ -128,9 +127,12 @@ func (p *serport) reader() { for i, w := 0, 0; i < n; i += w { runeValue, width := utf8.DecodeRune(ch[i:n]) if runeValue == utf8.RuneError { - buffered_ch.Write(ch[i:n]) + buffered_ch.Write(append(ch[i:n])) break } + if i == n { + buffered_ch.Reset() + } data += string(runeValue) w = width }