added more debug output

This commit is contained in:
Boernsman 2021-02-04 16:15:43 +01:00
parent ad511fc498
commit c08565cf46
5 changed files with 30 additions and 37 deletions

View File

@ -1032,8 +1032,8 @@ bool IntegrationPluginUniPi::neuronDeviceInit()
m_modbusTCPMaster = new QModbusTcpClient(this); m_modbusTCPMaster = new QModbusTcpClient(this);
m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkPortParameter, port); m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkPortParameter, port);
m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkAddressParameter, ipAddress.toString()); m_modbusTCPMaster->setConnectionParameter(QModbusDevice::NetworkAddressParameter, ipAddress.toString());
m_modbusTCPMaster->setTimeout(1000); m_modbusTCPMaster->setTimeout(200);
m_modbusTCPMaster->setNumberOfRetries(3); m_modbusTCPMaster->setNumberOfRetries(1);
connect(m_modbusTCPMaster, &QModbusTcpClient::stateChanged, this, &IntegrationPluginUniPi::onModbusTCPStateChanged); 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::SerialBaudRateParameter, baudrate);
m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, 8); m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, 8);
m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, 1); m_modbusRTUMaster->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, 1);
//m_modbusRTUMaster->setTimeout(100); m_modbusRTUMaster->setTimeout(400);
//m_modbusRTUMaster->setNumberOfRetries(1); m_modbusRTUMaster->setNumberOfRetries(1);
connect(m_modbusRTUMaster, &QModbusRtuSerialMaster::stateChanged, this, &IntegrationPluginUniPi::onModbusRTUStateChanged); connect(m_modbusRTUMaster, &QModbusRtuSerialMaster::stateChanged, this, &IntegrationPluginUniPi::onModbusRTUStateChanged);

View File

@ -40,6 +40,7 @@ Neuron::Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObje
m_modbusInterface(modbusInterface), m_modbusInterface(modbusInterface),
m_neuronType(neuronType) m_neuronType(neuronType)
{ {
qCDebug(dcUniPi()) << "Neuron: Creating Neuron connection" << neuronType;
m_inputPollingTimer = new QTimer(this); m_inputPollingTimer = new QTimer(this);
connect(m_inputPollingTimer, &QTimer::timeout, this, &Neuron::onInputPollingTimer); connect(m_inputPollingTimer, &QTimer::timeout, this, &Neuron::onInputPollingTimer);
m_inputPollingTimer->setTimerType(Qt::TimerType::PreciseTimer); 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) { connect(m_modbusInterface, &QModbusDevice::stateChanged, this, [this] (QModbusDevice::State state) {
if (state == QModbusDevice::State::ConnectedState) { if (state == QModbusDevice::State::ConnectedState) {
qCDebug(dcUniPi()) << "Neuron: Starting polling timer";
if (m_inputPollingTimer) if (m_inputPollingTimer)
m_inputPollingTimer->start(); m_inputPollingTimer->start();
if (m_outputPollingTimer) if (m_outputPollingTimer)
m_outputPollingTimer->start(); m_outputPollingTimer->start();
emit connectionStateChanged(true); emit connectionStateChanged(true);
} else { } else {
qCDebug(dcUniPi()) << "Neuron: Stopping polling timer";
if (m_inputPollingTimer) if (m_inputPollingTimer)
m_inputPollingTimer->stop(); m_inputPollingTimer->stop();
if (m_outputPollingTimer) if (m_outputPollingTimer)
@ -72,32 +75,25 @@ Neuron::Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObje
}); });
} }
Neuron::~Neuron(){ Neuron::~Neuron()
if (m_inputPollingTimer) { {
m_inputPollingTimer->stop(); qCDebug(dcUniPi()) << "Neuron: Deleting Neuron connection" << m_neuronType;
m_inputPollingTimer->deleteLater();
m_inputPollingTimer = nullptr;
}
if (m_outputPollingTimer) {
m_outputPollingTimer->stop();
m_outputPollingTimer->deleteLater();
m_outputPollingTimer = nullptr;
}
} }
bool Neuron::init() bool Neuron::init()
{ {
qCDebug(dcUniPi()) << "Neuron: Init";
if (!loadModbusMap()) { if (!loadModbusMap()) {
return false; return false;
} }
if (!m_modbusInterface) { if (!m_modbusInterface) {
qWarning(dcUniPi()) << "Modbus TCP interface not available"; qWarning(dcUniPi()) << "Neuron: Modbus TCP interface not available";
return false; return false;
} }
if (m_modbusInterface->connectDevice()) { 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 false;
} }
return true; return true;
@ -166,7 +162,7 @@ QList<QString> Neuron::userLEDs()
bool Neuron::loadModbusMap() bool Neuron::loadModbusMap()
{ {
qCDebug(dcUniPi()) << "Neuron Extension: load modbus map"; qCDebug(dcUniPi()) << "Neuron: Load modbus map";
QStringList fileCoilList; QStringList fileCoilList;
QStringList fileRegisterList; QStringList fileRegisterList;
@ -628,7 +624,7 @@ bool Neuron::getCoils(QList<int> registerList)
bool Neuron::getAllDigitalInputs() bool Neuron::getAllDigitalInputs()
{ {
if (!m_modbusInterface) { if (!m_modbusInterface) {
qCWarning(dcUniPi()) << "Neuron: ;Ḿodbus interface not initialized"; qCWarning(dcUniPi()) << "Neuron: Ḿodbus interface not initialized";
return false; return false;
} }
return getCoils(m_modbusDigitalInputRegisters.values()); return getCoils(m_modbusDigitalInputRegisters.values());
@ -646,7 +642,7 @@ bool Neuron::getAllDigitalOutputs()
bool Neuron::getAllAnalogInputs() bool Neuron::getAllAnalogInputs()
{ {
if (!m_modbusInterface) { if (!m_modbusInterface) {
qCWarning(dcUniPi()) << "Neuron modbus interface not initialized"; qCWarning(dcUniPi()) << "Neuron: Modbus interface not initialized";
return false; return false;
} }
foreach(QString circuit, m_modbusAnalogInputRegisters.keys()) { foreach(QString circuit, m_modbusAnalogInputRegisters.keys()) {

View File

@ -63,6 +63,7 @@ public:
L523, L523,
L533 L533
}; };
Q_ENUM(NeuronTypes)
explicit Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObject *parent = nullptr); explicit Neuron(NeuronTypes neuronType, QModbusTcpClient *modbusInterface, QObject *parent = nullptr);
~Neuron(); ~Neuron();

View File

@ -42,6 +42,7 @@ NeuronExtension::NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialM
m_slaveAddress(slaveAddress), m_slaveAddress(slaveAddress),
m_extensionType(extensionType) m_extensionType(extensionType)
{ {
qCDebug(dcUniPi()) << "NeuronExtension: Creating extension" << extensionType;
m_inputPollingTimer = new QTimer(this); m_inputPollingTimer = new QTimer(this);
connect(m_inputPollingTimer, &QTimer::timeout, this, &NeuronExtension::onInputPollingTimer); connect(m_inputPollingTimer, &QTimer::timeout, this, &NeuronExtension::onInputPollingTimer);
m_inputPollingTimer->setTimerType(Qt::TimerType::PreciseTimer); m_inputPollingTimer->setTimerType(Qt::TimerType::PreciseTimer);
@ -74,32 +75,25 @@ NeuronExtension::NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialM
}); });
} }
NeuronExtension::~NeuronExtension(){ NeuronExtension::~NeuronExtension()
if (m_inputPollingTimer) { {
m_inputPollingTimer->stop(); qCDebug(dcUniPi()) << "Neuron Extension: Deleting extension";
m_inputPollingTimer->deleteLater();
m_inputPollingTimer = nullptr;
}
if (m_outputPollingTimer) {
m_outputPollingTimer->stop();
m_outputPollingTimer->deleteLater();
m_outputPollingTimer = nullptr;
}
} }
bool NeuronExtension::init() { bool NeuronExtension::init()
{
qCDebug(dcUniPi()) << "Neuron Extension: Init";
if (!loadModbusMap()) { if (!loadModbusMap()) {
return false; return false;
} }
if (!m_modbusInterface) { if (!m_modbusInterface) {
qWarning(dcUniPi()) << "Modbus RTU interface not available"; qWarning(dcUniPi()) << "Neuron Extension: Modbus RTU interface not available";
return false; return false;
} }
if (m_modbusInterface->connectDevice()) { 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 false;
} }
return true; return true;
@ -134,6 +128,7 @@ int NeuronExtension::slaveAddress()
void NeuronExtension::setSlaveAddress(int slaveAddress) void NeuronExtension::setSlaveAddress(int slaveAddress)
{ {
qCDebug(dcUniPi()) << "Neuron Extension: Set slave address" << slaveAddress;
m_slaveAddress = slaveAddress; m_slaveAddress = slaveAddress;
} }
@ -164,7 +159,7 @@ QList<QString> NeuronExtension::userLEDs()
bool NeuronExtension::loadModbusMap() bool NeuronExtension::loadModbusMap()
{ {
qCDebug(dcUniPi()) << "Neuron Extension: load modbus map"; qCDebug(dcUniPi()) << "Neuron Extension: Load modbus map";
QStringList fileCoilList; QStringList fileCoilList;
QStringList fileRegisterList; QStringList fileRegisterList;
@ -490,7 +485,7 @@ bool NeuronExtension::getDigitalOutput(const QString &circuit)
if (m_readRequestQueue.isEmpty()) { if (m_readRequestQueue.isEmpty()) {
return modbusReadRequest(request); return modbusReadRequest(request);
} else if (m_readRequestQueue.length() > 100) { } 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; return false;
} else { } else {
m_readRequestQueue.append(request); m_readRequestQueue.append(request);

View File

@ -56,6 +56,7 @@ public:
xS11, xS11,
xS51 xS51
}; };
Q_ENUM(ExtensionTypes)
explicit NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialMaster *modbusInterface, int slaveAddress, QObject *parent = nullptr); explicit NeuronExtension(ExtensionTypes extensionType, QModbusRtuSerialMaster *modbusInterface, int slaveAddress, QObject *parent = nullptr);
~NeuronExtension(); ~NeuronExtension();