From ac478032652f8a3579f716c015aed080ca8ec0e3 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 14 Aug 2023 13:03:44 +0200 Subject: [PATCH] Amperfied: Fix a crash when the Modbus RTU Master is removed --- amperfied/integrationpluginamperfied.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/amperfied/integrationpluginamperfied.cpp b/amperfied/integrationpluginamperfied.cpp index 6e6121b..817fc1f 100644 --- a/amperfied/integrationpluginamperfied.cpp +++ b/amperfied/integrationpluginamperfied.cpp @@ -270,6 +270,11 @@ void IntegrationPluginAmperfied::setupRtuConnection(ThingSetupInfo *info) { Thing *thing = info->thing(); ModbusRtuMaster *master = hardwareManager()->modbusRtuResource()->getModbusRtuMaster(thing->paramValue(energyControlThingRtuMasterParamTypeId).toUuid()); + if (!master) { + qCWarning(dcAmperfied()) << "The Modbus Master is not available any more."; + info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("The modbus RTU connection is not available.")); + return; + } quint16 slaveId = thing->paramValue(energyControlThingSlaveIdParamTypeId).toUInt(); AmperfiedModbusRtuConnection *connection = new AmperfiedModbusRtuConnection(master, slaveId, thing);