Added buffer flush methods

+ serial.Port.ResetInputBuffer()
+ serial.Port.ResetOutputBuffer()
This commit is contained in:
Veniamin Albaev
2017-03-09 11:11:06 +03:00
parent 4d886c1028
commit 8b7629bfe1
8 changed files with 48 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ var (
procCreateEventW = modkernel32.NewProc("CreateEventW")
procResetEvent = modkernel32.NewProc("ResetEvent")
procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult")
procPurgeComm = modkernel32.NewProc("PurgeComm")
)
func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, value *uint16, valueLen *uint32) (regerrno error) {
@@ -161,3 +162,15 @@ func getOverlappedResult(handle syscall.Handle, overlapEvent *syscall.Overlapped
}
return
}
func purgeComm(handle syscall.Handle, flags uint32) (err error) {
r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(flags), 0)
if r1 == 0 {
if e1 != 0 {
err = errnoErr(e1)
} else {
err = syscall.EINVAL
}
}
return
}