summaryrefslogtreecommitdiffstats
path: root/src/serialbus/qmodbusrtuserialmaster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialbus/qmodbusrtuserialmaster.cpp')
-rw-r--r--src/serialbus/qmodbusrtuserialmaster.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/serialbus/qmodbusrtuserialmaster.cpp b/src/serialbus/qmodbusrtuserialmaster.cpp
index 99006f4..a54b253 100644
--- a/src/serialbus/qmodbusrtuserialmaster.cpp
+++ b/src/serialbus/qmodbusrtuserialmaster.cpp
@@ -104,6 +104,33 @@ void QModbusRtuSerialMaster::setInterFrameDelay(int microseconds)
}
/*!
+ \since 5.13
+
+ Returns the amount of milliseconds for the silent interval between a Modbus
+ broadcast and a consecutive Modbus messages. The default value is set to
+ \c 100 milliseconds.
+*/
+int QModbusRtuSerialMaster::turnaroundDelay() const
+{
+ Q_D(const QModbusRtuSerialMaster);
+ return d->m_turnaroundDelay;
+}
+
+/*!
+ \since 5.13
+
+ Sets the amount of milliseconds for the silent interval between a Modbus
+ broadcast and a consecutive Modbus messages to \a turnaroundDelay.
+ Typically the turnaround delay is in the range of \c 100 to \c 200
+ milliseconds.
+*/
+void QModbusRtuSerialMaster::setTurnaroundDelay(int turnaroundDelay)
+{
+ Q_D(QModbusRtuSerialMaster);
+ d->m_turnaroundDelay = turnaroundDelay;
+}
+
+/*!
\internal
*/
QModbusRtuSerialMaster::QModbusRtuSerialMaster(QModbusRtuSerialMasterPrivate &dd, QObject *parent)
@@ -150,10 +177,6 @@ void QModbusRtuSerialMaster::close()
if (d->m_serialPort->isOpen())
d->m_serialPort->close();
- // enqueue current active request back for abortion
- d->m_queue.enqueue(d->m_current);
- d->m_current = QModbusClientPrivate::QueueElement();
-
int numberOfAborts = 0;
while (!d->m_queue.isEmpty()) {
// Finish each open reply and forget them