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:36:21 +02:00
1 parent ba1d9e2c04
commit 8cec9973e7
127 files changed
+2134

No files matched your search

@@ -0,0 +1,129 @@
#pragma once
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
// Für die Migration erstellen wir minimale Implementierungen
#include <QtCore/QObject>
#include <QtCore/QMap>
#include <QtCore/QHash>
#include <functional>
#include "ism.hpp"
#include "ism_mounting_point.h"
namespace InfrastructureManagement
{
namespace Interface
{
// Forward declarations
class Dtc;
class Ftc;
// DataModification Enum
enum class DataModification
{
eAdded,
eModified,
eRemoved
};
// MountingPointPlan - Planungsdaten für MountingPoints (MUST come before MainSchedule)
class MountingPointPlan {
public:
MountingPointPlan() : structureElementId_(0) {}
int32_t structureElementId() const { return structureElementId_; }
void structureElementId(int32_t v) { structureElementId_ = v; }
MountingPointState mountingPointState() const { return mountingPointState_; }
void mountingPointState(const MountingPointState& v) { mountingPointState_ = v; }
private:
int32_t structureElementId_;
MountingPointState mountingPointState_;
};
// MainSchedule - benötigt für Schedule-Daten
class MainSchedule {
public:
MainSchedule() : id_(0) {}
int32_t id() const { return id_; }
void id(int32_t v) { id_ = v; }
// elements() returns vector of MountingPointPlan
const std::vector<MountingPointPlan>& elements() const { return elements_; }
void elements(const std::vector<MountingPointPlan>& v) { elements_ = v; }
private:
int32_t id_;
std::vector<MountingPointPlan> elements_;
};
// InstrumentationAssetState Enum
enum class InstrumentationAssetState
{
Undefined = 0,
Ok = 1,
Defect = 2
};
// InstrumentationAsset - Asset-Daten
class InstrumentationAsset {
public:
InstrumentationAsset() : assetId_(0), assetStateId_(InstrumentationAssetState::Undefined) {}
int32_t assetId() const { return assetId_; }
void assetId(int32_t v) { assetId_ = v; }
InstrumentationAssetState assetStateId() const { return assetStateId_; }
void assetStateId(InstrumentationAssetState v) { assetStateId_ = v; }
private:
int32_t assetId_;
InstrumentationAssetState assetStateId_;
};
// Dtc - Data Transfer Component (Hauptklasse für ISM-Daten)
class Dtc : public QObject
{
Q_OBJECT
public:
Dtc(QObject* parent = nullptr) : QObject(parent) {}
~Dtc() override = default;
// MainStructureElement Zugriff
virtual const QMap<qint32, MainStructureElement>& mainStructureElements() const = 0;
virtual MainStructureElement mainStructureElement(int32_t id) const = 0;
virtual bool getStructureElementById(int32_t id, StructureElement& out) const = 0;
virtual void waitForHistoricalDataMainStructureElement(int timeoutMs) = 0;
// MainSchedule Zugriff
virtual const QMap<qint32, MainSchedule>& mainSchedules() const = 0;
virtual MainSchedule mainSchedule(int32_t id) const = 0;
virtual void waitForHistoricalDataMainSchedule(int timeoutMs) = 0;
// MountingPointAsset Zugriff
virtual void mountingPointAssets(const std::function<void(const MountingPointAsset&)>& cb) = 0;
virtual void waitForHistoricalDataMountingPointAsset(int timeoutMs) = 0;
virtual InstrumentationAsset instrumentationAsset(int32_t assetId) const = 0;
// MainFootprint Zugriff (wird in ism_dtc_impl_custom_p.h verwendet)
virtual MainFootprint mainFootprint(int mseId) const = 0;
signals:
void mainStructureElementChanged(const MainStructureElement& data, DataModification modType);
void mainScheduleChanged(const MainSchedule& data, DataModification modType);
void mountingPointAssetChanged(const MountingPointAsset& data, DataModification modType);
};
// Ftc - Forward Declaration (wird später implementiert)
class Ftc : public QObject
{
Q_OBJECT
public:
Ftc(QObject* parent = nullptr) : QObject(parent) {}
~Ftc() override = default;
};
} // namespace Interface
} // namespace InfrastructureManagement