From 16382eb620bc3d513274f40940df01924c0ae088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 26 Apr 2021 14:49:53 +0200 Subject: [PATCH] Fix RTU masters not connecting after system restart --- libnymea-core/modbus/modbusrtumanager.cpp | 5 +++++ libnymea/hardware/modbus/modbusrtumaster.h | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libnymea-core/modbus/modbusrtumanager.cpp b/libnymea-core/modbus/modbusrtumanager.cpp index 2fa405ea..0ac63f46 100644 --- a/libnymea-core/modbus/modbusrtumanager.cpp +++ b/libnymea-core/modbus/modbusrtumanager.cpp @@ -249,6 +249,11 @@ void ModbusRtuManager::addModbusRtuMasterInternally(ModbusRtuMasterImpl *modbusR }); emit modbusRtuMasterAdded(modbusMaster); + + // Try to connect the modbus rtu master after adding the bus + if (!modbusRtuMaster->connectDevice()) { + qCWarning(dcModbusRtu()) << "Failed to connect modbus RTU master. Could not connect to" << modbusMaster; + } } } diff --git a/libnymea/hardware/modbus/modbusrtumaster.h b/libnymea/hardware/modbus/modbusrtumaster.h index df4fb94d..3be61a6b 100644 --- a/libnymea/hardware/modbus/modbusrtumaster.h +++ b/libnymea/hardware/modbus/modbusrtumaster.h @@ -78,7 +78,10 @@ signals: inline QDebug operator<<(QDebug debug, ModbusRtuMaster *modbusRtuMaster) { debug.nospace() << "ModbusRtuMaster(" << modbusRtuMaster->modbusUuid().toString(); debug.nospace() << ", " << modbusRtuMaster->serialPort(); - debug.nospace() << ", BaudRate: " << modbusRtuMaster->baudrate() << ") "; + debug.nospace() << ", BaudRate: " << modbusRtuMaster->baudrate(); + debug.nospace() << ", " << modbusRtuMaster->dataBits(); + debug.nospace() << ", " << modbusRtuMaster->stopBits(); + debug.nospace() << ", " << modbusRtuMaster->parity() << ") "; return debug.space(); };