Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.9.6
-
Distribution: Yocto Version: 2.4 (rocko)
Hardware Platform: Embedded platform with PHYTEC core module.
-
-
fcf05e2399a2d94af1c6a907221a95e3ab96ed1d (qt/qtserialbus/5.12)
Description
We use for our project qt5 with the following components:
GUI, Modbus, DBus, Qml, SQL, etc. The event-loop processes all named components. At the moment we have the problem with the Modbus. We get the following debug output:
15:28:31.723 [debug] qt.modbus.lowlevel: (RTU client) Sent Serial ADU: 0x0110006000060c0000ffffffff00000000000012f3 15:28:31.749 [debug] qt.modbus.lowlevel: (RTU client) Response buffer: "0110006000064015" 15:28:31.750 [debug] qt.modbus: (RTU client) Received ADU: "0110006000064015" 15:28:31.752 [debug] qt.modbus: (RTU client) Send successful: 0x10006000060c0000ffffffff000000000000 15:28:36.641 [debug] qt.modbus: (RTU client) Receive timeout: 0x10006000060c0000ffffffff000000000000
It seems that the Modbus Response has arrived faster than switching to the "Receive" state.
case Send: // class QModbusRtuSerialMasterPrivate .... } else { qCDebug(QT_MODBUS) << "(RTU client) Send successful:" << m_current.requestPdu; m_state = Receive; m_responseTimer.start(m_responseTimeoutDuration); } break;
Modbus Settings:
Parity: even
Baudrate: 115200 Bd
Databits: 8
Stop bits: 1
Response Time: 200 ms
Number of retries: 0
Attachments
For Gerrit Dashboard: QTBUG-69188 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
221549,4 | Fix RTU Master ignoring responses due to being in Send state | 5.12 | qt/qtserialbus | Status: MERGED | +2 | 0 |