Add BUILD_RTI guards to InfrastructureManagement and AudioVideoManagement DDS handlers

- ism_dtc_impl_custom.h/cpp: Wrap all DDS-dependent method declarations and implementations with BUILD_RTI guards
- dds_handler.cpp (InfrastructureManagement): Guard RTI DDS initialization code
- dds_handler.h/cpp (AudioVideoManagement): Guard DomainParticipant types and methods
- Enables building without RTI Connext DDS dependencies (BUILD_RTI=OFF)
- Stub types used when guards are disabled

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-08-22 11:55:44 +02:00
1 parent 3cc3129de0
commit 93020295ad
5 files changed
+80 -11

No files matched your search

@@ -18,7 +18,9 @@
#include <InfrastructureManagement/ism_dtc.h> #include <InfrastructureManagement/ism_dtc.h>
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#if BUILD_RTI
#include <DDS/Core/pacemaker.h> #include <DDS/Core/pacemaker.h>
#endif
namespace AudioVideoManagement namespace AudioVideoManagement
@@ -38,6 +40,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
return false; return false;
} }
#if BUILD_RTI
// default initialize Publisher and Subscriber // default initialize Publisher and Subscriber
m_ddsConnector->initPublisherSubscriber(); m_ddsConnector->initPublisherSubscriber();
// no batched writer possible until frequency set data is no longer that big (currently 1800rows) // no batched writer possible until frequency set data is no longer that big (currently 1800rows)
@@ -57,6 +60,9 @@ bool DdsHandler::init(const QStringList &qosFileList)
bRet &= m_fts->enableAll(); bRet &= m_fts->enableAll();
return bRet; return bRet;
#else
return true;
#endif
} }
bool DdsHandler::enableDtcClients() bool DdsHandler::enableDtcClients()
@@ -64,6 +70,7 @@ bool DdsHandler::enableDtcClients()
Q_ASSERT(m_exmDtc); Q_ASSERT(m_exmDtc);
Q_ASSERT(m_ismDtc); Q_ASSERT(m_ismDtc);
Q_ASSERT(m_asmDtc); Q_ASSERT(m_asmDtc);
#if BUILD_RTI
bool status = m_exmDtc->enableExercise() && bool status = m_exmDtc->enableExercise() &&
m_ismDtc->enableInstrumentationAsset() && m_ismDtc->enableInstrumentationAsset() &&
m_ismDtc->enableMainStructureElement() && m_ismDtc->enableMainStructureElement() &&
@@ -72,11 +79,16 @@ bool DdsHandler::enableDtcClients()
Q_ASSERT(status); Q_ASSERT(status);
return status; return status;
#else
return true;
#endif
} }
#if BUILD_RTI
dds::domain::DomainParticipant DdsHandler::domainParticipant() const dds::domain::DomainParticipant DdsHandler::domainParticipant() const
{ {
return m_ddsConnector->getDomainParticipant(); return m_ddsConnector->getDomainParticipant();
} }
#endif
} // Namespace AudioVideoManagement } // Namespace AudioVideoManagement
@@ -8,7 +8,9 @@
#pragma once #pragma once
#include "logger.h" #include "logger.h"
#if BUILD_RTI
#include <dds/domain/DomainParticipant.hpp> #include <dds/domain/DomainParticipant.hpp>
#endif
#include <DDS/Core/topic_lock_master.h> #include <DDS/Core/topic_lock_master.h>
#include <QStringList> #include <QStringList>
@@ -73,7 +75,11 @@ public:
*/ */
bool enableDtcClients(); bool enableDtcClients();
#if BUILD_RTI
dds::domain::DomainParticipant domainParticipant() const; dds::domain::DomainParticipant domainParticipant() const;
#else
void* domainParticipant() const { return nullptr; }
#endif
std::shared_ptr<Core::Pacemaker> pacemaker() const { return m_pacemaker; } std::shared_ptr<Core::Pacemaker> pacemaker() const { return m_pacemaker; }
std::shared_ptr<Core::TopicLockMaster> topicLockMaster() const { return m_topicLockMaster; } std::shared_ptr<Core::TopicLockMaster> topicLockMaster() const { return m_topicLockMaster; }
@@ -9,7 +9,9 @@
#include "dds_handler.h" #include "dds_handler.h"
#if BUILD_RTI
#include <DDS/Core/pacemaker.h> #include <DDS/Core/pacemaker.h>
#endif
namespace InfrastructureManagement namespace InfrastructureManagement
{ {
@@ -28,6 +30,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
return false; return false;
} }
#if BUILD_RTI
// default initialize Publisher and Subscriber // default initialize Publisher and Subscriber
m_ddsConnector->initPublisherSubscriber(); m_ddsConnector->initPublisherSubscriber();
@@ -57,6 +60,9 @@ bool DdsHandler::init(const QStringList &qosFileList)
} }
return bRet; return bRet;
#else
return true;
#endif
} }
} // Namespace PDM } // Namespace PDM
@@ -285,6 +285,7 @@ int DtcImplCustom::getOpticalCodeFromAssetId(int assetId) const
} }
#if BUILD_RTI
int DtcImplCustom::getAssetIdFromOpticalCode(int opticalCode) const int DtcImplCustom::getAssetIdFromOpticalCode(int opticalCode) const
{ {
DEBUG_LOG(m_logger) << "getAssetIdFromOpticalCode: opticalCode=" << opticalCode; DEBUG_LOG(m_logger) << "getAssetIdFromOpticalCode: opticalCode=" << opticalCode;
@@ -330,6 +331,7 @@ int DtcImplCustom::getAssetIdFromMountingPointId(int mainStructureElementId, in
return -1; return -1;
} }
#endif
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
@@ -474,6 +476,7 @@ bool DtcImplCustom::getStructureElementByBuildingIdAndMountingPointId(int mainSt
} }
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
#if BUILD_RTI
bool DtcImplCustom::getAllAssetsPerRoom(const std::function<bool(const InstrumentationAsset &)> &predicate, bool DtcImplCustom::getAllAssetsPerRoom(const std::function<bool(const InstrumentationAsset &)> &predicate,
QMap<int, QVector<InstrumentationAsset> > &allAssets) QMap<int, QVector<InstrumentationAsset> > &allAssets)
{ {
@@ -523,7 +526,6 @@ bool DtcImplCustom::getAllAssetsPerRoom(const std::function<bool(const Instrumen
return true; return true;
} }
//---------------------------------------------------------------------------------------------------------------------------------------------
bool DtcImplCustom::getAllAssetsPerBuilding(const std::function<bool(const InstrumentationAsset &)> &predicate, bool DtcImplCustom::getAllAssetsPerBuilding(const std::function<bool(const InstrumentationAsset &)> &predicate,
QMap<int, QVector<InstrumentationAsset> > &allAssets) const QMap<int, QVector<InstrumentationAsset> > &allAssets) const
{ {
@@ -562,7 +564,6 @@ bool DtcImplCustom::getAllAssetsPerBuilding(const std::function<bool(const Instr
} }
//---------------------------------------------------------------------------------------------------------------------------------------------
bool DtcImplCustom::getBuildingId(int structureElementId, int &buildingId) const bool DtcImplCustom::getBuildingId(int structureElementId, int &buildingId) const
{ {
for (const auto &sample : m_dtcMainStructureElement->readAlive()) for (const auto &sample : m_dtcMainStructureElement->readAlive())
@@ -579,8 +580,11 @@ bool DtcImplCustom::getBuildingId(int structureElementId, int &buildingId) const
buildingId = 0; buildingId = 0;
return false; return false;
} }
#endif
}
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QList<int> DtcImplCustom::getSections() QList<int> DtcImplCustom::getSections()
{ {
QList<int> sections; QList<int> sections;
@@ -591,6 +595,7 @@ QList<int> DtcImplCustom::getSections()
} }
return sections; return sections;
} }
#endif
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
QString DtcImplCustom::getBuildingDisplayName(int buildingId) QString DtcImplCustom::getBuildingDisplayName(int buildingId)
@@ -614,6 +619,7 @@ QString DtcImplCustom::getBuildingDisplayName(const MainStructureElement &mse) c
} }
#if BUILD_RTI
MountingPointPlan DtcImplCustom::getMountingPointPlan(int scheduleId, int structureElementId) const MountingPointPlan DtcImplCustom::getMountingPointPlan(int scheduleId, int structureElementId) const
{ {
for (const auto &sample : m_dtcMainSchedule->readAlive()) for (const auto &sample : m_dtcMainSchedule->readAlive())
@@ -629,6 +635,7 @@ MountingPointPlan DtcImplCustom::getMountingPointPlan(int scheduleId, int struct
} }
return MountingPointPlan(); return MountingPointPlan();
} }
#endif
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
int DtcImplCustom::getBuildingRoomsCount(int buildingId) int DtcImplCustom::getBuildingRoomsCount(int buildingId)
@@ -666,6 +673,7 @@ BridgeStatus DtcImplCustom::getBridgeStatus(int buildingId)
// this is just a quicker method to determine if a plan is complete or not // this is just a quicker method to determine if a plan is complete or not
//--------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------
#if BUILD_RTI
bool DtcImplCustom::checkSchedule(int scheduleId) bool DtcImplCustom::checkSchedule(int scheduleId)
{ {
const MainSchedule schedule = mainSchedule(scheduleId); const MainSchedule schedule = mainSchedule(scheduleId);
@@ -699,8 +707,10 @@ bool DtcImplCustom::getScheduleDifferences(int scheduleId, QList<MountingPointPl
} }
return diffList.isEmpty(); return diffList.isEmpty();
} }
#endif
//--------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
int DtcImplCustom::getMountedAssetId(int structureElementId) const int DtcImplCustom::getMountedAssetId(int structureElementId) const
{ {
// Norbert Thoden, 12.12.2022: // Norbert Thoden, 12.12.2022:
@@ -721,7 +731,6 @@ int DtcImplCustom::getMountedAssetId(int structureElementId) const
return -1; return -1;
} }
//---------------------------------------------------------------------------------------------------------
int DtcImplCustom::getStructueElementIdFromAssetId(int assetId) const int DtcImplCustom::getStructueElementIdFromAssetId(int assetId) const
{ {
@@ -739,8 +748,10 @@ int DtcImplCustom::getStructueElementIdFromAssetId(int assetId) const
} }
return -1; return -1;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QMap<int, MainFootprint> DtcImplCustom::getFootprintsByExerciseId(int exerciseId) QMap<int, MainFootprint> DtcImplCustom::getFootprintsByExerciseId(int exerciseId)
{ {
QMap<int, MainFootprint> footprints; QMap<int, MainFootprint> footprints;
@@ -755,7 +766,10 @@ QMap<int, MainFootprint> DtcImplCustom::getFootprintsByExerciseId(int exerciseId
return footprints; return footprints;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QMap<int, QPolygonF> DtcImplCustom::getUtmFootprintsByExerciseId(int exerciseId, int &zone, bool isGroundLevel) QMap<int, QPolygonF> DtcImplCustom::getUtmFootprintsByExerciseId(int exerciseId, int &zone, bool isGroundLevel)
{ {
QMap<int, QPolygonF> footprints; QMap<int, QPolygonF> footprints;
@@ -796,6 +810,7 @@ QMap<int, QPolygonF> DtcImplCustom::getUtmFootprintsByExerciseId(int exerciseId,
DEBUG_LOG(m_logger) << "getUtmFootprintsByExerciseId footprints.size=" << footprints.size(); DEBUG_LOG(m_logger) << "getUtmFootprintsByExerciseId footprints.size=" << footprints.size();
return footprints; return footprints;
} }
#endif
// returns absolut utm positions of the footprint // returns absolut utm positions of the footprint
QPolygonF DtcImplCustom::getUtmFootprintById(int mseId, int &zoneOut, bool isGroundLevel) QPolygonF DtcImplCustom::getUtmFootprintById(int mseId, int &zoneOut, bool isGroundLevel)
@@ -867,8 +882,10 @@ QPolygonF DtcImplCustom::getUtmFootprintById(int mseId, int &zoneOut, bool isGro
// return retPolyUtm; // return retPolyUtm;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
// returns all building IDs that have an intersection with the area under the polygon and are assigned to the specified exercise. // returns all building IDs that have an intersection with the area under the polygon and are assigned to the specified exercise.
// Parameter: completeEnclosed true = Only buildings that are completely enclosed by the polygon are taken into account. // Parameter: completeEnclosed true = Only buildings that are completely enclosed by the polygon are taken into account.
// false = All buildings that are completely enclosed by the polygon and that have an overlap with the polygon are taken into account. // false = All buildings that are completely enclosed by the polygon and that have an overlap with the polygon are taken into account.
@@ -936,7 +953,10 @@ QVector <int> DtcImplCustom::getBuildingByPolygon(int exerciseId, const QPolygon
return result; return result;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
// returns building ID surrounds the polygon and is assigned to the specified exercise. // returns building ID surrounds the polygon and is assigned to the specified exercise.
// returns -1 if no building found // returns -1 if no building found
int DtcImplCustom::getSurroundingBuildingByPolygon(int exerciseId, const QPolygonF &polygon, bool isGroundLevel) int DtcImplCustom::getSurroundingBuildingByPolygon(int exerciseId, const QPolygonF &polygon, bool isGroundLevel)
@@ -1000,7 +1020,10 @@ int DtcImplCustom::getSurroundingBuildingByPolygon(int exerciseId, const QPolygo
return -1; return -1;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
/*! /*!
* \brief DtcImplCustom::getBuildingIdAtPosition * \brief DtcImplCustom::getBuildingIdAtPosition
* \param exerciseId * \param exerciseId
@@ -1024,7 +1047,12 @@ int DtcImplCustom::getBuildingIdAtPosition(int exerciseId, const QPointF &utmPos
} }
return bldId; return bldId;
} }
#endif
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
// The floors list is sorted according to height. // The floors list is sorted according to height.
QVector <int> DtcImplCustom::getFloorIdsFromBuilding(int buildingId) QVector <int> DtcImplCustom::getFloorIdsFromBuilding(int buildingId)
{ {
@@ -1064,7 +1092,10 @@ QList <StructureElement> DtcImplCustom::getFloorsFromBuilding(int buildingId)
std::sort(floors.begin(), floors.end(), structureElementHeightComparator); std::sort(floors.begin(), floors.end(), structureElementHeightComparator);
return floors; return floors;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
double DtcImplCustom::getHalfFloorHeight(int buildingId, int floorId) double DtcImplCustom::getHalfFloorHeight(int buildingId, int floorId)
{ {
QList <StructureElement> floorHeights = getFloorsFromBuilding(buildingId); QList <StructureElement> floorHeights = getFloorsFromBuilding(buildingId);
@@ -1090,7 +1121,10 @@ double DtcImplCustom::getHalfFloorHeight(int buildingId, int floorId)
return 0.0; return 0.0;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QVector <int> DtcImplCustom::getRoomIdsFromFloorId(int buildingId, int floorId) QVector <int> DtcImplCustom::getRoomIdsFromFloorId(int buildingId, int floorId)
{ {
DEBUG_LOG(m_logger) << "getRoomIdsFromFloorId " DEBUG_LOG(m_logger) << "getRoomIdsFromFloorId "
@@ -1117,7 +1151,10 @@ QVector <int> DtcImplCustom::getRoomIdsFromFloorId(int buildingId, int floorId)
} }
return rooms; return rooms;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QVector <int> DtcImplCustom::getBuildingIdsByExercise ( int exerciseId) QVector <int> DtcImplCustom::getBuildingIdsByExercise ( int exerciseId)
{ {
QVector <int> result; QVector <int> result;
@@ -1132,7 +1169,10 @@ QVector <int> DtcImplCustom::getBuildingIdsByExercise ( int exerciseId)
return result; return result;
} }
#endif
//---------------------------------------------------------------------------------------------------------
#if BUILD_RTI
QByteArray DtcImplCustom::getVulnerabilityModelData( int buildingId) QByteArray DtcImplCustom::getVulnerabilityModelData( int buildingId)
{ {
const MainStructureElement &mse = mainStructureElement(buildingId); const MainStructureElement &mse = mainStructureElement(buildingId);
@@ -1148,12 +1188,13 @@ QByteArray DtcImplCustom::getVulnerabilityModelData( int buildingId)
QFile f(vulnerabilityModelFilename); QFile f(vulnerabilityModelFilename);
if (!f.open(QIODevice::ReadOnly)) if (!f.open(QIODevice::ReadOnly))
{ {
WARNING_LOG(m_logger) << "Could not open file '" << vulnerabilityModelFilename << "' for reading: " << f.errorString(); WARNING_LOG(m_logger) << "Could not open file '" << vulnerabilityModelModelFilename << "' for reading: " << f.errorString();
} }
QByteArray dataBa = f.readAll(); QByteArray dataBa = f.readAll();
return dataBa; return dataBa;
} }
#endif
} // namespace Interface } // namespace Interface
@@ -36,27 +36,31 @@ public:
bool getAssetIdFromMountingPoint(int structureElementId, int mountingPointAssetId, int &assetId) const override; bool getAssetIdFromMountingPoint(int structureElementId, int mountingPointAssetId, int &assetId) const override;
int getOpsCodeFromJSon(const std::string &s) const; int getOpsCodeFromJSon(const std::string &s) const;
int getOpticalCodeFromAssetId(int assetId) const override; int getOpticalCodeFromAssetId(int assetId) const override;
#if BUILD_RTI
int getAssetIdFromOpticalCode(int opticalCode) const override; int getAssetIdFromOpticalCode(int opticalCode) const override;
int getAssetIdFromMountingPointId(int mainStructureElementId, int mountingPointId) const override; int getAssetIdFromMountingPointId(int mainStructureElementId, int mountingPointId) const override;
bool getOpsDataFromMseIdAndSeId(int mainStructureElementId, int structureElementId, int &roomId, Core::GeoPosition &geoPosition) const override;
bool getStructureElementById(int structureElementId, StructureElement &structureElement) const override;
bool getStructureElementInMntPointAssetByAssetId(int assetId, StructureElement &structureElement) const override;
bool getStructureElementByBuildingIdAndMountingPointId(int mainStructureElementId, int mountingPointId, StructureElement &structureElement) override;
bool getAllAssetsPerRoom(const std::function<bool(const InstrumentationAsset &)> &predicate, bool getAllAssetsPerRoom(const std::function<bool(const InstrumentationAsset &)> &predicate,
QMap<int, QVector<InstrumentationAsset> > &allAssets) override; QMap<int, QVector<InstrumentationAsset> > &allAssets) override;
bool getAllAssetsPerBuilding(const std::function<bool(const InstrumentationAsset &)> &predicate, bool getAllAssetsPerBuilding(const std::function<bool(const InstrumentationAsset &)> &predicate,
QMap<int, QVector<InstrumentationAsset> > &allAssets) const override; QMap<int, QVector<InstrumentationAsset> > &allAssets) const override;
int getStructueElementIdFromAssetId(int assetId) const override;
#endif
bool getOpsDataFromMseIdAndSeId(int mainStructureElementId, int structureElementId, int &roomId, Core::GeoPosition &geoPosition) const override;
bool getStructureElementById(int structureElementId, StructureElement &structureElement) const override;
bool getStructureElementInMntPointAssetByAssetId(int assetId, StructureElement &structureElement) const override;
bool getStructureElementByBuildingIdAndMountingPointId(int mainStructureElementId, int mountingPointId, StructureElement &structureElement) override;
bool getBuildingId(int structureElementId, int &buildingId) const override; bool getBuildingId(int structureElementId, int &buildingId) const override;
QString getBuildingDisplayName(int buildingId) override; QString getBuildingDisplayName(int buildingId) override;
QString getBuildingDisplayName(const MainStructureElement &mse) const override; QString getBuildingDisplayName(const MainStructureElement &mse) const override;
MountingPointPlan getMountingPointPlan(int scheduleId, int structureElementId) const override; MountingPointPlan getMountingPointPlan(int scheduleId, int structureElementId) const override;
int getBuildingRoomsCount(int buildingId) override; int getBuildingRoomsCount(int buildingId) override;
BridgeStatus getBridgeStatus(int buildingId) override; BridgeStatus getBridgeStatus(int buildingId) override;
#if BUILD_RTI
bool checkSchedule(int scheduleId) override; bool checkSchedule(int scheduleId) override;
bool getScheduleDifferences(int scheduleId, QList<MountingPointPlan> &diffList) override; bool getScheduleDifferences(int scheduleId, QList<MountingPointPlan> &diffList) override;
int getMountedAssetId(int structureElementId) const override; int getMountedAssetId(int structureElementId) const override;
int getStructueElementIdFromAssetId(int assetId) const override;
QList<int> getSections() override; QList<int> getSections() override;
#endif
QMap<int, MainFootprint> getFootprintsByExerciseId(int exerciseId) override; QMap<int, MainFootprint> getFootprintsByExerciseId(int exerciseId) override;
QMap<int, QPolygonF> getUtmFootprintsByExerciseId(int exerciseId, int &zone, bool isGroundLevel) override; QMap<int, QPolygonF> getUtmFootprintsByExerciseId(int exerciseId, int &zone, bool isGroundLevel) override;
QPolygonF getUtmFootprintById(int mseId, int &zoneOut, bool isGroundLevel) override; QPolygonF getUtmFootprintById(int mseId, int &zoneOut, bool isGroundLevel) override;