linux: implemented cfset{i|o}speed without C function call

This commit is contained in:
Cristian Maglie
2014-12-15 18:09:15 +01:00
parent 259139a5db
commit 5a547e5348

View File

@@ -191,8 +191,16 @@ func (port *linuxSerialPort) SetSpeed(speed int) error {
if err != nil { if err != nil {
return err return err
} }
C.cfsetispeed(settings, baudrate) // revert old baudrate
C.cfsetospeed(settings, baudrate) var BAUDMASK uint32 = 0
for _, rate := range baudrateMap {
BAUDMASK |= rate
}
settings.Cflag &= ^uint32(BAUDMASK)
// set new baudrate
settings.Cflag |= baudrate
settings.Ispeed = baudrate
settings.Ospeed = baudrate
return setTermSettings(port.Handle, settings) return setTermSettings(port.Handle, settings)
} }