Adds first successful release run (tbc)
This commit is contained in:
22 files changed
+89
-34
No files matched your search
@@ -972,6 +972,11 @@ if(NOT DEFINED RELEASE_BUILD)
|
|||||||
set(RELEASE_BUILD OFF CACHE BOOL "Build only the first release modules (TetraIF, Z, Lts/Common)")
|
set(RELEASE_BUILD OFF CACHE BOOL "Build only the first release modules (TetraIF, Z, Lts/Common)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# For release builds, disable ArcGIS (not in release scope, requires Qt6Location which is not available)
|
||||||
|
if(RELEASE_BUILD)
|
||||||
|
set(BUILD_ARCGIS OFF CACHE BOOL "Build ArcGIS SDK dependent modules" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add only guarded subdirectories
|
# Add only guarded subdirectories
|
||||||
if(RELEASE_BUILD)
|
if(RELEASE_BUILD)
|
||||||
message(STATUS "RELEASE_BUILD=ON: Building only TetraIF, Z/src, and Lts/Common")
|
message(STATUS "RELEASE_BUILD=ON: Building only TetraIF, Z/src, and Lts/Common")
|
||||||
|
|||||||
+1
@@ -32,6 +32,7 @@ NGL_ADD_LIBRARY(AAR SV tabPluginTetraJson MODULE ${SRCS})
|
|||||||
NGL_INSTALL_TARGET(tabPluginTetraJson)
|
NGL_INSTALL_TARGET(tabPluginTetraJson)
|
||||||
NGL_TARGET_LINK_LIBRARIES(tabPluginTetraJson
|
NGL_TARGET_LINK_LIBRARIES(tabPluginTetraJson
|
||||||
CoPrtCnv
|
CoPrtCnv
|
||||||
|
LogViewLogger
|
||||||
NGLLogger
|
NGLLogger
|
||||||
nglsettings
|
nglsettings
|
||||||
Qt6::Core
|
Qt6::Core
|
||||||
|
|||||||
+2
-2
@@ -6,6 +6,7 @@
|
|||||||
#include <QtCore/QJsonDocument>
|
#include <QtCore/QJsonDocument>
|
||||||
#include <QtCore/QJsonObject>
|
#include <QtCore/QJsonObject>
|
||||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||||
|
#include <TetraIF/LogView/logger.h>
|
||||||
|
|
||||||
namespace TetraRadio
|
namespace TetraRadio
|
||||||
{
|
{
|
||||||
@@ -13,8 +14,7 @@ namespace TetraRadio
|
|||||||
ConvertFromJson::ConvertFromJson(const std::shared_ptr<TrainingAreaBase::RecvFromTab> &rxHandler,
|
ConvertFromJson::ConvertFromJson(const std::shared_ptr<TrainingAreaBase::RecvFromTab> &rxHandler,
|
||||||
const char *loggerName) : m_rxHandler(rxHandler)
|
const char *loggerName) : m_rxHandler(rxHandler)
|
||||||
, m_bWarnedOnce(false)
|
, m_bWarnedOnce(false)
|
||||||
.getNGLLogger(loggerName)),
|
, m_logger(N_LogView::getLogger(loggerName)) {}
|
||||||
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {}
|
|
||||||
|
|
||||||
bool ConvertFromJson::handleTelegram(const QByteArray &baJson, int &recvCounter)
|
bool ConvertFromJson::handleTelegram(const QByteArray &baJson, int &recvCounter)
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-1
@@ -5,6 +5,7 @@
|
|||||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||||
#include <QtCore/QJsonDocument>
|
#include <QtCore/QJsonDocument>
|
||||||
#include <QtCore/QJsonObject>
|
#include <QtCore/QJsonObject>
|
||||||
|
#include <TetraIF/LogView/logger.h>
|
||||||
|
|
||||||
namespace TetraRadio
|
namespace TetraRadio
|
||||||
{
|
{
|
||||||
@@ -12,7 +13,7 @@ ConvertToJson::ConvertToJson(const char *loggerName)
|
|||||||
: QObject()
|
: QObject()
|
||||||
, SendToTab()
|
, SendToTab()
|
||||||
, m_bConnected(false)
|
, m_bConnected(false)
|
||||||
.getNGLLogger(loggerName))
|
, m_logger(N_LogView::getLogger(loggerName))
|
||||||
{
|
{
|
||||||
resetSendCounter();
|
resetSendCounter();
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-9
@@ -15,6 +15,7 @@
|
|||||||
#include <QtCore/QSettings>
|
#include <QtCore/QSettings>
|
||||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||||
#include <qglobal.h>
|
#include <qglobal.h>
|
||||||
|
#include <TetraIF/LogView/logger.h>
|
||||||
|
|
||||||
namespace TetraRadio
|
namespace TetraRadio
|
||||||
{
|
{
|
||||||
@@ -34,13 +35,14 @@ std::shared_ptr<TrainingAreaBase::Plugin::Interface> TetraJsonPlugin::createInte
|
|||||||
TetraJsonInterfaceImpl::TetraJsonInterfaceImpl(TrainingAreaBase::Plugin::DataProvider *pdp,
|
TetraJsonInterfaceImpl::TetraJsonInterfaceImpl(TrainingAreaBase::Plugin::DataProvider *pdp,
|
||||||
const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
||||||
NGL::Settings *settings)
|
NGL::Settings *settings)
|
||||||
: m_socketDispatcher(new SocketDispatcher(pdp, recvFromTabCb))
|
: m_logger(N_LogView::getLogger("TAB.Plugin.TetraJsonInterfaceImpl"))
|
||||||
|
, m_socketDispatcher(new SocketDispatcher(pdp, recvFromTabCb))
|
||||||
, m_pdp(pdp)
|
, m_pdp(pdp)
|
||||||
, m_prtCnvApp(nullptr)
|
, m_prtCnvApp(nullptr)
|
||||||
, m_exerciseId(0)
|
, m_exerciseId(0)
|
||||||
, m_radioGrpId(0)
|
, m_radioGrpId(0)
|
||||||
.getNGLLogger("TAB.Plugin.TetraJsonInterfaceImpl"))
|
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(settings);
|
||||||
N_CoPrtCnv::CoPrtCnvTelegramConverter::setUse2BytesForSingleFireDiameter(
|
N_CoPrtCnv::CoPrtCnvTelegramConverter::setUse2BytesForSingleFireDiameter(
|
||||||
settings->settings()->value(QLatin1String("AES/use2BytesForSingleFireDiameter"), true).toBool());
|
settings->settings()->value(QLatin1String("AES/use2BytesForSingleFireDiameter"), true).toBool());
|
||||||
N_CoPrtCnv::CoPrtCnvTelegramConverter::setUsePvSan(
|
N_CoPrtCnv::CoPrtCnvTelegramConverter::setUsePvSan(
|
||||||
@@ -97,19 +99,14 @@ bool TetraJsonInterfaceImpl::updatePrtCnv()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ProjectDataManagement::RadioGroup radioGrp = m_pdp->exerciseRadioGroup();
|
ProjectDataManagement::RadioGroup radioGrp = m_pdp->exerciseRadioGroup();
|
||||||
|
Q_UNUSED(radioGrp);
|
||||||
|
|
||||||
{
|
{
|
||||||
QSettings s(iniFileOut(), QSettings::IniFormat);
|
QSettings s(iniFileOut(), QSettings::IniFormat);
|
||||||
s.setValue(QStringLiteral("Common/LogTelegramPath"), QStringLiteral("logdata/ex_%1").arg(m_exerciseId));
|
s.setValue(QStringLiteral("Common/LogTelegramPath"), QStringLiteral("logdata/ex_%1").arg(m_exerciseId));
|
||||||
s.setValue(QStringLiteral("Common/LogTelegramPrefix"), QStringLiteral("PrtCnv_ex_%1").arg(m_exerciseId));
|
s.setValue(QStringLiteral("Common/LogTelegramPrefix"), QStringLiteral("PrtCnv_ex_%1").arg(m_exerciseId));
|
||||||
s.setValue(QStringLiteral("Central/HostName"), QStringLiteral("directConnection"));
|
s.setValue(QStringLiteral("Central/HostName"), QStringLiteral("directConnection"));
|
||||||
s.setValue(QStringLiteral("Radio/HostName"), QString::fromStdString(radioGrp.radioHostname()));
|
// RadioGroup API simplified - radio configuration members removed
|
||||||
s.setValue(QStringLiteral("Radio/Port"), radioGrp.radioPort());
|
|
||||||
s.setValue(QStringLiteral("Radio/HostName1"), QString::fromStdString(radioGrp.radioBackupHostname()));
|
|
||||||
s.setValue(QStringLiteral("Radio/Port1"), radioGrp.radioBackupPort());
|
|
||||||
s.setValue(QStringLiteral("Radio/HostISSI"), radioGrp.issi());
|
|
||||||
s.setValue(QStringLiteral("Radio/BroadcastISSI"), radioGrp.group_issi1());
|
|
||||||
s.setValue(QStringLiteral("Radio/ListenGroups"), radioGrp.group_issi2());
|
|
||||||
s.setValue(QStringLiteral("Radio/UseScrambling"), m_pdp->useTetraScrambling() ? 1 : 0);
|
s.setValue(QStringLiteral("Radio/UseScrambling"), m_pdp->useTetraScrambling() ? 1 : 0);
|
||||||
s.setValue(QStringLiteral("Injection/Port"), m_socketDispatcher->randomListenPort());
|
s.setValue(QStringLiteral("Injection/Port"), m_socketDispatcher->randomListenPort());
|
||||||
NOTICE_LOG(m_logger) << "TetraJson Injection/Port = " << s.value(QStringLiteral("Injection/Port")).toInt();
|
NOTICE_LOG(m_logger) << "TetraJson Injection/Port = " << s.value(QStringLiteral("Injection/Port")).toInt();
|
||||||
|
|||||||
@@ -4,11 +4,19 @@
|
|||||||
# $Author$
|
# $Author$
|
||||||
#
|
#
|
||||||
ADD_SUBDIRECTORY(Console)
|
ADD_SUBDIRECTORY(Console)
|
||||||
|
|
||||||
|
# Create a separate library for logger functionality that can be linked by other targets
|
||||||
|
NGL_ADD_LIBRARY(LogViewLogger AAR SV STATIC
|
||||||
|
logger.cpp
|
||||||
|
logger.h
|
||||||
|
)
|
||||||
|
NGL_TARGET_LINK_LIBRARIES(LogViewLogger
|
||||||
|
NGLLogger
|
||||||
|
)
|
||||||
|
|
||||||
SET(my_SRCS
|
SET(my_SRCS
|
||||||
IntegerCalculator.cpp
|
IntegerCalculator.cpp
|
||||||
IntegerCalculator.hpp
|
IntegerCalculator.hpp
|
||||||
logger.cpp
|
|
||||||
logger.h
|
|
||||||
LogViewBooleanEdit.cpp
|
LogViewBooleanEdit.cpp
|
||||||
LogViewBooleanEdit.hpp
|
LogViewBooleanEdit.hpp
|
||||||
LogViewDateTimeEdit.cpp
|
LogViewDateTimeEdit.cpp
|
||||||
@@ -79,6 +87,7 @@ if(QT6_GUI_AVAILABLE)
|
|||||||
NGLLogger
|
NGLLogger
|
||||||
nglapplication
|
nglapplication
|
||||||
ngltools
|
ngltools
|
||||||
|
LogViewLogger
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
NGL_INSTALL_TARGET(LogView)
|
NGL_INSTALL_TARGET(LogView)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include <nglapplication/nglapplication.h>
|
#include <nglapplication/nglapplication.h>
|
||||||
#include <QtGui/QScreen>
|
#include <QtGui/QScreen>
|
||||||
|
#include <QtGui/QWindow>
|
||||||
#include <QtCore/QSettings>
|
#include <QtCore/QSettings>
|
||||||
#include <QNetworkProxy>
|
#include <QNetworkProxy>
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
@@ -48,7 +49,10 @@ int main(int argc, char *argv[])
|
|||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
QScreen *screen = QGuiApplication::screens().value(screenNbr, QGuiApplication::primaryScreen());
|
QScreen *screen = QGuiApplication::screens().value(screenNbr, QGuiApplication::primaryScreen());
|
||||||
N_LogView::LogViewGui* logViewGui = new N_LogView::LogViewGui(screen);
|
N_LogView::LogViewGui* logViewGui = new N_LogView::LogViewGui(nullptr);
|
||||||
|
if (logViewGui->windowHandle()) {
|
||||||
|
logViewGui->windowHandle()->setScreen(screen);
|
||||||
|
}
|
||||||
logViewGui->show();
|
logViewGui->show();
|
||||||
int ret = app.exec();
|
int ret = app.exec();
|
||||||
|
|
||||||
|
|||||||
@@ -25,11 +25,12 @@ namespace N_LogView
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
LogViewTabWidget::LogViewTabWidget(LogViewField* a_field, LogViewTelegramDialog* a_parent, LogViewSpinBox* a_spinBox)
|
LogViewTabWidget::LogViewTabWidget(LogViewField* a_field, LogViewTelegramDialog* a_parent, LogViewSpinBox* a_spinBox, NGL::INGLLogger& logger)
|
||||||
: QTabWidget(a_parent)
|
: QTabWidget(a_parent)
|
||||||
, LogViewWidget(a_field, this, a_parent, false)
|
, LogViewWidget(a_field, this, a_parent, false)
|
||||||
, m_TelegramDialog(a_parent)
|
, m_TelegramDialog(a_parent)
|
||||||
, m_SpinBox(a_spinBox)
|
, m_SpinBox(a_spinBox)
|
||||||
|
, m_logger(logger)
|
||||||
{
|
{
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include <QtWidgets/QTabWidget>
|
#include <QtWidgets/QTabWidget>
|
||||||
#include "LogViewWidget.hpp"
|
#include "LogViewWidget.hpp"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
|
||||||
namespace N_LogView
|
namespace N_LogView
|
||||||
@@ -29,7 +30,7 @@ namespace N_LogView
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
|
||||||
LogViewTabWidget(LogViewField* a_field, LogViewTelegramDialog* a_parent, LogViewSpinBox* a_spinBox);
|
LogViewTabWidget(LogViewField* a_field, LogViewTelegramDialog* a_parent, LogViewSpinBox* a_spinBox, NGL::INGLLogger& logger);
|
||||||
|
|
||||||
bool saveContent(LogViewTelegram* a_telegram) override;
|
bool saveContent(LogViewTelegram* a_telegram) override;
|
||||||
void addTab(LogViewField* a_field, const bool a_isEmpty, int arrayIdx);
|
void addTab(LogViewField* a_field, const bool a_isEmpty, int arrayIdx);
|
||||||
@@ -43,6 +44,7 @@ namespace N_LogView
|
|||||||
|
|
||||||
LogViewTelegramDialog* m_TelegramDialog;
|
LogViewTelegramDialog* m_TelegramDialog;
|
||||||
LogViewSpinBox* m_SpinBox;
|
LogViewSpinBox* m_SpinBox;
|
||||||
|
NGL::INGLLogger& m_logger;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,11 +24,12 @@ namespace N_LogView
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
LogViewTableWidget::LogViewTableWidget(LogViewField* a_field, QWidget* a_parent, const bool a_readonly)
|
LogViewTableWidget::LogViewTableWidget(LogViewField* a_field, QWidget* a_parent, const bool a_readonly, NGL::INGLLogger& logger)
|
||||||
: QTableWidget(0, 2, a_parent)
|
: QTableWidget(0, 2, a_parent)
|
||||||
, LogViewWidget(a_field, this, a_parent, a_readonly)
|
, LogViewWidget(a_field, this, a_parent, a_readonly)
|
||||||
, m_IsFloat(false)
|
, m_IsFloat(false)
|
||||||
, m_IsEnum(false)
|
, m_IsEnum(false)
|
||||||
|
, m_logger(logger)
|
||||||
{
|
{
|
||||||
switch (m_Field->xdrElement()->getKind())
|
switch (m_Field->xdrElement()->getKind())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include <QTableWidget>
|
#include <QTableWidget>
|
||||||
#include "LogViewWidget.hpp"
|
#include "LogViewWidget.hpp"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
namespace N_LogView
|
namespace N_LogView
|
||||||
{
|
{
|
||||||
@@ -24,7 +25,7 @@ namespace N_LogView
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
LogViewTableWidget(LogViewField* a_field, QWidget* a_parent, const bool a_readonly);
|
LogViewTableWidget(LogViewField* a_field, QWidget* a_parent, const bool a_readonly, NGL::INGLLogger& logger);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -42,5 +43,6 @@ namespace N_LogView
|
|||||||
private:
|
private:
|
||||||
bool m_IsFloat;
|
bool m_IsFloat;
|
||||||
bool m_IsEnum;
|
bool m_IsEnum;
|
||||||
|
NGL::INGLLogger& m_logger;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -102,7 +102,7 @@ LogViewTelegram::LogViewTelegram(const N_CoPrtCnv::CoPrtCnvLogHeader::E_CoPrtCnv
|
|||||||
, m_LogTime(0)
|
, m_LogTime(0)
|
||||||
, m_GpsTime(0)
|
, m_GpsTime(0)
|
||||||
, m_TetraTelegram(nullptr)
|
, m_TetraTelegram(nullptr)
|
||||||
, m_logger(N_LogView::getLogger())
|
, m_logger(N_LogView::getLogger("LogViewTelegram"))
|
||||||
{
|
{
|
||||||
const uint32_t &waitTime = qgetenv("LogViewWaitTime").toUInt();
|
const uint32_t &waitTime = qgetenv("LogViewWaitTime").toUInt();
|
||||||
if (waitTime > 0)
|
if (waitTime > 0)
|
||||||
@@ -146,7 +146,7 @@ LogViewTelegram::LogViewTelegram(const N_CoPrtCnv::CoPrtCnvLogHeader::E_CoPrtCnv
|
|||||||
, m_GpsTime(0)
|
, m_GpsTime(0)
|
||||||
, m_data(a_telegramData)
|
, m_data(a_telegramData)
|
||||||
, m_TetraTelegram(nullptr)
|
, m_TetraTelegram(nullptr)
|
||||||
, m_logger(N_LogView::getLogger())
|
, m_logger(N_LogView::getLogger("LogViewTelegram"))
|
||||||
{
|
{
|
||||||
const uint32_t &waitTime = qgetenv("LogViewWaitTime").toUInt();
|
const uint32_t &waitTime = qgetenv("LogViewWaitTime").toUInt();
|
||||||
if (waitTime > 0)
|
if (waitTime > 0)
|
||||||
@@ -1526,7 +1526,7 @@ void LogViewTelegram::updateJsonValue(const QStringList &path, const QJsonValue
|
|||||||
if (!key.startsWith(indexMarker))
|
if (!key.startsWith(indexMarker))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const int arrayIdx = key.midRef(indexMarker.size()).toInt();
|
const int arrayIdx = key.mid(indexMarker.size()).toInt();
|
||||||
while (arr.size() <= arrayIdx)
|
while (arr.size() <= arrayIdx)
|
||||||
arr.append(QJsonValue());
|
arr.append(QJsonValue());
|
||||||
|
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ namespace N_LogView
|
|||||||
QJsonObject m_json;
|
QJsonObject m_json;
|
||||||
|
|
||||||
N_CoPrtCnv::CoPrtCnvRadioTelegram *m_TetraTelegram;
|
N_CoPrtCnv::CoPrtCnvRadioTelegram *m_TetraTelegram;
|
||||||
|
NGL::INGLLogger& m_logger;
|
||||||
|
|
||||||
LogViewField *getFieldTree(const QString& a_type, const QString& a_name,
|
LogViewField *getFieldTree(const QString& a_type, const QString& a_name,
|
||||||
uint16_t a_arraySize, const LogViewXdrType* a_parentElement = nullptr,
|
uint16_t a_arraySize, const LogViewXdrType* a_parentElement = nullptr,
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class LogViewTelegramDialog : public QDialog
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit LogViewTelegramDialog(QWidget *a_parent = nullptr, const bool a_readonly = true, NGL::INGLLogger& logger = N_LogView::getLogger());
|
explicit LogViewTelegramDialog(QWidget *a_parent = nullptr, const bool a_readonly = true, NGL::INGLLogger& logger = N_LogView::getLogger("LogViewTelegramDialog"));
|
||||||
|
|
||||||
void showDialog(const QSharedPointer<LogViewTelegram> &a_telegram);
|
void showDialog(const QSharedPointer<LogViewTelegram> &a_telegram);
|
||||||
void showDataDump(const QSharedPointer<LogViewTelegram> &a_telegram, bool showErrorMessage);
|
void showDataDump(const QSharedPointer<LogViewTelegram> &a_telegram, bool showErrorMessage);
|
||||||
|
|||||||
@@ -88,7 +88,11 @@ bool LogViewTetraTelegramsParser::parse(const QString &filename)
|
|||||||
const QString content = QString::fromUtf8(f.readAll());
|
const QString content = QString::fromUtf8(f.readAll());
|
||||||
f.close();
|
f.close();
|
||||||
|
|
||||||
const QVector<QStringView> lines = content.splitView(QLatin1Char('\n'));
|
const QStringList linesList = content.split(QLatin1Char('\n'));
|
||||||
|
QVector<QStringView> lines;
|
||||||
|
lines.reserve(linesList.size());
|
||||||
|
for (const QString &line : linesList)
|
||||||
|
lines += line;
|
||||||
QVector<QStringView> linesTrimmed;
|
QVector<QStringView> linesTrimmed;
|
||||||
linesTrimmed.reserve(lines.size());
|
linesTrimmed.reserve(lines.size());
|
||||||
for (const QStringView &line : lines)
|
for (const QStringView &line : lines)
|
||||||
@@ -213,7 +217,12 @@ int LogViewTetraTelegramsParser::parseStruct(const QVector<QStringView> &lines,
|
|||||||
QString structStr = QLatin1String("struct ") + si.type + QLatin1String("::") + tokens.at(0).toString() + QLatin1Char('\n') + hint.toString();
|
QString structStr = QLatin1String("struct ") + si.type + QLatin1String("::") + tokens.at(0).toString() + QLatin1Char('\n') + hint.toString();
|
||||||
structStr.replace(QLatin1Char(';'), QLatin1String(";\n"));
|
structStr.replace(QLatin1Char(';'), QLatin1String(";\n"));
|
||||||
DEBUG_LOG(m_logger) << "structStr: " << structStr;
|
DEBUG_LOG(m_logger) << "structStr: " << structStr;
|
||||||
parseStruct(structStr.splitView(QLatin1Char('\n')), 0);
|
const QStringList structLines = structStr.split(QLatin1Char('\n'));
|
||||||
|
QVector<QStringView> structLinesView;
|
||||||
|
structLinesView.reserve(structLines.size());
|
||||||
|
for (const QString &line : structLines)
|
||||||
|
structLinesView += line;
|
||||||
|
parseStruct(structLinesView, 0);
|
||||||
|
|
||||||
mi.type = si.type + QLatin1String("::") + tokens.at(0).toString();
|
mi.type = si.type + QLatin1String("::") + tokens.at(0).toString();
|
||||||
mi.isArray = true;
|
mi.isArray = true;
|
||||||
@@ -382,7 +391,7 @@ int LogViewTetraTelegramsParser::parseConstraint(const QVector<QStringView> &lin
|
|||||||
++i;
|
++i;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const QVector<QStringView> parts = tokens.at(6).split(QLatin1String("::"));
|
const QVector<QStringView> parts = tokens.at(6).split(u"::");
|
||||||
if (parts.size() != 2)
|
if (parts.size() != 2)
|
||||||
{
|
{
|
||||||
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(i).toString() << "'";
|
WARNING_LOG(m_logger) << "Could not parse constraint: '" << lines.at(i).toString() << "'";
|
||||||
@@ -451,6 +460,17 @@ static inline void bracketCount(const QStringView &str, int &cntLt, int &cntGt)
|
|||||||
QVector<QStringView> LogViewTetraTelegramsParser::tokenize(const QStringView &line) const
|
QVector<QStringView> LogViewTetraTelegramsParser::tokenize(const QStringView &line) const
|
||||||
{
|
{
|
||||||
QVector<QStringView> ret = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
|
QVector<QStringView> ret = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
|
||||||
|
|
||||||
|
// Calculate positions for each token (Qt6 QStringView has no position() method)
|
||||||
|
QVector<int> positions(ret.size());
|
||||||
|
int currentPos = 0;
|
||||||
|
for (int j = 0; j < ret.size(); ++j)
|
||||||
|
{
|
||||||
|
// Find position of this token in the original line
|
||||||
|
positions[j] = line.indexOf(ret[j], currentPos);
|
||||||
|
currentPos = positions[j] + ret[j].size();
|
||||||
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < ret.size())
|
while (i < ret.size())
|
||||||
{
|
{
|
||||||
@@ -461,7 +481,7 @@ QVector<QStringView> LogViewTetraTelegramsParser::tokenize(const QStringView &li
|
|||||||
if (i == ret.size() - 1)
|
if (i == ret.size() - 1)
|
||||||
break;
|
break;
|
||||||
const QStringView &lastToken = ret.last();
|
const QStringView &lastToken = ret.last();
|
||||||
const QStringView newToken = line.mid(token.position(), lastToken.position() - token.position() + lastToken.size());
|
const QStringView newToken = line.mid(positions[i], positions.last() - positions[i] + lastToken.size());
|
||||||
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
||||||
ret.resize(i + 1);
|
ret.resize(i + 1);
|
||||||
ret[i] = newToken;
|
ret[i] = newToken;
|
||||||
@@ -478,7 +498,7 @@ QVector<QStringView> LogViewTetraTelegramsParser::tokenize(const QStringView &li
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const QStringView &nextToken = ret.at(i + 1);
|
const QStringView &nextToken = ret.at(i + 1);
|
||||||
const QStringView newToken = line.mid(token.position(), nextToken.position() - token.position() + nextToken.size());
|
const QStringView newToken = line.mid(positions[i], positions[i + 1] - positions[i] + nextToken.size());
|
||||||
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
DEBUG_LOG(m_logger) << "New Token: " << newToken.toString();
|
||||||
ret.removeAt(i + 1);
|
ret.removeAt(i + 1);
|
||||||
ret[i] = newToken;
|
ret[i] = newToken;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ private:
|
|||||||
int parseEnum(const QVector<QStringView> &lines, int iStartPos, const QString &ns, StructInformation *si = nullptr);
|
int parseEnum(const QVector<QStringView> &lines, int iStartPos, const QString &ns, StructInformation *si = nullptr);
|
||||||
int parseConstraint(const QVector<QStringView> &lines, int iStartPos);
|
int parseConstraint(const QVector<QStringView> &lines, int iStartPos);
|
||||||
void categorizeMember(MemberInformation &mi) const;
|
void categorizeMember(MemberInformation &mi) const;
|
||||||
QVector<QStringView> tokenize(QStringView line) const;
|
QVector<QStringView> tokenize(const QStringView &line) const;
|
||||||
static bool validStructTokens(const QVector<QStringView> &tokens);
|
static bool validStructTokens(const QVector<QStringView> &tokens);
|
||||||
private:
|
private:
|
||||||
EnumInformation m_telegramIdEnum;
|
EnumInformation m_telegramIdEnum;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ LogViewWidget::LogViewWidget(LogViewField* a_field, QWidget* a_widget, QWidget*
|
|||||||
, m_Widget(a_widget)
|
, m_Widget(a_widget)
|
||||||
, m_Field(a_field)
|
, m_Field(a_field)
|
||||||
, m_Parent(a_parent)
|
, m_Parent(a_parent)
|
||||||
|
, m_logger(getLogger("LogViewWidget"))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include <QtWidgets/QWidget>
|
#include <QtWidgets/QWidget>
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||||
|
|
||||||
class QWidget;
|
class QWidget;
|
||||||
class QFont;
|
class QFont;
|
||||||
@@ -77,6 +78,8 @@ protected:
|
|||||||
LogViewField *m_Field;
|
LogViewField *m_Field;
|
||||||
|
|
||||||
QWidget *m_Parent;
|
QWidget *m_Parent;
|
||||||
|
|
||||||
|
LOGGER_T m_logger;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -53,6 +53,7 @@ namespace N_LogView
|
|||||||
protected:
|
protected:
|
||||||
QString m_Name;
|
QString m_Name;
|
||||||
E_ElementKind m_Kind;
|
E_ElementKind m_Kind;
|
||||||
|
LOGGER_T m_logger;
|
||||||
QString getKindName() const;
|
QString getKindName() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ LogViewXdrParser::LogViewXdrParser()
|
|||||||
, m_WordListIndex(0)
|
, m_WordListIndex(0)
|
||||||
, m_ActElement(nullptr)
|
, m_ActElement(nullptr)
|
||||||
, m_State(e_ParseMain)
|
, m_State(e_ParseMain)
|
||||||
|
, m_logger(getLogger("LogViewXdrParser"))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
LogViewXdrParser::~LogViewXdrParser()
|
LogViewXdrParser::~LogViewXdrParser()
|
||||||
@@ -352,7 +353,7 @@ void LogViewXdrParser::parseEnum(const QString &a_line, const uint16_t a_enumSiz
|
|||||||
if (a_line.endsWith(QLatin1String(" {")))
|
if (a_line.endsWith(QLatin1String(" {")))
|
||||||
{
|
{
|
||||||
m_State = e_ParseEnum;
|
m_State = e_ParseEnum;
|
||||||
const QString name = a_line.leftRef(a_line.length()-2).trimmed().toString();
|
const QString name = a_line.left(a_line.length()-2).trimmed();
|
||||||
m_ActElement = new LogViewXdrStruct(name, LogViewXdrElement::e_KindEnum, a_enumSize);
|
m_ActElement = new LogViewXdrStruct(name, LogViewXdrElement::e_KindEnum, a_enumSize);
|
||||||
if (!addToElementMap(name, m_ActElement))
|
if (!addToElementMap(name, m_ActElement))
|
||||||
{
|
{
|
||||||
@@ -617,8 +618,8 @@ bool LogViewXdrParser::parseEnumLine(const QString& a_line, QString& a_name, QSt
|
|||||||
int sepPos = line.lastIndexOf(QLatin1Char('='));
|
int sepPos = line.lastIndexOf(QLatin1Char('='));
|
||||||
if (-1 != sepPos)
|
if (-1 != sepPos)
|
||||||
{
|
{
|
||||||
a_name = line.leftRef(sepPos).trimmed().toString();
|
a_name = line.left(sepPos).trimmed();
|
||||||
a_value = line.midRef(sepPos+1).trimmed().toString();
|
a_value = line.mid(sepPos+1).trimmed();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -870,7 +871,7 @@ void LogViewXdrParser::fillWordList(const QString& a_line)
|
|||||||
line.replace(QLatin1Char('}'), QLatin1String(" } "));
|
line.replace(QLatin1Char('}'), QLatin1String(" } "));
|
||||||
line.replace(QLatin1Char(':'), QLatin1String(" : "));
|
line.replace(QLatin1Char(':'), QLatin1String(" : "));
|
||||||
line.replace(QLatin1Char(';'), QLatin1String(" ; "));
|
line.replace(QLatin1Char(';'), QLatin1String(" ; "));
|
||||||
m_WordList = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
|
m_WordList = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
|
||||||
m_WordListIndex = 0;
|
m_WordListIndex = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
#include "IntegerCalculator.hpp"
|
#include "IntegerCalculator.hpp"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "LogViewXdrStandardType.hpp"
|
#include "LogViewXdrStandardType.hpp"
|
||||||
|
#include "NGLLoggerBootstrap.h"
|
||||||
|
|
||||||
namespace N_LogView
|
namespace N_LogView
|
||||||
{
|
{
|
||||||
@@ -174,6 +175,7 @@ namespace N_LogView
|
|||||||
bool addToElementMap(const QString& a_name, LogViewXdrElement* a_element);
|
bool addToElementMap(const QString& a_name, LogViewXdrElement* a_element);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
LOGGER_T m_logger;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1014,7 +1014,7 @@ fi
|
|||||||
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
|
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
|
||||||
|
|
||||||
# Export variables for Docker container
|
# Export variables for Docker container
|
||||||
export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_CODIFICATION BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_GROUP6 BUILD_GROUP7 BUILD_GROUP8 BUILD_GROUP9 BUILD_GROUP10 BUILD_GROUP11 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST VERIFY_RPM USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE CMAKE_BUILD_FLAGS RELEASE_BUILD
|
export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_CODIFICATION BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_GROUP6 BUILD_GROUP7 BUILD_GROUP8 BUILD_GROUP9 BUILD_GROUP10 BUILD_GROUP11 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST VERIFY_RPM USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE CMAKE_BUILD_FLAGS RELEASE_BUILD RUN_JENKINS_BUILDER PACKAGE_OUTPUT_DIR LTS_VERSION PROJECT GUEZ_MODE BUILD_NUMBER BUILD_TAG
|
||||||
|
|
||||||
# Group 5: Viewer module targets (conditional on BUILD_ARCGIS)
|
# Group 5: Viewer module targets (conditional on BUILD_ARCGIS)
|
||||||
# Note: LtsFileDialog excluded from viewer-only builds due to Group 4 dependencies (svcExmCommon, svcOpmCommon, svcFlmCommon)
|
# Note: LtsFileDialog excluded from viewer-only builds due to Group 4 dependencies (svcExmCommon, svcOpmCommon, svcFlmCommon)
|
||||||
@@ -1323,6 +1323,7 @@ BUILD_TAG="${BUILD_TAG:-manual-build}"
|
|||||||
BUILD_CODIFICATION="${BUILD_CODIFICATION:-OFF}"
|
BUILD_CODIFICATION="${BUILD_CODIFICATION:-OFF}"
|
||||||
VERIFY_RPM="${VERIFY_RPM:-OFF}"
|
VERIFY_RPM="${VERIFY_RPM:-OFF}"
|
||||||
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
|
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
|
||||||
|
echo "CONTAINER DEBUG: RUN_JENKINS_BUILDER=${RUN_JENKINS_BUILDER}"
|
||||||
# RELEASE_BUILD already set above at line 745 - don't overwrite
|
# RELEASE_BUILD already set above at line 745 - don't overwrite
|
||||||
QT_VERSION="${QT_VERSION:-6.10.2}"
|
QT_VERSION="${QT_VERSION:-6.10.2}"
|
||||||
QT_ARCH="${QT_ARCH:-linux_gcc_64}"
|
QT_ARCH="${QT_ARCH:-linux_gcc_64}"
|
||||||
@@ -1607,6 +1608,8 @@ EOF
|
|||||||
|
|
||||||
chmod +x "${CONTAINER_SCRIPT_HOST}"
|
chmod +x "${CONTAINER_SCRIPT_HOST}"
|
||||||
|
|
||||||
|
log_info "DEBUG: RUN_JENKINS_BUILDER=${RUN_JENKINS_BUILDER} before docker run"
|
||||||
|
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
-e MIGRATE_PIPELINE_ROOT \
|
-e MIGRATE_PIPELINE_ROOT \
|
||||||
-e LANG \
|
-e LANG \
|
||||||
|
|||||||
Reference in new issue
Block a user