Adds immediate migration results in progress

This commit is contained in:
torsten committed 2026-08-19 11:18:24 +02:00
1 parent 8453e104c5
commit 3bb6e89496
2102 files changed
+17482 -15071

No files matched your search

@@ -12,10 +12,9 @@
namespace MeteoDataManagement
{
DdsHandler::DdsHandler(int domainId)
: m_ddsConnector(std::make_shared<DDSConnector::DdsConnector>(domainId, IDL::PartitionType::AllExercises))
{
DEBUG_LOG() << "DdsHandler(" << domainId << ") for partition: " << m_ddsConnector->getDefaultPartition();
DdsHandler::DdsHandler(int domainId) : m_ddsConnector(std::make_shared<DDSConnector::DdsConnector>(domainId, IDL::PartitionType::AllExercises)),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
DEBUG_LOG(m_logger) << "DdsHandler(" << domainId << ") for partition: " << m_ddsConnector->getDefaultPartition();
} // end of ctor()
//-----------------------------------------------------------------------------
@@ -31,11 +30,11 @@ DdsHandler::~DdsHandler()
bool DdsHandler::init(const QStringList &qosFileList)
{
INFO_LOG() << "--- Start MeteoDataManagement DDSHandler.";
INFO_LOG(m_logger) << "--- Start MeteoDataManagement DDSHandler.";
if (!m_ddsConnector->init(qosFileList))
{
ERROR_LOG() << "Error initializing dds connections - aborting";
ERROR_LOG(m_logger) << "Error initializing dds connections - aborting";
return false;
}
@@ -52,12 +51,12 @@ bool DdsHandler::init(const QStringList &qosFileList)
// DTS
m_ddsDts = MeteoDataManagement::Interface::Dts::create(m_ddsConnector);
bool bRet = m_ddsDts->enableAll();
INFO_LOG() << "Dts initialised";
INFO_LOG(m_logger) << "Dts initialised";
// FTS
m_ddsFts = MeteoDataManagement::Interface::Fts::create(m_ddsConnector);
bRet &= m_ddsFts->enableAll();
INFO_LOG() << "Fts initialised";
INFO_LOG(m_logger) << "Fts initialised";
return bRet;
@@ -39,6 +39,7 @@ public:
qint64 currentPartitionTime() const;
private:
NGL::INGLLogger &m_logger;
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<Core::Interface::Dtc> m_dtcCore;
std::shared_ptr<Core::Pacemaker> m_pacemaker;
@@ -16,30 +16,29 @@ using namespace MeteoDataManagement;
HandlerInfrastructureData::HandlerInfrastructureData(const std::shared_ptr<DdsHandler> &ddsHandler,
const std::shared_ptr<HandlerMeteoDataUnits> &handlerMeteoDataUnits,
QObject *parent)
: QObject(parent)
QObject *parent) : QObject(parent)
, m_ddsHandler(ddsHandler)
, m_handlerMeteoDataUnits(handlerMeteoDataUnits)
{
, m_handlerMeteoDataUnits(handlerMeteoDataUnits),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
} // end of ctor()
//-----------------------------------------------------------------------------
bool HandlerInfrastructureData::init()
{
INFO_LOG() << "start init() DTC InfrastructureManagement ";
INFO_LOG(m_logger) << "start init() DTC InfrastructureManagement ";
// DTC InfrastructureManagement
m_dtc = InfrastructureManagement::Interface::Dtc::create(m_ddsHandler->dds());
if (m_dtc == nullptr)
{
ERROR_LOG() << "Could not create DTC InfrastructureManagement";
ERROR_LOG(m_logger) << "Could not create DTC InfrastructureManagement";
return false;
}
if (!m_dtc->enableMountingPointAsset() ||
!m_dtc->enableMainStructureElement())
{
ERROR_LOG() << "init() DTC InfrastructureManagement failed";
ERROR_LOG(m_logger) << "init() DTC InfrastructureManagement failed";
return false;
}
@@ -49,7 +48,7 @@ bool HandlerInfrastructureData::init()
m_dtcInstrumentationAssetCF.reset(m_ddsHandler->dds()->createDTC<DTC::InstrumentationAssetCFImpl>(filter));
if (!m_dtcInstrumentationAssetCF)
{
ERROR_LOG() << "init() DTC InfrastructureManagement failed";
ERROR_LOG(m_logger) << "init() DTC InfrastructureManagement failed";
return false;
}
m_dtcInstrumentationAssetCF->setSubscriberCallback([this](const InfrastructureManagement::InstrumentationAsset &data, DataModification modType)
@@ -82,7 +81,7 @@ void HandlerInfrastructureData::onAssetChanged(const InfrastructureManagement::I
if (data.mountingPointTypeId() != InfrastructureManagement::MountingPointType::MeteoDataUnit)
return;
INFO_LOG() << "onAssetChanged()"
INFO_LOG(m_logger) << "onAssetChanged()"
<< " assetId: " << data.id()
<< " mountingPointTypeId: " << data.mountingPointTypeId()
<< " name: " << data.name();
@@ -136,7 +135,7 @@ Core::GeoPosition HandlerInfrastructureData::getStructureElementPosition(int ass
const int seId = m_mountingPointAssetsMap.value(assetId);
if (seId <= 0)
{
WARNING_LOG() << "Could not find mountingPointAsset for asset id " << assetId;
WARNING_LOG(m_logger) << "Could not find mountingPointAsset for asset id " << assetId;
return Core::GeoPosition();
}
// Go through all MainStructureElements and search structureElementId
@@ -57,6 +57,8 @@ private Q_SLOTS:
void onMainStructureElementChanged(const InfrastructureManagement::MainStructureElement &data, DataModification modType = DataModification::eAdded);
private: // attributes
NGL::INGLLogger &m_logger;
std::shared_ptr<DdsHandler> m_ddsHandler; ///< Pointer to MDM DDS handler
std::shared_ptr<HandlerMeteoDataUnits> m_handlerMeteoDataUnits; ///< Pointer to meteo data units handler
std::shared_ptr<InfrastructureManagement::Interface::Dtc> m_dtc; ///< Pointer to DTC InfrastructureManagement interface object
@@ -19,12 +19,11 @@ using namespace MeteoDataManagement;
HandlerMeteoDataUnit::HandlerMeteoDataUnit(MainHandler *mainHandler,
const InfrastructureManagement::InstrumentationAsset &asset,
QObject *parent)
: QObject(parent)
QObject *parent) : QObject(parent)
, m_mainHandler(mainHandler)
, m_asset(asset)
, m_tcpWS(nullptr)
{
, m_tcpWS(nullptr),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
init();
} // end of ctor()
//-----------------------------------------------------------------------------
@@ -43,7 +42,7 @@ bool HandlerMeteoDataUnit::init()
if (jError.error != QJsonParseError::NoError ||
!doc.isObject())
{
ERROR_LOG() << "Can not initialize meteo data unit - properties are not parsable: "
ERROR_LOG(m_logger) << "Can not initialize meteo data unit - properties are not parsable: "
<< jError.errorString() << " - '" << m_asset.properties() << "'";
return false;
}
@@ -52,7 +51,7 @@ bool HandlerMeteoDataUnit::init()
quint16 windPort = obj[QStringLiteral("windPort")].toInt();
if (climatePort == 0 || windPort == 0)
{
ERROR_LOG() << "Can not parse climate and/or wind port from properties: '" <<
ERROR_LOG(m_logger) << "Can not parse climate and/or wind port from properties: '" <<
m_asset.properties() << "'";
return false;
}
@@ -135,10 +134,10 @@ void HandlerMeteoDataUnit::onPublishData()
ddsData = m_newMeteoData;
ddsData.timeStamp(m_mainHandler->dds()->currentPartitionTime());
INFO_LOG() << "Publish dynamic MeteoData to dds: " << ddsData;
INFO_LOG(m_logger) << "Publish dynamic MeteoData to dds: " << ddsData;
if (!m_mainHandler->dds()->dts()->publish(ddsData))
ERROR_LOG() << "Error publishing MdmMeteoData to dds";
ERROR_LOG(m_logger) << "Error publishing MdmMeteoData to dds";
} // end of onPublishData()
//-----------------------------------------------------------------------------
@@ -32,6 +32,7 @@ public:
~HandlerMeteoDataUnit();
private:
NGL::INGLLogger &m_logger;
bool init();
protected Q_SLOTS:
@@ -53,6 +54,7 @@ protected Q_SLOTS:
private:
NGL::INGLLogger &m_logger;
MainHandler *m_mainHandler; ///< Pointer to MDM DDS handler
InfrastructureManagement::InstrumentationAsset m_asset; ///< meteo unit data asset
@@ -14,9 +14,8 @@
namespace MeteoDataManagement
{
HandlerMeteoDataUnits::HandlerMeteoDataUnits(MainHandler *mainHandler)
: m_mainHandler(mainHandler)
{
HandlerMeteoDataUnits::HandlerMeteoDataUnits(MainHandler *mainHandler) : m_mainHandler(mainHandler),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
} // end of ctor()
//-----------------------------------------------------------------------------
@@ -28,7 +27,7 @@ HandlerMeteoDataUnits::~HandlerMeteoDataUnits()
bool HandlerMeteoDataUnits::init()
{
INFO_LOG() << "HandlerMeteoDataUnits::init().... Initialisation of MDU's will be started from ISM directly. ";
INFO_LOG(m_logger) << "HandlerMeteoDataUnits::init().... Initialisation of MDU's will be started from ISM directly. ";
return true;
} // end of init()
@@ -36,7 +35,7 @@ bool HandlerMeteoDataUnits::init()
bool HandlerMeteoDataUnits::addMeteoDataUnit(const InfrastructureManagement::InstrumentationAsset &asset)
{
INFO_LOG() << "addMeteoDataUnit: " << asset;
INFO_LOG(m_logger) << "addMeteoDataUnit: " << asset;
removeMeteoDataUnit(asset); // just to be sure
HandlerMeteoDataUnit *hMDU = new HandlerMeteoDataUnit(m_mainHandler, asset);
@@ -48,7 +47,7 @@ bool HandlerMeteoDataUnits::addMeteoDataUnit(const InfrastructureManagement::Ins
bool HandlerMeteoDataUnits::removeMeteoDataUnit(const InfrastructureManagement::InstrumentationAsset &asset)
{
INFO_LOG() << "removeMeteoDataUnit: " << asset;
INFO_LOG(m_logger) << "removeMeteoDataUnit: " << asset;
auto it = m_handlerMeteoDataUnitsMap.find(asset.id());
if (it == m_handlerMeteoDataUnitsMap.end())
return false;
@@ -28,6 +28,7 @@ public:
bool removeMeteoDataUnit(const InfrastructureManagement::InstrumentationAsset &asset);
private:
NGL::INGLLogger &m_logger;
QMap <int, HandlerMeteoDataUnit *> m_handlerMeteoDataUnitsMap; ///< Hold all meteo data unit handler
MainHandler *m_mainHandler; ///< Pointer to DDS handler
@@ -21,23 +21,23 @@ HandlerStaticMeteoData::HandlerStaticMeteoData(const std::shared_ptr<DdsHandler>
bool HandlerStaticMeteoData::init()
{
INFO_LOG() << "Start HandlerStaticMeteoData.";
INFO_LOG(m_logger) << "Start HandlerStaticMeteoData.";
// read data from db-table 'mdm_static_meteo_data'
QVector<Database::MdmStaticMeteoData> dataVec;
if (!m_db->select(dataVec))
{
ERROR_LOG() << "Error reading data from database 'mdm_static_meteo_data'!";
ERROR_LOG(m_logger) << "Error reading data from database 'mdm_static_meteo_data'!";
return false;
}
if (dataVec.isEmpty())
{
WARNING_LOG() << "DB table 'mdm_static_meteo_data' is empty! Try to create default entry.";
WARNING_LOG(m_logger) << "DB table 'mdm_static_meteo_data' is empty! Try to create default entry.";
if (!insertDefaultStaticMeteoDataEntry())
{
ERROR_LOG() << "Insert DB table 'mdm_static_meteo_data' failed! No static meteo data may be handled!";
ERROR_LOG(m_logger) << "Insert DB table 'mdm_static_meteo_data' failed! No static meteo data may be handled!";
return false; // Damit werden alle moeglicherweise erreichbaren MDU's nicht bearbeitet,
// da die Initialisierung des Service im 'SCM' mit Error beendet wird.
}
@@ -47,7 +47,7 @@ bool HandlerStaticMeteoData::init()
m_dbStaticMeteoData.timeStamp = QDateTime::currentMSecsSinceEpoch();
INFO_LOG() << "Insert into DB table 'mdm_static_meteo_data' successfully. id: "
INFO_LOG(m_logger) << "Insert into DB table 'mdm_static_meteo_data' successfully. id: "
<< m_dbStaticMeteoData.id;
onPublishData();
@@ -56,7 +56,7 @@ bool HandlerStaticMeteoData::init()
if (dataVec.size() > 1)
{
WARNING_LOG() << "Invalid number of table entries for 'mdm_static_meteo_data' size:"
WARNING_LOG(m_logger) << "Invalid number of table entries for 'mdm_static_meteo_data' size:"
<< dataVec.size()
<< " The first entry will be used only!";
}
@@ -70,7 +70,7 @@ bool HandlerStaticMeteoData::init()
void HandlerStaticMeteoData::onStaticMeteoDataModifyRequest(const rti::core::SampleIdentity &cookie,
const StaticMeteoDataModifyRequest &request)
{
INFO_LOG() << "onStaticMeteoDataModifyRequest: " << request;
INFO_LOG(m_logger) << "onStaticMeteoDataModifyRequest: " << request;
Core::FunctionReplyObject rep(request.id());
@@ -93,7 +93,7 @@ bool HandlerStaticMeteoData::updateStaticMeteoDatainDB(const StaticMeteoDataModi
{
if (request.id() != m_dbStaticMeteoData.id)
{
WARNING_LOG() << "Invalid id for db-table 'mdm_static_meteo_data'"
WARNING_LOG(m_logger) << "Invalid id for db-table 'mdm_static_meteo_data'"
<< m_dbStaticMeteoData.id
<< " correct id: " << m_dbStaticMeteoData.id;
return false;
@@ -119,10 +119,10 @@ void HandlerStaticMeteoData::onPublishData()
ddsData.note(note);
ddsData.weatherStationId(ddsData.id()); // MDUid == dbId
INFO_LOG() << "Publish static MeteoData to dds: " << ddsData;
INFO_LOG(m_logger) << "Publish static MeteoData to dds: " << ddsData;
if (!m_ddsHandler->dts()->publish(ddsData))
ERROR_LOG() << "Error publishing static MdmMeteoData to dds";
ERROR_LOG(m_logger) << "Error publishing static MdmMeteoData to dds";
} // end of onPublishData()
//-----------------------------------------------------------------------------
@@ -141,7 +141,7 @@ bool HandlerStaticMeteoData::insertDefaultStaticMeteoDataEntry()
if (!m_db->insert(dbData))
{
ERROR_LOG() << "insertDefaultStaticMeteoDataEntry for db-table 'mdm_static_meteo_data' failed!";
ERROR_LOG(m_logger) << "insertDefaultStaticMeteoDataEntry for db-table 'mdm_static_meteo_data' failed!";
return false;
}
return true;
@@ -24,6 +24,8 @@ public:
bool init();
private: // methods
NGL::INGLLogger &m_logger;
void onStaticMeteoDataModifyRequest(const rti::core::SampleIdentity &cookie,
const StaticMeteoDataModifyRequest &request) override final;
@@ -16,14 +16,13 @@
namespace MeteoDataManagement
{
MainHandler::MainHandler()
: m_ddsHandler(nullptr)
MainHandler::MainHandler() : m_ddsHandler(nullptr)
, m_dbHandler(nullptr)
, m_handlerMeteoDataUnits(nullptr)
, m_handlerInfrastructureData(nullptr)
, m_handlerStaticMeteoData(nullptr)
, m_gnaService(nullptr)
{
, m_gnaService(nullptr),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
} // end of ctor()
//-----------------------------------------------------------------------------
@@ -40,17 +39,17 @@ MainHandler::~MainHandler()
bool MainHandler::init(int domainId)
{
INFO_LOG() << "Start MeteoDataManagement MainHandler.";
INFO_LOG(m_logger) << "Start MeteoDataManagement MainHandler.";
const QString errStr = initInternal(domainId);
if (!errStr.isEmpty())
{
ERROR_LOG() << errStr;
ERROR_LOG(m_logger) << errStr;
if (m_ddsHandler && m_ddsHandler->pacemaker())
m_ddsHandler->pacemaker()->setNewState(Core::RunningState::StartingError, errStr);
return false;
}
m_ddsHandler->pacemaker()->setNewState(Core::RunningState::Running);
INFO_LOG() << "MeteoDataManagement MainHandler initialized.";
INFO_LOG(m_logger) << "MeteoDataManagement MainHandler initialized.";
return true;
}
@@ -68,7 +67,7 @@ QString MainHandler::initInternal(int domainId)
return QStringLiteral("Initialisation DbHandler failed.");
// create HandlerMeteoDataUnits
INFO_LOG() << "create HandlerMeteoDataUnits.";
INFO_LOG(m_logger) << "create HandlerMeteoDataUnits.";
m_handlerMeteoDataUnits = std::make_shared<HandlerMeteoDataUnits>(this);
if (!m_handlerMeteoDataUnits->init())
return QStringLiteral("create HandlerMeteoDataUnits failed.");
@@ -41,6 +41,7 @@ public:
std::shared_ptr<DatabaseInterface> db() const;
std::shared_ptr<HandlerInfrastructureData> ism() const { return m_handlerInfrastructureData; }
private:
NGL::INGLLogger &m_logger;
QString initInternal(int domainId);
private: // attributes
std::shared_ptr<DdsHandler> m_ddsHandler; ///< Pointer to DDS handler
@@ -48,6 +48,8 @@ protected Q_SLOTS:
void onRequestTimeout();
protected:
NGL::INGLLogger &m_logger;
/**
* pure virtual function from TcpSocket to initialize the especially sensor device
*/
@@ -26,7 +26,7 @@ TcpSocket::TcpSocket(const char *logName, QObject *parent)
, m_bSocketErrorWarnedOnce(false)
, m_logger(getLogger(logName))
{
DEBUG_LOG() << "CTOR TCP-Socket... " ;
DEBUG_LOG(m_logger) << "CTOR TCP-Socket... " ;
doConnect();
}
@@ -43,7 +43,7 @@ TcpSocket::~TcpSocket()
void TcpSocket::doConnect()
{
DEBUG_LOG() << "doConnect TCP-Socket " ;
DEBUG_LOG(m_logger) << "doConnect TCP-Socket " ;
if (m_socket)
m_socket->deleteLater();
@@ -60,7 +60,7 @@ void TcpSocket::doConnect()
if (m_tryReconnect)
{
INFO_LOG() << "Try reconnect to host " << m_hostName
INFO_LOG(m_logger) << "Try reconnect to host " << m_hostName
<< ":" << m_hostPort;
m_socket->connectToHost(m_hostName, m_hostPort);
}
@@ -69,7 +69,7 @@ void TcpSocket::doConnect()
void TcpSocket::start(const QString &hostName, quint16 port)
{
INFO_LOG() << "Try connect to host: " << hostName
INFO_LOG(m_logger) << "Try connect to host: " << hostName
<< ": " << port;
m_hostName = hostName;
@@ -81,7 +81,7 @@ void TcpSocket::start(const QString &hostName, quint16 port)
void TcpSocket::onConnected()
{
INFO_LOG() << "Connected to "
INFO_LOG(m_logger) << "Connected to "
<< m_socket->peerAddress().toString()
<< ":" << m_socket->peerPort();
m_bSocketErrorWarnedOnce = false;
@@ -95,46 +95,46 @@ void TcpSocket::onConnected()
// Das Setzen der Systemvariablen war ebenfalls ohne Auswirkung.
// Da diese Programmteile unter Windows eh so nicht zu uebersetzen sind, ist der Codeteil hier in Kommentar gesetzt.
// INFO_LOG() << "----Set TCP_KEEPIDLE parameter ";
// INFO_LOG(m_logger) << "----Set TCP_KEEPIDLE parameter ";
// const int keepAliveOption = 1; // on
// if (setsockopt(m_socket->socketDescriptor(), SOL_SOCKET, SO_KEEPALIVE, &keepAliveOption, sizeof(keepAliveOption)) != 0)
// {
// ERROR_LOG() << "Error setting SO_KEEPALIVE: " << errno;
// ERROR_LOG(m_logger) << "Error setting SO_KEEPALIVE: " << errno;
// }
// const int idleTimeout = 5; // sec
// if (setsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPIDLE, &idleTimeout, sizeof(idleTimeout)) != 0)
// {
// ERROR_LOG() << "Error setting TCP_KEEPIDLE: " << errno;
// ERROR_LOG(m_logger) << "Error setting TCP_KEEPIDLE: " << errno;
// }
// const int keepIntervalCnt = 10; // sec
// if (setsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPINTVL, &keepIntervalCnt, sizeof(keepIntervalCnt)) != 0)
// {
// ERROR_LOG() << "Error setting TCP_KEEPINTVL: " << errno;
// ERROR_LOG(m_logger) << "Error setting TCP_KEEPINTVL: " << errno;
// }
// const int idlePaketCnt = 2; // 2 probes -> detection shoud be comes after 5s + 2 * 10s => 25 sec
// if (setsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPCNT, &idlePaketCnt, sizeof(idlePaketCnt)) != 0)
// {
// ERROR_LOG() << "Error setting TCP_KEEPCNT: " << errno;
// ERROR_LOG(m_logger) << "Error setting TCP_KEEPCNT: " << errno;
// }
// //----- Testausgaben
// int getOption = 0;
// socklen_t optlen = sizeof(getOption);
// getsockopt(m_socket->socketDescriptor(), SOL_SOCKET, SO_KEEPALIVE, &getOption, &optlen);
// ERROR_LOG() << "...SO_KEEPALIVE set to: " << getOption;
// ERROR_LOG(m_logger) << "...SO_KEEPALIVE set to: " << getOption;
// getsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPIDLE, &getOption, &optlen);
// ERROR_LOG() << "...TCP_KEEPIDLE set to: " << getOption;
// ERROR_LOG(m_logger) << "...TCP_KEEPIDLE set to: " << getOption;
// getsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPINTVL, &getOption, &optlen);
// ERROR_LOG() << "...TCP_KEEPINTVL set to: " << getOption;
// ERROR_LOG(m_logger) << "...TCP_KEEPINTVL set to: " << getOption;
// getsockopt(m_socket->socketDescriptor(), SOL_TCP, TCP_KEEPCNT, &getOption, &optlen);
// ERROR_LOG() << "...TCP_KEEPCNT set to: " << getOption;
// ERROR_LOG(m_logger) << "...TCP_KEEPCNT set to: " << getOption;
init(); // pure virtual function
// Auspraegung mit spezieller Sensorinitialisierung durchfuehren
@@ -143,14 +143,14 @@ void TcpSocket::onConnected()
void TcpSocket::onDisonnected()
{
INFO_LOG() << "Disconnected from " << m_socket->peerAddress().toString()
INFO_LOG(m_logger) << "Disconnected from " << m_socket->peerAddress().toString()
<< ":" << m_socket->peerPort();
}
//-------------------------------------------------------------------
void TcpSocket::onError(QAbstractSocket::SocketError err)
{
ERROR_LOG() << "Socket error: " << err
ERROR_LOG(m_logger) << "Socket error: " << err
<< " \"" << m_socket->errorString() << "\""
<< " Hostname: " << m_hostName
<< " Serial Port:" << m_hostPort
@@ -178,7 +178,7 @@ void TcpSocket::onReadyRead()
while (m_socket->canReadLine())
{
const QByteArray line = m_socket->readLine();
DEBUG_LOG() << "Read line from sensor: " << line;
DEBUG_LOG(m_logger) << "Read line from sensor: " << line;
dataAvailable(line); // pure virtual function
// Auspraegung mit spezieller Sensordatenauswertung durchfuehren
@@ -190,14 +190,14 @@ bool TcpSocket::sendCommand(const QByteArray &qba)
{
bool bOk = true;
INFO_LOG() << "Send command: " << qba;
INFO_LOG(m_logger) << "Send command: " << qba;
if (m_socket->state() != QTcpSocket::ConnectedState)
{
if (m_bSocketErrorWarnedOnce)
{
m_bSocketErrorWarnedOnce = true;
WARNING_LOG() << "Error on sendCommand(). No socket connection estabilished."
WARNING_LOG(m_logger) << "Error on sendCommand(). No socket connection estabilished."
<< " Hostname: " << m_hostName;
}
return false;
@@ -208,7 +208,7 @@ bool TcpSocket::sendCommand(const QByteArray &qba)
if (trxBytes != qba.size())
{
bOk = false;
ERROR_LOG() << "Insufficient number of tansfered bytes."
ERROR_LOG(m_logger) << "Insufficient number of tansfered bytes."
<< " Soll: " << trxBytes << " Ist: " << qba.size();
}
m_socket->flush();
@@ -23,6 +23,7 @@ public:
~TcpSocket();
protected:
NGL::INGLLogger &m_logger;
/**
* Connect to converter
* @param[in] hostName Hostname or Ip address of the RS232-LAN Converter
@@ -47,6 +48,7 @@ protected Q_SLOTS:
bool sendCommand(const QByteArray &qba);
protected:
NGL::INGLLogger &m_logger;
/**
* pure virtual function to initialize the especially sensor device
*/
@@ -18,8 +18,7 @@ TcpWeatherStation::TcpWeatherStation(int id,
const QString &converterIp,
quint16 climatePort,
quint16 windPort,
QObject *parent)
: QObject(parent)
QObject *parent) : QObject(parent)
, m_id(id)
, m_converterIp(converterIp)
, m_climatePort(climatePort)
@@ -32,9 +31,9 @@ TcpWeatherStation::TcpWeatherStation(int id,
, m_direction(0.0)
, m_speed(0.0)
, m_climateOk(false)
, m_windOk(false)
{
INFO_LOG() << "Start TcpWeatherStation ip/(hostname): " << m_converterIp
, m_windOk(false),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
INFO_LOG(m_logger) << "Start TcpWeatherStation ip/(hostname): " << m_converterIp
<< " climatePort: " << m_climatePort
<< " windPort: " << m_windPort;
@@ -42,7 +41,7 @@ TcpWeatherStation::TcpWeatherStation(int id,
{
m_tcpClimate = new TcpClimate(this);
INFO_LOG() << "m_tcpClimate->start(" << m_converterIp << ", "
INFO_LOG(m_logger) << "m_tcpClimate->start(" << m_converterIp << ", "
<< QString::number(m_climatePort) << ")";
m_tcpClimate->start(m_converterIp, m_climatePort);
@@ -54,7 +53,7 @@ TcpWeatherStation::TcpWeatherStation(int id,
{
m_tcpWind = new TcpWind(this);
INFO_LOG() << "m_tcpWind->start(" << m_converterIp << ", "
INFO_LOG(m_logger) << "m_tcpWind->start(" << m_converterIp << ", "
<< QString::number(m_windPort) << ")";
m_tcpWind->start(m_converterIp, m_windPort);
@@ -68,7 +67,7 @@ TcpWeatherStation::TcpWeatherStation(int id,
void TcpWeatherStation::onClimateDataChanged(float pressure, float temperature, float humidity, bool climateOk)
{
INFO_LOG() << "onClimateDataChanged()"
INFO_LOG(m_logger) << "onClimateDataChanged()"
<< " MDU AssetId: " << m_id
<< " pressure: " << pressure
<< " temperature: " << temperature
@@ -87,7 +86,7 @@ void TcpWeatherStation::onClimateDataChanged(float pressure, float temperature,
void TcpWeatherStation::onWindDataChanged(float direction, float speed, bool windOk)
{
INFO_LOG() << "onWindDataChanged()"
INFO_LOG(m_logger) << "onWindDataChanged()"
<< " MDU AssetId: " << m_id
<< " direction: " << direction
<< " speed: " << speed
@@ -70,6 +70,7 @@ protected Q_SLOTS:
protected:
NGL::INGLLogger &m_logger;
int m_id; ///< weatherstation id
QString m_converterIp; ///< IP address of the RS232-LAN Converter
quint16 m_climatePort; ///< Access port number of climate sensor on the RS232-LAN Converter