Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/AlarmManagement/alm_dtc.h
T
torstenandCopilot 7a6be7474e Qt6 migration: Fix BUILD_RTI=OFF build errors in TrainingAreaBase
- training_area_telegrams.cpp: Fixed QJsonObject initializer syntax (Qt6 requires {{}} not ({}))
- training_area_telegrams.cpp: Fixed fromJson() methods to access m_* members directly
- training_area_telegrams.cpp: Fixed brace mismatches in multiple toJson() methods
- training_area_telegrams.h: Changed Header struct to public members for consistency
- tx_mixin.cpp: Fixed getEquipmentNumber() template for direct member access
- lts_coordinate.cpp: Added missing #include <iomanip>
- MIGRATION_STATUS.md: Added migration progress tracking document

C++17 constraint enforced due to RTI Connext DDS 7.7.0 incompatibility with C++20+

Build status: BUILD_RTI=OFF successful (0 errors, warnings only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-23 20:49:23 +02:00

95 lines
2.6 KiB
C++

#pragma once
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
// Für die Migration erstellen wir minimale Forward-Declarations
#include <cstdint>
#include <functional>
#include <optional>
#include <string>
#include <QtCore/QObject>
#include "LtsUtils/LtsUtilsCore/data_modification_enum.h"
#include "ProjectDataManagement/pdm_types.h"
namespace AlarmManagement
{
// Position-Struct (wird normalerweise von DDS generiert)
struct Position
{
double longitude = 0.0;
double latitude = 0.0;
double lon() const { return longitude; }
double lat() const { return latitude; }
};
// Notification-Struct (wird normalerweise von DDS generiert)
struct Notification
{
int32_t id = 0;
int64_t time() const { return timestamp; }
int64_t timestamp = 0;
int32_t type = 0;
int32_t priority = 0;
int32_t status = 0;
std::string description;
// Zusätzliche Member für AlarmHistoryModel
int32_t operatorId() const { return m_operatorId; }
int32_t equipmentNumber() const { return m_equipmentNumber; }
std::optional<int32_t> participantId() const { return m_participantId; }
std::optional<int32_t> aesId() const { return m_aesId; }
ProjectDataManagement::EventType eventType() const { return m_eventType; }
Position position() const { return m_position; }
const std::string& properties() const { return m_properties; }
int32_t m_operatorId = 0;
int32_t m_equipmentNumber = 0;
std::optional<int32_t> m_participantId;
std::optional<int32_t> m_aesId;
ProjectDataManagement::EventType m_eventType = ProjectDataManagement::EventType::Unknown;
Position m_position;
std::string m_properties;
};
namespace Interface
{
// Dtc interface class with signals for Qt6 migration STUB
class Dtc : public QObject
{
Q_OBJECT
public:
explicit Dtc(QObject* parent = nullptr) : QObject(parent) {}
~Dtc() override = default;
// Callback registration instead of enableNotification()
void notifications(std::function<void(const Notification&)> callback)
{
m_notificationCallback = callback;
}
// Trigger notification changed (for STUB testing)
void triggerNotificationChanged(const Notification& notification, DataModification modType)
{
emit notificationChanged(notification, modType);
if (m_notificationCallback)
{
m_notificationCallback(notification);
}
}
signals:
void notificationChanged(const Notification& notification, DataModification modType);
private:
std::function<void(const Notification&)> m_notificationCallback;
};
class Ftc;
} // namespace Interface
} // namespace AlarmManagement