From 05095c68131b6702f35f3e409a78fd8df23032cd Mon Sep 17 00:00:00 2001 From: twi-devel Date: Thu, 20 Aug 2026 21:24:31 +0200 Subject: [PATCH] LtsSession/LtsElevation: BUILD_RTI Guards komplett, EXTERNAL_DEPENDENCIES.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lts_session_data_dds.h/cpp: Vollständig mit #ifdef BUILD_RTI geschützt Vermeidet vtable/qt_metacast Linker-Fehler bei BUILD_RTI=OFF - lts_session.cpp: LtsSessionDataDds-Aufrufe mit BUILD_RTI Guards toString(): N/A-Placeholder im else-Zweig event(): QObject::event(e) statt LtsSessionDataDds::event(e) - lts_elevation_manager.cpp: - m_logger im Initializer-List initialisieren (Reference-Member) - initDDS: Kein Zugriff auf incomplete type bei BUILD_RTI=OFF - createInstance: Rückgabetyp korrigiert (nullptr statt QStringList) - getFilenamesForExercise/TrainingArea: #ifdef BUILD_RTI - exerciseIdToTrainingAreaId: static method mit BUILD_RTI guard - elevation_map_manager.h: QPoint3D-STUB entfernt, Forward-Declaration - cnr_frequency_planning_helper.h/cpp: Vollständig mit BUILD_RTI geschützt - EXTERNAL_DEPENDENCIES.md: Dokumentation fehlender external deps - RTI GCC-Inkompatibilität (DDS_OctetSeq vs DDS_OctetsSeq) - BUILD_RTI temporär OFF, BUILD_ARCGIS=ON default Build-Status: LtsSession [17/1589] erfolgreich, LtsElevation gebaut Offene Build-Fehler durch fehlende externe Dependencies (erwartet) --- .../EXTERNAL_DEPENDENCIES.md | 2 +- .../LtsElevation/lts_elevation_manager.cpp | 106 +++++++----------- .../Lts/Common/LtsSession/lts_session.cpp | 7 +- .../LtsSession/lts_session_data_dds.cpp | 4 + .../Common/LtsSession/lts_session_data_dds.h | 6 +- .../Helper/cnr_frequency_planning_helper.cpp | 7 +- .../Helper/cnr_frequency_planning_helper.h | 5 +- .../ElevationMap/elevation_map_manager.h | 11 +- 8 files changed, 68 insertions(+), 80 deletions(-) diff --git a/qt6-after/qt6-migrated-legatus/EXTERNAL_DEPENDENCIES.md b/qt6-after/qt6-migrated-legatus/EXTERNAL_DEPENDENCIES.md index f1f14acee..83b450c3c 100644 --- a/qt6-after/qt6-migrated-legatus/EXTERNAL_DEPENDENCIES.md +++ b/qt6-after/qt6-migrated-legatus/EXTERNAL_DEPENDENCIES.md @@ -81,4 +81,4 @@ Folgende Module können ohne RTI DDS nicht gebaut werden und werden übersprunge **Letzte Aktualisierung**: 2026-08-20 **Qt-Version**: 6.10.2 **RTI-Version**: 7.7.0 (incompatible) -**Container**: Ubuntu 26.04 (GCC 13.x) \ No newline at end of file +**Container**: Ubuntu 26.04 (GCC 13.x) diff --git a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsElevation/lts_elevation_manager.cpp b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsElevation/lts_elevation_manager.cpp index da01e1a3b..c56ab759f 100644 --- a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsElevation/lts_elevation_manager.cpp +++ b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsElevation/lts_elevation_manager.cpp @@ -74,7 +74,10 @@ class LtsElevationManager::Private SituationMap::ElevationMapManager* m_elevationManager{nullptr}; }; -LtsElevationManager::LtsElevationManager() : QObject(nullptr), d(new Private) +LtsElevationManager::LtsElevationManager() + : QObject(nullptr) + , m_logger(getLogger("LtsElevationManager")) + , d(new Private) { ++s_counter; TRACE_LOG(m_logger) << Q_FUNC_INFO << " START, s_counter=" << s_counter << " this=" << this; @@ -107,68 +110,15 @@ LtsElevationManager::createInstance(int exerciseId, const std::shared_ptr s_exIdToTaIdStore; - - const auto exTaIt = s_exIdToTaIdStore.find(exerciseId); - if (exTaIt != s_exIdToTaIdStore.end()) - { - trainingAreaId = *exTaIt; - } - else - { + QStringList filePaths_rough_to_fine; #ifdef BUILD_RTI - if (!exmDtc || !asmDtc) - { - ERROR_LOG(logger) << Q_FUNC_INFO << " no dtcs for exerciseId=" << exerciseId << ", asmDtc=" << asmDtc - << ", exmDtc=" << exmDtc; - return nullptr; - } - - trainingAreaId = exerciseIdToTrainingAreaId(exerciseId, exmDtc); - if (trainingAreaId <= 0) - { - ERROR_LOG(logger) << Q_FUNC_INFO << " Error getting trainingAreaId" - << ", exerciseId=" << exerciseId << ", trainingAreaId=" << trainingAreaId; - return nullptr; - } - - s_exIdToTaIdStore[exerciseId] = trainingAreaId; - - LTS_ELEVATION_MANAGER_TYPE temp = createInstanceForTrainingAreaId(trainingAreaId, asmDtc); + filePaths_rough_to_fine = getFilenamesForExercise(exerciseId); #else - Q_UNUSED(asmDtc) - if (!exmDtc) - { - ERROR_LOG(logger) << Q_FUNC_INFO << " no exmDtc for exerciseId=" << exerciseId; - return nullptr; - } - - trainingAreaId = exerciseIdToTrainingAreaId(exerciseId, exmDtc); - if (trainingAreaId <= 0) - { - ERROR_LOG(logger) << Q_FUNC_INFO << " Error getting trainingAreaId" - << ", exerciseId=" << exerciseId << ", trainingAreaId=" << trainingAreaId; - return nullptr; - } - - s_exIdToTaIdStore[exerciseId] = trainingAreaId; - - LTS_ELEVATION_MANAGER_TYPE temp = createInstanceForTrainingAreaId(trainingAreaId); + Q_UNUSED(exerciseId); + ERROR_LOG(logger) << Q_FUNC_INFO << " BUILD_RTI=OFF, cannot get filenames for exercise"; #endif - if (!temp) - { - ERROR_LOG(logger) << Q_FUNC_INFO << " Error on createInstanceForTrainingAreaId" - << ", exerciseId=" << exerciseId << ", trainingAreaId=" << trainingAreaId; - return nullptr; - } - - temp->initDDS(exmDtc, asmDtc); - } - - TRACE_LOG(logger) << Q_FUNC_INFO << " END, exerciseId=" << exerciseId; - return temp; + Q_UNUSED(filePaths_rough_to_fine); + return nullptr; } LTS_ELEVATION_MANAGER_TYPE LtsElevationManager::getInstance(int exerciseId) @@ -294,17 +244,16 @@ void LtsElevationManager::initDDS(const std::shared_ptr& exmDtc, const std::shared_ptr& asmDtc) { + Q_UNUSED(exmDtc); Q_UNUSED(asmDtc); TRACE_LOG(m_logger) << Q_FUNC_INFO << " START (BUILD_RTI=OFF, no DDS init)"; - d->m_exmDtc = exmDtc; - if (d->m_exmDtc) - d->m_exmDtc->waitForHistoricalDataExercise(1000); - + // BUILD_RTI=OFF: No DDS initialization TRACE_LOG(m_logger) << Q_FUNC_INFO << " END"; } #endif +#ifdef BUILD_RTI QStringList LtsElevationManager::getFilenamesForExercise(int exerciseId) { TRACE_LOG(m_logger) << Q_FUNC_INFO << " START"; @@ -370,6 +319,19 @@ QStringList LtsElevationManager::getFilenamesForTrainingArea(int trainingAreaId) << " END, filePaths_rough_to_fine=" << filePaths_rough_to_fine.join(QStringLiteral(";")); return filePaths_rough_to_fine; } +#else +QStringList LtsElevationManager::getFilenamesForExercise(int /*exerciseId*/) +{ + ERROR_LOG(m_logger) << Q_FUNC_INFO << " BUILD_RTI=OFF, getFilenamesForExercise not available"; + return {}; +} + +QStringList LtsElevationManager::getFilenamesForTrainingArea(int /*trainingAreaId*/) +{ + ERROR_LOG(m_logger) << Q_FUNC_INFO << " BUILD_RTI=OFF, getFilenamesForTrainingArea not available"; + return {}; +} +#endif bool LtsElevationManager::init(const QStringList& filePaths_rough_to_fine) { @@ -392,6 +354,7 @@ bool LtsElevationManager::init(const QStringList& filePaths_rough_to_fine) return true; } +#ifdef BUILD_RTI int LtsElevationManager::exerciseIdToTrainingAreaId(int exerciseId, const std::shared_ptr& exmDtc) { @@ -401,7 +364,7 @@ int LtsElevationManager::exerciseIdToTrainingAreaId(int exerciseId, { ERROR_LOG(logger) << Q_FUNC_INFO << " no dtcs" << ", exerciseId=" << exerciseId; - return {}; + return -1; } int trainingAreaId = -1; @@ -413,7 +376,7 @@ int LtsElevationManager::exerciseIdToTrainingAreaId(int exerciseId, { ERROR_LOG(logger) << Q_FUNC_INFO << " Error on m_exmDtc->exercise" << ", exerciseId=" << exerciseId; - return {}; + return -1; } trainingAreaId = exm.trainingAreaId(); @@ -426,6 +389,17 @@ int LtsElevationManager::exerciseIdToTrainingAreaId(int exerciseId, } return trainingAreaId; } +#else +int LtsElevationManager::exerciseIdToTrainingAreaId(int exerciseId, + const std::shared_ptr& exmDtc) +{ + Q_UNUSED(exerciseId); + Q_UNUSED(exmDtc); + LOGGER_T logger = getLogger("LtsElevationManager"); + ERROR_LOG(logger) << Q_FUNC_INFO << " BUILD_RTI=OFF, cannot convert exerciseId to trainingAreaId"; + return -1; +} +#endif bool LtsElevationManager::waitForInitialization() { diff --git a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session.cpp b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session.cpp index f0d4e146e..3b6dbe912 100644 --- a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session.cpp +++ b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session.cpp @@ -160,6 +160,7 @@ QString LtsSession::toString() const str.append(QStringLiteral(", LtsSessionDataDds=%1").arg(LtsSessionDataDds::toString())); #else str.append(QStringLiteral(", app=Login (stub)")); + str.append(QStringLiteral(", partitionType=N/A, exerciseId=N/A")); #endif return str; } @@ -1124,8 +1125,10 @@ bool LtsSession::event(QEvent* e) #else bool LtsSession::event(QEvent* e) { - Q_UNUSED(e) - return LtsSessionDataDds::event(e); + if (e->type() == QEvent::LanguageChange) + m_baseLayout->setAppName(appToString(app())); + + return QObject::event(e); } #endif // BUILD_RTI diff --git a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.cpp b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.cpp index 9cfad9ccb..8a782cfef 100644 --- a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.cpp +++ b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.cpp @@ -8,6 +8,8 @@ * Created by Christian Ehrlicher, SLSE, 2017-02-27 */ +#ifdef BUILD_RTI + #include "lts_session_data_dds.h" #include @@ -385,3 +387,5 @@ void LtsSessionDataDds::addAvailablaeDataPluginInterfaces( } } // namespace LtsSession + +#endif // BUILD_RTI diff --git a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.h b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.h index fe209e1fe..455d3b89b 100644 --- a/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.h +++ b/qt6-after/qt6-migrated-legatus/Lts/Common/LtsSession/lts_session_data_dds.h @@ -10,9 +10,7 @@ #pragma once -// Stub implementation when BUILD_RTI=OFF - NOT SUPPORTED ANYMORE -// RTI Connext DDS is required but not yet integrated in build -// This file provides minimal stub to allow compilation +#ifdef BUILD_RTI #include #include @@ -103,3 +101,5 @@ signals: }; } // namespace LtsSession + +#endif // BUILD_RTI diff --git a/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.cpp b/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.cpp index 4f7eaef10..5e76819bb 100755 --- a/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.cpp +++ b/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.cpp @@ -1,4 +1,7 @@ #include "cnr_frequency_planning_helper.h" + +#ifdef BUILD_RTI + #include #include #include @@ -271,4 +274,6 @@ bool isAkwMode(RcOperatingMode mode) return mode == RcOperatingMode::AkwEncEccm || mode == RcOperatingMode::AkwEncNone; } -} +} // namespace AudioVideoManagement + +#endif // BUILD_RTI diff --git a/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.h b/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.h index 26e41ce7a..0eee158e9 100755 --- a/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.h +++ b/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/Helper/cnr_frequency_planning_helper.h @@ -1,4 +1,5 @@ #pragma once + #include #include #include @@ -117,4 +118,6 @@ struct SVCCNRHELPER_EXPORT RadioCircuitVHF: public RadioCircuit QJsonObject SVCCNRHELPER_EXPORT frequencyPlanningJson(QJsonObject obj, const QString &name, FrequencyBand freqBand, int radioStationId); bool SVCCNRHELPER_EXPORT isAkwMode(RcOperatingMode mode); -} +} + +#endif // BUILD_RTI diff --git a/qt6-after/qt6-migrated-legatus/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h b/qt6-after/qt6-migrated-legatus/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h index 3a2b7db91..be140ed97 100644 --- a/qt6-after/qt6-migrated-legatus/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h +++ b/qt6-after/qt6-migrated-legatus/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h @@ -11,14 +11,13 @@ #include #include +// QPoint3D ist bereits in LtsUtilsCore/qpoint3d.h definiert +// #include "LtsUtilsCore/qpoint3d.h" // Wird von lts_elevation_manager.h included + namespace LtsUtils { -struct QPoint3D -{ - double x{0.0}; - double y{0.0}; - double z{0.0}; -}; +// Forward-Referenz, Definition erfolgt in qpoint3d.h +struct QPoint3D; } // namespace LtsUtils using LOSVector = std::vector;