diff --git a/qt6-after/qt6-migrated-legatus/DartConfiguration.tcl b/qt6-after/qt6-migrated-legatus/DartConfiguration.tcl new file mode 100644 index 000000000..e7582ab84 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/DartConfiguration.tcl @@ -0,0 +1,109 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus +BuildDirectory: /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus + +# Where to place the cost data store +CostDataFile: + +# Site is something like machine.domain, i.e. pragmatic.crd +Site: d00b0d044d57 + +# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++ +BuildName: Linux-c++ + +# Subprojects +LabelsForSubprojects: + +# Submission information +SubmitURL: http:// +SubmitInactivityTimeout: + +# Dashboard start time +NightlyStartTime: 00:00:00 EDT + +# Commands for the build/test/submit cycle +ConfigureCommand: "/usr/bin/cmake" "/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus" +MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" +DefaultCTestConfigurationType: Release + +# version control +UpdateVersionOnly: + +# CVS options +# Default is "-d -P -A" +CVSCommand: +CVSUpdateOptions: + +# Subversion options +SVNCommand: +SVNOptions: +SVNUpdateOptions: + +# Git options +GITCommand: +GITInitSubmodules: +GITUpdateOptions: +GITUpdateCustom: + +# Perforce options +P4Command: +P4Client: +P4Options: +P4UpdateOptions: +P4UpdateCustom: + +# Generic update command +UpdateCommand: +UpdateOptions: +UpdateType: + +# Compiler info +Compiler: /usr/bin/c++ +CompilerVersion: 15.2.0 + +# Dynamic analysis (MemCheck) +PurifyCommand: +ValgrindCommand: +ValgrindCommandOptions: +DrMemoryCommand: +DrMemoryCommandOptions: +CudaSanitizerCommand: +CudaSanitizerCommandOptions: +MemoryCheckType: +MemoryCheckSanitizerOptions: +MemoryCheckCommand: MEMORYCHECK_COMMAND-NOTFOUND +MemoryCheckCommandOptions: +MemoryCheckSuppressionFile: + +# Coverage +CoverageCommand: /usr/bin/gcov +CoverageExtraFlags: -l + +# Testing options +# TimeOut is the amount of time in seconds to wait for processes +# to complete during testing. After TimeOut seconds, the +# process will be summarily terminated. +# Currently set to 25 minutes +TimeOut: 1500 + +# During parallel testing CTest will not start a new test if doing +# so would cause the system load to exceed this value. +TestLoad: + +TLSVerify: +TLSVersion: + +UseLaunchers: +CurlOptions: +# warning, if you add new options here that have to do with submit, +# you have to update cmCTestSubmitCommand.cxx + +# For CTest submissions that timeout, these options +# specify behavior for retrying the submission +CTestSubmitRetryDelay: 5 +CTestSubmitRetryCount: 3 diff --git a/qt6-after/qt6-migrated-legatus/Z/src/NGLLogger/log4qt_stub.h b/qt6-after/qt6-migrated-legatus/Z/src/NGLLogger/log4qt_stub.h new file mode 100644 index 000000000..cf331f92f --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/Z/src/NGLLogger/log4qt_stub.h @@ -0,0 +1,113 @@ +// Stub log4qt implementation for builds without log4qt library +// This provides minimal functionality to allow compilation when log4qt is not available + +#ifndef LOG4QT_STUB_H +#define LOG4QT_STUB_H + +#include +#include +#include + +namespace Log4Qt { + +// Minimal Logger class stub (no Q_OBJECT to avoid MOC requirements) +class Logger +{ +public: + explicit Logger(QObject *parent = nullptr) { Q_UNUSED(parent); } + virtual ~Logger() = default; + + inline void trace(const QString &message) { Q_UNUSED(message); } + inline void debug(const QString &message) { qDebug() << message; } + inline void info(const QString &message) { qDebug() << message; } + inline void warning(const QString &message) { qWarning() << message; } + inline void error(const QString &message) { qCritical() << message; } + inline void fatal(const QString &message) { qCritical() << message; } + + inline bool isTraceEnabled() const { return true; } + inline bool isDebugEnabled() const { return true; } + inline bool isInfoEnabled() const { return true; } + inline bool isWarnEnabled() const { return true; } + inline bool isErrorEnabled() const { return true; } +}; + +// Minimal RollingFileAppender stub +class RollingFileAppender : public Logger +{ +public: + explicit RollingFileAppender(QObject *parent = nullptr) : Logger(parent) {} + ~RollingFileAppender() override = default; + + inline void setFile(const QString &filename) { Q_UNUSED(filename); } + inline void setAppendFile(bool append) { Q_UNUSED(append); } + virtual void activateOptions() {} +}; + +// Minimal LogManager stub +class LogManager +{ +public: + static LogManager *instance() { + static LogManager inst; + return &inst; + } + + Logger *logger(const QString &name) { + static Logger dummy; + Q_UNUSED(name); + return &dummy; + } + + void setDefaultLogger(Logger *logger) { Q_UNUSED(logger); } +}; + +// Minimal PropertyConfigurator stub +class PropertyConfigurator +{ +public: + static bool doConfigure(const QString &configFile) { + Q_UNUSED(configFile); + return false; + } +}; + +// Minimal LoggerRepository stub +class LoggerRepository +{ +public: + inline void setThreshold(int level) { Q_UNUSED(level); } +}; + +// Minimal ConfiguratorHelper stub +namespace Helpers { + class ConfiguratorHelper { + public: + static ConfiguratorHelper *instance() { + static ConfiguratorHelper inst; + return &inst; + } + }; + + class Properties { + public: + Properties() {} + inline void setProperty(const QString &key, const QString &value) { + Q_UNUSED(key); Q_UNUSED(value); + } + }; + + class Factory { + public: + static Factory *instance() { + static Factory inst; + return &inst; + } + inline void registerAppender(const QString &name, void *creator) { + Q_UNUSED(name); Q_UNUSED(creator); + } + }; +} + +} // namespace Log4Qt + +#endif // LOG4QT_STUB_H \ No newline at end of file diff --git a/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.cpp b/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.cpp new file mode 100644 index 000000000..f65706c09 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.cpp @@ -0,0 +1,259 @@ +/** + * Stub implementation for DtcImpl base class + * Qt6 Migration - provides minimal stub implementations + */ + +#include "pdm_dtc_impl.h" +#include + +namespace ProjectDataManagement +{ +namespace Interface +{ + +DtcImpl::DtcImpl(const std::shared_ptr &ddsConnector) + : m_ddsConnector(ddsConnector) +{ +} + +DtcImpl::~DtcImpl() = default; + +// Data access methods - stub implementations +ChargeTypeData DtcImpl::chargeType(int /*chargeTypeId*/) +{ + return ChargeTypeData(); +} + +IgniterType DtcImpl::igniterType(int /*igniterTypeId*/) +{ + return IgniterType(); +} + +IgniterFunction DtcImpl::igniterFunction(int /*igniterFunctionId*/) +{ + return IgniterFunction(); +} + +LoadType DtcImpl::loadType(int /*loadTypeId*/) +{ + return LoadType(); +} + +GearType DtcImpl::gearType(int /*gearTypeId*/) +{ + return GearType(); +} + +int DtcImpl::targetType(int /*targetTypeId*/) +{ + return 0; +} + +TargetSubType DtcImpl::targetSubType(int /*targetSubTypeId*/) +{ + return TargetSubType(); +} + +// Collection getters - stub implementations +QMap DtcImpl::chargeTypes() +{ + return QMap(); +} + +QVector DtcImpl::igniterTypes() +{ + return QVector(); +} + +QVector DtcImpl::igniterFunctions() +{ + return QVector(); +} + +QVector DtcImpl::loadTypes() +{ + return QVector(); +} + +QVector DtcImpl::gearTypes() +{ + return QVector(); +} + +QVector DtcImpl::targetTypes() +{ + return QVector(); +} + +QVector DtcImpl::targetSubTypes() +{ + return QVector(); +} + +QVector DtcImpl::chargeTypeIgniterTypeIgniterFunctions() +{ + return QVector(); +} + +QVector DtcImpl::chargeTypeLoadTypes() +{ + return QVector(); +} + +QVector DtcImpl::gearTypeChargeTypes() +{ + return QVector(); +} + +QVector DtcImpl::buildingChargeEffects() +{ + return QVector(); +} + +// isEnabled checks - stub implementations +bool DtcImpl::isChargeTypeEnabled() +{ + return false; +} + +bool DtcImpl::isIgniterTypeEnabled() +{ + return false; +} + +bool DtcImpl::isIgniterFunctionEnabled() +{ + return false; +} + +bool DtcImpl::isLoadTypeEnabled() +{ + return false; +} + +bool DtcImpl::isGearTypeEnabled() +{ + return false; +} + +bool DtcImpl::isTargetTypeEnabled() +{ + return false; +} + +bool DtcImpl::isTargetSubTypeEnabled() +{ + return false; +} + +bool DtcImpl::isChargeTypeIgniterTypeIgniterFunctionEnabled() +{ + return false; +} + +bool DtcImpl::isChargeTypeLoadTypeEnabled() +{ + return false; +} + +bool DtcImpl::isGearTypeChargeTypeEnabled() +{ + return false; +} + +bool DtcImpl::isBuildingChargeEffectEnabled() +{ + return false; +} + +// waitForHistoricalData methods - stub implementations +void DtcImpl::waitForHistoricalDataChargeType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataIgniterType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataIgniterFunction(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataLoadType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataGearType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataTargetType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataTargetSubType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataChargeTypeIgniterTypeIgniterFunction(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataChargeTypeLoadType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataGearTypeChargeType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataBuildingChargeEffect(int /*timeout_ms*/) +{ +} + +// Additional enable methods for pdm_handler.cpp +void DtcImpl::enableGearType(bool /*enable*/) +{ +} + +void DtcImpl::enableGearTypeChargeType(bool /*enable*/) +{ +} + +void DtcImpl::enableTargetTypeTargetSubType(bool /*enable*/) +{ +} + +void DtcImpl::enableRadioGroup(bool /*enable*/) +{ +} + +void DtcImpl::enableVulnerabilityKind(bool /*enable*/) +{ +} + +void DtcImpl::enableBuildingChargeEffect(bool /*enable*/) +{ +} + +// Additional waitForHistoricalData methods for pdm_handler.cpp +void DtcImpl::waitForHistoricalDataTargetTypeTargetSubType(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataRadioGroup(int /*timeout_ms*/) +{ +} + +void DtcImpl::waitForHistoricalDataVulnerabilityKind(int /*timeout_ms*/) +{ +} + +// Helper methods +QJsonObject DtcImpl::propertiesToJson(const std::string & /*properties*/) +{ + return QJsonObject(); +} + +} // namespace Interface +} // namespace ProjectDataManagement diff --git a/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.h b/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.h new file mode 100644 index 000000000..e75394eb7 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/include/ProjectDataManagement/pdm_dtc_impl.h @@ -0,0 +1,399 @@ +/** + * @file pdm_dtc_impl.h + * @brief Stub header for pdm_dtc_impl.h when BUILD_RTI=OFF + * + * This file provides stub definitions for the DtcImpl base class and related types + * that are normally generated by RTI DDS code generation. + */ +#pragma once + +#include "pdm_types.h" +#include +#include +#include +#include + +namespace DDSConnector +{ +class DdsConnector; +} + +namespace ProjectDataManagement +{ + +// Stub types not defined in pdm_types.h +enum class GearClass +{ + None = 0, + PrimaryWeapon = 1, + SecondaryWeapon = 2, + Grenade = 3, + Mine = 4, + Other = 5 +}; + +enum class VolatilityType +{ + Unknown = 0, + Low = 1, + Medium = 2, + High = 3 +}; + +enum class IgniterFunctionBase +{ + IfbImpact = 0, + IfbProximity = 1, + IfbTime = 2, + IfbRemote = 3 +}; + +struct CasEffect +{ + int effectId = 0; + QString effectName; +}; + +struct SanitationProcedure +{ + int procedureId = 0; + QString procedureName; +}; + +enum class ChargeTypeProperty : int +{ + None = 0, + LRF = 1, + LTD = 2 +}; + +// Use ChargeType from pdm_types.h, but we need a struct for DTC data +struct ChargeTypeData +{ + int chargeTypeId = 0; + QString name; + QString shortName; + QString baseSuffix; + GearClass gearClass = GearClass::None; + QJsonObject properties; +}; + +struct IgniterType +{ + int igniterTypeId = 0; + int id = 0; + QString name; + QString shortName; + QJsonObject properties; + + bool operator==(const IgniterType &other) const + { + return igniterTypeId == other.igniterTypeId && id == other.id && name == other.name && + shortName == other.shortName && properties == other.properties; + } +}; + +struct IgniterFunction +{ + int igniterFunctionId = 0; + int id = 0; + QString name; + QString shortName; + QJsonObject properties; +}; + +struct LoadType +{ + int loadTypeId = 0; + int id = 0; + QString name; + QString shortName; + QJsonObject properties; + + bool operator==(const LoadType &other) const + { + return loadTypeId == other.loadTypeId && id == other.id && name == other.name && + shortName == other.shortName && properties == other.properties; + } +}; + +struct TargetSubType +{ + int targetSubTypeId = 0; + QString name; + + bool operator==(const TargetSubType &other) const + { + return targetSubTypeId == other.targetSubTypeId && name == other.name; + } +}; + +struct ChargeTypeIgniterTypeIgniterFunction +{ + int id = 0; + int chargeTypeId = 0; + int igniterTypeId = 0; + int igniterFunctionId = 0; + bool isSmoke = false; + bool isDus = false; + bool isConcrete = false; + int volatilityTypeId = 0; + IgniterFunctionBase igniterFunctionBase = IgniterFunctionBase::IfbImpact; + double impactRadius = 0.0; + double hazardDistance = 0.0; + int chargeLegacyId = 0; + QJsonObject properties; +}; + +struct ChargeTypeLoadType +{ + int chargeTypeId = 0; + int loadTypeId = 0; + int id = 0; + QJsonObject properties; +}; + +struct GearType +{ + int gearTypeId = 0; + QString name; +}; + +struct GearTypeChargeType +{ + int gearTypeId = 0; + int chargeTypeId = 0; +}; + +enum class PdmBaseName : int +{ + None = 0, + ChargeType = 1, + IgniterType = 2, + IgniterFunction = 3, + LoadType = 4, + TargetType = 5, + TargetSubType = 6, + GearType = 7, + FirePurpose = 8, + LanguageHmi = 9, + LanguageXdu = 10, + NuclearPreset = 11, + RadioGroup = 12, + VulnerabilityKind = 13, + SanitationMaterial = 14, + BiteComponent = 15, + CanComponent = 16 +}; + +struct BuildingChargeEffect +{ + int effectId = 0; + QString effectName; +}; + +namespace Interface +{ + +/** + * @brief Base class for DTC (Data Type Configuration) implementation + * + * This is a stub implementation used when BUILD_RTI=OFF. + * In production, this is generated by RTI DDS code generation. + */ +class DtcImpl : public QObject +{ + Q_OBJECT + +public: + explicit DtcImpl(QObject *parent = nullptr) : QObject(parent) {} + explicit DtcImpl(const std::shared_ptr &ddsConnector, QObject *parent = nullptr) : QObject(parent) { Q_UNUSED(ddsConnector); } + virtual ~DtcImpl() = default; + + // Custom procs - pure virtual methods that must be implemented by derived classes + virtual QVector chargesForGearClass(GearClass gearClass) = 0; + virtual QVector ignitersForChargeType(int chargeTypeId) = 0; + virtual QVector igniterFunctionsForChargeTypeIgniterType(int chargeTypeId, int igniterTypeId) = 0; + virtual QVector loadsForChargeType(int chargeTypeId) = 0; + virtual QVector targetSubTypesForTargetType(int targetType) = 0; + + virtual double expansionFactor(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual double impactRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual double impactEdgeLength(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isDryFire(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int mineClass(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool canBeThrown(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool canBeCreated(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isIed(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isReactivatable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isSmart(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int maxEffectShows(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isSmoke(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isVisible(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isIndirect(int chargeTypeId) = 0; + virtual int searchRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool showHitline(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int remainingTasCode(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int secondaryRemainingTasCode(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int segments(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isLine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isFromMineLayer(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isMineLaying(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual QJsonObject mineLayingPattern(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int height(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isLaserGuidable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isUasDroppable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isJamming(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual QVector spacing(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual VolatilityType volatilityTypeId(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual int hazardDistance(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual QVector casEffects(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual GearClass gearClassFromChargeTypeId(int chargeTypeId) = 0; + virtual QVector gearTypeIdFromChargeTypeId(int chargeTypeId) = 0; + virtual int chargeTypeIdFromLegacyId(GearClass gearClass, int legacyId) = 0; + virtual bool isGmlrs(int chargeTypeId) = 0; + virtual bool isDm72(int chargeTypeId) = 0; + virtual bool isRocket(int chargeTypeId) = 0; + + virtual ChargeTypeIgniterTypeIgniterFunction getChargeTypeIgniterTypeIgniterFunction(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual ChargeTypeLoadType getChargeTypeLoadType(int chargeTypeId, int loadTypeId) = 0; + + virtual bool canRestock(int gearTypeId) = 0; + virtual bool canSetDefaults(int gearTypeId) = 0; + virtual int maxCharges(int gearTypeId) = 0; + virtual int cadence(int gearTypeId) = 0; + virtual int getAdlerWeaponSystemId(int gearTypeId) = 0; + virtual int factoryDefault(int gearTypeId, int chargeTypeId) = 0; + virtual int maxCharge(int gearTypeId, int chargeTypeId) = 0; + virtual bool isAtMine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual bool isApMine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual double getLethalRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual double getNonLethalRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual double getMaxRange(int chargeTypeId, int gearTypeId) = 0; + virtual BuildingChargeEffect getBuildingChargeEffectByChargeTypeId(int chargeTypeId) = 0; + virtual bool isVirtuallyFireable(int chargeTypeId) = 0; + virtual bool isAdlerChargeType(int chargeTypeId) = 0; + virtual int getAmountFireMarkers(int firePurposeId) = 0; + virtual bool getWithDurationFirePurpose(int firePurposeId) = 0; + + // Adler names/ids + virtual int getTargetTypeIdFromAdlerTargetType(const QString &typ) = 0; + virtual int getTargetSubTypeIdFromAdlerTargetSubType(const QString &subTyp) = 0; + virtual int getChargeTypeIdFromAdlerCharges(const QString &geschosssorte) = 0; + virtual int getIgniterTypeIdFromAdlerIgniter(const QString &zuender) = 0; + virtual int getIgniterFunctionIdFromAdlerIgniterFunction(const QString &zuenderFunktion) = 0; + virtual int getLoadTypeIdFromAdlerLoad(const QString &ladung) = 0; + virtual QString adlerTargetTypeName(int targetTypeId) = 0; + virtual QString adlerTargetSubTypeName(int targetSubTypeId) = 0; + virtual QString adlerChargeTypeName(int chargeTypeId) = 0; + virtual QString adlerIgniterTypeName(int igniterTypeId) = 0; + virtual QString adlerIgniterFunctionName(int igniterFunctionId) = 0; + virtual QString adlerLoadTypeName(int loadTypeId) = 0; + + // Data access methods + virtual ChargeTypeData chargeType(int chargeTypeId) = 0; + virtual IgniterType igniterType(int igniterTypeId) = 0; + virtual IgniterFunction igniterFunction(int igniterFunctionId) = 0; + virtual LoadType loadType(int loadTypeId) = 0; + virtual GearType gearType(int gearTypeId) = 0; + virtual int targetType(int targetTypeId) = 0; + virtual TargetSubType targetSubType(int targetSubTypeId) = 0; + + // Collection getters + virtual QMap chargeTypes() = 0; + virtual QVector igniterTypes() = 0; + virtual QVector igniterFunctions() = 0; + virtual QVector loadTypes() = 0; + virtual QVector gearTypes() = 0; + virtual QVector targetTypes() = 0; + virtual QVector targetSubTypes() = 0; + virtual QVector chargeTypeIgniterTypeIgniterFunctions() = 0; + virtual QVector chargeTypeLoadTypes() = 0; + virtual QVector gearTypeChargeTypes() = 0; + virtual QVector buildingChargeEffects() = 0; + + // isEnabled checks + virtual bool isChargeTypeEnabled() = 0; + virtual bool isIgniterTypeEnabled() = 0; + virtual bool isIgniterFunctionEnabled() = 0; + virtual bool isLoadTypeEnabled() = 0; + virtual bool isGearTypeEnabled() = 0; + virtual bool isTargetTypeEnabled() = 0; + virtual bool isTargetSubTypeEnabled() = 0; + virtual bool isChargeTypeIgniterTypeIgniterFunctionEnabled() = 0; + virtual bool isChargeTypeLoadTypeEnabled() = 0; + virtual bool isGearTypeChargeTypeEnabled() = 0; + virtual bool isBuildingChargeEffectEnabled() = 0; + + // enable* methods + virtual void enableIgniterType(bool enable) = 0; + virtual void enableChargeTypeIgniterTypeIgniterFunction(bool enable) = 0; + virtual void enableIgniterFunction(bool enable) = 0; + virtual void enableLoadType(bool enable) = 0; + virtual void enableChargeTypeLoadType(bool enable) = 0; + virtual void enableTargetType(bool enable) = 0; + virtual void enableTargetSubType(bool enable) = 0; + virtual void enableChargeType(bool enable) = 0; + virtual void enableGearType(bool enable) = 0; + virtual void enableGearTypeChargeType(bool enable) = 0; + virtual void enableTargetTypeTargetSubType(bool enable) = 0; + virtual void enableRadioGroup(bool enable) = 0; + virtual void enableVulnerabilityKind(bool enable) = 0; + virtual void enableBuildingChargeEffect(bool enable) = 0; + + // waitForHistoricalData methods + virtual void waitForHistoricalDataChargeType(int timeout_ms) = 0; + virtual void waitForHistoricalDataIgniterType(int timeout_ms) = 0; + virtual void waitForHistoricalDataIgniterFunction(int timeout_ms) = 0; + virtual void waitForHistoricalDataLoadType(int timeout_ms) = 0; + virtual void waitForHistoricalDataGearType(int timeout_ms) = 0; + virtual void waitForHistoricalDataTargetType(int timeout_ms) = 0; + virtual void waitForHistoricalDataTargetSubType(int timeout_ms) = 0; + virtual void waitForHistoricalDataChargeTypeIgniterTypeIgniterFunction(int timeout_ms) = 0; + virtual void waitForHistoricalDataChargeTypeLoadType(int timeout_ms) = 0; + virtual void waitForHistoricalDataGearTypeChargeType(int timeout_ms) = 0; + virtual void waitForHistoricalDataBuildingChargeEffect(int timeout_ms) = 0; + virtual void waitForHistoricalDataTargetTypeTargetSubType(int timeout_ms) = 0; + virtual void waitForHistoricalDataRadioGroup(int timeout_ms) = 0; + virtual void waitForHistoricalDataVulnerabilityKind(int timeout_ms) = 0; + + // Helper methods + virtual QJsonObject propertiesToJson(const std::string &properties) = 0; + + virtual QString trBiteComponentTextName(int biteComponentId) = 0; + virtual QString trCanComponentStringName(int canComponentId) = 0; + virtual QString trChargeTypeShortName(int chargeTypeId, bool omitBaseSuffix = false) = 0; + virtual QString trChargeTypeName(int chargeTypeId, bool omitBaseSuffix = false) = 0; + virtual QString trFirePurposeName(int firePurposeId) = 0; + virtual QString trGearTypeName(int gearTypeId) = 0; + virtual QString trIgniterTypeName(int igniterTypeId) = 0; + virtual QString trIgniterTypeShortName(int igniterTypeId) = 0; + virtual QString trIgniterFunctionName(int igniterFunctionId) = 0; + virtual QString trIgniterFunctionShortName(int igniterFunctionId) = 0; + virtual QString trLoadTypeName(int loadTypeId) = 0; + virtual QString trLoadTypeShortName(int loadTypeId) = 0; + virtual QString trTargetTypeName(int targetTypeId) = 0; + virtual QString trTargetSubTypeName(int targetSubTypeId) = 0; + virtual QString trLanguageHmiName(int languageHmiId) = 0; + virtual QString trLanguageXduName(int languageXduId) = 0; + virtual QString trNuclearPresetName(int nucularPresetId) = 0; + virtual QString trRadioGroupName(int radioGroupId) = 0; + virtual QString trVulnerabilityKindName(int vulnerabilityKindId, VulnerabilityClass vulnerabilityClassId) = 0; + virtual QString trSanitationMaterialName(int sanitationMaterialId) = 0; + virtual QString trSanitationProcedureName(int sanitationProcedureId) = 0; + virtual QString trSanitationInjuryKindName(int sanitationInjuryKindId) = 0; + virtual QString trSanitationInjuryPlace1Name(int sanitationInjuryPlace1Id) = 0; + virtual QString trSanitationInjuryPlace2Name(int sanitationInjuryPlace2Id) = 0; + + virtual QStringList chargeNames(std::vector &chargeIds) = 0; + virtual int getAvailableChargeTypeId(int chargeTypeId) = 0; + virtual ChargeTypeProperty getChargeTypeSpecialProperty(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0; + virtual QVector getSanitationProcedures(qint64 procedures) = 0; + virtual QStringList sanitationProceduresList(qint64 procedures) = 0; + +protected: + DtcImpl() = default; +}; + +} // namespace Interface +} // namespace ProjectDataManagement \ No newline at end of file diff --git a/qt6-after/qt6-migrated-legatus/lts-cc.conf.distrib b/qt6-after/qt6-migrated-legatus/lts-cc.conf.distrib new file mode 100644 index 000000000..6a64bff96 --- /dev/null +++ b/qt6-after/qt6-migrated-legatus/lts-cc.conf.distrib @@ -0,0 +1,544 @@ +# +# @RDE_HEADER@ +# $Id$ +# $HeadURL$ +# $Author$ +# + +# use ";" in front to use the Default Values for the given entry +# use "true/false" or "1/0" for boolean values + +#----------------# +# Global Options # +#----------------# +[Global] + +# DatabaseHostname: Database Server Hostname to connect to +# -> Default: EXCDBS01 +DatabaseHostname=localhost + +# DatabaseName: Database to connect to on the DatabaseHostname +# -> Default: lts_ets_pro +DatabaseName=lts_ets_pro + +# DomainId: DDS DomainId to use for every started Service +# DomainId must be between 1 and 232 +# -> Default: last 8 Bits of the first ip adress found +;DomainId=42 + +# ServerHostname: Server Hostname to connect to for example: for svcReplayService +# -> Default: EXCTDS01 +;ServerHostname=EXCTDS01 + +# LogPath: Path log4cxx should put LogFiles into +# user needs rights to access the directory +# -> Default: /shd/CTC/LOG +;LogPath=/shd/CTC/LOG + + +#---------------------------------# +#Options for Excercise Management # +#---------------------------------# +[ExerciseManagement] + +# maxStartedExercises: Maximum Started Exercises +# Default -> 1 +;maxStartedExercises=1 + +# maxPreparedExercises: Maximum Pepared Exercises +# Default -> 4 +;maxPreparedExercises=4 + +# maxStoppedExercises: Maximum Stopped Exercises +# Default -> 5 +;maxStoppedExercises=5 + +# maxHlaExercises: Maximum HLA Exercises +# Default -> 1 +;maxHlaExercises=1 + +#--------------------------------# +#Options for Evaluation Database # +#--------------------------------# +[EvaluationDb] + +# DatabaseHostname: Database Hostname to Access +# Default -> "EXCADB01" +;DatabaseHostname = "EXCADB01" + +# DatabaseName: Database Name to Access +# Default -> "dbAdmin" +;DatabaseName = "dbAdmin" + + +#---------------------------------------# +#Options for Central Effect Simulations # +#---------------------------------------# +[CES] +# geopairingIniPath: Path where the GeoParing Ini Files are located +;geopairingIniPath=/shd/CTC/TOOLS/TDS/TDS-build/bin/GeoPairing/firingTables + +# geopairingIniFile: Name of the GeoParing Ini File +;geopairingIniFile=GeoPairing.ini + +# ammunitionIniFile: Name of the Ammunition Ini File +;ammunitionIniFile=Ammunition.ini + +# cesCheatingDistanceVehicle: maximum Cheating Distance for Vehicles in CES +;cesCheatingDistanceVehicle=20 + +# cesCheatingDistanceSoldier: maximum Cheating Distance for Soldiers in CES +;cesCheatingDistanceSoldier=5 + +# calculateCentralAes: enable Central Area Effect Simulation +# 0 = OFF +# 1 = AES calculation ON +# 2 = AES calculation ONLY in WLS-Areas +# Default -> 0 +;calculateCentralAes=0 : +calculateCentralAes=1 + +# handleBlockedAreas: enable handling of Blocked Areas +# Default -> false +handleBlockedAreas=false + + +# Settings for Artillerie-Sounds: + +# playArtillerieSounds: Enable Artillery Sounds +# Default -> 0 +playArtillerieSounds=1 + +# user: Username for Artillerie Sounds +user="katar" + +# passwd: Password for Artillerie Sounds +passwd="mout11de" + +# distanceThreshold: distanceThreshold for CES Artillerie Sound +# Default -> 1.415 +distanceThreshold=1.415 + +# factor: Volume factor for CES Artillerie Sounds +# Default -> 15.05 +factor=15.05 + +# soundId: SoundId to play on Artillere Hit +# Default -> 1 +soundId=1 + +# reduceFactor: reduceFactor for Artillerie Sounds +# 1.0 = 100 percent +# Default -> 1.0 +reduceFactor=1.0 ; for Tests 1.0 = 100 percent + +#-----------------------------------# +# Settings for CES-Plugins # +#-----------------------------------# +[CES_MINE_AREAS] +# older entries of mines are outdated +#PeriodStoredMinesOutdated=5000 + + +#-----------------------------------# +# Settings for AreaEffectSimulation # +#-----------------------------------# +[AES] + +# use2BytesForSingleFireDiameter: +# Default = 1 +use2BytesForSingleFireDiameter=1 + +# geopairingIniPath: path where the geoparing Ini Files are located +# Default -> "./GeoPairing/firingTables" +geopairingIniPath="./GeoPairing/firingTables" + +# geopairingIniFile: GeoParing Ini File in AES +# Default -> "GeoPairing.ini" +geopairingIniFile="GeoPairing.ini" + +# ammunitionIniFile: Ammunition file name for GeoParing in AES +# Default -> "Ammunition.ini" +ammunitionIniFile="Ammunition.ini" + +# DusSingleMineEffectStartOffset=30 * 1000 // 30 seconds default +# Default -> 30 seconds default + +# ActivationTimeAfterStopSupplyTruck Time that a Supply Truck must have been stationary before the functional Area becomes active. +# Default -> 5000 [ms] +# ActivationTimeAfterStopSupplyTruck=5000 + +# MaximumStepLengthStanding: Radius in which the vehicle is detected as stationary. +# Default -> 20 [m] +# MaximumStepLengthStanding=20 + +#----------------------------# +# Settings for FireAutomaton # +#----------------------------# +[FIRE_PATTERN] +# Effector pattern for the fire automaton +# Default -> "next" +# pattern_id = pattern_string +0 = "next" + +#-------- +# Effects +#-------- +# Confluence->Legatus->03_PROJEKTE->ADLER III Anbindung ->Konzepte->ADLER-generierte Steilfeuer->State-Machine Effector +# +#Default = 10 s ( 10 * 1000) +#The timer is not used for negative values. +;EffectorIntervalFireMin=10000 +#Default = 15 s ( 15 * 1000) +;EffectorIntervalFireMax=15000 +#Default = 10 s ( 10 * 1000) +#The timer is not used for negative values. +;EffectorIntervalReportFiredMin=10000 +#Default = 15 s ( 15 * 1000) +;EffectorIntervalReportFiredMax=15000 +#Default = 10 s ( 10 * 1000) +#The timer is not used for negative values. +;EffectormIntervalReportFireReadinessMin=10000 +#Default = 15 s ( 15 * 1000) +;EffectormIntervalReportFireReadinessMax=15000 +#Default = 10 s ( 10 * 1000) +#The timer is not used for negative values. +;getEffectorInitialReportFireReadinessMin=10000 +#Default = 15 s ( 15 * 1000) +;getEffectorInitialReportFireReadinessMax=15000 + +#---------------------------------------# +#Options for Central Effect Simulations # +#---------------------------------------# +[EEM] +# cleanupTimeout: timeout in ms for cleanup AVS events +# Default -> 600000 +cleanupTimeout = 0 + +#------------------# +# Settings for HLA # +#------------------# +[hla] + +# webSocketListenPort: HLA Websocket Port +# Default -> 12347 +;webSocketListenPort=12347 + +# webSocketHostname: HLA Websocket hostname to connect to +# Default -> "localhost" +;webSocketHostname="localhost" + + +#-------------------------# +# Settings for GueZ Nasat # +#-------------------------# +[GNA] + +# socketListenPort: GNA Listen Port +# Default -> 8420 +;socketListenPort= 8420 + +# useWebSocket: Enable GNA Websocket +# Default -> false +;useWebSocket = false + +# simulationPosLatDegree: GNA simulated Position Lat in Degree +# Default -> 11.560 +;simulationPosLatDegree=11.560 + +# simulationPosLonDegree: GNA simulated Position Lon in Degree +# Default -> 52.457 +;simulationPosLonDegree=52.457 + + +#------------------------------# +# Settings for AVS Workstation # +#------------------------------# +[AVS_WORKSTATION] + +# host: AVS Workstation host to connect to +# Default -> localhost +;host = localhost + +# port: AVS Workstation Port to connect to +# Default -> 6370 +;port = 6370 + +# KeepAlive: enable KeepAlive Signals to AVS +# Default -> true +;KeepAlive = true + +# Timeout: Timeout time in ms +# 0 :disable +# Default -> 3000 +;Timeout = 3000 + + +#------------------------------------------# +# Settings for AVS Workstation VD (Export) # +#------------------------------------------# +[AVS_WORKSTATION_VD] + +# host: AVS Workstation VD host to connect to +# Default -> localhost +;host = localhost + +# port: AVS Workstation VD Port to connect to +#Default -> 6380 +;port = 6380 + +# KeepAlive: enable KeepAlive Signals to AVS VD +# Default -> true +;KeepAlive = true + +# Timeout: Timeout time in ms VD +# 0 :disable +# Default -> 60000 +;Timeout = 3000 + + +#--------------------------------# +# Options for Training Area Base # +#--------------------------------# +[TrainingAreaBase] + +# TimeDelayAhead: Time Delay max ahead in ms where topics are send to dds from TAB +# Default -> 60000 +;TimeDelayAhead=60000 + +# TimeDelayBack: Time Delay max back in ms where topics are send to dds from TAB +# Default -> 60000 +;TimeDelayBack=60000 + +# UseTetraScrambling: enable Tetra Scrambling for Training Area Base +# Default -> BUILD GUEZ_MODE = true +# Default -> NO GUEZ MODE = false +;UseTetraScrambling=false + +# UsePvSan: enable PVSan functionality for TAB (add 2 Bytes to INIT BE CAREFULL!) +# Default -> false +;UsePvSan=false + +############################# +# IPS/OPS GPS transition +# DistanceIpsToGps=0 Distance of the first GPS coordinate to the building after an IPS position default = 0 [m] (int) +# DistanceOpsToGps=0 Distance of the first GPS coordinate to the building after an OPS position default = 0 [m] (int) +# MaxSoldierSpeed=4.0 fastest plausible speed of a soldier when transitioning from IPS/OPS to GPS [m/s] (double) +# MaxSpeedCheckTimeout=10 Time in which the speed-plausibility check is made [s] (int). After that, the GPS reports are valid again + +#-------------------------------------# +# Settings for TrainingAreaBaseOc # +#-------------------------------------# +[TabOC] +# remoteServerHostname: servername to connect the websocket to get portfinformation and ppmEX port +# Default -> "EXCTDS01" +;remoteServerHostname="EXCTDS01" + +#-------------------------------------# +# Settings for Oc Base Download # +#-------------------------------------# +[OcBaseDownload] + +# remoteDbName: Remote DB Name to Download from +# Default -> lts_ets_pro +;remoteDbName="lts_ets_pro" + +# remoteDbHostName: Remote Hostname to Download from +# Default -> EXCDBS01 +;remoteDbHostName="EXCDBS01" + +#-------------------------------------# +# Settings for Audio Video Management # +#-------------------------------------# +[AVM] + +# addacServerNamePrefix: ADDAC Servername Prefix +# Default -> ECCORIF +;addacServerNamePrefix="ECCORIF" + +# addacPortsPerServer: ADDAC Ports per Server +# Default -> 16 +;addacPortsPerServer=16 + + +#-------------------------------------# +# Settings for Participant Management # +#-------------------------------------# +[PPM] + +# markVehiclesAsReservedFromExcon: enable mark Vehicles as Reserves +# Default -> true +;markVehiclesAsReservedFromExcon=true + + +#--------------------------------# +# Settings for Target Management # +#--------------------------------# +[TGT] +# useL400Targets: enable L400 Target calculation +# Default -> false +;useL400Targets = false + + +#-----------------------------------# +# Settings for Recording Management # +#-----------------------------------# +[RecordingManagement] +# UpdateFrequency: Update Frequency in ms to write into recording tables +# Default -> 1000 +;UpdateFrequency = 1000 + + +#----------------------------------------------# +# Options for Wireless Location System Service # +#----------------------------------------------# +[WLS] + +# wlsListenPort: Port to listen to for WLS Connections +# Default -> 12002 +;wlsListenPort=12002 + +# webSocketListenPort: set Websocket Listen Port for WLS +# Default -> 123456 +;webSocketListenPort=12346 + +# wlsBasePoint: BasePoint for WLS Position Calculations +# MGRS format +# Default -> 32UMD0000000000000000 +;wlsBasePoint=32UMD0000000000000000 + +# wlsZOffset: Z offset for WLS Positions +# Default -> 0 +;wlsZOffset=0 + +# squareDistanceMax: squared maximum distance before sending to ppm +# Default -> 0.0 +#squareDistanceMax=0.0 + +#-----------------------------------------# +# Options for BuildingControlUnit Service # +#-----------------------------------------# +[BuildingControlUnit] + +# fireThreshold: +# Default -> 70 +;fireThreshold=70 + +# killThreshold: Threshold destruction until Building is destroyed +# Default -> 80 +;killThreshold=80 + +# effectSoundIdEccActivate: Activate Sound Id to play +# Default -> 0 +;effectSoundIdEccActivate=0 + +# effectSoundIdEccDestroy: Destroy Sound Id to play +# Default -> 1 +;effectSoundIdEccDestroy=1 + +# hitSoundVolume: Volume for Hit Sound +# Volume in Percent from 0-100 +# Default - > 100 +;hitSoundVolume=100 + +# activationSoundId: Activation sound to play on building init +# Default -> 0 +;activationSoundId=0 + +# activationSoundVolume: Activations Sounds Volume +# Volume in Percent from 0-100 +# Default - > 100 +;activationSoundVolume=100 + +# fireSoundId: Fire sound to play on building hit +# Default -> 4 +;fireSoundId=4 + +# fireSoundVolume: Volume for Fire Sound +# Volume in Percent from 0-100 +# Default - > 100 +;fireSoundVolume=100 + +# fireSoundCategory: Sound Categories +# OTHER VALUES??? +# Default -> Inside_buildings +;fireSoundCategory=Inside_buildings + +# minimumRemainEffectThreshold: Threshold until hits get relayed to neighbouring rooms +#Default -> 10 +minimumRemainEffectThreshold=1 + +# transitionMultiplier: Force Multiplier for every building hit +# Default -> 3.0 +;transitionMultiplier=3.0 + +# numberOfFlashes: Numbers of flashes or groups per hit +# 0 - 254 : Number of flashes (or groups) +# 255 : infinte flashes +# Default -> 10 +;numberOfFlashes=10 + +# pauseDuration: Pause between two flashes (or Groups) in Seconds +# 1 - 10 +# Default -> 1 +;pauseDuration=1 + +# choppedConfiguration: Number of Single Flash Pulses inside a group +# 0 - 1 : NO chopped flash +# 2 - 20: Number of flashes +# Default -> 10 +;choppedConfiguration=10 + +# flashDuration: Duration in ms for Building Sensor Module flashes +# Default -> 30 +;flashDuration=30 + +# laserRangeCode: Laser Code to ignore when handling Laser Hits on Building +# Default -> 2178 +;laserRangeCode=2178 + + +#------------------------------# +# Options for Sound Management # +#------------------------------# +[SOM] + +# user: Username to use for SOM +# Default -> "katar" +;user="katar" + +# passwd: Password to use for SOM +# Default -> "Mout11de" +;passwd="mout11de" + + +#-------------------------------# +# Options for ServiceManagement # +#-------------------------------# +[ServiceManagement] + +# ObserverIntervall: Time in ms the ServiceManagement waits for a Service's Heartbeat until it's restarts the Service +# Default -> 10000 (10 Seconds) +;ObserverIntervall=10000 + +#------------------------------------# +# Options for NotificationManagement # +#------------------------------------# +[NOM] +# expiryIntervalMSec: default 2 tage +# notificationPriority: Highest = 1, High = 2, Normal = 3, Low = 4 +expiryIntervalMSec=172800000 +notificationPriority=2 + +#-------------------------------# +# Options for db Administration # +#-------------------------------# +[dbAdministration] + +# DatabaseHostname: Database Hostname to connect to +# Default -> "EXCDBS01" +;DatabaseHostname="EXCDBS01" + +# DatabaseName: Database name to connect to +# Default -> "lts_ets_pro" +;DatabaseName="lts_ets_pro"