fixed wrong modbus tcp signals
This commit is contained in:
parent
31e1169d4d
commit
ccdb0c371f
@ -131,20 +131,20 @@ QUuid ModbusTCPMaster::readCoil(uint slaveAddress, uint registerAddress, uint si
|
|||||||
connect(reply, &QModbusReply::finished, this, [reply, requestId, this] {
|
connect(reply, &QModbusReply::finished, this, [reply, requestId, this] {
|
||||||
|
|
||||||
if (reply->error() == QModbusDevice::NoError) {
|
if (reply->error() == QModbusDevice::NoError) {
|
||||||
writeRequestExecuted(requestId, true);
|
emit readRequestExecuted(requestId, true);
|
||||||
const QModbusDataUnit unit = reply->result();
|
const QModbusDataUnit unit = reply->result();
|
||||||
uint modbusAddress = unit.startAddress();
|
uint modbusAddress = unit.startAddress();
|
||||||
emit receivedCoil(reply->serverAddress(), modbusAddress, unit.values());
|
emit receivedCoil(reply->serverAddress(), modbusAddress, unit.values());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
writeRequestExecuted(requestId, false);
|
emit readRequestExecuted(requestId, false);
|
||||||
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){
|
connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){
|
||||||
|
|
||||||
qCWarning(dcModbusTCP()) << "Modbus reply 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
|
reply->finished(); // To make sure it will be deleted
|
||||||
});
|
});
|
||||||
QTimer::singleShot(200, reply, &QModbusReply::deleteLater);
|
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] {
|
connect(reply, &QModbusReply::finished, this, [reply, requestId, this] {
|
||||||
|
|
||||||
if (reply->error() == QModbusDevice::NoError) {
|
if (reply->error() == QModbusDevice::NoError) {
|
||||||
writeRequestExecuted(requestId, true);
|
emit readRequestExecuted(requestId, true);
|
||||||
const QModbusDataUnit unit = reply->result();
|
const QModbusDataUnit unit = reply->result();
|
||||||
uint modbusAddress = unit.startAddress();
|
uint modbusAddress = unit.startAddress();
|
||||||
emit receivedDiscreteInput(reply->serverAddress(), modbusAddress, unit.values());
|
emit receivedDiscreteInput(reply->serverAddress(), modbusAddress, unit.values());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
writeRequestExecuted(requestId, false);
|
emit readRequestExecuted(requestId, false);
|
||||||
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -232,7 +232,7 @@ QUuid ModbusTCPMaster::readDiscreteInput(uint slaveAddress, uint registerAddress
|
|||||||
|
|
||||||
qCWarning(dcModbusTCP()) << "Modbus replay error:" << error;
|
qCWarning(dcModbusTCP()) << "Modbus replay error:" << error;
|
||||||
QModbusReply *reply = qobject_cast<QModbusReply *>(sender());
|
QModbusReply *reply = qobject_cast<QModbusReply *>(sender());
|
||||||
emit writeRequestError(requestId, reply->errorString());
|
emit readRequestError(requestId, reply->errorString());
|
||||||
reply->finished(); // To make sure it will be deleted
|
reply->finished(); // To make sure it will be deleted
|
||||||
});
|
});
|
||||||
QTimer::singleShot(2000, reply, &QModbusReply::deleteLater);
|
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] {
|
connect(reply, &QModbusReply::finished, this, [reply, requestId, this] {
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
if (reply->error() == QModbusDevice::NoError) {
|
if (reply->error() == QModbusDevice::NoError) {
|
||||||
writeRequestExecuted(requestId, true);
|
emit readRequestExecuted(requestId, true);
|
||||||
const QModbusDataUnit unit = reply->result();
|
const QModbusDataUnit unit = reply->result();
|
||||||
uint modbusAddress = unit.startAddress();
|
uint modbusAddress = unit.startAddress();
|
||||||
emit receivedInputRegister(reply->serverAddress(), modbusAddress, unit.values());
|
emit receivedInputRegister(reply->serverAddress(), modbusAddress, unit.values());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
writeRequestExecuted(requestId, false);
|
emit readRequestExecuted(requestId, false);
|
||||||
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
qCWarning(dcModbusTCP()) << "Read response error:" << reply->error();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){
|
connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){
|
||||||
|
|
||||||
qCWarning(dcModbusTCP()) << "Modbus reply 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
|
reply->finished(); // To make sure it will be deleted
|
||||||
});
|
});
|
||||||
QTimer::singleShot(2000, reply, &QModbusReply::deleteLater);
|
QTimer::singleShot(2000, reply, &QModbusReply::deleteLater);
|
||||||
|
|||||||
@ -82,6 +82,8 @@ signals:
|
|||||||
|
|
||||||
void writeRequestExecuted(const QUuid &requestId, bool success);
|
void writeRequestExecuted(const QUuid &requestId, bool success);
|
||||||
void writeRequestError(const QUuid &requestId, const QString &error);
|
void writeRequestError(const QUuid &requestId, const QString &error);
|
||||||
|
|
||||||
|
void readRequestExecuted(const QUuid &requestId, bool success);
|
||||||
void readRequestError(const QUuid &requestId, const QString &error);
|
void readRequestError(const QUuid &requestId, const QString &error);
|
||||||
|
|
||||||
void receivedCoil(uint slaveAddress, uint modbusRegister, const QVector<quint16> &values);
|
void receivedCoil(uint slaveAddress, uint modbusRegister, const QVector<quint16> &values);
|
||||||
|
|||||||
Reference in New Issue
Block a user