Implement modbus resource siganls and improve connected state notifications

pull/390/head
Simon Stürz 2021-02-17 11:21:43 +01:00
parent abcfd32feb
commit a69b819373
4 changed files with 21 additions and 7 deletions

View File

@ -41,7 +41,17 @@ ModbusRtuHardwareResourceImplementation::ModbusRtuHardwareResourceImplementation
ModbusRtuHardwareResource(parent),
m_modbusRtuManager(modbusRtuManager)
{
connect(m_modbusRtuManager, &ModbusRtuManager::modbusRtuMasterAdded, this, [=](ModbusRtuMaster *modbusRtuMaster){
emit modbusRtuMasterAdded(modbusRtuMaster->modbusUuid());
});
connect(m_modbusRtuManager, &ModbusRtuManager::modbusRtuMasterRemoved, this, [=](ModbusRtuMaster *modbusRtuMaster){
emit modbusRtuMasterRemoved(modbusRtuMaster->modbusUuid());
});
connect(m_modbusRtuManager, &ModbusRtuManager::modbusRtuMasterChanged, this, [=](ModbusRtuMaster *modbusRtuMaster){
emit modbusRtuMasterChanged(modbusRtuMaster->modbusUuid());
});
}
QList<ModbusRtuMaster *> ModbusRtuHardwareResourceImplementation::modbusRtuMasters() const
@ -61,7 +71,7 @@ ModbusRtuMaster *ModbusRtuHardwareResourceImplementation::getModbusRtuMaster(con
bool ModbusRtuHardwareResourceImplementation::available() const
{
return m_available;
return m_modbusRtuManager->supported();
}
bool ModbusRtuHardwareResourceImplementation::enabled() const

View File

@ -58,7 +58,7 @@ ModbusRtuManager::ModbusRtuManager(SerialPortMonitor *serialPortMonitor, QObject
if (!modbusMasterImpl->connectDevice()) {
qCDebug(dcModbusRtu()) << "Reconnect" << modbusMaster << "failed.";
} else {
qCDebug(dcModbusRtu()) << "Reconnected" << modbusMaster << "sucessfully.";
qCDebug(dcModbusRtu()) << "Reconnected" << modbusMaster << "successfully.";
}
}
}

View File

@ -60,11 +60,15 @@ ModbusRtuMasterImpl::ModbusRtuMasterImpl(const QUuid &modbusUuid, const QString
connect(m_modbus, &QModbusTcpClient::stateChanged, this, [=](QModbusDevice::State state){
qCDebug(dcModbusRtu()) << "Connection state changed" << m_modbusUuid.toString() << m_serialPort << state;
if (state == QModbusDevice::ConnectedState) {
m_connected = true;
emit connectedChanged(m_connected);
if (m_connected != true) {
m_connected = true;
emit connectedChanged(m_connected);
}
} else {
m_connected = false;
emit connectedChanged(m_connected);
if (m_connected != false) {
m_connected = false;
emit connectedChanged(m_connected);
}
}
});

View File

@ -79,7 +79,7 @@ inline QDebug operator<<(QDebug debug, ModbusRtuMaster *modbusRtuMaster) {
debug.nospace() << "ModbusRtuMaster(" << modbusRtuMaster->modbusUuid().toString();
debug.nospace() << ", " << modbusRtuMaster->serialPort();
debug.nospace() << ", BaudRate: " << modbusRtuMaster->baudrate() << ") ";
return debug;
return debug.space();
};