profile
viewpoint

tarm/can 1

Connect to a CAN bus in Go

tarm/gorofs 1

Utility to embedded a zip file into a binary to use as a backup filesystem

tarm/dnp3 0

dnp3 protocol. C++ with bindings for .NET and Java.

tarm/glog 0

Leveled execution logs for Go

startedtarm/serial

started time in 11 hours

startedtarm/serial

started time in a day

startedtarm/serial

started time in 3 days

startedtarm/serial

started time in 5 days

startedtarm/serial

started time in 11 days

startedtarm/serial

started time in 12 days

startedtarm/serial

started time in 13 days

startedtarm/serial

started time in 13 days

startedtarm/serial

started time in 15 days

startedtarm/serial

started time in 15 days

startedtarm/serial

started time in 17 days

startedtarm/serial

started time in 24 days

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

issue openedtarm/serial

Timeout problem with io.Reader

if I use:

portCfg := &serial.Config{Name: "COM1", Baud: 115200, ReadTimeout: 1 * time.Second}
port, err := serial.OpenPort(portCfg)
portReader = bufio.NewReader(port)
n, err := io.ReadFull(portReader, buf)

timeout doesn't happen. Function serial.Read() returned 0 bytes and error==nil and io.ReadFull() continue to work. Maybe serial.Read() must return io.EOF if timeout happen? For this, function getOverlappedResult() maybe like this:

func getOverlappedResult(h syscall.Handle, overlapped *syscall.Overlapped) (int, error) {
	var n int
	_, _, err := syscall.Syscall6(nGetOverlappedResult, 4, // r, _, err := syscall.Syscall6(nGetOverlappedResult, 4,
		uintptr(h),
		uintptr(unsafe.Pointer(overlapped)),
		uintptr(unsafe.Pointer(&n)), 1, 0, 0)
	// if r == 0 {  // old if
	// 	return n, err
	// }
	if err == 1460 { // new if, 1460 - ERROR_TIMEOUT
		return n, io.EOF
	}
	if err != 0 {
		return n, err
	}
	return n, nil
}

Please, fix timeout in io.Reader, thanks

created time in a month

startedtarm/serial

started time in a month

startedtarm/serial

started time in a month

PR opened tarm/serial

Added power support for the travis.yml file with ppc64le

Added power support for the travis.yml file with ppc64le. This is part of the Ubuntu distribution for ppc64le. This helps us simplify testing later when distributions are re-building and re-releasing

+3 -0

0 comment

1 changed file

pr created time in a month

more