diff --git a/libnymea-core/hardware/modbus/modbusrtumasterimpl.cpp b/libnymea-core/hardware/modbus/modbusrtumasterimpl.cpp index 302ba9af..356f0d87 100644 --- a/libnymea-core/hardware/modbus/modbusrtumasterimpl.cpp +++ b/libnymea-core/hardware/modbus/modbusrtumasterimpl.cpp @@ -167,6 +167,12 @@ bool ModbusRtuMasterImpl::connected() const return m_connected; } +void ModbusRtuMasterImpl::requestReconnect() +{ + disconnectDevice(); + connectDevice(); +} + bool ModbusRtuMasterImpl::connectDevice() { #ifdef WITH_QTSERIALBUS diff --git a/libnymea-core/hardware/modbus/modbusrtumasterimpl.h b/libnymea-core/hardware/modbus/modbusrtumasterimpl.h index 6df0749f..559b4fb9 100644 --- a/libnymea-core/hardware/modbus/modbusrtumasterimpl.h +++ b/libnymea-core/hardware/modbus/modbusrtumasterimpl.h @@ -68,6 +68,8 @@ public: bool connected() const override; + void requestReconnect() override; + bool connectDevice(); void disconnectDevice(); diff --git a/libnymea/hardware/modbus/modbusrtumaster.h b/libnymea/hardware/modbus/modbusrtumaster.h index 39ba94be..28c3a85a 100644 --- a/libnymea/hardware/modbus/modbusrtumaster.h +++ b/libnymea/hardware/modbus/modbusrtumaster.h @@ -54,6 +54,8 @@ public: virtual bool connected() const = 0; + virtual void requestReconnect() = 0; + // Requests virtual ModbusRtuReply *readCoil(int slaveAddress, int registerAddress, quint16 size = 1) = 0; virtual ModbusRtuReply *readDiscreteInput(int slaveAddress, int registerAddress, quint16 size = 1) = 0;