From 40be986e18f244126f934c3bb0351ecb062a2060 Mon Sep 17 00:00:00 2001 From: Karsten Heimrich Date: Fri, 3 Jun 2016 15:15:14 +0200 Subject: Fix Modbus timeout on Windows. Use a properly set or calculated value, do not sporadically calculate it inside a sending function. The only place the caluculation shall happen is in setupEnvironment(). Task-number: QTBUG-53767 Change-Id: Id40fd3406bee404b9d44c8ad43a5160622eda2de Reviewed-by: Alex Blasche --- src/serialbus/qmodbusrtuserialmaster_p.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/serialbus/qmodbusrtuserialmaster_p.h b/src/serialbus/qmodbusrtuserialmaster_p.h index 66e693e..105e4a0 100644 --- a/src/serialbus/qmodbusrtuserialmaster_p.h +++ b/src/serialbus/qmodbusrtuserialmaster_p.h @@ -282,9 +282,7 @@ public: m_current.bytesWritten = 0; m_current.numberOfRetries--; m_serialPort->write(m_current.adu); - // Example: 9600 baud, 11 bit per packet -> 872 char/sec - // so: 1000 ms / 872 char = 1.147 ms/char * 3.5 character - m_sendTimer.start((1000. / (qreal(m_baudRate) / 11.)) * m_current.adu.size()); + m_sendTimer.start(m_timeoutThreeDotFiveMs); qCDebug(QT_MODBUS) << "(RTU client) Sent Serial PDU:" << m_current.requestPdu; qCDebug(QT_MODBUS_LOW).noquote() << "(RTU client) Sent Serial ADU: 0x" + m_current.adu -- cgit v1.2.3