From fe9ccd37d9fdc74e1c4c7b3735f6af37dd7282ea Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Sat, 13 Dec 2014 20:17:40 +0430 Subject: [PATCH] Windows: added SetSpeed --- serial/native_windows.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/serial/native_windows.go b/serial/native_windows.go index 1e9e754..407c0f7 100644 --- a/serial/native_windows.go +++ b/serial/native_windows.go @@ -178,6 +178,23 @@ const ( TWOSTOPBITS = 2 ) +func (port windowsSerialPort) SetSpeed(baudrate int) error { + params := DCB{} + if err := GetCommState(port.Handle, ¶ms); err != nil { + port.Close() + return &SerialPortError{code: ERROR_INVALID_SERIAL_PORT} + } + params.BaudRate = uint32(baudrate) + params.ByteSize = 8 + params.StopBits = ONESTOPBIT + params.Parity = NOPARITY + if err := SetCommState(port.Handle, ¶ms); err != nil { + port.Close() + return &SerialPortError{code: ERROR_INVALID_SERIAL_PORT} + } + return nil +} + func OpenPort(portName string, useTIOCEXCL bool) (SerialPort, error) { portName = "\\\\.\\" + portName