Skip to content

Commit 318de37

Browse files
author
Roberto Sora
authored
Merge pull request #498 from arduino/revert-486-devel
Revert "Port fix: Reinitialize serial buffer on every read to avoid concurrent rewrite"
2 parents fcf6b6d + b63d152 commit 318de37

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

serialport.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,12 @@ type SpPortMessageRaw struct {
9595
func (p *serport) reader() {
9696

9797
//var buf bytes.Buffer
98+
ch := make([]byte, 1024)
9899
timeCheckOpen := time.Now()
99100
var buffered_ch bytes.Buffer
100101

101102
for {
102103

103-
ch := make([]byte, 1024)
104-
105104
n, err := p.portIo.Read(ch)
106105

107106
//if we detect that port is closing, break out o this for{} loop.
@@ -128,9 +127,12 @@ func (p *serport) reader() {
128127
for i, w := 0, 0; i < n; i += w {
129128
runeValue, width := utf8.DecodeRune(ch[i:n])
130129
if runeValue == utf8.RuneError {
131-
buffered_ch.Write(ch[i:n])
130+
buffered_ch.Write(append(ch[i:n]))
132131
break
133132
}
133+
if i == n {
134+
buffered_ch.Reset()
135+
}
134136
data += string(runeValue)
135137
w = width
136138
}

0 commit comments

Comments
 (0)