diff --git a/alphainnotec/integrationpluginalphainnotec.cpp b/alphainnotec/integrationpluginalphainnotec.cpp index 96b6f96..0011ff4 100644 --- a/alphainnotec/integrationpluginalphainnotec.cpp +++ b/alphainnotec/integrationpluginalphainnotec.cpp @@ -370,7 +370,6 @@ void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){ qCWarning(dcAlphaInnotec()) << "Modbus reply error occurred while execute action" << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else */ if (info->action().actionTypeId() == alphaConnectHotWaterSetpointTemperatureActionTypeId) { @@ -398,7 +397,6 @@ void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){ qCWarning(dcAlphaInnotec()) << "Modbus reply error occurred while execute action" << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else if (info->action().actionTypeId() == alphaConnectReturnSetpointTemperatureActionTypeId) { double temperature = info->action().paramValue(alphaConnectReturnSetpointTemperatureActionReturnSetpointTemperatureParamTypeId).toDouble(); @@ -425,7 +423,6 @@ void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){ qCWarning(dcAlphaInnotec()) << "Modbus reply error occurred while execute action" << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else if (info->action().actionTypeId() == alphaConnectSgReadyModeActionTypeId) { QString sgReadyModeString = info->action().paramValue(alphaConnectSgReadyModeActionSgReadyModeParamTypeId).toString(); @@ -463,7 +460,6 @@ void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){ qCWarning(dcAlphaInnotec()) << "Modbus reply error occurred while execute action" << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } } diff --git a/huawei/huaweifusionsolar.cpp b/huawei/huaweifusionsolar.cpp index e11c9e7..18aff94 100644 --- a/huawei/huaweifusionsolar.cpp +++ b/huawei/huaweifusionsolar.cpp @@ -105,10 +105,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Inverter active power\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -137,10 +136,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Inverter device status\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -168,10 +166,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Inverter energy produced\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -205,10 +202,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 1 status\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -236,10 +232,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 1 power\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -267,10 +262,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 1 state of charge\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -298,10 +292,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Power meter active power\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -335,10 +328,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 2 status\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -366,10 +358,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 2 power\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { @@ -397,10 +388,9 @@ void HuaweiFusionSolar::readNextRegister() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ qCWarning(dcHuaweiFusionSolar()) << "Modbus reply error occurred while updating \"Luna 2000 Battery 2 state of charge\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted }); } else { - delete reply; // Broadcast reply returns immediatly + reply->deleteLater(); // Broadcast reply returns immediatly finishRequest(); } } else { diff --git a/libnymea-modbus/modbustcpmaster.cpp b/libnymea-modbus/modbustcpmaster.cpp index 8c6a448..4a332fa 100644 --- a/libnymea-modbus/modbustcpmaster.cpp +++ b/libnymea-modbus/modbustcpmaster.cpp @@ -190,12 +190,11 @@ QUuid ModbusTCPMaster::readCoil(uint slaveAddress, uint registerAddress, uint si connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTcpMaster()) << "Modbus reply error:" << error; emit readRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(200, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { @@ -233,12 +232,11 @@ QUuid ModbusTCPMaster::writeHoldingRegisters(uint slaveAddress, uint registerAdd connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTcpMaster()) << "Modbus replay error:" << error; emit writeRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { @@ -292,16 +290,14 @@ QUuid ModbusTCPMaster::readDiscreteInput(uint slaveAddress, uint registerAddress } }); - connect(reply, &QModbusReply::errorOccurred, this, [requestId, this] (QModbusDevice::Error error){ + connect(reply, &QModbusReply::errorOccurred, this, [requestId, reply, this] (QModbusDevice::Error error){ qCWarning(dcModbusTcpMaster()) << "Modbus replay error:" << error; - QModbusReply *reply = qobject_cast(sender()); emit readRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { @@ -339,13 +335,12 @@ QUuid ModbusTCPMaster::readInputRegister(uint slaveAddress, uint registerAddress connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTcpMaster()) << "Modbus reply error:" << error; emit readRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { @@ -387,12 +382,11 @@ QUuid ModbusTCPMaster::readHoldingRegister(uint slaveAddress, uint registerAddre qCWarning(dcModbusTcpMaster()) << "Modbus reply error:" << error; emit readRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { @@ -438,12 +432,11 @@ QUuid ModbusTCPMaster::writeCoils(uint slaveAddress, uint registerAddress, const connect(reply, &QModbusReply::errorOccurred, this, [reply, requestId, this] (QModbusDevice::Error error){ qCWarning(dcModbusTcpMaster()) << "Modbus reply error:" << error; emit writeRequestError(requestId, reply->errorString()); - emit reply->finished(); // To make sure it will be deleted }); QTimer::singleShot(2000, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return QUuid(); } } else { diff --git a/libnymea-modbus/tools/connectiontool/modbusrtu.py b/libnymea-modbus/tools/connectiontool/modbusrtu.py index 2d490c6..228fd88 100644 --- a/libnymea-modbus/tools/connectiontool/modbusrtu.py +++ b/libnymea-modbus/tools/connectiontool/modbusrtu.py @@ -98,7 +98,6 @@ def writePropertyUpdateMethodImplementationsRtu(fileDescriptor, className, regis writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &ModbusRtuReply::errorOccurred, this, [reply] (ModbusRtuReply::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "ModbusRtu reply error occurred while updating \\"%s\\" registers" << error << reply->errorString();' % (className, registerDefinition['description'])) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') @@ -162,7 +161,6 @@ def writeBlockUpdateMethodImplementationsRtu(fileDescriptor, className, blockDef writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &ModbusRtuReply::errorOccurred, this, [reply] (ModbusRtuReply::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "ModbusRtu reply error occurred while updating block \\"%s\\" registers" << error << reply->errorString();' % (className, blockName)) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') @@ -315,7 +313,6 @@ def writeInitMethodImplementationRtu(fileDescriptor, className, registerDefiniti writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &ModbusRtuReply::errorOccurred, this, [reply] (ModbusRtuReply::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "ModbusRtu reply error occurred while updating \\"%s\\" registers" << error << reply->errorString();' % (className, registerDefinition['description'])) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') @@ -367,7 +364,6 @@ def writeInitMethodImplementationRtu(fileDescriptor, className, registerDefiniti writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &ModbusRtuReply::errorOccurred, this, [reply] (ModbusRtuReply::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "ModbusRtu reply error occurred while updating block \\"%s\\" registers" << error << reply->errorString();' % (className, blockName)) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') diff --git a/libnymea-modbus/tools/connectiontool/modbustcp.py b/libnymea-modbus/tools/connectiontool/modbustcp.py index 1fbd057..bf66b74 100644 --- a/libnymea-modbus/tools/connectiontool/modbustcp.py +++ b/libnymea-modbus/tools/connectiontool/modbustcp.py @@ -98,10 +98,9 @@ def writePropertyUpdateMethodImplementationsTcp(fileDescriptor, className, regis writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while updating \\"%s\\" registers from" << hostAddress().toString() << error << reply->errorString();' % (className, registerDefinition['description'])) - writeLine(fileDescriptor, ' emit reply->finished(); // To make sure it will be deleted') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' } else {') - writeLine(fileDescriptor, ' delete reply; // Broadcast reply returns immediatly') + writeLine(fileDescriptor, ' reply->deleteLater(); // Broadcast reply returns immediatly') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Error occurred while reading \\"%s\\" registers from" << hostAddress().toString() << errorString();' % (className, registerDefinition['description'])) @@ -154,7 +153,6 @@ def writeBlockUpdateMethodImplementationsTcp(fileDescriptor, className, blockDef writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while updating block \\"%s\\" registers" << error << reply->errorString();' % (className, blockName)) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') @@ -313,10 +311,9 @@ def writeInitMethodImplementationTcp(fileDescriptor, className, registerDefiniti writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while reading \\"%s\\" registers from" << hostAddress().toString() << error << reply->errorString();' % (className, registerDefinition['description'])) - writeLine(fileDescriptor, ' emit reply->finished(); // To make sure it will be deleted') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' } else {') - writeLine(fileDescriptor, ' delete reply; // Broadcast reply returns immediatly') + writeLine(fileDescriptor, ' reply->deleteLater(); // Broadcast reply returns immediatly') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Error occurred while reading \\"%s\\" registers from" << hostAddress().toString() << errorString();' % (className, registerDefinition['description'])) @@ -369,7 +366,6 @@ def writeInitMethodImplementationTcp(fileDescriptor, className, registerDefiniti writeLine(fileDescriptor) writeLine(fileDescriptor, ' connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error){') writeLine(fileDescriptor, ' qCWarning(dc%s()) << "Modbus reply error occurred while updating block \\"%s\\" registers" << error << reply->errorString();' % (className, blockName)) - writeLine(fileDescriptor, ' emit reply->finished();') writeLine(fileDescriptor, ' });') writeLine(fileDescriptor, ' }') writeLine(fileDescriptor, ' } else {') diff --git a/libnymea-sunspec/sunspecconnection.cpp b/libnymea-sunspec/sunspecconnection.cpp index d3507d5..f07de35 100644 --- a/libnymea-sunspec/sunspecconnection.cpp +++ b/libnymea-sunspec/sunspecconnection.cpp @@ -347,7 +347,7 @@ bool SunSpecConnection::scanSunspecBaseRegister(quint16 baseRegister) } if (reply->isFinished()) { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return false; } @@ -406,7 +406,7 @@ void SunSpecConnection::scanModelsOnBaseRegister(quint16 offset) } if (reply->isFinished()) { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return; } diff --git a/libnymea-sunspec/sunspecmodel.cpp b/libnymea-sunspec/sunspecmodel.cpp index dc00816..27ef1a2 100644 --- a/libnymea-sunspec/sunspecmodel.cpp +++ b/libnymea-sunspec/sunspecmodel.cpp @@ -144,12 +144,11 @@ void SunSpecModel::readBlockData() connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error) { qCWarning(dcSunSpecModelData()) << name() << description() << "Modbus reply while reading block data. Error:" << error; - emit reply->finished(); // To make sure it will be deleted }); } else { qCWarning(dcSunSpecModelData()) << "Read block data error: " << m_connection->modbusTcpClient()->errorString(); - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return; } } else { diff --git a/sunspec/solaredgebattery.cpp b/sunspec/solaredgebattery.cpp index 6920586..84e3bc3 100644 --- a/sunspec/solaredgebattery.cpp +++ b/sunspec/solaredgebattery.cpp @@ -198,13 +198,12 @@ void SolarEdgeBattery::readBlockData() emit blockDataUpdated(); }); - connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error) { + connect(reply, &QModbusReply::errorOccurred, this, [] (QModbusDevice::Error error) { qCWarning(dcSunSpec()) << "SolarEdgeBattery: Modbus reply error:" << error; - emit reply->finished(); // To make sure it will be deleted }); } else { qCWarning(dcSunSpec()) << "SolarEdgeBattery: Read error: " << m_connection->modbusTcpClient()->errorString(); - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately if (!m_initFinishedSuccess) { m_timer.stop(); emit initFinished(false); @@ -217,13 +216,12 @@ void SolarEdgeBattery::readBlockData() } }); - connect(reply, &QModbusReply::errorOccurred, this, [reply] (QModbusDevice::Error error) { + connect(reply, &QModbusReply::errorOccurred, this, [] (QModbusDevice::Error error) { qCWarning(dcSunSpec()) << "SolarEdgeBattery: Modbus reply error:" << error; - emit reply->finished(); // To make sure it will be deleted }); } else { qCWarning(dcSunSpec()) << "SolarEdgeBattery: Read error: " << m_connection->modbusTcpClient()->errorString(); - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately if (!m_initFinishedSuccess) { m_timer.stop(); emit initFinished(false); diff --git a/unipi/neuroncommon.cpp b/unipi/neuroncommon.cpp index e9da7e7..f0b462b 100644 --- a/unipi/neuroncommon.cpp +++ b/unipi/neuroncommon.cpp @@ -430,7 +430,7 @@ bool NeuronCommon::modbusWriteRequest(const Request &request) }); QTimer::singleShot(m_responseTimeoutTime, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return false; } } else { @@ -541,7 +541,7 @@ bool NeuronCommon::modbusReadRequest(const QModbusDataUnit &request) }); QTimer::singleShot(m_responseTimeoutTime, reply, &QModbusReply::deleteLater); } else { - delete reply; // broadcast replies return immediately + reply->deleteLater(); // broadcast replies return immediately return false; } } else {