summaryrefslogtreecommitdiffstats
path: root/src/serialbus/qmodbusrtuserialmaster_p.h
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-06-02 22:00:57 +0200
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-06-03 14:51:42 +0000
commite704a83b4a1a1eb69b62ee2cb029c549d99959ed (patch)
tree659532582a03f43ef6ae9741ccb0b302ae6c7189 /src/serialbus/qmodbusrtuserialmaster_p.h
parentf9201ca7bad9220149fb39b89914e83a4a14dffc (diff)
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 calculateInterFrameDelay(). Task-number: QTBUG-53767 Change-Id: I15fdd42990f1211ab0133b557c5b0ffd625038c1 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/serialbus/qmodbusrtuserialmaster_p.h')
-rw-r--r--src/serialbus/qmodbusrtuserialmaster_p.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/serialbus/qmodbusrtuserialmaster_p.h b/src/serialbus/qmodbusrtuserialmaster_p.h
index 801072f..e7e9a92 100644
--- a/src/serialbus/qmodbusrtuserialmaster_p.h
+++ b/src/serialbus/qmodbusrtuserialmaster_p.h
@@ -291,9 +291,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_interFrameDelayMilliseconds);
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