- NGL_ADD_LIBRARY2: 87 CMakeLists.txt konvertiert für Export-Header Generierung - 44 Export-Header Include-Pfade korrigiert (_export.h) - 81 DDS-Stub-Header generiert (*_dtc.h, *_fts.h, *_dts.h, *_ftc.h) - INGLLogger: Duplikat gelöscht, m_logger Member entfernt, variadische Makros - Q_FUNC_INFO Redefinition behoben (Qt6 definiert bereits) - FATAL_LOG Makro hinzugefügt - InfrastructureManagement DDS-Stubs (ism.hpp, ism_enums.hpp, ism_ftc.h) - FilterManagement DDS-Stubs (flt_ftc.h, flt_dts.h) - AreaEffectSimulation DDS-Stubs (aes.hpp, aes_enums.hpp) - SymbolAppearance Klasse vollständig definiert mit content() Methode - BuildingComponentFilter Klasse definiert mit Copy-Konstruktor - Ftc Factory: nullptr Return (abstract class) - AesFilter Klasse in aes.hpp hinzugefügt - Dtc Klasse in ppm.hpp mit participantChanged Signal - AesType Enum: alle 15 At* Werte definiert - AesEffectState_def: EsReceived hinzugefügt - DataModification Enum: eAdded/eModified/eRemoved - function_reply_object.h → core_types.h Include-Pfad (72 Dateien) - Enum-Class-Streaming Template-Operator in INGLLogger.h - ism_mounting_point.h: QImage → QtGui/QImage, QGuiApplication/QScreen - ism_data_plugin_interface.h: QSet Include, Include-Reihenfolge - QRegExp → QRegularExpression in tpm_js_parser.cpp - .underlying() Aufrufe zu direktem Enum-Vergleich korrigiert - Include-Pfade: aes.hpp in symbol_appearance_settings_impl.h und aes_display_filter_impl.h Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
179 lines
3.4 KiB
C++
179 lines
3.4 KiB
C++
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <QObject>
|
|
#include "AppComponent.hpp"
|
|
#include "logger.h"
|
|
#include <nglsettings/nglsettings_settings.h>
|
|
#include <QtCore/QMutex>
|
|
#include "prtcnvlib_export.h"
|
|
#include <TrainingAreaBase/training_area_telegrams.h>
|
|
|
|
|
|
|
|
namespace PrtCnv
|
|
{
|
|
class PrtCnvThreadStarter;
|
|
|
|
|
|
class PRTCNVLIB_EXPORT PrtCnvApplication : public QObject, public N_AppComponent::AppComponent
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
|
|
|
|
|
|
enum E_ThreadId
|
|
{
|
|
e_Central,
|
|
e_Radio,
|
|
e_Db,
|
|
e_Log,
|
|
e_Injection,
|
|
e_RadioTraffic,
|
|
e_ThreadIdMax
|
|
};
|
|
PrtCnvApplication();
|
|
~PrtCnvApplication();
|
|
|
|
|
|
|
|
void startApp();
|
|
void shutdownApp();
|
|
static void setCleanDb(bool bCleanDb);
|
|
void setExerciseId(int exerciseId);
|
|
int exerciseId() const { return m_exerciseId; }
|
|
void setConfigFile(const QString &configFile);
|
|
|
|
|
|
|
|
int32_t start() override;
|
|
|
|
|
|
|
|
|
|
void waitForInit(E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
void waitForStart(E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
void waitForCreate(const E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
void waitForExec(E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
PrtCnvThreadStarter* getThreadStarter(const E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
void setDatabaseConnectionParams(const QString &driver,
|
|
const QString &hostName,
|
|
const QString &database,
|
|
const QString &schemaName,
|
|
const QString &userName,
|
|
const QString &password);
|
|
QString databaseDriver() const { return m_dbDriver; }
|
|
QString databaseHostName() const { return m_dbHostName; }
|
|
QString databaseName() const { return m_dbDatabaseName; }
|
|
QString databaseSchemaName() const { return m_dbSchemaName; }
|
|
QString databaseUserName() const { return m_dbUserName; }
|
|
QString databasePassword() const { return m_dbPassword; }
|
|
|
|
public slots:
|
|
void logWlsTelegram(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tele, bool bIsSend);
|
|
|
|
signals:
|
|
void textMessageFromPrtCnvToCentral(const QByteArray &ba);
|
|
void textMessageFromCentralToPrtCnv(const QByteArray &ba);
|
|
void outgoingBroadcastTelegramsRequest(int equipmentNumber, int broadcastIndex, int resetCounter);
|
|
void warehouseMessageFromPtrCnv(const QByteArray &jsonData);
|
|
protected:
|
|
|
|
|
|
int32_t createApplication();
|
|
|
|
|
|
|
|
bool isConstructed(const E_ThreadId a_threadId) const;
|
|
|
|
|
|
|
|
void setConstructed(const E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
bool isInitialized(const E_ThreadId a_threadId) const;
|
|
|
|
|
|
|
|
void setInitialized(const E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
bool isCreated(const E_ThreadId a_threadId) const;
|
|
|
|
|
|
|
|
void setCreated(const E_ThreadId a_threadId);
|
|
|
|
|
|
|
|
bool isStarted(const E_ThreadId a_threadId) const;
|
|
|
|
|
|
|
|
void setStarted(const E_ThreadId a_threadId);
|
|
|
|
protected:
|
|
|
|
|
|
NGL::Settings *m_Config;
|
|
|
|
struct ThreadInfo
|
|
{
|
|
PrtCnvThreadStarter *thread = nullptr;
|
|
bool isConstructed = false;
|
|
bool isCreated = false;
|
|
bool isInitialized = false;
|
|
bool isStarted = false;
|
|
} m_threadInfo[e_ThreadIdMax];
|
|
|
|
|
|
QString m_ConfigFileName;
|
|
|
|
|
|
int m_exerciseId;
|
|
|
|
|
|
|
|
mutable QMutex m_accessMutex;
|
|
|
|
QString m_dbDriver;
|
|
QString m_dbHostName;
|
|
QString m_dbDatabaseName;
|
|
QString m_dbSchemaName;
|
|
QString m_dbUserName;
|
|
QString m_dbPassword;
|
|
};
|
|
|
|
}
|