diff --git a/src/portcontrol.cpp b/src/portcontrol.cpp --- a/src/portcontrol.cpp +++ b/src/portcontrol.cpp @@ -514,6 +514,27 @@ void PortControl::openPort() } } +unsigned PortControl::maxBitRate() const +{ + float baud = serialPort->baudRate(); + float dataBits = serialPort->dataBits(); + float parityBits = serialPort->parity() == QSerialPort::NoParity ? 0 : 1; + + float stopBits; + if (serialPort->stopBits() == QSerialPort::OneAndHalfStop) + { + stopBits = 1.5; + } + else + { + stopBits = serialPort->stopBits(); + } + + float frame_size = 1 /* start bit */ + dataBits + parityBits + stopBits; + + return float(baud) / frame_size; +} + void PortControl::saveSettings(QSettings* settings) { settings->beginGroup(SettingGroup_Port);