Migration of Legatus codebase to Qt6 with RTI Connext DDS 7.7 integration is partially complete. Core DDS targets build successfully, but ProjectDataManagement module blocks full ddsfts compilation due to IDL definition conflicts.

This commit is contained in:
torsten committed 2026-09-07 19:30:39 +02:00
1 parent 758ae0f53f
commit ba1d9e2c04
256 files changed
+1170 -610

No files matched your search

+28 -4
View File
@@ -74,7 +74,7 @@ SET(CMAKE_INCLUDE_CURRENT_DIR ON)
include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_SOURCE_DIR}/include)
# Include directory for generated export headers # Include directory for generated export headers
include_directories(${CMAKE_BINARY_DIR}) include_directories(${CMAKE_BINARY_DIR})
include_directories(${CMAKE_BINARY_DIR}/Z/src/NGLLogger) include_directories(${CMAKE_SOURCE_DIR}/Z/src)
# Include directories for external dependencies and internal modules # Include directories for external dependencies and internal modules
include_directories(${CMAKE_SOURCE_DIR}/Z/src) include_directories(${CMAKE_SOURCE_DIR}/Z/src)
include_directories(${CMAKE_SOURCE_DIR}/Z/src/ngltools) include_directories(${CMAKE_SOURCE_DIR}/Z/src/ngltools)
@@ -100,7 +100,9 @@ SET(CMAKE_CXX_STANDARD 17)
SET(CMAKE_CXX_STANDARD_REQUIRED ON) SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_VISIBILITY_INLINES_HIDDEN ON) SET(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
SET(CMAKE_CXX_VISIBILITY_PRESET hidden) SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON) # Qt6 Migration: Removed CMAKE_POSITION_INDEPENDENT_CODE - Qt6 handles PIC automatically
# and this setting conflicts with Qt6's reduce_relocations feature
# SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
IF(CMAKE_VERSION VERSION_GREATER 3.15.9) IF(CMAKE_VERSION VERSION_GREATER 3.15.9)
OPTION(USE_UNITY_BUILDS "Use Unity builds to speed up compilation (cmake 3.16 or newer required!)" OFF) OPTION(USE_UNITY_BUILDS "Use Unity builds to speed up compilation (cmake 3.16 or newer required!)" OFF)
@@ -347,6 +349,21 @@ if(NOT TARGET Qt6::Multimedia)
message(STATUS "Created stub target for Qt6::Multimedia (library not available)") message(STATUS "Created stub target for Qt6::Multimedia (library not available)")
endif() endif()
# Stub Qt6::Svg target if not available (needed by various plugins)
if(NOT TARGET Qt6::Svg)
add_library(Qt6::Svg INTERFACE IMPORTED)
message(STATUS "Created stub target for Qt6::Svg (library not available)")
endif()
# Stub Qt6::SerialPort target if not available (needed by TrainingAreaBaseOC)
if(NOT TARGET Qt6::SerialPort)
add_library(Qt6::SerialPort INTERFACE IMPORTED)
set_target_properties(Qt6::SerialPort PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "QT_NO_SERIALPORT"
)
message(STATUS "Created stub target for Qt6::SerialPort (library not available)")
endif()
# Stub Qt6::WebEngineCore target if not available (needed by thp_viewer) # Stub Qt6::WebEngineCore target if not available (needed by thp_viewer)
if(NOT TARGET Qt6::WebEngineCore) if(NOT TARGET Qt6::WebEngineCore)
add_library(Qt6::WebEngineCore INTERFACE IMPORTED) add_library(Qt6::WebEngineCore INTERFACE IMPORTED)
@@ -420,8 +437,15 @@ IF(BUILD_RTI)
IF(DEFINED ENV{DDS_PATH}) IF(DEFINED ENV{DDS_PATH})
SET(RTI_INSTALL_DIR "$ENV{DDS_PATH}" CACHE PATH "RTI Connext DDS installation directory") SET(RTI_INSTALL_DIR "$ENV{DDS_PATH}" CACHE PATH "RTI Connext DDS installation directory")
ELSE() ELSE()
# CMAKE_SOURCE_DIR is qt6-migrated-legatus, RTI is at ../../../external/ # In Docker container: /workspace/external/rti_connext_dds-7.7.0
SET(RTI_INSTALL_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0" CACHE PATH "RTI Connext DDS installation directory") # On host: ${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0
IF(EXISTS "/workspace/external/rti_connext_dds-7.7.0")
SET(RTI_INSTALL_DIR "/workspace/external/rti_connext_dds-7.7.0" CACHE PATH "RTI Connext DDS installation directory")
ELSEIF(EXISTS "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0")
SET(RTI_INSTALL_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0" CACHE PATH "RTI Connext DDS installation directory")
ELSE()
SET(RTI_INSTALL_DIR "/opt/RTI" CACHE PATH "RTI Connext DDS installation directory")
ENDIF()
ENDIF() ENDIF()
# Also set RTI_DIR for FindRTI.cmake compatibility (used by subdirectories) # Also set RTI_DIR for FindRTI.cmake compatibility (used by subdirectories)
SET(RTI_DIR "${RTI_INSTALL_DIR}" CACHE PATH "RTI base path" FORCE) SET(RTI_DIR "${RTI_INSTALL_DIR}" CACHE PATH "RTI base path" FORCE)
@@ -11,7 +11,7 @@ BuildDirectory: /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus
CostDataFile: CostDataFile:
# Site is something like machine.domain, i.e. pragmatic.crd # Site is something like machine.domain, i.e. pragmatic.crd
Site: d00b0d044d57 Site: 993faf591d0a
# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++ # Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
BuildName: Linux-c++ BuildName: Linux-c++
@@ -16,7 +16,7 @@ else()
endif() endif()
# Add only existing subdirectories to allow partial checkouts / incremental migration # Add only existing subdirectories to allow partial checkouts / incremental migration
set(LTS_SUBDIRS Tools Application Common DDS Services Proxies Plugins Viewer Projects) set(LTS_SUBDIRS Tools Application DDS Common Services Proxies Plugins Viewer Projects)
foreach(dir IN LISTS LTS_SUBDIRS) foreach(dir IN LISTS LTS_SUBDIRS)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}") if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
# Use guarded add so top-level MIGRATE_MODULE can restrict which Lts subdirs are included # Use guarded add so top-level MIGRATE_MODULE can restrict which Lts subdirs are included
@@ -123,6 +123,7 @@ IF(BUILD_GRANTLEE AND TARGET KF6::TextTemplate)
NGL_TARGET_INCLUDE_DIRECTORIES(codegen_grantlee NGL_TARGET_INCLUDE_DIRECTORIES(codegen_grantlee
PUBLIC PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_BINARY_DIR}/Z/src/NGLLogger
) )
# Smoke-test: parse all .grantlee templates in this directory to detect parse/render regressions # Smoke-test: parse all .grantlee templates in this directory to detect parse/render regressions
@@ -859,7 +859,7 @@ bool StructBuilder::fixupQVariantConversions(MemberInformation& mi) const
QStringLiteral("static_cast<") + svcName + mi.enumeration->enumName + QStringLiteral(">("); QStringLiteral("static_cast<") + svcName + mi.enumeration->enumName + QStringLiteral(">(");
mi.cpp.fromVariantPost = QStringLiteral(".toInt())"); mi.cpp.fromVariantPost = QStringLiteral(".toInt())");
mi.cpp.toVariantPre = QStringLiteral("static_cast<int>("); mi.cpp.toVariantPre = QStringLiteral("static_cast<int>(");
mi.cpp.toVariantPost.clear(); mi.cpp.toVariantPost = QStringLiteral(")");
mi.cpp.toJsonPre = QStringLiteral("toJson(static_cast<int>("); mi.cpp.toJsonPre = QStringLiteral("toJson(static_cast<int>(");
mi.cpp.toJsonPost = QStringLiteral("))"); mi.cpp.toJsonPost = QStringLiteral("))");
if (!mi.enumeration->values.isEmpty()) if (!mi.enumeration->values.isEmpty())
@@ -186,6 +186,8 @@ class DtcGenerator(object):
def generate( self, outfile, parser ): def generate( self, outfile, parser ):
outputHeader( outfile, parser, 'DTC' ) outputHeader( outfile, parser, 'DTC' )
outfile.write('\n') outfile.write('\n')
outfile.write('#include <DDS/Generic/generic_data_reader.h>\n')
outfile.write('\n')
outfile.write('/**\n') outfile.write('/**\n')
outfile.write(' * Type definitions \n') outfile.write(' * Type definitions \n')
outfile.write(' * => DataTopicClients (DTCs)\n') outfile.write(' * => DataTopicClients (DTCs)\n')
@@ -462,13 +464,13 @@ def main():
generate(parser, OperatorRightsSql(), os.path.join(out_dir, parser.service_abbr + '_operator_rights.sql')) generate(parser, OperatorRightsSql(), os.path.join(out_dir, parser.service_abbr + '_operator_rights.sql'))
elif option_str == "ALL": elif option_str == "ALL":
out_dir = sys.argv[3] out_dir = sys.argv[3]
fn = parser.service_abbr + '_%s_types.h' fn = out_dir + '/' + parser.service_abbr + '_%s_types.h'
generate(parser, DtsGenerator(), fn % 'dts') generate(parser, DtsGenerator(), fn % 'dts')
generate(parser, DtcGenerator(), fn % 'dtc') generate(parser, DtcGenerator(), fn % 'dtc')
generate(parser, FtsGenerator(), fn % 'fts') generate(parser, FtsGenerator(), fn % 'fts')
generate(parser, FtcGenerator(), fn % 'ftc') generate(parser, FtcGenerator(), fn % 'ftc')
generate(parser, OperatorRights(), parser.service_abbr + '_operator_rights.h') generate(parser, OperatorRights(), out_dir + '/' + parser.service_abbr + '_operator_rights.h')
generate(parser, OperatorRightsCpp(), parser.service_abbr + '_operator_rights.cpp') generate(parser, OperatorRightsCpp(), out_dir + '/' + parser.service_abbr + '_operator_rights.cpp')
else: else:
usage("invalid option '%s'" % option_str) usage("invalid option '%s'" % option_str)
sys.exit(0) sys.exit(0)
@@ -30,6 +30,23 @@ QString fixupEmptyJsonString(const QString &str)
return str.isEmpty() ? QStringLiteral("{}") : str; return str.isEmpty() ? QStringLiteral("{}") : str;
} }
// Basic type toJson overloads
QJsonValue toJson(int val)
{
return QJsonValue(val);
}
QJsonValue toJson(double val)
{
return QJsonValue(val);
}
QJsonValue toJson(qint64 val)
{
return QJsonValue(QString::number(val));
}
QJsonValue toJson(const std::string &val)
{
return QJsonValue(QString::fromStdString(val));
}
// QPointF // QPointF
QJsonValue toJson(const QPointF &element) QJsonValue toJson(const QPointF &element)
@@ -9,7 +9,9 @@ option(BUILD_GTEST_SMOKE "Build GTest smoke tests" OFF)
add_subdirectory(mocks) add_subdirectory(mocks)
if(BUILD_SMOKE_TESTS) if(BUILD_SMOKE_TESTS)
find_package(Qt6 REQUIRED COMPONENTS Test) if(NOT TARGET Qt6::Test)
find_package(Qt6 REQUIRED COMPONENTS Test)
endif()
add_executable(coordTransTests_smoke coordTransTests_smoke.cpp) add_executable(coordTransTests_smoke coordTransTests_smoke.cpp)
target_link_libraries(coordTransTests_smoke PRIVATE Qt6::Test MockCoordTrans::MockCoordTrans) target_link_libraries(coordTransTests_smoke PRIVATE Qt6::Test MockCoordTrans::MockCoordTrans)
add_test(NAME coordTransTests_smoke COMMAND coordTransTests_smoke) add_test(NAME coordTransTests_smoke COMMAND coordTransTests_smoke)
@@ -13,24 +13,8 @@ else()
set(Qt6_Gui "") set(Qt6_Gui "")
endif() endif()
# BUILD_RTI is set by parent CMakeLists.txt - do not override here
OPTION(BUILD_RTI "Build with RTI Connext DDS support" ON) # RTI paths are also set by parent and imported targets are available
# Find RTI Connext DDS - manual configuration (no CMake config file available)
IF(BUILD_RTI)
SET(RTI_BASE_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0")
SET(RTI_INCLUDE_DIR "${RTI_BASE_DIR}/include")
SET(RTI_LIB_DIR "${RTI_BASE_DIR}/lib/x64Linux4gcc8.5.0")
# Check if RTI directories exist
IF(EXISTS "${RTI_INCLUDE_DIR}" AND EXISTS "${RTI_LIB_DIR}")
MESSAGE(STATUS "Using RTI Connext DDS from ${RTI_BASE_DIR}")
SET(BUILD_RTI ON)
ELSE()
MESSAGE(WARNING "RTI Connext DDS not found at ${RTI_BASE_DIR}, building without RTI support")
SET(BUILD_RTI OFF)
ENDIF()
ENDIF()
# LtsSessionDataDds (always built, with stub implementation for non-RTI builds) # LtsSessionDataDds (always built, with stub implementation for non-RTI builds)
SET(LtsSessionDataDds_SRCS SET(LtsSessionDataDds_SRCS
@@ -58,7 +42,11 @@ IF(BUILD_RTI)
PUBLIC PUBLIC
${RTI_INCLUDE_DIR} ${RTI_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/Lts ${CMAKE_SOURCE_DIR}/Lts
${CMAKE_SOURCE_DIR}/include
${CMAKE_BINARY_DIR}/Lts/DDS
) )
# ddscore target generates core_dtc_types.h
ADD_DEPENDENCIES(LtsSessionDataDds ddscore)
NGL_TARGET_LINK_DIRECTORIES(LtsSessionDataDds NGL_TARGET_LINK_DIRECTORIES(LtsSessionDataDds
PRIVATE PRIVATE
${RTI_LIB_DIR} ${RTI_LIB_DIR}
@@ -74,7 +74,7 @@ class DdsConnectionContainer
for (int i = ddsConnections.size() - 1; i >= 0; --i) for (int i = ddsConnections.size() - 1; i >= 0; --i)
{ {
const DdsConnection& conn = ddsConnections.at(i); const DdsConnection& conn = ddsConnections.at(i);
if (conn.partitionType != IDL::PartitionType::Global) if (toIdlPartitionType(conn.partitionType) != IDL::PartitionType::Global)
continue; continue;
auto ret = conn.ddsConnector.lock(); auto ret = conn.ddsConnector.lock();
if (ret != nullptr) if (ret != nullptr)
@@ -22,10 +22,12 @@
#ifdef BUILD_RTI #ifdef BUILD_RTI
#include <dds/domain/DomainParticipant.hpp> #include <dds/domain/DomainParticipant.hpp>
#include "INGLLogger.h" #include <NGLLogger/INGLLogger.h>
#include "DDS/Core/core_dtc_types.h" #include <NGLLogger/NGLLoggerBootstrap.h>
#include "Core/core.hpp"
#include "Core/core_dtc_types.h"
#include "Lts/Common/ProjectConfig/project_defines.h"
namespace DDSConnector { class DdsConnector; } namespace DDSConnector { class DdsConnector; }
namespace DTC { template<typename T> class GenericDTCImpl; }
namespace DataPluginBase { class Interface; } namespace DataPluginBase { class Interface; }
namespace GuiPluginBase { class Interface; } namespace GuiPluginBase { class Interface; }
#else #else
@@ -165,8 +167,8 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
return true; return true;
} }
val.reset(); val.reset();
if (m_logger.isDebug()) if (m_logger.isDebugEnabled())
m_logger.debug() << "Cannot find foreign gui ifc " << typeid(S).name() << " in " << toString(); DEBUG_LOG(m_logger) << "Cannot find foreign gui ifc " << typeid(S).name() << " in " << toString();
#else #else
val.reset(); val.reset();
#endif #endif
@@ -182,6 +184,7 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
bool initInternal(); bool initInternal();
void onPartitionTimeChangedInternal(); void onPartitionTimeChangedInternal();
static LtsSession::PartitionType toPartitionType(IDL::PartitionType idlType); static LtsSession::PartitionType toPartitionType(IDL::PartitionType idlType);
static IDL::PartitionType toIdlPartitionType(LtsSession::PartitionType type);
// Member variables - only with RTI // Member variables - only with RTI
int m_exerciseId; int m_exerciseId;
@@ -191,7 +194,7 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
Fetcher* m_fetcher; Fetcher* m_fetcher;
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector; std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnectorGlobal; std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnectorGlobal;
std::shared_ptr<DTC::GenericDTCImpl<Core::PartitionTime>> m_dtcPartitionTime; std::shared_ptr<DTC::PartitionTime> m_dtcPartitionTime;
NGL::INGLLogger& m_logger; NGL::INGLLogger& m_logger;
QMap<QString, std::shared_ptr<DataPluginBase::Interface>> m_dataPluginInterfaces; QMap<QString, std::shared_ptr<DataPluginBase::Interface>> m_dataPluginInterfaces;
QMap<QString, std::shared_ptr<GuiPluginBase::Interface>> m_guiPluginInterfaces; QMap<QString, std::shared_ptr<GuiPluginBase::Interface>> m_guiPluginInterfaces;
@@ -4,55 +4,55 @@
# $Author$ # $Author$
# #
set(CMAKE_AUTOMOC ON)
# DataPluginInterface # DataPluginInterface
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(DataPluginInterface SHARED
DataPluginInterface
${CMAKE_CURRENT_SOURCE_DIR}/data_plugin_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/data_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/data_plugin_interface.cpp
Qt6::Core
) )
set_target_properties(DataPluginInterface PROPERTIES AUTOMOC ON) TARGET_INCLUDE_DIRECTORIES(DataPluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(DataPluginInterface PUBLIC Qt6::Core)
# GuiPluginInterface # GuiPluginInterface
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(GuiPluginInterface SHARED
GuiPluginInterface
${CMAKE_CURRENT_SOURCE_DIR}/gui_plugin_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/gui_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/gui_plugin_interface.cpp
Qt6::Core LtsWidgets ProjectConfig LtsAppDescriptor LtsUtilsCore
) )
set_target_properties(GuiPluginInterface PROPERTIES AUTOMOC ON) TARGET_INCLUDE_DIRECTORIES(GuiPluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(GuiPluginInterface PUBLIC Qt6::Core LtsWidgets ProjectConfig LtsAppDescriptor LtsUtilsCore)
# projectPluginInterface # projectPluginInterface
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(ProjectPluginInterface SHARED
ProjectPluginInterface
${CMAKE_CURRENT_SOURCE_DIR}/project_plugin_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/project_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/project_plugin_interface.cpp
Qt6::Core
) )
set_target_properties(ProjectPluginInterface PROPERTIES AUTOMOC ON) TARGET_INCLUDE_DIRECTORIES(ProjectPluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(ProjectPluginInterface PUBLIC Qt6::Core)
# stylePluginInterface # stylePluginInterface
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(StylePluginInterface SHARED
StylePluginInterface
${CMAKE_CURRENT_SOURCE_DIR}/style_plugin_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/style_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/style_plugin_interface.cpp
Qt6::Core
) )
set_target_properties(StylePluginInterface PROPERTIES AUTOMOC ON) TARGET_INCLUDE_DIRECTORIES(StylePluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(StylePluginInterface PUBLIC Qt6::Core)
# record_replay_plugin # record_replay_plugin
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(RecordReplayPlugin SHARED
RecordReplayPlugin
${CMAKE_CURRENT_SOURCE_DIR}/record_replay_plugin.h ${CMAKE_CURRENT_SOURCE_DIR}/record_replay_plugin.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/record_replay_plugin.cpp
Qt6::Core
) )
set_target_properties(RecordReplayPlugin PROPERTIES AUTOMOC ON) TARGET_INCLUDE_DIRECTORIES(RecordReplayPlugin PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(RecordReplayPlugin PUBLIC Qt6::Core)
# Topic Replay Interface # Topic Replay Interface
ADD_INTERFACE_LIBRARY( ADD_LIBRARY(TopicReplayInterface SHARED
TopicReplayInterface
${CMAKE_CURRENT_SOURCE_DIR}/topic_replay_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/topic_replay_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/topic_replay_interface.cpp
Qt6::Core
) )
TARGET_INCLUDE_DIRECTORIES(TopicReplayInterface PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_BINARY_DIR}/Lts/Common/TopicEditorBase # topiceditorbase_export.h
)
TARGET_LINK_LIBRARIES(TopicReplayInterface PUBLIC Qt6::Core TopicEditorBase)
@@ -21,8 +21,7 @@ namespace DataPluginBase
class Interface class Interface
{ {
public: public:
Interface() = default;
virtual ~Interface() = default; virtual ~Interface() = default;
}; };
@@ -7,8 +7,8 @@
#include <LtsWidgets/lts_base.h> #include <LtsWidgets/lts_base.h>
#include <ProjectConfig/project_defines.h> #include <ProjectConfig/project_defines.h>
#include <QtCore/QFlags> #include <QtCore/QFlags>
#include <QtCore/QObject>
#include <QtCore/QVector> #include <QtCore/QVector>
#include <QObject>
#include <memory> #include <memory>
namespace NGL namespace NGL
@@ -33,8 +33,9 @@ class Interface;
class Plugin class Plugin
{ {
Q_GADGET
public: public:
Plugin() = default;
virtual ~Plugin() = default; virtual ~Plugin() = default;
virtual QString pluginName() = 0; virtual QString pluginName() = 0;
@@ -2,14 +2,16 @@
#pragma once #pragma once
#include <QtCore/QObject> #include <QObject>
namespace ProjectPlugin namespace ProjectPlugin
{ {
class Plugin class Plugin
{ {
public: Q_GADGET
Plugin() = default;
public:
virtual ~Plugin() = default; virtual ~Plugin() = default;
}; };
@@ -3,8 +3,8 @@
#pragma once #pragma once
#include <QtCore/QHash> #include <QtCore/QHash>
#include <QtCore/QObject>
#include <QtCore/QString> #include <QtCore/QString>
#include <QObject>
#include <map> #include <map>
#include <memory> #include <memory>
@@ -19,8 +19,9 @@ namespace RecordReplay
{ {
class RecordReplayPlugin class RecordReplayPlugin
{ {
Q_GADGET
public: public:
RecordReplayPlugin() = default;
virtual ~RecordReplayPlugin() = default; virtual ~RecordReplayPlugin() = default;
virtual QString pluginName() const = 0; virtual QString pluginName() const = 0;
@@ -2,14 +2,15 @@
#pragma once #pragma once
#include <QtCore/QObject> #include <QObject>
namespace StylePlugin namespace StylePlugin
{ {
class Plugin class Plugin
{ {
Q_GADGET
public: public:
Plugin() = default;
virtual ~Plugin() = default; virtual ~Plugin() = default;
virtual void loadStyle(bool highDpi) = 0; virtual void loadStyle(bool highDpi) = 0;
@@ -46,6 +46,7 @@ NGL_TARGET_INCLUDE_DIRECTORIES(TopicEditorBase
PUBLIC PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../ # auto-export file ${CMAKE_CURRENT_BINARY_DIR}/../ # auto-export file
${CMAKE_BINARY_DIR}/Z/src/NGLLogger # ngllogger_export.h
) )
if(QT6_GUI_AVAILABLE) if(QT6_GUI_AVAILABLE)
@@ -219,7 +219,8 @@ QColor topicTypeColor(TopicType topicType)
std::ostream& operator<<(std::ostream& stream, TopicType topicType) std::ostream& operator<<(std::ostream& stream, TopicType topicType)
{ {
stream << "TopicType::" << topicTypeString(topicType).toStdString().c_str(); const std::string str = std::string("TopicType::") + topicTypeString(topicType).toStdString();
stream << str;
return stream; return stream;
} }
@@ -274,7 +275,7 @@ QJsonObject TopicData::toJson() const
QDataStream& operator<<(QDataStream& stream, const TopicData& data) QDataStream& operator<<(QDataStream& stream, const TopicData& data)
{ {
const QByteArray properties = QJsonDocument(data.properties).toBinaryData(); const QByteArray properties = QJsonDocument(data.properties).toJson(QJsonDocument::Compact);
stream << data.id << static_cast<quint8>(data.topicType) << data.startTime << data.duration << data.state stream << data.id << static_cast<quint8>(data.topicType) << data.startTime << data.duration << data.state
<< data.index << properties << data.description << data.channel << data.parentChannel << data.x << data.y << data.index << properties << data.description << data.channel << data.parentChannel << data.x << data.y
<< data.w << data.h; << data.w << data.h;
@@ -288,7 +289,7 @@ QDataStream& operator>>(QDataStream& stream, TopicData& data)
stream >> data.id >> topicType >> data.startTime >> data.duration >> data.state >> data.index >> properties >> stream >> data.id >> topicType >> data.startTime >> data.duration >> data.state >> data.index >> properties >>
data.description >> data.channel >> data.parentChannel >> data.x >> data.y >> data.w >> data.h; data.description >> data.channel >> data.parentChannel >> data.x >> data.y >> data.w >> data.h;
data.topicType = static_cast<TopicType>(topicType); data.topicType = static_cast<TopicType>(topicType);
data.properties = QJsonDocument::fromBinaryData(properties).object(); data.properties = QJsonDocument::fromJson(properties).object();
return stream; return stream;
} }
@@ -38,10 +38,24 @@ CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
# Get the generated core_dtc.h path for manual MOC handling # Get the generated core_dtc.h path for manual MOC handling
SET(CORE_DTC_H_GENERATED "${CMAKE_CURRENT_BINARY_DIR}/core_dtc.h") # When BUILD_GRANTLEE=OFF, file is in source dir; otherwise in build dir
IF(BUILD_GRANTLEE)
SET(CORE_DTC_H_GENERATED "${CMAKE_CURRENT_BINARY_DIR}/core_dtc.h")
ELSE()
SET(CORE_DTC_H_GENERATED "${CMAKE_CURRENT_SOURCE_DIR}/core_dtc.h")
# Copy to build directory for consistent MOC handling
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/core_dtc.h" "${CMAKE_CURRENT_BINARY_DIR}/core_dtc.h" COPYONLY)
ENDIF()
NGL_ADD_LIBRARY2(WS AAR HLA SV ddscore SHARED ${SRCS_common}) NGL_ADD_LIBRARY2(WS AAR HLA SV ddscore SHARED ${SRCS_common})
# Add RTI compile definitions explicitly (required for RTI headers to compile)
TARGET_COMPILE_DEFINITIONS(ddscore PRIVATE
RTI_UNIX
RTI_LINUX
RTI_64BIT
)
# Skip AUTOMOC for generated header - it will be processed manually with correct dependencies # Skip AUTOMOC for generated header - it will be processed manually with correct dependencies
SET_SOURCE_FILES_PROPERTIES(${CORE_DTC_H_GENERATED} PROPERTIES SKIP_AUTOMOC ON) SET_SOURCE_FILES_PROPERTIES(${CORE_DTC_H_GENERATED} PROPERTIES SKIP_AUTOMOC ON)
@@ -12,14 +12,37 @@ SET(SRCS_common
ddsut_export.h ddsut_export.h
) )
# Generates ddsut.idl / ddsut_enums.idl # Generates ddsut.idl / ddsut_enums.idl
IF(BUILD_GRANTLEE)
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
ELSE()
# BUILD_GRANTLEE disabled: check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_enums.idl")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated IDL files for ddsut")
LIST(APPEND SRCS_common ddsut.idl ddsut_enums.idl)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated IDL files found for ddsut. Skipping service.")
SET(SRCS_common "")
ENDIF()
ENDIF()
# Generate *.cpp/*.hpp from ddsut_enums.idl / ddsut.idl # Generate *.cpp/*.hpp from ddsut_enums.idl / ddsut.idl
IF(BUILD_GRANTLEE OR (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_enums.idl"))
RTIDDSGEN(SRCS_common ddsut_enums.idl) RTIDDSGEN(SRCS_common ddsut_enums.idl)
RTIDDSGEN(SRCS_common ddsut.idl) RTIDDSGEN(SRCS_common ddsut.idl)
ENDIF()
# Generate ddsut_dt[s,c]_types.h, ddsut_ft[s,c]_types.h # Generate ddsut_dt[s,c]_types.h, ddsut_ft[s,c]_types.h
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
# generate ddsut_[d|f]tc.h # generate ddsut_[d|f]tc.h
IF(BUILD_GRANTLEE)
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
ELSE()
# Check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_dtc.h" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_ftc.h")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated DTC/FTC files for ddsut")
LIST(APPEND SRCS_common ddsut_dtc.h ddsut_ftc.h)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated DTC/FTC files found for ddsut")
ENDIF()
ENDIF()
NGL_ADD_LIBRARY2(ALL ddsut_common SHARED ${SRCS_common}) NGL_ADD_LIBRARY2(ALL ddsut_common SHARED ${SRCS_common})
IF(BUILD_RTI) IF(BUILD_RTI)
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <DDS/Core/core.hpp> #include <Core/core.hpp>
#include <future> #include <future>
@@ -4,7 +4,7 @@
#include "generic_ftc.h" #include "generic_ftc.h"
#include "generic_ftc_threading.h" #include "generic_ftc_threading.h"
#include <DDS/Core/core.hpp> #include <Core/core.hpp>
#include <DDS/FTS/connext.h> #include <DDS/FTS/connext.h>
#include <DDS/Generic/generic_base.h> #include <DDS/Generic/generic_base.h>
#include <DDS/Generic/generic_logger.h> #include <DDS/Generic/generic_logger.h>
@@ -4,6 +4,7 @@
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <QtCore/QRegularExpression> #include <QtCore/QRegularExpression>
#include <QtCore/QRandomGenerator>
#include <chrono> #include <chrono>
#include <future> #include <future>
@@ -135,7 +136,7 @@ void Threading::preInit() const
} }
name += words.takeFirst().leftRef(maxWordLen); name += words.takeFirst().left(maxWordLen);
wordsLeft--; wordsLeft--;
} }
@@ -153,7 +154,7 @@ void Threading::preInit() const
name = orgName; name = orgName;
} }
m_threadName = QStringLiteral("%1%2[%3]").arg(base, name).arg(qrand(), 8, 16, QLatin1Char('0')); m_threadName = QStringLiteral("%1%2[%3]").arg(base, name).arg(QRandomGenerator::global()->bounded(0x100000000LL), 8, 16, QLatin1Char('0'));
} }
@@ -7,7 +7,7 @@
#include "connext.h" #include "connext.h"
#include "generic_fts_internal.h" #include "generic_fts_internal.h"
#include <DDS/Core/core.hpp> #include <Core/core.hpp>
#include <DDS/Generic/generic_base.h> #include <DDS/Generic/generic_base.h>
#include <DDS/Generic/generic_logger.h> #include <DDS/Generic/generic_logger.h>
#include <DDS/Generic/wait_set_handler.h> #include <DDS/Generic/wait_set_handler.h>
@@ -6,7 +6,7 @@
#include "logger.h" #include "logger.h"
#if BUILD_RTI #if BUILD_RTI
#include <DDS/Core/topic_lock_master.h> #include <Core/topic_lock_master.h>
#include <DDS/Generic/wait_set_handler.h> #include <DDS/Generic/wait_set_handler.h>
#include <dds/sub/qos/DataReaderQos.hpp> #include <dds/sub/qos/DataReaderQos.hpp>
#include <dds/pub/qos/DataWriterQos.hpp> #include <dds/pub/qos/DataWriterQos.hpp>
@@ -9,7 +9,7 @@
#include <Lts/Services/FileManagement/flm_ftc.h> #include <Lts/Services/FileManagement/flm_ftc.h>
#include <FileManagement/flm_dtc.h> #include <FileManagement/flm_dtc.h>
#include <OperatorManagement/opm_dtc.h> #include <OperatorManagement/opm_dtc.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h> #include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
#include <LtsSession/lts_session.h> #include <LtsSession/lts_session.h>
#include <PluginInterfaces/gui_plugin_interface.h> #include <PluginInterfaces/gui_plugin_interface.h>
@@ -8,7 +8,7 @@
#include "pre_storyboard.h" #include "pre_storyboard.h"
#include "filter_topic.h" #include "filter_topic.h"
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <PluginInterfaces/topic_replay_interface.h> #include <PluginInterfaces/topic_replay_interface.h>
#include <LtsPluginManager/lts_plugin_manager.h> #include <LtsPluginManager/lts_plugin_manager.h>
#include <LtsWidgets/lts_dialog.h> #include <LtsWidgets/lts_dialog.h>
@@ -7,7 +7,7 @@
#include "pre_journal_types.h" #include "pre_journal_types.h"
#include "pre_utils.h" #include "pre_utils.h"
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <LtsPluginManager/lts_plugin_manager.h> #include <LtsPluginManager/lts_plugin_manager.h>
#include <LtsSession/lts_session.h> #include <LtsSession/lts_session.h>
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h> #include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
@@ -4,12 +4,12 @@
#include "srm_data_plugin.h" #include "srm_data_plugin.h"
#include <utility> #include <utility>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <SituationReplayManagement/srm_ftc.h> #include <SituationReplayManagement/srm_ftc.h>
#include <LtsSession/lts_session_data_dds.h> #include <LtsSession/lts_session_data_dds.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/QosProfile/DDS_DefaultQos.h> #include <DDS/QosProfile/DDS_DefaultQos.h>
#include <DDS/Core/core_dts_types.h> #include <Core/core_dts_types.h>
#include <DDS/DTS/generic_dts_impl.h> #include <DDS/DTS/generic_dts_impl.h>
#include <SituationReplayManagement/logger.h> #include <SituationReplayManagement/logger.h>
#include <LtsUtils/LtsUtilsCore/await.h> #include <LtsUtils/LtsUtilsCore/await.h>
@@ -6,7 +6,7 @@
#include <SituationReplayManagement/srm_ftc.h> #include <SituationReplayManagement/srm_ftc.h>
#include <SituationReplayManagement/srm_data_plugin_interface.h> #include <SituationReplayManagement/srm_data_plugin_interface.h>
#include <SituationReplayManagement/logger.h> #include <SituationReplayManagement/logger.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <LtsSession/lts_session.h> #include <LtsSession/lts_session.h>
#include <LtsWidgets/lts_dialog.h> #include <LtsWidgets/lts_dialog.h>
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h> #include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
@@ -4,7 +4,7 @@
#pragma once #pragma once
#include <SituationReplayManagement/srm_dtc.h> #include <SituationReplayManagement/srm_dtc.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <SituationReplayManagement/logger.h> #include <SituationReplayManagement/logger.h>
#include <LtsWidgets/lts_abstract_table_model.h> #include <LtsWidgets/lts_abstract_table_model.h>
@@ -5,7 +5,7 @@
#include <PluginInterfaces/data_plugin_interface.h> #include <PluginInterfaces/data_plugin_interface.h>
#include <SituationReplayManagement/srm_ftc.h> #include <SituationReplayManagement/srm_ftc.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
namespace Core namespace Core
{ {
@@ -7,6 +7,8 @@
# Created by Mike Wille, NLSE, 2018-02-15 # Created by Mike Wille, NLSE, 2018-02-15
# #
set(CMAKE_AUTOMOC ON)
# Make ${Qt6_Gui} optional # Make ${Qt6_Gui} optional
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui) if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
set(Qt6_Gui ${Qt6_Gui}) set(Qt6_Gui ${Qt6_Gui})
@@ -31,6 +33,10 @@ SET(RmeDarkStylePlugin_SRCS
NGL_ADD_BIG_RESOURCES(RmeDarkStylePlugin_SRCS resources/rme_dark_style.qrc) NGL_ADD_BIG_RESOURCES(RmeDarkStylePlugin_SRCS resources/rme_dark_style.qrc)
NGL_ADD_LIBRARY2(AAR SV WS RmeDarkStylePlugin SHARED ${RmeDarkStylePlugin_SRCS}) NGL_ADD_LIBRARY2(AAR SV WS RmeDarkStylePlugin SHARED ${RmeDarkStylePlugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(RmeDarkStylePlugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(RmeDarkStylePlugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
if(QT6_GUI_AVAILABLE) if(QT6_GUI_AVAILABLE)
NGL_TARGET_LINK_LIBRARIES(RmeDarkStylePlugin NGL_TARGET_LINK_LIBRARIES(RmeDarkStylePlugin
PRIVATE PRIVATE
@@ -10,11 +10,10 @@
class RmeDarkStyle : public QObject, public StylePlugin::Plugin class RmeDarkStyle : public QObject, public StylePlugin::Plugin
{ {
Q_OBJECT
Q_PLUGIN_METADATA(IID "style:3:rme.dark") Q_PLUGIN_METADATA(IID "style:3:rme.dark")
Q_INTERFACES(StylePlugin::Plugin) Q_INTERFACES(StylePlugin::Plugin)
Q_OBJECT
public: public:
RmeDarkStyle(); RmeDarkStyle();
virtual ~RmeDarkStyle(); virtual ~RmeDarkStyle();
@@ -7,6 +7,11 @@
# Created by Mike Wille, SLSE, 2016-10-14 # Created by Mike Wille, SLSE, 2016-10-14
# #
set(CMAKE_AUTOMOC ON)
# Add include path for PluginInterfaces before AUTOMOC runs
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Lts/Common)
# Make ${Qt6_Gui} optional # Make ${Qt6_Gui} optional
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui) if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
set(Qt6_Gui ${Qt6_Gui}) set(Qt6_Gui ${Qt6_Gui})
@@ -33,6 +38,10 @@ NGL_ADD_LIBRARY(AAR SV WS RmeLightStyleQrc STATIC ${RmeLightStylePlugin_QRC})
NGL_ADD_LIBRARY(AAR SV WS RmeLightStylePlugin MODULE ${RmeLightStylePlugin_SRCS}) NGL_ADD_LIBRARY(AAR SV WS RmeLightStylePlugin MODULE ${RmeLightStylePlugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(RmeLightStylePlugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(RmeLightStylePlugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
if(QT6_GUI_AVAILABLE) if(QT6_GUI_AVAILABLE)
NGL_TARGET_LINK_LIBRARIES(RmeLightStylePlugin NGL_TARGET_LINK_LIBRARIES(RmeLightStylePlugin
PRIVATE PRIVATE
@@ -10,11 +10,10 @@
class RmeLightStyle : public QObject, public StylePlugin::Plugin class RmeLightStyle : public QObject, public StylePlugin::Plugin
{ {
Q_OBJECT
Q_PLUGIN_METADATA(IID "style:3:rme.light") Q_PLUGIN_METADATA(IID "style:3:rme.light")
Q_INTERFACES(StylePlugin::Plugin) Q_INTERFACES(StylePlugin::Plugin)
Q_OBJECT
public: public:
RmeLightStyle(); RmeLightStyle();
virtual ~RmeLightStyle(); virtual ~RmeLightStyle();
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10 # Created by Mike Wille, SLSE, 2016-10-10
# #
set(CMAKE_AUTOMOC ON)
SET(ProjectAhtcPlugin_SRCS SET(ProjectAhtcPlugin_SRCS
main.h main.h
main.cpp main.cpp
@@ -13,9 +15,16 @@ SET(ProjectAhtcPlugin_SRCS
./resources/apps.json ./resources/apps.json
) )
# Add include path for PluginInterfaces for both compilation and AUTOMOC
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Lts/Common)
NGL_ADD_BIG_RESOURCES(ProjectAhtcPlugin_SRCS ahtc_resources.qrc) NGL_ADD_BIG_RESOURCES(ProjectAhtcPlugin_SRCS ahtc_resources.qrc)
NGL_ADD_LIBRARY(WS ProjectAhtcPlugin MODULE ${ProjectAhtcPlugin_SRCS}) NGL_ADD_LIBRARY(WS ProjectAhtcPlugin MODULE ${ProjectAhtcPlugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(ProjectAhtcPlugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(ProjectAhtcPlugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
NGL_TARGET_LINK_LIBRARIES(ProjectAhtcPlugin NGL_TARGET_LINK_LIBRARIES(ProjectAhtcPlugin
PUBLIC PUBLIC
Qt6::Core Qt6::Core
@@ -3,9 +3,11 @@
# $HeadURL$ # $HeadURL$
# $Author$ # $Author$
# #
# Created by Mike Wille, SLSE, 2016-11-25 # Created by Mike Wille, SLSE, 2016-10-10
# #
set(CMAKE_AUTOMOC ON)
SET(ProjectEtsPlugin_SRCS SET(ProjectEtsPlugin_SRCS
main.h main.h
main.cpp main.cpp
@@ -13,9 +15,16 @@ SET(ProjectEtsPlugin_SRCS
./resources/apps.json ./resources/apps.json
) )
# Add include path for PluginInterfaces for both compilation and AUTOMOC
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Lts/Common)
NGL_ADD_BIG_RESOURCES(ProjectEtsPlugin_SRCS ets_resources.qrc) NGL_ADD_BIG_RESOURCES(ProjectEtsPlugin_SRCS ets_resources.qrc)
NGL_ADD_LIBRARY(WS ProjectEtsPlugin MODULE ${ProjectEtsPlugin_SRCS}) NGL_ADD_LIBRARY(WS ProjectEtsPlugin MODULE ${ProjectEtsPlugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(ProjectEtsPlugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(ProjectEtsPlugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
NGL_TARGET_LINK_LIBRARIES(ProjectEtsPlugin NGL_TARGET_LINK_LIBRARIES(ProjectEtsPlugin
PUBLIC PUBLIC
Qt6::Core Qt6::Core
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10 # Created by Mike Wille, SLSE, 2016-10-10
# #
set(CMAKE_AUTOMOC ON)
SET(ProjectL400P2Plugin_SRCS SET(ProjectL400P2Plugin_SRCS
main.h main.h
main.cpp main.cpp
@@ -13,9 +15,16 @@ SET(ProjectL400P2Plugin_SRCS
./resources/apps.json ./resources/apps.json
) )
# Add include path for PluginInterfaces for both compilation and AUTOMOC
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Lts/Common)
NGL_ADD_BIG_RESOURCES(ProjectL400P2Plugin_SRCS l400p2_resources.qrc) NGL_ADD_BIG_RESOURCES(ProjectL400P2Plugin_SRCS l400p2_resources.qrc)
NGL_ADD_LIBRARY(WS ProjectL400P2Plugin MODULE ${ProjectL400P2Plugin_SRCS}) NGL_ADD_LIBRARY(WS ProjectL400P2Plugin MODULE ${ProjectL400P2Plugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(ProjectL400P2Plugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(ProjectL400P2Plugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
NGL_TARGET_LINK_LIBRARIES(ProjectL400P2Plugin NGL_TARGET_LINK_LIBRARIES(ProjectL400P2Plugin
PUBLIC PUBLIC
Qt6::Core Qt6::Core
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10 # Created by Mike Wille, SLSE, 2016-10-10
# #
set(CMAKE_AUTOMOC ON)
SET(ProjectQatarPlugin_SRCS SET(ProjectQatarPlugin_SRCS
main.h main.h
main.cpp main.cpp
@@ -13,9 +15,16 @@ SET(ProjectQatarPlugin_SRCS
./resources/apps.json ./resources/apps.json
) )
# Add include path for PluginInterfaces for both compilation and AUTOMOC
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Lts/Common)
NGL_ADD_BIG_RESOURCES(ProjectQatarPlugin_SRCS qatar_resources.qrc) NGL_ADD_BIG_RESOURCES(ProjectQatarPlugin_SRCS qatar_resources.qrc)
NGL_ADD_LIBRARY(WS ProjectQatarPlugin MODULE ${ProjectQatarPlugin_SRCS}) NGL_ADD_LIBRARY(WS ProjectQatarPlugin MODULE ${ProjectQatarPlugin_SRCS})
# Add include path for PluginInterfaces for both compilation and AUTOMOC
TARGET_INCLUDE_DIRECTORIES(ProjectQatarPlugin PRIVATE ${CMAKE_SOURCE_DIR}/Lts/Common)
set_target_properties(ProjectQatarPlugin PROPERTIES AUTOMOC_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Lts/Common")
NGL_TARGET_LINK_LIBRARIES(ProjectQatarPlugin NGL_TARGET_LINK_LIBRARIES(ProjectQatarPlugin
PUBLIC PUBLIC
Qt6::Core Qt6::Core
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace Buildings namespace Buildings
{ {
@@ -3,7 +3,7 @@
#include "main_handler.h" #include "main_handler.h"
#include "settings.h" #include "settings.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <AssetManagement/asm_dtc.h> #include <AssetManagement/asm_dtc.h>
#include <QtCore/QObject> #include <QtCore/QObject>
@@ -7,7 +7,7 @@
#include <AudioVideoManagement/avm_ftc.h> #include <AudioVideoManagement/avm_ftc.h>
#include <ExerciseManagement/exm_dtc.h> #include <ExerciseManagement/exm_dtc.h>
#include <InfrastructureManagement/ism_dtc.h> #include <InfrastructureManagement/ism_dtc.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace CombatNetRadio namespace CombatNetRadio
{ {
@@ -6,7 +6,7 @@
#include "active_exercises.h" #include "active_exercises.h"
#include "exercise_manager.h" #include "exercise_manager.h"
#include "WebSocketInterface/websocket_interface_handler.h" #include "WebSocketInterface/websocket_interface_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
using namespace CombatNetRadio; using namespace CombatNetRadio;
@@ -7,7 +7,7 @@
#include "cmo_fts.h" #include "cmo_fts.h"
#include <DDS/DTS/generic_dts_impl.h> #include <DDS/DTS/generic_dts_impl.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <InfrastructureManagement/ism_dtc.h> #include <InfrastructureManagement/ism_dtc.h>
@@ -4,7 +4,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dts_types.h> #include <Core/core_dts_types.h>
#include <ComponentMonitor/cmo_dts.h> #include <ComponentMonitor/cmo_dts.h>
#include <ComponentMonitor/cmo_fts.h> #include <ComponentMonitor/cmo_fts.h>
@@ -6,7 +6,7 @@
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <ngldb/db_service_handler.h> #include <ngldb/db_service_handler.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace ComponentMonitor namespace ComponentMonitor
{ {
@@ -4,6 +4,7 @@
#pragma once #pragma once
#include <QtNetwork/QTcpServer> #include <QtNetwork/QTcpServer>
#include <QSet>
class QTimer; class QTimer;
class PayloadSender : public QObject class PayloadSender : public QObject
@@ -2,7 +2,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace DifferentialGPS namespace DifferentialGPS
{ {
@@ -8,7 +8,7 @@
#include <QtCore/QMutexLocker> #include <QtCore/QMutexLocker>
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace DifferentialGPS namespace DifferentialGPS
{ {
@@ -14,7 +14,7 @@
#include <GuezNasat/gna_db.h> #include <GuezNasat/gna_db.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <QtCore/QTimer> #include <QtCore/QTimer>
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <DDS/DTS/generic_dts_impl.h> #include <DDS/DTS/generic_dts_impl.h>
namespace HighLevelArchitecture namespace HighLevelArchitecture
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dts_types.h> #include <Core/core_dts_types.h>
#include <ExerciseManagement/exm_dtc.h> #include <ExerciseManagement/exm_dtc.h>
#include <QtCore/QObject> #include <QtCore/QObject>
@@ -8,7 +8,7 @@
#include <Common/settings.h> #include <Common/settings.h>
#include <QtCore/QCoreApplication> #include <QtCore/QCoreApplication>
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace HighLevelArchitecture namespace HighLevelArchitecture
{ {
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <DDS/DTS/generic_dts_impl.h> #include <DDS/DTS/generic_dts_impl.h>
namespace HighLevelArchitecture namespace HighLevelArchitecture
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dts_types.h> #include <Core/core_dts_types.h>
#include <ExerciseManagement/exm_dtc.h> #include <ExerciseManagement/exm_dtc.h>
#include <QtCore/QObject> #include <QtCore/QObject>
@@ -10,7 +10,7 @@
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <Common/settings.h> #include <Common/settings.h>
#include <Common/logger.h> #include <Common/logger.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace HighLevelArchitecture namespace HighLevelArchitecture
{ {
@@ -10,7 +10,7 @@
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <Common/settings.h> #include <Common/settings.h>
#include <Common/logger.h> #include <Common/logger.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace HighLevelArchitecture namespace HighLevelArchitecture
{ {
@@ -85,7 +85,8 @@ IF(BUILD_RTI)
CODEGEN_DATABASE(SRCS_common ${xml_FILE}) CODEGEN_DATABASE(SRCS_common ${xml_FILE})
# Generate *.cpp/*.hpp from idl (only with BUILD_RTI) # Generate *.cpp/*.hpp from idl (only with BUILD_RTI)
RTIDDSGEN(SRCS_common tab_enums.idl) RTIDDSGEN(SRCS_common tab_enums.idl)
RTIDDSGEN(SRCS_common tab.idl) # tab.idl includes pdm.idl, so add explicit dependency on pdm.idl generation
RTIDDSGEN(SRCS_common tab.idl DEPENDS ${CMAKE_BINARY_DIR}/Lts/Services/ProjectDataManagement/pdm.idl)
# Generate tab_dt[s,c]_types.h, tab_ft[s,c]_types.h # Generate tab_dt[s,c]_types.h, tab_ft[s,c]_types.h
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
# generate tab_[d|f]tc.h # generate tab_[d|f]tc.h
@@ -30,6 +30,7 @@ NGL_TARGET_INCLUDE_DIRECTORIES(saaTelegrams
PUBLIC PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../
${CMAKE_BINARY_DIR}/Lts/Services
) )
NGL_TARGET_LINK_LIBRARIES(saaTelegrams NGL_TARGET_LINK_LIBRARIES(saaTelegrams
# svcPdmClient # Externe Dependency - nicht verfügbar # svcPdmClient # Externe Dependency - nicht verfügbar
@@ -37,6 +38,11 @@ NGL_TARGET_LINK_LIBRARIES(saaTelegrams
${Qt6_WebSockets} ${Qt6_WebSockets}
) )
# Ensure PDM IDL files are generated before building saaTelegrams
if(TARGET svcPdmCommon)
add_dependencies(saaTelegrams svcPdmCommon)
endif()
SET(SRCS SET(SRCS
logger.cpp logger.cpp
logger.h logger.h
@@ -3,7 +3,7 @@
#include "aes_handler.h" #include "aes_handler.h"
#include <utility> #include <utility>
#include "DDS/Core/core_types.h" #include "Core/core_types.h"
#include "aes.hpp" #include "aes.hpp"
#include "json_dispatcher.h" #include "json_dispatcher.h"
#include <QtCore/QJsonArray> #include <QtCore/QJsonArray>
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include "DDS/Core/core_types.h" #include "Core/core_types.h"
#include "logger.h" #include "logger.h"
#include "main_dispatcher.h" #include "main_dispatcher.h"
#include "telegrams.h" #include "telegrams.h"
@@ -6,7 +6,7 @@
#include "json_dispatcher.h" #include "json_dispatcher.h"
#include <nglsettings/nglsettings_settings.h> #include <nglsettings/nglsettings_settings.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <QtCore/QTimer> #include <QtCore/QTimer>
namespace AdlerJson namespace AdlerJson
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace ApHlaJson namespace ApHlaJson
{ {
@@ -7,7 +7,7 @@
#include <DDS/DDSConnector/publisher.h> #include <DDS/DDSConnector/publisher.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <DDS/DTC/generic_dtc_impl.h> #include <DDS/DTC/generic_dtc_impl.h>
#include <DDS/DTS/generic_dts_impl.h> #include <DDS/DTS/generic_dts_impl.h>
@@ -5,7 +5,7 @@
#if BUILD_RTI #if BUILD_RTI
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dtc_types.h> #include <Core/core_dtc_types.h>
#include <TrainingAreaBase/tab_dts_types.h> #include <TrainingAreaBase/tab_dts_types.h>
#include <TrainingAreaBase/tab_dts.h> #include <TrainingAreaBase/tab_dts.h>
@@ -9,7 +9,7 @@
#include "WebSocketInterface/json_keys.h" #include "WebSocketInterface/json_keys.h"
#include <AssetManagement/asm_dtc.h> #include <AssetManagement/asm_dtc.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <ExerciseManagement/exm_dtc.h> #include <ExerciseManagement/exm_dtc.h>
#include <LtsPluginManager/lts_plugin_loader.h> #include <LtsPluginManager/lts_plugin_loader.h>
#include <TrainingAreaBase/tab_record_replay_plugin.h> #include <TrainingAreaBase/tab_record_replay_plugin.h>
@@ -45,6 +45,7 @@ public:
class Plugin class Plugin
{ {
Q_GADGET
public: public:
Plugin() = default; Plugin() = default;
virtual ~Plugin() = default; virtual ~Plugin() = default;
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace TrainingAreaBaseOC namespace TrainingAreaBaseOC
{ {
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <TrainingAreaBaseOC/taboc_dts.h> #include <TrainingAreaBaseOC/taboc_dts.h>
#include <TrainingAreaBaseOC/taboc_fts.h> #include <TrainingAreaBaseOC/taboc_fts.h>
@@ -4,7 +4,7 @@
#include "main_handler.h" #include "main_handler.h"
#include "settings.h" #include "settings.h"
#include "logger.h" #include "logger.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace TrainingAreaBaseOC namespace TrainingAreaBaseOC
{ {
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace WarehouseManagement namespace WarehouseManagement
{ {
@@ -3,7 +3,7 @@
#include "dds_handler_exercise.h" #include "dds_handler_exercise.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <dds/domain/DomainParticipant.hpp> #include <dds/domain/DomainParticipant.hpp>
namespace WarehouseManagement namespace WarehouseManagement
@@ -1,7 +1,7 @@
#include "main_handler.h" #include "main_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace WarehouseManagement namespace WarehouseManagement
{ {
@@ -3,7 +3,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace WirelessLocationSystem namespace WirelessLocationSystem
{ {
@@ -3,7 +3,7 @@
#include "main_handler.h" #include "main_handler.h"
#include "settings.h" #include "settings.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace WirelessLocationSystem namespace WirelessLocationSystem
{ {
@@ -18,25 +18,43 @@ SET(SRCS_common
) )
# Generate alm_enums.idl / alm.idl # Generate alm_enums.idl / alm.idl
IF(BUILD_RTI) IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
ELSEIF(BUILD_RTI AND NOT BUILD_GRANTLEE)
# BUILD_GRANTLEE disabled: check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_enums.idl")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated IDL files for alm")
LIST(APPEND SRCS_common alm.idl alm_enums.idl)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated IDL files found for alm. Skipping service.")
ENDIF()
ENDIF() ENDIF()
# Generate alm_db_impl.cpp/.h, alm_db.h # Generate alm_db_impl.cpp/.h, alm_db.h
IF(BUILD_RTI) IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_DATABASE(SRCS_common ${xml_FILE}) CODEGEN_DATABASE(SRCS_common ${xml_FILE})
ENDIF() ENDIF()
# Generate *.cpp/*.hpp from idl # Generate *.cpp/*.hpp from idl
IF(BUILD_RTI AND (BUILD_GRANTLEE OR (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_enums.idl")))
RTIDDSGEN(SRCS_common alm_enums.idl) RTIDDSGEN(SRCS_common alm_enums.idl)
RTIDDSGEN(SRCS_common alm.idl) RTIDDSGEN(SRCS_common alm.idl)
ENDIF()
# Generate alm_dt[s,c]_types.h, alm_ft[s,c]_types.h # Generate alm_dt[s,c]_types.h, alm_ft[s,c]_types.h
IF(BUILD_RTI) IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
ENDIF() ENDIF()
# Generate alm_[d|f]tc.h # Generate alm_[d|f]tc.h
IF(BUILD_RTI) IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
ELSEIF(BUILD_RTI AND NOT BUILD_GRANTLEE)
# Check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_dtc.h" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_ftc.h")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated DTC/FTC files for alm")
LIST(APPEND SRCS_common alm_dtc.h alm_ftc.h)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated DTC/FTC files found for alm")
ENDIF()
ENDIF() ENDIF()
NGL_ADD_LIBRARY(AAR SV WS svcAlmCommon SHARED ${SRCS_common}) NGL_ADD_LIBRARY(AAR SV WS svcAlmCommon SHARED ${SRCS_common})
@@ -64,8 +82,16 @@ SET(SRCS_client
alm_export.h alm_export.h
) )
# generate alm_[d|f]tc.h, tlm_[d|f]tc_impl.[cpp|h] # generate alm_[d|f]tc.h, tlm_[d|f]tc_impl.[cpp|h]
IF(BUILD_RTI) IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE}) CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
ELSEIF(BUILD_RTI AND NOT BUILD_GRANTLEE)
# Check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_dtc.h" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/alm_ftc.h")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated DTC/FTC files for alm client")
LIST(APPEND SRCS_client alm_dtc.h alm_ftc.h)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated DTC/FTC files found for alm client")
ENDIF()
ENDIF() ENDIF()
NGL_ADD_LIBRARY(AAR SV WS svcAlmClient SHARED ${SRCS_client}) NGL_ADD_LIBRARY(AAR SV WS svcAlmClient SHARED ${SRCS_client})
@@ -8,8 +8,8 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <DDS/Core/topic_lock_master.h> #include <Core/topic_lock_master.h>
#include <AlarmManagement/alm_dts.h> #include <AlarmManagement/alm_dts.h>
#include <AlarmManagement/alm_dtc.h> #include <AlarmManagement/alm_dtc.h>
#include <AlarmManagement/alm_fts.h> #include <AlarmManagement/alm_fts.h>
@@ -4,7 +4,7 @@
#include <dds_handler.h> #include <dds_handler.h>
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
//Generated //Generated
#include <AlarmManagement/alm_db.h> #include <AlarmManagement/alm_db.h>
@@ -13,7 +13,7 @@
// AES // AES
#include <AreaEffectSimulation/Utils/polygons.h> #include <AreaEffectSimulation/Utils/polygons.h>
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
#include <Core/core.hpp> #include <Core/core.hpp>
@@ -9,8 +9,8 @@
#include "aes_dts.h" #include "aes_dts.h"
#include "aes_fts.h" #include "aes_fts.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <TrainingAreaBase/tab_dtc.h> #include <TrainingAreaBase/tab_dtc.h>
#include <QtCore/QCoreApplication> #include <QtCore/QCoreApplication>
#include <QtCore/QThread> #include <QtCore/QThread>
@@ -9,8 +9,8 @@
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <AreaEffectSimulation/aes_dts.h> #include <AreaEffectSimulation/aes_dts.h>
#include <AreaEffectSimulation/aes_fts.h> #include <AreaEffectSimulation/aes_fts.h>
#include <DDS/Core/core_dtc.h> #include <Core/core_dtc.h>
#include <DDS/Core/topic_lock_master.h> #include <Core/topic_lock_master.h>
#include <ProjectDataManagement/pdm_dtc.h> #include <ProjectDataManagement/pdm_dtc.h>
#include <ParticipantManagement/ppm_dtc.h> #include <ParticipantManagement/ppm_dtc.h>
#include <TrainingAreaBase/tab_ftc.h> #include <TrainingAreaBase/tab_ftc.h>
@@ -37,7 +37,7 @@
#include <Trajectory/trajectory_generator.h> #include <Trajectory/trajectory_generator.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <ngldb/db_service_handler.h> #include <ngldb/db_service_handler.h>
#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) #if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
@@ -11,7 +11,7 @@
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/QTimer> #include <QtCore/QTimer>
#include <DDS/Core/core.hpp> #include <Core/core.hpp>
#include <LtsCoordTrans/lts_coord_trans.h> #include <LtsCoordTrans/lts_coord_trans.h>
#include "logger.h" #include "logger.h"
@@ -16,7 +16,7 @@
#include "special_area_provider.h" #include "special_area_provider.h"
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
#include <ProjectDataManagement/pdm_dtc.h> #include <ProjectDataManagement/pdm_dtc.h>
#include <Trajectory/trajectory_generator.h> #include <Trajectory/trajectory_generator.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject> #include <QtCore/QObject>
#include "object_base.h" #include "object_base.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
#include <AreaEffectSimulation/aes_db.h> #include <AreaEffectSimulation/aes_db.h>
@@ -11,7 +11,7 @@
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
#include <aes_db.h> #include <aes_db.h>
#include <aes_dtc.h> #include <aes_dtc.h>
#include <aes_ftc.h> #include <aes_ftc.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject> #include <QtCore/QObject>
#include "object_base.h" #include "object_base.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
#include <AreaEffectSimulation/aes_db.h> #include <AreaEffectSimulation/aes_db.h>
@@ -8,7 +8,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace AssetManagement namespace AssetManagement
{ {
@@ -8,7 +8,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/topic_lock_master.h> #include <Core/topic_lock_master.h>
#include <AssetManagement/asm_dts.h> #include <AssetManagement/asm_dts.h>
#include <AssetManagement/asm_fts.h> #include <AssetManagement/asm_fts.h>
@@ -15,7 +15,7 @@
#include "settings.h" #include "settings.h"
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
#include <ngldb/db_service_handler.h> #include <ngldb/db_service_handler.h>
namespace AssetManagement namespace AssetManagement
@@ -10,7 +10,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
// Generated // Generated
#include <AssetManagement/asm_db.h> #include <AssetManagement/asm_db.h>
@@ -8,7 +8,7 @@
#pragma once #pragma once
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
// Generated // Generated
#include <AssetManagement/asm_db.h> #include <AssetManagement/asm_db.h>
@@ -10,7 +10,7 @@
#include "dds_handler.h" #include "dds_handler.h"
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
// Generated // Generated
#include <AssetManagement/asm_db.h> #include <AssetManagement/asm_db.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject> #include <QtCore/QObject>
#include "dds_handler.h" #include "dds_handler.h"
#include "logger.h" #include "logger.h"
#include <DDS/Core/function_reply_object.h> #include <Core/function_reply_object.h>
// Generated // Generated
#include <AssetManagement/asm_db.h> #include <AssetManagement/asm_db.h>
@@ -9,7 +9,6 @@
#include <QtNetwork/QHostAddress> #include <QtNetwork/QHostAddress>
#include <QtCore/QStringList> #include <QtCore/QStringList>
#include <QtCore/QRegExp>
#include <QtCore/QString> #include <QtCore/QString>
#include "ava_test_server.h" #include "ava_test_server.h"
@@ -325,7 +324,7 @@ AvaTestServer::AvaTestServer()
AvaTestServer::~AvaTestServer() AvaTestServer::~AvaTestServer()
{ {
for (QTcpSocket *conn : qAsConst(m_Conns)) for (QTcpSocket *conn : std::as_const(m_Conns))
{ {
// disconnect before we delete as otherwise closedConnection() would be called wich would // disconnect before we delete as otherwise closedConnection() would be called wich would
// also delete the socket. // also delete the socket.
@@ -366,14 +365,13 @@ void AvaTestServer::closedConnection()
qDebug() << "connection closed"; qDebug() << "connection closed";
m_PosUpdate->stop(); m_PosUpdate->stop();
QMutableVectorIterator<QTcpSocket *> l_It(m_Conns); for (int i = 0; i < m_Conns.size(); ++i)
while (l_It.hasNext())
{ {
QTcpSocket *l_Conn = l_It.next(); QTcpSocket *l_Conn = m_Conns[i];
if (l_Conn->state() == QAbstractSocket::UnconnectedState) if (l_Conn->state() == QAbstractSocket::UnconnectedState)
{ {
l_Conn->disconnect(this); l_Conn->disconnect(this);
l_It.remove(); m_Conns.removeAt(i);
l_Conn->deleteLater(); // use deleteLater() as we want to delete the object which was emitting the signal l_Conn->deleteLater(); // use deleteLater() as we want to delete the object which was emitting the signal
return; return;
} }
@@ -404,18 +402,15 @@ void AvaTestServer::sendScriptPosUpdate()
if (m_RelScriptPos >= m_SelStreamFromScript.getDuration()) if (m_RelScriptPos >= m_SelStreamFromScript.getDuration())
{ {
QVectorIterator<ScrEdAVStream> l_Iterator(m_Script.getStreamSequences());
float l_Duration = 0; float l_Duration = 0;
while (l_Iterator.hasNext()) for (const ScrEdAVStream &l_Stream : m_Script.getStreamSequences())
{ {
ScrEdAVStream l_Stream = l_Iterator.next();
l_Duration += l_Stream.getDuration(); l_Duration += l_Stream.getDuration();
qDebug() << "l_Duration " << l_Duration << " abs_scriptpos " << m_AbsScriptPos << " stream " << l_Stream.getName(); qDebug() << "l_Duration " << l_Duration << " abs_scriptpos " << m_AbsScriptPos << " stream " << l_Stream.getName();
if (l_Duration > m_AbsScriptPos) if (l_Duration > m_AbsScriptPos)
{ {
qDebug() << "set stream " << l_Stream.getName(); qDebug() << "set stream " << l_Stream.getName();
m_SelStreamFromScript = l_Stream; m_SelStreamFromScript = l_Stream;
l_Iterator.toBack();
m_RelScriptPos = 0; m_RelScriptPos = 0;
} }
} }
@@ -434,11 +429,8 @@ void AvaTestServer::sendScriptPosUpdate()
void AvaTestServer::readAndAnswer() void AvaTestServer::readAndAnswer()
{ {
QVectorIterator<QTcpSocket *> l_It(m_Conns); for (QTcpSocket *l_Conn : std::as_const(m_Conns))
while (l_It.hasNext())
{ {
QTcpSocket *l_Conn = l_It.next();
if (l_Conn->state() != QAbstractSocket::ConnectedState) if (l_Conn->state() != QAbstractSocket::ConnectedState)
continue; continue;
@@ -1102,20 +1094,15 @@ void AvaTestServer::processLine(const QByteArray &line)
qDebug() << l_Parts[4].trimmed(); qDebug() << l_Parts[4].trimmed();
//check if absolute pos is in current played stream of script, and set corresponding stream as selected Stream //check if absolute pos is in current played stream of script, and set corresponding stream as selected Stream
QVectorIterator<ScrEdAVStream> l_Iterator(m_Script.getStreamSequences());
float l_Duration = 0; float l_Duration = 0;
while (l_Iterator.hasNext()) for (const ScrEdAVStream &l_Stream : m_Script.getStreamSequences())
{ {
ScrEdAVStream l_Stream = l_Iterator.next();
float l_OldDuration = l_Duration; float l_OldDuration = l_Duration;
l_Duration += l_Stream.getDuration(); l_Duration += l_Stream.getDuration();
//qDebug() << "l_Duration " << l_Duration.toString("hh:mm:ss") << " abspos " << m_AbsScriptPos.toString("hh:mm:ss") << " l_Stream = " << l_Stream.getName(); //qDebug() << "l_Duration " << l_Duration.toString("hh:mm:ss") << " abspos " << m_AbsScriptPos.toString("hh:mm:ss") << " l_Stream = " << l_Stream.getName();
if (l_Duration > m_AbsScriptPos) if (l_Duration > m_AbsScriptPos)
{ {
m_SelStreamFromScript = l_Stream; m_SelStreamFromScript = l_Stream;
l_Iterator.toBack();
m_RelScriptPos = m_AbsScriptPos - l_OldDuration; m_RelScriptPos = m_AbsScriptPos - l_OldDuration;
qDebug() << "set stream 2" << l_Stream.getName() << " pos is " << m_RelScriptPos; qDebug() << "set stream 2" << l_Stream.getName() << " pos is " << m_RelScriptPos;
//m_RelScriptPos = QDateTime::fromTime_t(0); //m_RelScriptPos = QDateTime::fromTime_t(0);
@@ -1328,11 +1315,8 @@ void AvaTestServer::sendData(const QString &data_)
qDebug() << "Outgoing RCP_AVA: " << data_; qDebug() << "Outgoing RCP_AVA: " << data_;
QString data = data_; QString data = data_;
data.append(EOL); data.append(EOL);
QVectorIterator<QTcpSocket *> l_It(m_Conns); for (QTcpSocket *l_Conn : std::as_const(m_Conns))
while (l_It.hasNext())
{ {
QTcpSocket *l_Conn = l_It.next();
if (l_Conn->state() == QAbstractSocket::ConnectedState) if (l_Conn->state() == QAbstractSocket::ConnectedState)
{ {
//qDebug() << "sent to conn " << l_Conn; //qDebug() << "sent to conn " << l_Conn;
@@ -18,7 +18,7 @@
#include <InfrastructureManagement/ism_dtc.h> #include <InfrastructureManagement/ism_dtc.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h> #include <Core/pacemaker.h>
namespace AudioVideoManagement namespace AudioVideoManagement
@@ -9,11 +9,11 @@
#include "logger.h" #include "logger.h"
#include <dds/domain/DomainParticipant.hpp> #include <dds/domain/DomainParticipant.hpp>
#include <DDS/Core/topic_lock_master.h> #include <Core/topic_lock_master.h>
#include <QtCore/QStringList> #include <QtCore/QStringList>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dts_types.h> #include <Core/core_dts_types.h>
#include <AudioVideoManagement/avm_dts.h> #include <AudioVideoManagement/avm_dts.h>
#include <AudioVideoManagement/avm_fts.h> #include <AudioVideoManagement/avm_fts.h>
Loaded 100 of 256 files, more files were not shown because too many files have changed in this diff. Show more