You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
using this library on windows, I encountered an error on reading. I know for sure that there is something to read, but the Read method is blocking (even after the read timeout is elapsed) and it never returns. After a debug session, I found out that it's waiting for overlapped I/O to complete (here) that apparently never happens.
Here's my code:
mode := &serial.Mode{
BaudRate: 115200,
Parity: serial.OddParity,
DataBits: 8,
StopBits: serial.TwoStopBits,
}
port, err := serial.Open("COM1", mode)
n, err := port.Write([]byte("data\r"))
if err != nil {
log.Fatal(err)
}
fmt.Printf("Sent %v bytes\n", n)
buff := make([]byte, 1024)
for {
n, err = port.Read(buff)
if err != nil {
log.Fatal(err)
break
}
if n == 0 {
fmt.Println("\nEOF")
break
}
fmt.Printf("%v", string(buff[:n]))
fmt.Println(n)
}
Am I doing something wrong?
Also I found out that on handle creation (here), passing 0 instead of syscall.FILE_FLAG_OVERLAPPED, will make Read work.
The text was updated successfully, but these errors were encountered:
Hello,
using this library on windows, I encountered an error on reading. I know for sure that there is something to read, but the Read method is blocking (even after the read timeout is elapsed) and it never returns. After a debug session, I found out that it's waiting for overlapped I/O to complete (here) that apparently never happens.
Here's my code:
Am I doing something wrong?
Also I found out that on handle creation (here), passing 0 instead of
syscall.FILE_FLAG_OVERLAPPED
, will make Read work.The text was updated successfully, but these errors were encountered: