From c08565cf460e979c1215570c004eea4c3ecb335c Mon Sep 17 00:00:00 2001 From: Boernsman Date: Thu, 4 Feb 2021 16:15:43 +0100 Subject: [PATCH] added more debug output --- unipi/integrationpluginunipi.cpp | 8 ++++---- unipi/neuron.cpp | 28 ++++++++++++---------------- unipi/neuron.h | 1 + unipi/neuronextension.cpp | 29 ++++++++++++----------------- unipi/neuronextension.h | 1 + 5 files changed, 30 insertions(+), 37 deletions(-) diff --git a/unipi/integrationpluginunipi.cpp b/unipi/integrationpluginunipi.cpp index 074ab71..dbe2ba4 100644 --- a/unipi/integrationpluginunipi.cpp +++ b/unipi/integrationpluginunipi.cpp @@ -1032,8 +1032,8 @@ bool IntegrationPluginUniPi::neuronDeviceInit() m_modbusTCPMaster = new QModbusTcpClient(this); m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkPortParameter, port); m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkAddressParameter, ipAddress.toString()); - m_modbusTCPMaster->setTimeout(1000); - m_modbusTCPMaster->setNumberOfRetries(3); + m_modbusTCPMaster->setTimeout(200); + m_modbusTCPMaster->setNumberOfRetries(1); connect(m_modbusTCPMaster, &QModbusTcpClient::stateChanged, this, &IntegrationPluginUniPi::onModbusTCPStateChanged); @@ -1067,8 +1067,8 @@ bool IntegrationPluginUniPi::neuronExtensionInterfaceInit() m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, baudrate); m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, 8); m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, 1); - //m_modbusRTUMaster->setTimeout(100); - //m_modbusRTUMaster->setNumberOfRetries(1); + m_modbusRTUMaster->setTimeout(400); + m_modbusRTUMaster->setNumberOfRetries(1); connect(m_modbusRTUMaster, &QModbusRtuSerialMaster::stateChanged, this, &IntegrationPluginUniPi::onModbusRTUStateChanged); diff --git a/unipi/neuron.cpp b/unipi/neuron.cpp index f6160f7..f11d428 100644 --- a/unipi/neuron.cpp +++ b/unipi/neuron.cpp @@ -40,6 +40,7 @@ Neuron::Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObje m_modbusInterface(modbusInterface), m_neuronType(neuronType) { + qCDebug(dcUniPi()) << "Neuron: Creating Neuron connection" << neuronType; m_inputPollingTimer = new QTimer(this); connect(m_inputPollingTimer, &QTimer::timeout, this, &Neuron::onInputPollingTimer); m_inputPollingTimer->setTimerType(Qt::TimerType::PreciseTimer); @@ -57,12 +58,14 @@ Neuron::Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObje connect(m_modbusInterface, &QModbusDevice::stateChanged, this, [this] (QModbusDevice::State state) { if (state == QModbusDevice::State::ConnectedState) { + qCDebug(dcUniPi()) << "Neuron: Starting polling timer"; if (m_inputPollingTimer) m_inputPollingTimer->start(); if (m_outputPollingTimer) m_outputPollingTimer->start(); emit connectionStateChanged(true); } else { + qCDebug(dcUniPi()) << "Neuron: Stopping polling timer"; if (m_inputPollingTimer) m_inputPollingTimer->stop(); if (m_outputPollingTimer) @@ -72,32 +75,25 @@ Neuron::Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObje }); } -Neuron::~Neuron(){ - if (m_inputPollingTimer) { - m_inputPollingTimer->stop(); - m_inputPollingTimer->deleteLater(); - m_inputPollingTimer = nullptr; - } - if (m_outputPollingTimer) { - m_outputPollingTimer->stop(); - m_outputPollingTimer->deleteLater(); - m_outputPollingTimer = nullptr; - } +Neuron::~Neuron() +{ + qCDebug(dcUniPi()) << "Neuron: Deleting Neuron connection" << m_neuronType; } bool Neuron::init() { + qCDebug(dcUniPi()) << "Neuron: Init"; if (!loadModbusMap()) { return false; } if (!m_modbusInterface) { - qWarning(dcUniPi()) << "Modbus TCP interface not available"; + qWarning(dcUniPi()) << "Neuron: Modbus TCP interface not available"; return false; } if (m_modbusInterface->connectDevice()) { - qWarning(dcUniPi()) << "Could not connect to modbus TCP device"; + qWarning(dcUniPi()) << "Neuron: Could not connect to modbus TCP device"; return false; } return true; @@ -166,7 +162,7 @@ QList Neuron::userLEDs() bool Neuron::loadModbusMap() { - qCDebug(dcUniPi()) << "Neuron Extension: load modbus map"; + qCDebug(dcUniPi()) << "Neuron: Load modbus map"; QStringList fileCoilList; QStringList fileRegisterList; @@ -628,7 +624,7 @@ bool Neuron::getCoils(QList registerList) bool Neuron::getAllDigitalInputs() { if (!m_modbusInterface) { - qCWarning(dcUniPi()) << "Neuron: ;Ḿodbus interface not initialized"; + qCWarning(dcUniPi()) << "Neuron: Ḿodbus interface not initialized"; return false; } return getCoils(m_modbusDigitalInputRegisters.values()); @@ -646,7 +642,7 @@ bool Neuron::getAllDigitalOutputs() bool Neuron::getAllAnalogInputs() { if (!m_modbusInterface) { - qCWarning(dcUniPi()) << "Neuron modbus interface not initialized"; + qCWarning(dcUniPi()) << "Neuron: Modbus interface not initialized"; return false; } foreach(QString circuit, m_modbusAnalogInputRegisters.keys()) { diff --git a/unipi/neuron.h b/unipi/neuron.h index f982159..f2fe143 100644 --- a/unipi/neuron.h +++ b/unipi/neuron.h @@ -63,6 +63,7 @@ public: L523, L533 }; + Q_ENUM(NeuronTypes) explicit Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObject *parent = nullptr); ~Neuron(); diff --git a/unipi/neuronextension.cpp b/unipi/neuronextension.cpp index bc9aaed..e27c4fb 100644 --- a/unipi/neuronextension.cpp +++ b/unipi/neuronextension.cpp @@ -42,6 +42,7 @@ NeuronExtension::NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialM m_slaveAddress(slaveAddress), m_extensionType(extensionType) { + qCDebug(dcUniPi()) << "NeuronExtension: Creating extension" << extensionType; m_inputPollingTimer = new QTimer(this); connect(m_inputPollingTimer, &QTimer::timeout, this, &NeuronExtension::onInputPollingTimer); m_inputPollingTimer->setTimerType(Qt::TimerType::PreciseTimer); @@ -74,32 +75,25 @@ NeuronExtension::NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialM }); } -NeuronExtension::~NeuronExtension(){ - if (m_inputPollingTimer) { - m_inputPollingTimer->stop(); - m_inputPollingTimer->deleteLater(); - m_inputPollingTimer = nullptr; - } - if (m_outputPollingTimer) { - m_outputPollingTimer->stop(); - m_outputPollingTimer->deleteLater(); - m_outputPollingTimer = nullptr; - } +NeuronExtension::~NeuronExtension() +{ + qCDebug(dcUniPi()) << "Neuron Extension: Deleting extension"; } -bool NeuronExtension::init() { - +bool NeuronExtension::init() +{ + qCDebug(dcUniPi()) << "Neuron Extension: Init"; if (!loadModbusMap()) { return false; } if (!m_modbusInterface) { - qWarning(dcUniPi()) << "Modbus RTU interface not available"; + qWarning(dcUniPi()) << "Neuron Extension: Modbus RTU interface not available"; return false; } if (m_modbusInterface->connectDevice()) { - qWarning(dcUniPi()) << "Could not connect to RTU device"; + qWarning(dcUniPi()) << "Neuron Extension: Could not connect to RTU device"; return false; } return true; @@ -134,6 +128,7 @@ int NeuronExtension::slaveAddress() void NeuronExtension::setSlaveAddress(int slaveAddress) { + qCDebug(dcUniPi()) << "Neuron Extension: Set slave address" << slaveAddress; m_slaveAddress = slaveAddress; } @@ -164,7 +159,7 @@ QList NeuronExtension::userLEDs() bool NeuronExtension::loadModbusMap() { - qCDebug(dcUniPi()) << "Neuron Extension: load modbus map"; + qCDebug(dcUniPi()) << "Neuron Extension: Load modbus map"; QStringList fileCoilList; QStringList fileRegisterList; @@ -490,7 +485,7 @@ bool NeuronExtension::getDigitalOutput(const QString &circuit) if (m_readRequestQueue.isEmpty()) { return modbusReadRequest(request); } else if (m_readRequestQueue.length() > 100) { - qCWarning(dcUniPi()) << "Neuron extension: too many pending read requests"; + qCWarning(dcUniPi()) << "Neuron extension: Too many pending read requests"; return false; } else { m_readRequestQueue.append(request); diff --git a/unipi/neuronextension.h b/unipi/neuronextension.h index 564c66b..1a3f040 100644 --- a/unipi/neuronextension.h +++ b/unipi/neuronextension.h @@ -56,6 +56,7 @@ public: xS11, xS51 }; + Q_ENUM(ExtensionTypes) explicit NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialMaster *modbusInterface, int slaveAddress, QObject *parent = nullptr); ~NeuronExtension();