From ccdb0c371fa74f0d774c0aa4db4bf836956d761b Mon Sep 17 00:00:00 2001 From: Boernsman Date: Sun, 2 May 2021 11:45:44 +0200 Subject: [PATCH] fixed wrong modbus tcp signals --- modbus/modbustcpmaster.cpp | 18 +++++++++--------- modbus/modbustcpmaster.h | 2 ++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/modbus/modbustcpmaster.cpp b/modbus/modbustcpmaster.cpp index 3220842..22b035e 100644 --- a/modbus/modbustcpmaster.cpp +++ b/modbus/modbustcpmaster.cpp @@ -131,20 +131,20 @@ QUuid ModbusTCPMaster::readCoil(uint slaveAddress, uint registerAddress, uint si connect(reply, &QModbusReply::finished, this, [reply, requestId, this] { if (reply->error() == QModbusDevice::NoError) { - writeRequestExecuted(requestId, true); + emit readRequestExecuted(requestId, true); const QModbusDataUnit unit = reply->result(); uint modbusAddress = unit.startAddress(); emit receivedCoil(reply->serverAddress(), modbusAddress, unit.values()); } else { - writeRequestExecuted(requestId, false); + emit readRequestExecuted(requestId, false); qCWarning(dcModbusTCP()) << "Read response error:" << reply->error(); } }); connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTCP()) << "Modbus reply error:" << error; - emit writeRequestError(requestId, reply->errorString()); + emit readRequestError(requestId, reply->errorString()); reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(200, reply, &QModbusReply::deleteLater); @@ -218,13 +218,13 @@ QUuid ModbusTCPMaster::readDiscreteInput(uint slaveAddress, uint registerAddress connect(reply, &QModbusReply::finished, this, [reply, requestId, this] { if (reply->error() == QModbusDevice::NoError) { - writeRequestExecuted(requestId, true); + emit readRequestExecuted(requestId, true); const QModbusDataUnit unit = reply->result(); uint modbusAddress = unit.startAddress(); emit receivedDiscreteInput(reply->serverAddress(), modbusAddress, unit.values()); } else { - writeRequestExecuted(requestId, false); + emit readRequestExecuted(requestId, false); qCWarning(dcModbusTCP()) << "Read response error:" << reply->error(); } }); @@ -232,7 +232,7 @@ QUuid ModbusTCPMaster::readDiscreteInput(uint slaveAddress, uint registerAddress qCWarning(dcModbusTCP()) << "Modbus replay error:" << error; QModbusReply *reply = qobject_cast(sender()); - emit writeRequestError(requestId, reply->errorString()); + emit readRequestError(requestId, reply->errorString()); reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); @@ -262,20 +262,20 @@ QUuid ModbusTCPMaster::readInputRegister(uint slaveAddress, uint registerAddress connect(reply, &QModbusReply::finished, this, [reply, requestId, this] { reply->deleteLater(); if (reply->error() == QModbusDevice::NoError) { - writeRequestExecuted(requestId, true); + emit readRequestExecuted(requestId, true); const QModbusDataUnit unit = reply->result(); uint modbusAddress = unit.startAddress(); emit receivedInputRegister(reply->serverAddress(), modbusAddress, unit.values()); } else { - writeRequestExecuted(requestId, false); + emit readRequestExecuted(requestId, false); qCWarning(dcModbusTCP()) << "Read response error:" << reply->error(); } }); connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTCP()) << "Modbus reply error:" << error; - emit writeRequestError(requestId, reply->errorString()); + emit readRequestError(requestId, reply->errorString()); reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); diff --git a/modbus/modbustcpmaster.h b/modbus/modbustcpmaster.h index bede700..977be48 100644 --- a/modbus/modbustcpmaster.h +++ b/modbus/modbustcpmaster.h @@ -82,6 +82,8 @@ signals: void writeRequestExecuted(const QUuid &requestId, bool success); void writeRequestError(const QUuid &requestId, const QString &error); + + void readRequestExecuted(const QUuid &requestId, bool success); void readRequestError(const QUuid &requestId, const QString &error); void receivedCoil(uint slaveAddress, uint modbusRegister, const QVector &values);