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 directory for generated export headers
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(${CMAKE_SOURCE_DIR}/Z/src)
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_VISIBILITY_INLINES_HIDDEN ON)
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)
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)")
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)
if(NOT TARGET Qt6::WebEngineCore)
add_library(Qt6::WebEngineCore INTERFACE IMPORTED)
@@ -420,8 +437,15 @@ IF(BUILD_RTI)
IF(DEFINED ENV{DDS_PATH})
SET(RTI_INSTALL_DIR "$ENV{DDS_PATH}" CACHE PATH "RTI Connext DDS installation directory")
ELSE()
# CMAKE_SOURCE_DIR is qt6-migrated-legatus, RTI is at ../../../external/
SET(RTI_INSTALL_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0" CACHE PATH "RTI Connext DDS installation directory")
# In Docker container: /workspace/external/rti_connext_dds-7.7.0
# 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()
# Also set RTI_DIR for FindRTI.cmake compatibility (used by subdirectories)
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:
# 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++
BuildName: Linux-c++
@@ -16,7 +16,7 @@ else()
endif()
# 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)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
# 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
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_BINARY_DIR}/Z/src/NGLLogger
)
# 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(">(");
mi.cpp.fromVariantPost = QStringLiteral(".toInt())");
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.toJsonPost = QStringLiteral("))");
if (!mi.enumeration->values.isEmpty())
@@ -186,6 +186,8 @@ class DtcGenerator(object):
def generate( self, outfile, parser ):
outputHeader( outfile, parser, 'DTC' )
outfile.write('\n')
outfile.write('#include <DDS/Generic/generic_data_reader.h>\n')
outfile.write('\n')
outfile.write('/**\n')
outfile.write(' * Type definitions \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'))
elif option_str == "ALL":
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, DtcGenerator(), fn % 'dtc')
generate(parser, FtsGenerator(), fn % 'fts')
generate(parser, FtcGenerator(), fn % 'ftc')
generate(parser, OperatorRights(), parser.service_abbr + '_operator_rights.h')
generate(parser, OperatorRightsCpp(), parser.service_abbr + '_operator_rights.cpp')
generate(parser, OperatorRights(), out_dir + '/' + parser.service_abbr + '_operator_rights.h')
generate(parser, OperatorRightsCpp(), out_dir + '/' + parser.service_abbr + '_operator_rights.cpp')
else:
usage("invalid option '%s'" % option_str)
sys.exit(0)
@@ -30,6 +30,23 @@ QString fixupEmptyJsonString(const QString &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
QJsonValue toJson(const QPointF &element)
@@ -9,7 +9,9 @@ option(BUILD_GTEST_SMOKE "Build GTest smoke tests" OFF)
add_subdirectory(mocks)
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)
target_link_libraries(coordTransTests_smoke PRIVATE Qt6::Test MockCoordTrans::MockCoordTrans)
add_test(NAME coordTransTests_smoke COMMAND coordTransTests_smoke)
@@ -13,24 +13,8 @@ else()
set(Qt6_Gui "")
endif()
OPTION(BUILD_RTI "Build with RTI Connext DDS support" ON)
# 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()
# BUILD_RTI is set by parent CMakeLists.txt - do not override here
# RTI paths are also set by parent and imported targets are available
# LtsSessionDataDds (always built, with stub implementation for non-RTI builds)
SET(LtsSessionDataDds_SRCS
@@ -58,7 +42,11 @@ IF(BUILD_RTI)
PUBLIC
${RTI_INCLUDE_DIR}
${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
PRIVATE
${RTI_LIB_DIR}
@@ -74,7 +74,7 @@ class DdsConnectionContainer
for (int i = ddsConnections.size() - 1; i >= 0; --i)
{
const DdsConnection& conn = ddsConnections.at(i);
if (conn.partitionType != IDL::PartitionType::Global)
if (toIdlPartitionType(conn.partitionType) != IDL::PartitionType::Global)
continue;
auto ret = conn.ddsConnector.lock();
if (ret != nullptr)
@@ -22,10 +22,12 @@
#ifdef BUILD_RTI
#include <dds/domain/DomainParticipant.hpp>
#include "INGLLogger.h"
#include "DDS/Core/core_dtc_types.h"
#include <NGLLogger/INGLLogger.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 DTC { template<typename T> class GenericDTCImpl; }
namespace DataPluginBase { class Interface; }
namespace GuiPluginBase { class Interface; }
#else
@@ -165,8 +167,8 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
return true;
}
val.reset();
if (m_logger.isDebug())
m_logger.debug() << "Cannot find foreign gui ifc " << typeid(S).name() << " in " << toString();
if (m_logger.isDebugEnabled())
DEBUG_LOG(m_logger) << "Cannot find foreign gui ifc " << typeid(S).name() << " in " << toString();
#else
val.reset();
#endif
@@ -182,6 +184,7 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
bool initInternal();
void onPartitionTimeChangedInternal();
static LtsSession::PartitionType toPartitionType(IDL::PartitionType idlType);
static IDL::PartitionType toIdlPartitionType(LtsSession::PartitionType type);
// Member variables - only with RTI
int m_exerciseId;
@@ -191,7 +194,7 @@ class LTSSESSIONDATADDS_EXPORT LtsSessionDataDds : public QObject
Fetcher* m_fetcher;
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
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;
QMap<QString, std::shared_ptr<DataPluginBase::Interface>> m_dataPluginInterfaces;
QMap<QString, std::shared_ptr<GuiPluginBase::Interface>> m_guiPluginInterfaces;
@@ -4,55 +4,55 @@
# $Author$
#
set(CMAKE_AUTOMOC ON)
# DataPluginInterface
ADD_INTERFACE_LIBRARY(
DataPluginInterface
ADD_LIBRARY(DataPluginInterface SHARED
${CMAKE_CURRENT_SOURCE_DIR}/data_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core
${CMAKE_CURRENT_SOURCE_DIR}/data_plugin_interface.cpp
)
set_target_properties(DataPluginInterface PROPERTIES AUTOMOC ON)
TARGET_INCLUDE_DIRECTORIES(DataPluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(DataPluginInterface PUBLIC Qt6::Core)
# GuiPluginInterface
ADD_INTERFACE_LIBRARY(
GuiPluginInterface
ADD_LIBRARY(GuiPluginInterface SHARED
${CMAKE_CURRENT_SOURCE_DIR}/gui_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core LtsWidgets ProjectConfig LtsAppDescriptor LtsUtilsCore
${CMAKE_CURRENT_SOURCE_DIR}/gui_plugin_interface.cpp
)
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
ADD_INTERFACE_LIBRARY(
ProjectPluginInterface
ADD_LIBRARY(ProjectPluginInterface SHARED
${CMAKE_CURRENT_SOURCE_DIR}/project_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core
${CMAKE_CURRENT_SOURCE_DIR}/project_plugin_interface.cpp
)
set_target_properties(ProjectPluginInterface PROPERTIES AUTOMOC ON)
TARGET_INCLUDE_DIRECTORIES(ProjectPluginInterface PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
TARGET_LINK_LIBRARIES(ProjectPluginInterface PUBLIC Qt6::Core)
# stylePluginInterface
ADD_INTERFACE_LIBRARY(
StylePluginInterface
ADD_LIBRARY(StylePluginInterface SHARED
${CMAKE_CURRENT_SOURCE_DIR}/style_plugin_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core
${CMAKE_CURRENT_SOURCE_DIR}/style_plugin_interface.cpp
)
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
ADD_INTERFACE_LIBRARY(
RecordReplayPlugin
ADD_LIBRARY(RecordReplayPlugin SHARED
${CMAKE_CURRENT_SOURCE_DIR}/record_replay_plugin.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core
${CMAKE_CURRENT_SOURCE_DIR}/record_replay_plugin.cpp
)
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
ADD_INTERFACE_LIBRARY(
TopicReplayInterface
ADD_LIBRARY(TopicReplayInterface SHARED
${CMAKE_CURRENT_SOURCE_DIR}/topic_replay_interface.h
${CMAKE_CURRENT_SOURCE_DIR}/..
Qt6::Core
${CMAKE_CURRENT_SOURCE_DIR}/topic_replay_interface.cpp
)
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
{
public:
Interface() = default;
public:
virtual ~Interface() = default;
};
@@ -7,8 +7,8 @@
#include <LtsWidgets/lts_base.h>
#include <ProjectConfig/project_defines.h>
#include <QtCore/QFlags>
#include <QtCore/QObject>
#include <QtCore/QVector>
#include <QObject>
#include <memory>
namespace NGL
@@ -33,8 +33,9 @@ class Interface;
class Plugin
{
Q_GADGET
public:
Plugin() = default;
virtual ~Plugin() = default;
virtual QString pluginName() = 0;
@@ -2,14 +2,16 @@
#pragma once
#include <QtCore/QObject>
#include <QObject>
namespace ProjectPlugin
{
class Plugin
{
public:
Plugin() = default;
Q_GADGET
public:
virtual ~Plugin() = default;
};
@@ -3,8 +3,8 @@
#pragma once
#include <QtCore/QHash>
#include <QtCore/QObject>
#include <QtCore/QString>
#include <QObject>
#include <map>
#include <memory>
@@ -19,8 +19,9 @@ namespace RecordReplay
{
class RecordReplayPlugin
{
Q_GADGET
public:
RecordReplayPlugin() = default;
virtual ~RecordReplayPlugin() = default;
virtual QString pluginName() const = 0;
@@ -2,14 +2,15 @@
#pragma once
#include <QtCore/QObject>
#include <QObject>
namespace StylePlugin
{
class Plugin
{
Q_GADGET
public:
Plugin() = default;
virtual ~Plugin() = default;
virtual void loadStyle(bool highDpi) = 0;
@@ -46,6 +46,7 @@ NGL_TARGET_INCLUDE_DIRECTORIES(TopicEditorBase
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../ # auto-export file
${CMAKE_BINARY_DIR}/Z/src/NGLLogger # ngllogger_export.h
)
if(QT6_GUI_AVAILABLE)
@@ -219,7 +219,8 @@ QColor topicTypeColor(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;
}
@@ -274,7 +275,7 @@ QJsonObject TopicData::toJson() const
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
<< data.index << properties << data.description << data.channel << data.parentChannel << data.x << data.y
<< 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 >>
data.description >> data.channel >> data.parentChannel >> data.x >> data.y >> data.w >> data.h;
data.topicType = static_cast<TopicType>(topicType);
data.properties = QJsonDocument::fromBinaryData(properties).object();
data.properties = QJsonDocument::fromJson(properties).object();
return stream;
}
@@ -38,10 +38,24 @@ CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
# 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})
# 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
SET_SOURCE_FILES_PROPERTIES(${CORE_DTC_H_GENERATED} PROPERTIES SKIP_AUTOMOC ON)
@@ -12,14 +12,37 @@ SET(SRCS_common
ddsut_export.h
)
# Generates ddsut.idl / ddsut_enums.idl
IF(BUILD_GRANTLEE)
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
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.idl)
ENDIF()
# Generate ddsut_dt[s,c]_types.h, ddsut_ft[s,c]_types.h
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
# generate ddsut_[d|f]tc.h
IF(BUILD_GRANTLEE)
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})
IF(BUILD_RTI)
@@ -3,7 +3,7 @@
#pragma once
#include <DDS/Core/core.hpp>
#include <Core/core.hpp>
#include <future>
@@ -4,7 +4,7 @@
#include "generic_ftc.h"
#include "generic_ftc_threading.h"
#include <DDS/Core/core.hpp>
#include <Core/core.hpp>
#include <DDS/FTS/connext.h>
#include <DDS/Generic/generic_base.h>
#include <DDS/Generic/generic_logger.h>
@@ -4,6 +4,7 @@
#include <QtCore/QTimer>
#include <QtCore/QRegularExpression>
#include <QtCore/QRandomGenerator>
#include <chrono>
#include <future>
@@ -135,7 +136,7 @@ void Threading::preInit() const
}
name += words.takeFirst().leftRef(maxWordLen);
name += words.takeFirst().left(maxWordLen);
wordsLeft--;
}
@@ -153,7 +154,7 @@ void Threading::preInit() const
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 "generic_fts_internal.h"
#include <DDS/Core/core.hpp>
#include <Core/core.hpp>
#include <DDS/Generic/generic_base.h>
#include <DDS/Generic/generic_logger.h>
#include <DDS/Generic/wait_set_handler.h>
@@ -6,7 +6,7 @@
#include "logger.h"
#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/sub/qos/DataReaderQos.hpp>
#include <dds/pub/qos/DataWriterQos.hpp>
@@ -9,7 +9,7 @@
#include <Lts/Services/FileManagement/flm_ftc.h>
#include <FileManagement/flm_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 <LtsSession/lts_session.h>
#include <PluginInterfaces/gui_plugin_interface.h>
@@ -8,7 +8,7 @@
#include "pre_storyboard.h"
#include "filter_topic.h"
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
#include <PluginInterfaces/topic_replay_interface.h>
#include <LtsPluginManager/lts_plugin_manager.h>
#include <LtsWidgets/lts_dialog.h>
@@ -7,7 +7,7 @@
#include "pre_journal_types.h"
#include "pre_utils.h"
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
#include <LtsPluginManager/lts_plugin_manager.h>
#include <LtsSession/lts_session.h>
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
@@ -4,12 +4,12 @@
#include "srm_data_plugin.h"
#include <utility>
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
#include <SituationReplayManagement/srm_ftc.h>
#include <LtsSession/lts_session_data_dds.h>
#include <DDS/DDSConnector/dds_connector.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 <SituationReplayManagement/logger.h>
#include <LtsUtils/LtsUtilsCore/await.h>
@@ -6,7 +6,7 @@
#include <SituationReplayManagement/srm_ftc.h>
#include <SituationReplayManagement/srm_data_plugin_interface.h>
#include <SituationReplayManagement/logger.h>
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
#include <LtsSession/lts_session.h>
#include <LtsWidgets/lts_dialog.h>
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
@@ -4,7 +4,7 @@
#pragma once
#include <SituationReplayManagement/srm_dtc.h>
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
#include <SituationReplayManagement/logger.h>
#include <LtsWidgets/lts_abstract_table_model.h>
@@ -5,7 +5,7 @@
#include <PluginInterfaces/data_plugin_interface.h>
#include <SituationReplayManagement/srm_ftc.h>
#include <DDS/Core/core_dtc.h>
#include <Core/core_dtc.h>
namespace Core
{
@@ -7,6 +7,8 @@
# Created by Mike Wille, NLSE, 2018-02-15
#
set(CMAKE_AUTOMOC ON)
# Make ${Qt6_Gui} optional
if(QT6_GUI_AVAILABLE AND TARGET 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_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)
NGL_TARGET_LINK_LIBRARIES(RmeDarkStylePlugin
PRIVATE
@@ -10,11 +10,10 @@
class RmeDarkStyle : public QObject, public StylePlugin::Plugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "style:3:rme.dark")
Q_INTERFACES(StylePlugin::Plugin)
Q_OBJECT
public:
RmeDarkStyle();
virtual ~RmeDarkStyle();
@@ -7,6 +7,11 @@
# 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
if(QT6_GUI_AVAILABLE AND TARGET 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})
# 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)
NGL_TARGET_LINK_LIBRARIES(RmeLightStylePlugin
PRIVATE
@@ -10,11 +10,10 @@
class RmeLightStyle : public QObject, public StylePlugin::Plugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "style:3:rme.light")
Q_INTERFACES(StylePlugin::Plugin)
Q_OBJECT
public:
RmeLightStyle();
virtual ~RmeLightStyle();
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10
#
set(CMAKE_AUTOMOC ON)
SET(ProjectAhtcPlugin_SRCS
main.h
main.cpp
@@ -13,9 +15,16 @@ SET(ProjectAhtcPlugin_SRCS
./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_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
PUBLIC
Qt6::Core
@@ -3,9 +3,11 @@
# $HeadURL$
# $Author$
#
# Created by Mike Wille, SLSE, 2016-11-25
# Created by Mike Wille, SLSE, 2016-10-10
#
set(CMAKE_AUTOMOC ON)
SET(ProjectEtsPlugin_SRCS
main.h
main.cpp
@@ -13,9 +15,16 @@ SET(ProjectEtsPlugin_SRCS
./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_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
PUBLIC
Qt6::Core
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10
#
set(CMAKE_AUTOMOC ON)
SET(ProjectL400P2Plugin_SRCS
main.h
main.cpp
@@ -13,9 +15,16 @@ SET(ProjectL400P2Plugin_SRCS
./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_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
PUBLIC
Qt6::Core
@@ -6,6 +6,8 @@
# Created by Mike Wille, SLSE, 2016-10-10
#
set(CMAKE_AUTOMOC ON)
SET(ProjectQatarPlugin_SRCS
main.h
main.cpp
@@ -13,9 +15,16 @@ SET(ProjectQatarPlugin_SRCS
./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_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
PUBLIC
Qt6::Core
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace Buildings
{
@@ -3,7 +3,7 @@
#include "main_handler.h"
#include "settings.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <AssetManagement/asm_dtc.h>
#include <QtCore/QObject>
@@ -7,7 +7,7 @@
#include <AudioVideoManagement/avm_ftc.h>
#include <ExerciseManagement/exm_dtc.h>
#include <InfrastructureManagement/ism_dtc.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace CombatNetRadio
{
@@ -6,7 +6,7 @@
#include "active_exercises.h"
#include "exercise_manager.h"
#include "WebSocketInterface/websocket_interface_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
using namespace CombatNetRadio;
@@ -7,7 +7,7 @@
#include "cmo_fts.h"
#include <DDS/DTS/generic_dts_impl.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <InfrastructureManagement/ism_dtc.h>
@@ -4,7 +4,7 @@
#pragma once
#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_fts.h>
@@ -6,7 +6,7 @@
#include <DDS/DDSConnector/dds_connector.h>
#include <ngldb/db_service_handler.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace ComponentMonitor
{
@@ -4,6 +4,7 @@
#pragma once
#include <QtNetwork/QTcpServer>
#include <QSet>
class QTimer;
class PayloadSender : public QObject
@@ -2,7 +2,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace DifferentialGPS
{
@@ -8,7 +8,7 @@
#include <QtCore/QMutexLocker>
#include <QtCore/QTimer>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace DifferentialGPS
{
@@ -14,7 +14,7 @@
#include <GuezNasat/gna_db.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <QtCore/QTimer>
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <DDS/DTS/generic_dts_impl.h>
namespace HighLevelArchitecture
@@ -3,7 +3,7 @@
#pragma once
#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 <QtCore/QObject>
@@ -8,7 +8,7 @@
#include <Common/settings.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QTimer>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace HighLevelArchitecture
{
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <DDS/DTS/generic_dts_impl.h>
namespace HighLevelArchitecture
@@ -3,7 +3,7 @@
#pragma once
#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 <QtCore/QObject>
@@ -10,7 +10,7 @@
#include <QtCore/QTimer>
#include <Common/settings.h>
#include <Common/logger.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace HighLevelArchitecture
{
@@ -10,7 +10,7 @@
#include <QtCore/QTimer>
#include <Common/settings.h>
#include <Common/logger.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace HighLevelArchitecture
{
@@ -85,7 +85,8 @@ IF(BUILD_RTI)
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
# Generate *.cpp/*.hpp from idl (only with BUILD_RTI)
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
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
# generate tab_[d|f]tc.h
@@ -30,6 +30,7 @@ NGL_TARGET_INCLUDE_DIRECTORIES(saaTelegrams
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../
${CMAKE_BINARY_DIR}/Lts/Services
)
NGL_TARGET_LINK_LIBRARIES(saaTelegrams
# svcPdmClient # Externe Dependency - nicht verfügbar
@@ -37,6 +38,11 @@ NGL_TARGET_LINK_LIBRARIES(saaTelegrams
${Qt6_WebSockets}
)
# Ensure PDM IDL files are generated before building saaTelegrams
if(TARGET svcPdmCommon)
add_dependencies(saaTelegrams svcPdmCommon)
endif()
SET(SRCS
logger.cpp
logger.h
@@ -3,7 +3,7 @@
#include "aes_handler.h"
#include <utility>
#include "DDS/Core/core_types.h"
#include "Core/core_types.h"
#include "aes.hpp"
#include "json_dispatcher.h"
#include <QtCore/QJsonArray>
@@ -3,7 +3,7 @@
#pragma once
#include "DDS/Core/core_types.h"
#include "Core/core_types.h"
#include "logger.h"
#include "main_dispatcher.h"
#include "telegrams.h"
@@ -6,7 +6,7 @@
#include "json_dispatcher.h"
#include <nglsettings/nglsettings_settings.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <QtCore/QTimer>
namespace AdlerJson
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace ApHlaJson
{
@@ -7,7 +7,7 @@
#include <DDS/DDSConnector/publisher.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/DTS/generic_dts_impl.h>
@@ -5,7 +5,7 @@
#if BUILD_RTI
#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.h>
@@ -9,7 +9,7 @@
#include "WebSocketInterface/json_keys.h"
#include <AssetManagement/asm_dtc.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <ExerciseManagement/exm_dtc.h>
#include <LtsPluginManager/lts_plugin_loader.h>
#include <TrainingAreaBase/tab_record_replay_plugin.h>
@@ -45,6 +45,7 @@ public:
class Plugin
{
Q_GADGET
public:
Plugin() = default;
virtual ~Plugin() = default;
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace TrainingAreaBaseOC
{
@@ -3,7 +3,7 @@
#pragma once
#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_fts.h>
@@ -4,7 +4,7 @@
#include "main_handler.h"
#include "settings.h"
#include "logger.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace TrainingAreaBaseOC
{
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace WarehouseManagement
{
@@ -3,7 +3,7 @@
#include "dds_handler_exercise.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <dds/domain/DomainParticipant.hpp>
namespace WarehouseManagement
@@ -1,7 +1,7 @@
#include "main_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace WarehouseManagement
{
@@ -3,7 +3,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace WirelessLocationSystem
{
@@ -3,7 +3,7 @@
#include "main_handler.h"
#include "settings.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace WirelessLocationSystem
{
@@ -18,25 +18,43 @@ SET(SRCS_common
)
# Generate alm_enums.idl / alm.idl
IF(BUILD_RTI)
IF(BUILD_RTI AND BUILD_GRANTLEE)
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()
# Generate alm_db_impl.cpp/.h, alm_db.h
IF(BUILD_RTI)
IF(BUILD_RTI AND BUILD_GRANTLEE)
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
ENDIF()
# 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.idl)
ENDIF()
# 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})
ENDIF()
# Generate alm_[d|f]tc.h
IF(BUILD_RTI)
IF(BUILD_RTI AND BUILD_GRANTLEE)
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()
NGL_ADD_LIBRARY(AAR SV WS svcAlmCommon SHARED ${SRCS_common})
@@ -64,8 +82,16 @@ SET(SRCS_client
alm_export.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})
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()
NGL_ADD_LIBRARY(AAR SV WS svcAlmClient SHARED ${SRCS_client})
@@ -8,8 +8,8 @@
#pragma once
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dtc.h>
#include <DDS/Core/topic_lock_master.h>
#include <Core/core_dtc.h>
#include <Core/topic_lock_master.h>
#include <AlarmManagement/alm_dts.h>
#include <AlarmManagement/alm_dtc.h>
#include <AlarmManagement/alm_fts.h>
@@ -4,7 +4,7 @@
#include <dds_handler.h>
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
//Generated
#include <AlarmManagement/alm_db.h>
@@ -13,7 +13,7 @@
// AES
#include <AreaEffectSimulation/Utils/polygons.h>
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
#include <Core/core.hpp>
@@ -9,8 +9,8 @@
#include "aes_dts.h"
#include "aes_fts.h"
#include <DDS/Core/pacemaker.h>
#include <DDS/Core/core_dtc.h>
#include <Core/pacemaker.h>
#include <Core/core_dtc.h>
#include <TrainingAreaBase/tab_dtc.h>
#include <QtCore/QCoreApplication>
#include <QtCore/QThread>
@@ -9,8 +9,8 @@
#include <DDS/DDSConnector/dds_connector.h>
#include <AreaEffectSimulation/aes_dts.h>
#include <AreaEffectSimulation/aes_fts.h>
#include <DDS/Core/core_dtc.h>
#include <DDS/Core/topic_lock_master.h>
#include <Core/core_dtc.h>
#include <Core/topic_lock_master.h>
#include <ProjectDataManagement/pdm_dtc.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <TrainingAreaBase/tab_ftc.h>
@@ -37,7 +37,7 @@
#include <Trajectory/trajectory_generator.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <ngldb/db_service_handler.h>
#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
@@ -11,7 +11,7 @@
#include <QtCore/QObject>
#include <QtCore/QTimer>
#include <DDS/Core/core.hpp>
#include <Core/core.hpp>
#include <LtsCoordTrans/lts_coord_trans.h>
#include "logger.h"
@@ -16,7 +16,7 @@
#include "special_area_provider.h"
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
#include <ProjectDataManagement/pdm_dtc.h>
#include <Trajectory/trajectory_generator.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject>
#include "object_base.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
#include <AreaEffectSimulation/aes_db.h>
@@ -11,7 +11,7 @@
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
#include <aes_db.h>
#include <aes_dtc.h>
#include <aes_ftc.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject>
#include "object_base.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
#include <AreaEffectSimulation/aes_db.h>
@@ -8,7 +8,7 @@
#include "dds_handler.h"
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace AssetManagement
{
@@ -8,7 +8,7 @@
#pragma once
#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_fts.h>
@@ -15,7 +15,7 @@
#include "settings.h"
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
#include <ngldb/db_service_handler.h>
namespace AssetManagement
@@ -10,7 +10,7 @@
#include "dds_handler.h"
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
// Generated
#include <AssetManagement/asm_db.h>
@@ -8,7 +8,7 @@
#pragma once
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
// Generated
#include <AssetManagement/asm_db.h>
@@ -10,7 +10,7 @@
#include "dds_handler.h"
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
// Generated
#include <AssetManagement/asm_db.h>
@@ -10,7 +10,7 @@
#include <QtCore/QObject>
#include "dds_handler.h"
#include "logger.h"
#include <DDS/Core/function_reply_object.h>
#include <Core/function_reply_object.h>
// Generated
#include <AssetManagement/asm_db.h>
@@ -9,7 +9,6 @@
#include <QtNetwork/QHostAddress>
#include <QtCore/QStringList>
#include <QtCore/QRegExp>
#include <QtCore/QString>
#include "ava_test_server.h"
@@ -325,7 +324,7 @@ 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
// also delete the socket.
@@ -366,14 +365,13 @@ void AvaTestServer::closedConnection()
qDebug() << "connection closed";
m_PosUpdate->stop();
QMutableVectorIterator<QTcpSocket *> l_It(m_Conns);
while (l_It.hasNext())
for (int i = 0; i < m_Conns.size(); ++i)
{
QTcpSocket *l_Conn = l_It.next();
QTcpSocket *l_Conn = m_Conns[i];
if (l_Conn->state() == QAbstractSocket::UnconnectedState)
{
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
return;
}
@@ -404,18 +402,15 @@ void AvaTestServer::sendScriptPosUpdate()
if (m_RelScriptPos >= m_SelStreamFromScript.getDuration())
{
QVectorIterator<ScrEdAVStream> l_Iterator(m_Script.getStreamSequences());
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();
qDebug() << "l_Duration " << l_Duration << " abs_scriptpos " << m_AbsScriptPos << " stream " << l_Stream.getName();
if (l_Duration > m_AbsScriptPos)
{
qDebug() << "set stream " << l_Stream.getName();
m_SelStreamFromScript = l_Stream;
l_Iterator.toBack();
m_RelScriptPos = 0;
}
}
@@ -434,11 +429,8 @@ void AvaTestServer::sendScriptPosUpdate()
void AvaTestServer::readAndAnswer()
{
QVectorIterator<QTcpSocket *> l_It(m_Conns);
while (l_It.hasNext())
for (QTcpSocket *l_Conn : std::as_const(m_Conns))
{
QTcpSocket *l_Conn = l_It.next();
if (l_Conn->state() != QAbstractSocket::ConnectedState)
continue;
@@ -1102,20 +1094,15 @@ void AvaTestServer::processLine(const QByteArray &line)
qDebug() << l_Parts[4].trimmed();
//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;
while (l_Iterator.hasNext())
for (const ScrEdAVStream &l_Stream : m_Script.getStreamSequences())
{
ScrEdAVStream l_Stream = l_Iterator.next();
float l_OldDuration = l_Duration;
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();
if (l_Duration > m_AbsScriptPos)
{
m_SelStreamFromScript = l_Stream;
l_Iterator.toBack();
m_RelScriptPos = m_AbsScriptPos - l_OldDuration;
qDebug() << "set stream 2" << l_Stream.getName() << " pos is " << m_RelScriptPos;
//m_RelScriptPos = QDateTime::fromTime_t(0);
@@ -1328,11 +1315,8 @@ void AvaTestServer::sendData(const QString &data_)
qDebug() << "Outgoing RCP_AVA: " << data_;
QString data = data_;
data.append(EOL);
QVectorIterator<QTcpSocket *> l_It(m_Conns);
while (l_It.hasNext())
for (QTcpSocket *l_Conn : std::as_const(m_Conns))
{
QTcpSocket *l_Conn = l_It.next();
if (l_Conn->state() == QAbstractSocket::ConnectedState)
{
//qDebug() << "sent to conn " << l_Conn;
@@ -18,7 +18,7 @@
#include <InfrastructureManagement/ism_dtc.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/pacemaker.h>
#include <Core/pacemaker.h>
namespace AudioVideoManagement
@@ -9,11 +9,11 @@
#include "logger.h"
#include <dds/domain/DomainParticipant.hpp>
#include <DDS/Core/topic_lock_master.h>
#include <Core/topic_lock_master.h>
#include <QtCore/QStringList>
#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_fts.h>
Loaded 100 of 256 files, more files were not shown because too many files have changed in this diff. Show more