TetraIF migration and Unittest Implementation for it

Entire-Checkpoint: 14d1fef0cf36
This commit is contained in:
berrux-dev committed 2026-09-12 13:54:34 +02:00
1 parent a86f9b5bac
commit ba212f9dce
78 files changed
+1611 -640

No files matched your search

@@ -72,8 +72,9 @@ LogViewGui::LogViewGui(QWidget* a_parent)
, m_InjectionThread(nullptr)
, m_replayTimer(new QTimer(this))
, m_currentReplayRow(-1)
, m_logger(getLogger("LogViewGui"))
{
setWindowIcon(QIcon(QLatin1String(":icons/16x16/rde_16x16.png")));
setWindowIcon(QIcon(QStringLiteral(":icons/16x16/rde_16x16.png")));
QSettings settings;
settings.beginGroup(WINDOW_GROUP);
@@ -96,7 +97,7 @@ LogViewGui::LogViewGui(QWidget* a_parent)
QString tipText;
QAction* action = new QAction(tr("Neue Log-Datei"), this);
action->setIcon(QIcon(QLatin1String(":icons/16x16/document-new.png")));
action->setIcon(QIcon(QStringLiteral(":icons/16x16/document-new.png")));
action->setShortcut(tr("Ctrl+N"));
tipText = tr("Eine neue Telegram-Log-Datei anzeigen (Ctrl-N)");
action->setStatusTip(tipText);
@@ -105,7 +106,7 @@ LogViewGui::LogViewGui(QWidget* a_parent)
toolBar->addAction(action);
action = new QAction(tr("Log-Datei hinzu"), this);
action->setIcon(QIcon(QLatin1String(":icons/16x16/document-import.png")));
action->setIcon(QIcon(QStringLiteral(":icons/16x16/document-import.png")));
action->setShortcut(tr("Ctrl+O"));
tipText = tr("Eine weitere Telegramm-Log-Datei anzeigen (Ctrl-O)");
action->setStatusTip(tipText);
@@ -116,7 +117,7 @@ LogViewGui::LogViewGui(QWidget* a_parent)
m_reloadAction = new QAction(tr("&Reload"), this);
m_reloadAction->setCheckable(true);
m_reloadAction->setChecked(m_DoReload);
m_reloadAction->setIcon(QIcon(QLatin1String(":icons/16x16/edit-redo.png")));
m_reloadAction->setIcon(QIcon(QStringLiteral(":icons/16x16/edit-redo.png")));
m_reloadAction->setShortcut(tr("Ctrl+R"));
tipText = tr("Reload des Logfiles ein-/ausschalten (Ctrl-R)");
m_reloadAction->setStatusTip(tipText);
@@ -125,7 +126,7 @@ LogViewGui::LogViewGui(QWidget* a_parent)
toolBar->addAction(m_reloadAction);
action = new QAction(tr("&Einstellungen"), this);
action->setIcon(QIcon(QLatin1String(":icons/16x16/configure.png")));
action->setIcon(QIcon(QStringLiteral(":icons/16x16/configure.png")));
action->setShortcut(tr("Ctrl+E"));
tipText = tr("Verhalten des Programmes einstellen (Ctrl-E)");
action->setStatusTip(tipText);
@@ -135,7 +136,7 @@ LogViewGui::LogViewGui(QWidget* a_parent)
toolBar->addSeparator();
action = new QAction(tr("&Beenden"), this);
action->setIcon(QIcon(QLatin1String(":icons/16x16/edit-delete.png")));
action->setIcon(QIcon(QStringLiteral(":icons/16x16/edit-delete.png")));
action->setShortcut(tr("Alt-F4"));
tipText = tr("LogView beenden (Alt-F4)");
action->setStatusTip(tipText);
@@ -176,11 +177,11 @@ LogViewGui::LogViewGui(QWidget* a_parent)
m_ToolBox = new QToolBox(this);
m_ToolBox->addItem(m_CentralSelectionGroup, QIcon(QLatin1String(":/image/Central.png")), tr("&Zentral-Telegramm-Filter"));
m_ToolBox->addItem(m_TetraSelectionGroup, QIcon(QLatin1String(":/image/Tetra.png")), tr("TET&RA-Telegramm-Filter"));
m_ToolBox->addItem(m_WlsSelectionGroup, QIcon(QLatin1String(":/image/Wls.png")), tr("&WLS-Telegramm-Filter"));
m_ToolBox->addItem(m_ParticipantSelectionGroup, QIcon(QLatin1String(":/image/TNE.png")), tr("Teilnehmer-&Filter"));
m_ToolBox->addItem(m_EditTelegramController->tableView(), QIcon(QLatin1String(":icons/16x16/document-edit.png")), tr("&Edit && Sende Telegramme"));
m_ToolBox->addItem(m_CentralSelectionGroup, QIcon(QStringLiteral(":/image/Central.png")), tr("&Zentral-Telegramm-Filter"));
m_ToolBox->addItem(m_TetraSelectionGroup, QIcon(QStringLiteral(":/image/Tetra.png")), tr("TET&RA-Telegramm-Filter"));
m_ToolBox->addItem(m_WlsSelectionGroup, QIcon(QStringLiteral(":/image/Wls.png")), tr("&WLS-Telegramm-Filter"));
m_ToolBox->addItem(m_ParticipantSelectionGroup, QIcon(QStringLiteral(":/image/TNE.png")), tr("Teilnehmer-&Filter"));
m_ToolBox->addItem(m_EditTelegramController->tableView(), QIcon(QStringLiteral(":icons/16x16/document-edit.png")), tr("&Edit && Sende Telegramme"));
m_ToolBox->setCurrentIndex(settings.value(TOOLBOXINDEX).toInt());
@@ -273,13 +274,13 @@ LogViewGui::LogViewGui(QWidget* a_parent)
void LogViewGui::createCentralSelectionWidget()
{
m_SentCentralTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QLatin1String(":/image/P2C.png"));
m_SentCentralTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QStringLiteral(":/image/P2C.png"));
m_ReceivedCentralTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QLatin1String(":/image/C2P.png"));
m_ReceivedCentralTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QStringLiteral(":/image/C2P.png"));
m_PosCentralTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QLatin1String(":/image/CentralPos.png"));
m_PosCentralTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QStringLiteral(":/image/CentralPos.png"));
m_ackCentralTelCheckBox = createRadioButton(tr("&Bestaetigungstelegramme"), QLatin1String(":/image/CentralAck.png"));
m_ackCentralTelCheckBox = createRadioButton(tr("&Bestaetigungstelegramme"), QStringLiteral(":/image/CentralAck.png"));
QVBoxLayout* centralFilterBox = new QVBoxLayout;
centralFilterBox->addWidget(m_SentCentralTelCheckBox);
@@ -298,21 +299,21 @@ void LogViewGui::createCentralSelectionWidget()
void LogViewGui::createTetraSelectionWidget()
{
m_SentTetraTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QLatin1String(":/image/T2P.png"));
m_SentTetraTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QStringLiteral(":/image/T2P.png"));
m_ReceivedTetraTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QLatin1String(":/image/P2T.png"));
m_ReceivedTetraTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QStringLiteral(":/image/P2T.png"));
m_PosTetraTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QLatin1String(":/image/TetraPos.png"));
m_PosTetraTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QStringLiteral(":/image/TetraPos.png"));
m_FragmentedTetraTelCheckBox = createRadioButton(tr("&Fragmentierte Meldungen"), QLatin1String(":/image/TetraFragmented.png"));
m_FragmentedTetraTelCheckBox = createRadioButton(tr("&Fragmentierte Meldungen"), QStringLiteral(":/image/TetraFragmented.png"));
m_LoginTetraTelCheckBox = createRadioButton(tr("&Loginmeldungen"), QLatin1String(":/image/TetraLogin.png"));
m_LoginTetraTelCheckBox = createRadioButton(tr("&Loginmeldungen"), QStringLiteral(":/image/TetraLogin.png"));
m_RegisterTetraTelCheckBox = createRadioButton(tr("&Registermeldungen"), QLatin1String(":/image/TetraRegister.png"));
m_RegisterTetraTelCheckBox = createRadioButton(tr("&Registermeldungen"), QStringLiteral(":/image/TetraRegister.png"));
m_ReportTetraTelCheckBox = createRadioButton(tr("&Reportmeldungen"), QLatin1String(":/image/TetraReport.png"));
m_ReportTetraTelCheckBox = createRadioButton(tr("&Reportmeldungen"), QStringLiteral(":/image/TetraReport.png"));
m_AirInterfaceLoadTetraTelCheckBox = createRadioButton(tr("&Air-Load Meldungen"), QLatin1String(":/image/TetraAirInterface.png"));
m_AirInterfaceLoadTetraTelCheckBox = createRadioButton(tr("&Air-Load Meldungen"), QStringLiteral(":/image/TetraAirInterface.png"));
QVBoxLayout* tetraFilterBox = new QVBoxLayout;
tetraFilterBox->addWidget(m_SentTetraTelCheckBox);
@@ -335,11 +336,11 @@ void LogViewGui::createTetraSelectionWidget()
void LogViewGui::createWlsSelectionWidget()
{
m_SentWlsTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QLatin1String(":/image/P2W.png"));
m_SentWlsTelCheckBox = createRadioButton(tr("&gesendete Telegramme"), QStringLiteral(":/image/P2W.png"));
m_ReceivedWlsTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QLatin1String(":/image/W2P.png"));
m_ReceivedWlsTelCheckBox = createRadioButton(tr("&empfangene Telegramme"), QStringLiteral(":/image/W2P.png"));
m_PosWlsTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QLatin1String(":/image/WlsPos.png"));
m_PosWlsTelCheckBox = createRadioButton(tr("&Positionsmeldungen"), QStringLiteral(":/image/WlsPos.png"));
QVBoxLayout* wlsFilterBox = new QVBoxLayout;
wlsFilterBox->addWidget(m_SentWlsTelCheckBox);
@@ -405,7 +406,7 @@ void LogViewGui::showHexData()
void LogViewGui::exportAsCsv()
{
const int idx = m_ActualLogfile.lastIndexOf(QLatin1Char('.'));
const QString suggestion = m_ActualLogfile.left(idx) + QLatin1String(".csv");
const QString suggestion = m_ActualLogfile.left(idx) + QStringLiteral(".csv");
const QString fn = QFileDialog::getSaveFileName(this, tr("Export logdata as CSV"), suggestion, tr("CSV file (*.csv)"));
if (fn.isEmpty())
return;
@@ -445,7 +446,7 @@ void LogViewGui::exportAsCsv()
void LogViewGui::exportAsJson()
{
const int idx = m_ActualLogfile.lastIndexOf(QLatin1Char('.'));
const QString suggestion = m_ActualLogfile.left(idx) + QLatin1String(".csv");
const QString suggestion = m_ActualLogfile.left(idx) + QStringLiteral(".csv");
const QString fn = QFileDialog::getSaveFileName(this, tr("Export logdata as Json"), suggestion, tr("JSon file (*.json)"));
if (fn.isEmpty())
return;
@@ -542,7 +543,7 @@ void LogViewGui::loadSpecificationFiles()
settings.beginGroup(LogViewOptionDialog::SPEC_FILES_GROUP);
QString defString = QCoreApplication::applicationDirPath() + QLatin1String("/training_area_telegrams.h");
QString defString = QCoreApplication::applicationDirPath() + QStringLiteral("/training_area_telegrams.h");
QString filename = settings.value(LogViewOptionDialog::P0_FILENAME, defString).toString();
INFO_LOG(m_logger) << "Load central-protocol spezification-file: " << filename.toStdString();
if (!QFile::exists(filename))
@@ -553,7 +554,7 @@ void LogViewGui::loadSpecificationFiles()
LogViewTelegram::jsonParser()->parse(filename);
defString = QCoreApplication::applicationDirPath() + QLatin1String("/zsksxd_tetraForLogView.x");
defString = QCoreApplication::applicationDirPath() + QStringLiteral("/zsksxd_tetraForLogView.x");
filename = settings.value(LogViewOptionDialog::P5_FILENAME, defString).toString();
INFO_LOG(m_logger) << "Load tetra-protocol spezification-file: " << filename.toStdString();
if (!QFile::exists(filename))
@@ -589,7 +590,7 @@ void LogViewGui::loadTelegramFile()
{
const QLatin1String DIR("Dir");
QSettings settings;
settings.beginGroup(QLatin1String("LogFiles"));
settings.beginGroup(QStringLiteral("LogFiles"));
QString filename = QFileDialog::getOpenFileName(this, tr("Bitte eine Log-Datei auswaehlen"), settings.value(DIR).toString(), LogViewOptionDialog::KRLOG_FILES);
if (filename.isEmpty())
@@ -655,7 +656,7 @@ void LogViewGui::updateLogfile()
QString filePath(fileInfo.absolutePath() + QLatin1Char('/'));
const QString baseName = fileInfo.baseName();
const QVector<QStringRef> parts = baseName.splitRef(QLatin1Char('_'));
const QList<QStringView> parts = QStringView(baseName).split(QLatin1Char('_'));
for (int iterator = 0; iterator < parts.size() - 2; ++iterator)
filePath += parts.at(iterator).toString() + QLatin1Char('_');
@@ -909,19 +910,19 @@ void LogViewGui::startInjectionThread()
m_InjectionThread = new LogViewInjectionThread();
QSettings settings;
settings.beginGroup(QLatin1String("LogFiles"));
QString filePath = settings.value(QLatin1String("Dir")).toString();
settings.beginGroup(QStringLiteral("LogFiles"));
QString filePath = settings.value(QStringLiteral("Dir")).toString();
QString exerciseName;
QVector<QStringRef> parts = filePath.splitRef(QLatin1Char('/'));
const QList<QStringView> parts = QStringView(filePath).split(QLatin1Char('/'));
if (parts.size() >= 2)
exerciseName = QLatin1Char('_') + parts.at(parts.size() - 2).toString();
QString portFilePath = QCoreApplication::applicationDirPath() + QDir::separator() + QLatin1String("PrtCnv") + exerciseName + QLatin1String(".dat");
QString portFilePath = QCoreApplication::applicationDirPath() + QDir::separator() + QStringLiteral("PrtCnv") + exerciseName + QStringLiteral(".dat");
QFileInfo checkPortFile(portFilePath);
if(checkPortFile.exists() && checkPortFile.isFile())
{
QSettings portSetting(portFilePath, QSettings::IniFormat);
m_InjectionThread->setPort(portSetting.value(QLatin1String("Injection/Port")).toInt());
m_InjectionThread->setPort(portSetting.value(QStringLiteral("Injection/Port")).toInt());
}
m_EditTelegramController->setInjectionThread(m_InjectionThread);