Removes migration stub headers superseded by codegen outputs
Drops 184 stub headers and obsolete stub tests now generated in the build tree.
This commit is contained in:
184 files changed
-8951
No files matched your search
@@ -1,4 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
namespace DDS { class Topic; }
|
||||
@@ -1,3 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
@@ -1,4 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
namespace DDS { class Topic; }
|
||||
@@ -1,3 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
@@ -1,4 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
namespace DDS { class Topic; }
|
||||
@@ -1,3 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
@@ -1,4 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
namespace DDS { class Topic; }
|
||||
@@ -1,3 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
@@ -1,4 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
namespace DDS { class Topic; }
|
||||
@@ -1,3 +0,0 @@
|
||||
#pragma once
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
// Auto-generated during Qt6 migration
|
||||
@@ -1,23 +0,0 @@
|
||||
// Stub DTC header for AlarmManagement service
|
||||
// Pre-generated for BUILD_GRANTLEE=OFF
|
||||
|
||||
#ifndef ALM_DTC_H
|
||||
#define ALM_DTC_H
|
||||
|
||||
#include <QObject>
|
||||
#include "alm_export.h"
|
||||
|
||||
namespace AlarmManagement {
|
||||
namespace Interface {
|
||||
|
||||
class ALM_EXPORT Dtc : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Dtc(QObject* parent = nullptr);
|
||||
virtual ~Dtc();
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace AlarmManagement
|
||||
|
||||
#endif // ALM_DTC_H
|
||||
@@ -1,23 +0,0 @@
|
||||
// Stub FTC header for AlarmManagement service
|
||||
// Pre-generated for BUILD_GRANTLEE=OFF
|
||||
|
||||
#ifndef ALM_FTC_H
|
||||
#define ALM_FTC_H
|
||||
|
||||
#include <QObject>
|
||||
#include "alm_export.h"
|
||||
|
||||
namespace AlarmManagement {
|
||||
namespace Interface {
|
||||
|
||||
class ALM_EXPORT Ftc : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Ftc(QObject* parent = nullptr);
|
||||
virtual ~Ftc();
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace AlarmManagement
|
||||
|
||||
#endif // ALM_FTC_H
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AreaEffectSimulation { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AreaEffectSimulation { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AssetManagement { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AssetManagement { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AudioVideoManagement { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace AudioVideoManagement { namespace Interface { class Dtc; class Ftc; } }
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
// Stub export header for non-RTI builds
|
||||
// When BUILD_RTI=OFF, svcAvmCommon library is not built
|
||||
// This stub allows dependent code to compile
|
||||
#ifndef SVCAVMCOMMON_EXPORT_H
|
||||
#define SVCAVMCOMMON_EXPORT_H
|
||||
|
||||
// Map to the actual macro names used in the code
|
||||
#define SVCAVMCOMMON_EXPORT
|
||||
#define SVCAVMCOMMON_NO_EXPORT
|
||||
#define AVM_COMMON_EXPORT
|
||||
#define AVM_CLIENT_EXPORT
|
||||
#define AVM_SERVER_EXPORT
|
||||
|
||||
#endif
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace CentralEffectSimulation { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
namespace CentralEffectSimulation { namespace Interface { class Dtc; class Ftc; } }
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace CodificationManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace CodificationManagement
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace CodificationManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace CodificationManagement
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ESC {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ESC {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ESM {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ESM {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace EVL {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace EVL {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace ExerciseEventManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace ExerciseEventManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef EEM_FTC_H
|
||||
#define EEM_FTC_H
|
||||
|
||||
// Stub file for eem_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from eem_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace ExerciseEventManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace ExerciseEventManagement
|
||||
|
||||
#endif // EEM_FTC_H
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace EXM {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace EXM {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace GIM {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace GIM {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef GMP_DTC_H
|
||||
#define GMP_DTC_H
|
||||
|
||||
// Stub file for gmp_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from gmp_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace GuezMinelayerProcessing {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace GuezMinelayerProcessing
|
||||
|
||||
#endif // GMP_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef GMP_FTC_H
|
||||
#define GMP_FTC_H
|
||||
|
||||
// Stub file for gmp_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from gmp_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace GuezMinelayerProcessing {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace GuezMinelayerProcessing
|
||||
|
||||
#endif // GMP_FTC_H
|
||||
@@ -1,232 +0,0 @@
|
||||
/**
|
||||
* @file ism.hpp
|
||||
* @brief DDS-Stub-Header für InfrastructureManagement
|
||||
*
|
||||
* Dieser Header ersetzt die von RTI DDS Generator erzeugten Typen.
|
||||
*/
|
||||
|
||||
#ifndef ISM_HPP
|
||||
#define ISM_HPP
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtGui/QImage>
|
||||
#include <QtCore/QMap>
|
||||
#include "ism_enums.hpp"
|
||||
#include "ParticipantManagement/ppm_enums.hpp"
|
||||
|
||||
// Using-declaration for DataModification
|
||||
using DataModification = ParticipantManagement::DataModification;
|
||||
|
||||
namespace InfrastructureManagement {
|
||||
|
||||
// Core namespace mit GeoPosition und RelativePosition
|
||||
namespace Core {
|
||||
|
||||
class GeoPosition {
|
||||
public:
|
||||
GeoPosition() : latitude_(0.0), longitude_(0.0), altitude_(0.0) {}
|
||||
double latitude() const { return latitude_; }
|
||||
double longitude() const { return longitude_; }
|
||||
double altitude() const { return altitude_; }
|
||||
void latitude(double v) { latitude_ = v; }
|
||||
void longitude(double v) { longitude_ = v; }
|
||||
void altitude(double v) { altitude_ = v; }
|
||||
private:
|
||||
double latitude_;
|
||||
double longitude_;
|
||||
double altitude_;
|
||||
};
|
||||
|
||||
class RelativePosition {
|
||||
public:
|
||||
RelativePosition() : x_(0.0), y_(0.0), z_(0.0) {}
|
||||
double x() const { return x_; }
|
||||
double y() const { return y_; }
|
||||
double z() const { return z_; }
|
||||
void x(double v) { x_ = v; }
|
||||
void y(double v) { y_ = v; }
|
||||
void z(double v) { z_ = v; }
|
||||
private:
|
||||
double x_;
|
||||
double y_;
|
||||
double z_;
|
||||
};
|
||||
|
||||
} // namespace Core
|
||||
|
||||
// StructureElement Stub-Klasse
|
||||
class StructureElement {
|
||||
public:
|
||||
StructureElement() : id_(0), mainStructureElementId_(0), mountingPointTypeId_(MountingPointType::Undefined), mountingPointId_(0) {}
|
||||
|
||||
int32_t id() const { return id_; }
|
||||
void id(int32_t v) { id_ = v; }
|
||||
|
||||
int32_t mainStructureElementId() const { return mainStructureElementId_; }
|
||||
void mainStructureElementId(int32_t v) { mainStructureElementId_ = v; }
|
||||
|
||||
MountingPointType mountingPointTypeId() const { return mountingPointTypeId_; }
|
||||
void mountingPointTypeId(MountingPointType v) { mountingPointTypeId_ = v; }
|
||||
|
||||
// Für Kompatibilität: structureElementTypeId() als Alias
|
||||
MountingPointType structureElementTypeId() const { return mountingPointTypeId_; }
|
||||
void structureElementTypeId(MountingPointType v) { mountingPointTypeId_ = v; }
|
||||
|
||||
// mountingPointId() für Sub-ID
|
||||
int32_t mountingPointId() const { return mountingPointId_; }
|
||||
void mountingPointId(int32_t v) { mountingPointId_ = v; }
|
||||
|
||||
Core::GeoPosition geoPosition() const { return geoPosition_; }
|
||||
void geoPosition(const Core::GeoPosition& v) { geoPosition_ = v; }
|
||||
|
||||
Core::RelativePosition relPosition() const { return relPosition_; }
|
||||
void relPosition(const Core::RelativePosition& v) { relPosition_ = v; }
|
||||
|
||||
std::string properties() const { return properties_; }
|
||||
void properties(const std::string& v) { properties_ = v; }
|
||||
|
||||
std::string name() const { return name_; }
|
||||
void name(const std::string& v) { name_ = v; }
|
||||
|
||||
std::string displayName() const { return displayName_; }
|
||||
void displayName(const std::string& v) { displayName_ = v; }
|
||||
|
||||
// path() returns vector of IDs im Hierarchie-Pfad
|
||||
const std::vector<int32_t>& path() const { return path_; }
|
||||
void path(const std::vector<int32_t>& v) { path_ = v; }
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
int32_t mainStructureElementId_;
|
||||
MountingPointType mountingPointTypeId_;
|
||||
int32_t mountingPointId_;
|
||||
Core::GeoPosition geoPosition_;
|
||||
Core::RelativePosition relPosition_;
|
||||
std::string properties_;
|
||||
std::string name_;
|
||||
std::string displayName_;
|
||||
std::vector<int32_t> path_;
|
||||
};
|
||||
|
||||
// MainStructureElement - Stub für DDS-generierten Typ
|
||||
class MainStructureElement {
|
||||
public:
|
||||
MainStructureElement() : id_(0), groupId_(0) {}
|
||||
|
||||
int32_t id() const { return id_; }
|
||||
void id(int32_t v) { id_ = v; }
|
||||
|
||||
int32_t groupId() const { return groupId_; }
|
||||
void groupId(int32_t v) { groupId_ = v; }
|
||||
|
||||
std::string name() const { return name_; }
|
||||
void name(const std::string& v) { name_ = v; }
|
||||
|
||||
std::string displayName() const { return displayName_; }
|
||||
void displayName(const std::string& v) { displayName_ = v; }
|
||||
|
||||
Core::GeoPosition geoPosition() const { return geoPosition_; }
|
||||
void geoPosition(const Core::GeoPosition& v) { geoPosition_ = v; }
|
||||
|
||||
// For compatibility: elements() returns empty vector by default
|
||||
const std::vector<StructureElement>& elements() const { return elements_; }
|
||||
void elements(const std::vector<StructureElement>& v) { elements_ = v; }
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
int32_t groupId_;
|
||||
std::string name_;
|
||||
std::string displayName_;
|
||||
Core::GeoPosition geoPosition_;
|
||||
std::vector<StructureElement> elements_;
|
||||
};
|
||||
|
||||
// MountingPointAsset - Stub für DDS-generierten Typ
|
||||
class MountingPointAsset {
|
||||
public:
|
||||
MountingPointAsset() : id_(0), mountingPointId_(0), assetId_(0) {}
|
||||
|
||||
int32_t id() const { return id_; }
|
||||
void id(int32_t v) { id_ = v; }
|
||||
|
||||
int32_t mountingPointId() const { return mountingPointId_; }
|
||||
void mountingPointId(int32_t v) { mountingPointId_ = v; }
|
||||
|
||||
int32_t assetId() const { return assetId_; }
|
||||
void assetId(int32_t v) { assetId_ = v; }
|
||||
|
||||
std::string name() const { return name_; }
|
||||
void name(const std::string& v) { name_ = v; }
|
||||
|
||||
// For compatibility: structureElementId() alias for mountingPointId()
|
||||
int32_t structureElementId() const { return mountingPointId_; }
|
||||
void structureElementId(int32_t v) { mountingPointId_ = v; }
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
int32_t mountingPointId_;
|
||||
int32_t assetId_;
|
||||
std::string name_;
|
||||
};
|
||||
|
||||
// Forward declaration - full definition in ism_mounting_point.h
|
||||
class MountingPoint;
|
||||
|
||||
// FootprintElement - für Footprint-Daten
|
||||
class FootprintElement {
|
||||
public:
|
||||
FootprintElement() : isGroundLevel_(false) {}
|
||||
|
||||
bool isGroundLevel() const { return isGroundLevel_; }
|
||||
void isGroundLevel(bool v) { isGroundLevel_ = v; }
|
||||
|
||||
Core::RelativePosition relPosition() const { return relPosition_; }
|
||||
void relPosition(const Core::RelativePosition& v) { relPosition_ = v; }
|
||||
|
||||
private:
|
||||
bool isGroundLevel_;
|
||||
Core::RelativePosition relPosition_;
|
||||
};
|
||||
|
||||
// MainFootprint - Footprint-Daten für MainStructureElement
|
||||
class MainFootprint {
|
||||
public:
|
||||
MainFootprint() : id_(0) {}
|
||||
|
||||
int32_t id() const { return id_; }
|
||||
void id(int32_t v) { id_ = v; }
|
||||
|
||||
const std::vector<FootprintElement>& elements() const { return elements_; }
|
||||
void elements(const std::vector<FootprintElement>& v) { elements_ = v; }
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
std::vector<FootprintElement> elements_;
|
||||
};
|
||||
|
||||
// InstrumentationAsset - Stub für DDS-generierten Typ
|
||||
class InstrumentationAsset {
|
||||
public:
|
||||
InstrumentationAsset() : id_(0) {}
|
||||
|
||||
int32_t id() const { return id_; }
|
||||
void id(int32_t v) { id_ = v; }
|
||||
|
||||
std::string name() const { return name_; }
|
||||
void name(const std::string& v) { name_ = v; }
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
std::string name_;
|
||||
};
|
||||
|
||||
// StructureElementType Enum (Alias für MountingPointType für Kompatibilität)
|
||||
using StructureElementType = MountingPointType;
|
||||
|
||||
} // namespace InfrastructureManagement
|
||||
|
||||
#endif // ISM_HPP
|
||||
@@ -1,129 +0,0 @@
|
||||
#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
|
||||
@@ -1,36 +0,0 @@
|
||||
#pragma once
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsftc generiert
|
||||
// Für die Migration erstellen wir minimale Implementierungen
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include "ism.hpp"
|
||||
|
||||
namespace InfrastructureManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
|
||||
// Ftc - Function Transfer Component
|
||||
class Ftc : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Ftc(QObject* parent = nullptr) : QObject(parent) {}
|
||||
~Ftc() override = default;
|
||||
|
||||
// MainStructureElement operations
|
||||
virtual void setMainStructureElement(const MainStructureElement& data) = 0;
|
||||
virtual void removeMainStructureElement(int32_t id) = 0;
|
||||
|
||||
// MainSchedule operations
|
||||
virtual void setMainSchedule(const MainSchedule& data) = 0;
|
||||
virtual void removeMainSchedule(int32_t id) = 0;
|
||||
|
||||
// MountingPointAsset operations
|
||||
virtual void setMountingPointAsset(const MountingPointAsset& data) = 0;
|
||||
virtual void removeMountingPointAsset(int32_t id) = 0;
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace InfrastructureManagement
|
||||
@@ -1,58 +0,0 @@
|
||||
#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 <vector>
|
||||
|
||||
#include <QtCore/QObject>
|
||||
|
||||
#include "LtsUtils/LtsUtilsCore/data_modification_enum.h"
|
||||
#include "mrk_marker.h"
|
||||
|
||||
namespace MarkerManagement
|
||||
{
|
||||
|
||||
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 markers(std::function<void(const Marker&)> callback)
|
||||
{
|
||||
m_markerCallback = callback;
|
||||
}
|
||||
|
||||
// Trigger marker changed (for STUB testing)
|
||||
void triggerMarkerChanged(const Marker& marker, DataModification modType)
|
||||
{
|
||||
emit markerChanged(marker, modType);
|
||||
if (m_markerCallback)
|
||||
{
|
||||
m_markerCallback(marker);
|
||||
}
|
||||
}
|
||||
|
||||
signals:
|
||||
void markerChanged(const Marker& marker, DataModification modType);
|
||||
|
||||
private:
|
||||
std::function<void(const Marker&)> m_markerCallback;
|
||||
};
|
||||
|
||||
class Ftc;
|
||||
|
||||
} // namespace Interface
|
||||
|
||||
} // namespace MarkerManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef MRK_FTC_H
|
||||
#define MRK_FTC_H
|
||||
|
||||
// Stub file for mrk_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from mrk_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace MarkerManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace MarkerManagement
|
||||
|
||||
#endif // MRK_FTC_H
|
||||
@@ -1,8 +0,0 @@
|
||||
// Stub export header for non-RTI builds
|
||||
#ifndef SVCMRKCOMMON_EXPORT_H
|
||||
#define SVCMRKCOMMON_EXPORT_H
|
||||
|
||||
#define SVCMRKCOMMON_EXPORT
|
||||
#define SVCMRKCOMMON_NO_EXPORT
|
||||
|
||||
#endif
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace Messaging
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace Messaging
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef MSG_FTC_H
|
||||
#define MSG_FTC_H
|
||||
|
||||
// Stub file for msg_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from msg_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace Messaging {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace Messaging
|
||||
|
||||
#endif // MSG_FTC_H
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace MeteoDataManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace MeteoDataManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef MDM_FTC_H
|
||||
#define MDM_FTC_H
|
||||
|
||||
// Stub file for mdm_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from mdm_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace MeteoDataManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace MeteoDataManagement
|
||||
|
||||
#endif // MDM_FTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef NME_DTC_H
|
||||
#define NME_DTC_H
|
||||
|
||||
// Stub file for nme_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from nme_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace NmeaManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace NmeaManagement
|
||||
|
||||
#endif // NME_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef NME_FTC_H
|
||||
#define NME_FTC_H
|
||||
|
||||
// Stub file for nme_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from nme_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace NmeaManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace NmeaManagement
|
||||
|
||||
#endif // NME_FTC_H
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace NOM {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace NOM {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef OBD_DTC_H
|
||||
#define OBD_DTC_H
|
||||
|
||||
// Stub file for obd_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from obd_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace OcBaseDownload {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace OcBaseDownload
|
||||
|
||||
#endif // OBD_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef OBD_FTC_H
|
||||
#define OBD_FTC_H
|
||||
|
||||
// Stub file for obd_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from obd_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace OcBaseDownload {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace OcBaseDownload
|
||||
|
||||
#endif // OBD_FTC_H
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace OSC {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace OSC {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace OSS {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace OSS {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ORE {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace ORE {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,43 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Implementierungen
|
||||
|
||||
#include <QtGlobal>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
||||
namespace OperatorManagement
|
||||
{
|
||||
|
||||
struct User
|
||||
{
|
||||
[[nodiscard]] qint32 id() const { return m_id; }
|
||||
[[nodiscard]] std::string name() const { return m_name; }
|
||||
|
||||
qint32 m_id = 0;
|
||||
std::string m_name;
|
||||
};
|
||||
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc
|
||||
{
|
||||
public:
|
||||
// Initialization methods
|
||||
void enableUser() {}
|
||||
void waitForHistoricalDataUser() {}
|
||||
|
||||
User user(qint32 id) const
|
||||
{
|
||||
// STUB-Implementierung - leerer User
|
||||
User u;
|
||||
u.m_id = id;
|
||||
u.m_name = "Unknown";
|
||||
return u;
|
||||
}
|
||||
};
|
||||
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace OperatorManagement
|
||||
@@ -1,21 +0,0 @@
|
||||
#ifndef OPM_FTC_H
|
||||
#define OPM_FTC_H
|
||||
|
||||
// Stub header for OperatorManagement FTC functionality
|
||||
// This file is part of FilterManagement which is excluded from build
|
||||
// For non-FilterManagement builds, we provide this stub
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QObject>
|
||||
|
||||
// Forward declarations and stubs for FTC (Filter/Translation/Conversion)
|
||||
// Actual implementation is in FilterManagement plugin
|
||||
|
||||
class OpmFtc
|
||||
{
|
||||
public:
|
||||
virtual ~OpmFtc() = default;
|
||||
// Stub methods - actual implementation in FilterManagement
|
||||
};
|
||||
|
||||
#endif // OPM_FTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PPM_DTC_H
|
||||
#define PPM_DTC_H
|
||||
|
||||
// Stub file for ppm_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from ppm_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace ParticipantManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace ParticipantManagement
|
||||
|
||||
#endif // PPM_DTC_H
|
||||
@@ -1,44 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// DDS-Stub-Header für ParticipantManagement FTC (Filter Topic Client)
|
||||
// Generiert für Qt6-Migration ohne RTI DDS
|
||||
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <Core/core_types.h>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <map>
|
||||
|
||||
namespace ParticipantManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
|
||||
class Ftc
|
||||
{
|
||||
public:
|
||||
class ModifyTypeReplyHandler
|
||||
{
|
||||
public:
|
||||
virtual ~ModifyTypeReplyHandler() = default;
|
||||
virtual void onModifyTypeReply(const Core::FunctionReplyObject &replyObject) = 0;
|
||||
};
|
||||
|
||||
Ftc() = default;
|
||||
virtual ~Ftc() = default;
|
||||
|
||||
virtual std::map<int32_t, Type> getTypes() const
|
||||
{
|
||||
return std::map<int32_t, Type>();
|
||||
}
|
||||
|
||||
virtual Type type(int32_t typeId) const
|
||||
{
|
||||
Type t;
|
||||
t.id = typeId;
|
||||
return t;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace ParticipantManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PED_DTC_H
|
||||
#define PED_DTC_H
|
||||
|
||||
// Stub file for ped_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from ped_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace PlanEditor {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace PlanEditor
|
||||
|
||||
#endif // PED_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PED_FTC_H
|
||||
#define PED_FTC_H
|
||||
|
||||
// Stub file for ped_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from ped_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace PlanEditor {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace PlanEditor
|
||||
|
||||
#endif // PED_FTC_H
|
||||
@@ -1,190 +0,0 @@
|
||||
/**
|
||||
* @file pre_dtc.h
|
||||
* @brief DDS-generated Stub-Header für PresentationManagement DTC (Data Transfer Component)
|
||||
*
|
||||
* Dieser Header ist ein Stub für den von RTI DDS Generator erzeugten Header.
|
||||
* Ermöglicht Build ohne echte DDS-Codegenerierung.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QString>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
namespace PresentationManagement
|
||||
{
|
||||
|
||||
// Forward declarations
|
||||
struct Presentation;
|
||||
struct PresentationContent;
|
||||
struct GetPresentationContentReply;
|
||||
|
||||
// FileStatus Enum - Status einer Präsentation
|
||||
enum class FileStatus : int { Valid = 0, Deleted = 1 };
|
||||
|
||||
// Presentation - DDS-generierter Typ für Präsentationen
|
||||
struct Presentation
|
||||
{
|
||||
int32_t id = 0;
|
||||
QString name;
|
||||
QString description;
|
||||
int32_t operatorId = 0;
|
||||
qint64 lastModified = 0;
|
||||
FileStatus fileStatus = FileStatus::Valid;
|
||||
};
|
||||
|
||||
// PresentationContent - Inhalt einer Präsentation
|
||||
struct PresentationContent
|
||||
{
|
||||
QString attributes;
|
||||
QString channel;
|
||||
QString description;
|
||||
int32_t duration = 0;
|
||||
double height = 0.0;
|
||||
int32_t id = 0;
|
||||
int32_t index = 0;
|
||||
int32_t presentationId = 0;
|
||||
QString presentationTopicType;
|
||||
qint64 startTime = 0;
|
||||
double width = 0.0;
|
||||
double x = 0.0;
|
||||
double y = 0.0;
|
||||
};
|
||||
|
||||
// GetPresentationContentReply - Reply für GetPresentationContent Request
|
||||
struct GetPresentationContentReply
|
||||
{
|
||||
QList<PresentationContent> content;
|
||||
};
|
||||
|
||||
namespace Interface
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief Dtc - Data Transfer Component für Presentation Management
|
||||
*
|
||||
* DDS-generierte Klasse mit Präsentation-Daten und Signalen für Änderungen.
|
||||
*/
|
||||
class Dtc : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Dtc() = default;
|
||||
~Dtc() override = default;
|
||||
|
||||
// Präsentations-Liste abrufen (Callback-basiert)
|
||||
void presentations(const std::function<void(const Presentation&)>& callback) const
|
||||
{
|
||||
for (const auto& p : m_presentations)
|
||||
{
|
||||
callback(p);
|
||||
}
|
||||
}
|
||||
|
||||
// Präsentations-Liste als QList (für direkten Zugriff)
|
||||
QList<Presentation> presentationsList() const
|
||||
{
|
||||
return m_presentations;
|
||||
}
|
||||
|
||||
// Präsentation hinzufügen/entfernen/ändern
|
||||
void addPresentation(const Presentation& p)
|
||||
{
|
||||
m_presentations.append(p);
|
||||
emit presentationChanged(p, 0); // 0 = added
|
||||
}
|
||||
|
||||
void updatePresentation(const Presentation& p)
|
||||
{
|
||||
for (auto& existing : m_presentations)
|
||||
{
|
||||
if (existing.id == p.id)
|
||||
{
|
||||
existing = p;
|
||||
emit presentationChanged(p, 1); // 1 = modified
|
||||
return;
|
||||
}
|
||||
}
|
||||
addPresentation(p);
|
||||
}
|
||||
|
||||
void removePresentation(int id)
|
||||
{
|
||||
for (auto it = m_presentations.begin(); it != m_presentations.end(); ++it)
|
||||
{
|
||||
if (it->id == id)
|
||||
{
|
||||
Presentation removed = *it;
|
||||
m_presentations.erase(it);
|
||||
emit presentationChanged(removed, 2); // 2 = removed
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Content getter/setter für PresentationContent
|
||||
void content(const std::function<void(const PresentationContent&)>& callback) const
|
||||
{
|
||||
for (const auto& c : m_content)
|
||||
{
|
||||
callback(c);
|
||||
}
|
||||
}
|
||||
|
||||
QList<PresentationContent> contentList() const
|
||||
{
|
||||
return m_content;
|
||||
}
|
||||
|
||||
void setContent(const QList<PresentationContent>& content)
|
||||
{
|
||||
m_content = content;
|
||||
}
|
||||
|
||||
signals:
|
||||
// Signal für Präsentations-Änderungen
|
||||
void presentationChanged(const Presentation& presentation, int modificationType);
|
||||
|
||||
private:
|
||||
QList<Presentation> m_presentations;
|
||||
QList<PresentationContent> m_content;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Ftc - Filter Topic Client für Presentation Management
|
||||
*
|
||||
* DDS-generierte Klasse für Presentation-Client-Operationen.
|
||||
*/
|
||||
class Ftc
|
||||
{
|
||||
public:
|
||||
using ModifyTypeReplyHandler = std::function<void(bool success)>;
|
||||
|
||||
virtual ~Ftc() = default;
|
||||
|
||||
/**
|
||||
* @brief Factory-Methode zur Erstellung einer Ftc-Instanz
|
||||
* @param connector DDS-Connector (wird im Stub ignoriert)
|
||||
* @return Shared Pointer zur Ftc-Instanz (nullptr im Stub)
|
||||
*/
|
||||
static std::shared_ptr<Ftc> create(void* /*connector*/)
|
||||
{
|
||||
return nullptr; // Stub returns nullptr - actual implementation requires DDS
|
||||
}
|
||||
|
||||
// PresentationModify Reply Handler
|
||||
virtual void presentationModifyReply(ModifyTypeReplyHandler handler) = 0;
|
||||
|
||||
// PresentationRemove Reply Handler
|
||||
virtual void presentationRemoveReply(ModifyTypeReplyHandler handler) = 0;
|
||||
|
||||
// GetPresentationContent Reply Handler
|
||||
virtual void getPresentationContentReply(const GetPresentationContentReply& reply) = 0;
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace PresentationManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PRE_FTC_H
|
||||
#define PRE_FTC_H
|
||||
|
||||
// Stub file for pre_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from pre_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace PresentationManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace PresentationManagement
|
||||
|
||||
#endif // PRE_FTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PDM_DTC_H
|
||||
#define PDM_DTC_H
|
||||
|
||||
// Stub file for pdm_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from pdm_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace ProjectDataManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace ProjectDataManagement
|
||||
|
||||
#endif // PDM_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef PDM_FTC_H
|
||||
#define PDM_FTC_H
|
||||
|
||||
// Stub file for pdm_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from pdm_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace ProjectDataManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace ProjectDataManagement
|
||||
|
||||
#endif // PDM_FTC_H
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace PWS {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace PWS {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_DTC_H
|
||||
#define _STUB_DTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace REC {
|
||||
class Dtc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef _STUB_FTC_H
|
||||
#define _STUB_FTC_H
|
||||
// Stub file for BUILD_GRANTLEE=OFF
|
||||
namespace REC {
|
||||
class Ftc {};
|
||||
}
|
||||
#endif
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace ReportManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace ReportManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef REP_FTC_H
|
||||
#define REP_FTC_H
|
||||
|
||||
// Stub file for rep_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from rep_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace ReportManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace ReportManagement
|
||||
|
||||
#endif // REP_FTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef RSC_DTC_H
|
||||
#define RSC_DTC_H
|
||||
|
||||
// Stub file for rsc_dtc.h - generated code placeholder
|
||||
// This file is auto-generated from rsc_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace RoutingServiceNG {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Dtc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace RoutingServiceNG
|
||||
|
||||
#endif // RSC_DTC_H
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef RSC_FTC_H
|
||||
#define RSC_FTC_H
|
||||
|
||||
// Stub file for rsc_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from rsc_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace RoutingServiceNG {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace RoutingServiceNG
|
||||
|
||||
#endif // RSC_FTC_H
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace TargetManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace TargetManagement
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef TGT_FTC_H
|
||||
#define TGT_FTC_H
|
||||
|
||||
// Stub file for tgt_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from tgt_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace TargetManagement {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace TargetManagement
|
||||
|
||||
#endif // TGT_FTC_H
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
||||
// Für die Migration erstellen wir minimale Forward-Declarations
|
||||
|
||||
namespace WarehouseGuez
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
} // namespace Interface
|
||||
} // namespace WarehouseGuez
|
||||
@@ -1,17 +0,0 @@
|
||||
#ifndef WHG_FTC_H
|
||||
#define WHG_FTC_H
|
||||
|
||||
// Stub file for whg_ftc.h - generated code placeholder
|
||||
// This file is auto-generated from whg_service.xml when BUILD_GRANTLEE=ON
|
||||
// For BUILD_GRANTLEE=OFF, this stub allows compilation to proceed
|
||||
|
||||
namespace WarehouseGuez {
|
||||
namespace Dds {
|
||||
|
||||
// Forward declarations - actual definitions in generated code
|
||||
class Ftc;
|
||||
|
||||
} // namespace Dds
|
||||
} // namespace WarehouseGuez
|
||||
|
||||
#endif // WHG_FTC_H
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Export definitions
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, SLSE, 2015-08-04
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#ifndef SAATELEGRAMS_EXPORT
|
||||
# ifdef BUILD_STATIC_LIBRARIES
|
||||
# define SAATELEGRAMS_EXPORT
|
||||
# else
|
||||
# if defined(MAKE_SAATELEGRAMS_LIB)
|
||||
# define SAATELEGRAMS_EXPORT Q_DECL_EXPORT
|
||||
# else
|
||||
# define SAATELEGRAMS_EXPORT Q_DECL_IMPORT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
@@ -1,104 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* AesHandler for AdlerJson Plugin
|
||||
* $Id: aes_handler.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Core/core_types.h"
|
||||
#include "logger.h"
|
||||
#include "main_dispatcher.h"
|
||||
#include "telegrams.h"
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QUrl>
|
||||
#include <AreaEffectSimulation/aes_dtc.h>
|
||||
#include <AreaEffectSimulation/aes_ftc.h>
|
||||
#include <LtsUtils/LtsUtilsCore/data_modification_enum.h>
|
||||
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class AesHandler
|
||||
: public QObject
|
||||
, protected AreaEffectSimulation::Interface::Ftc::AirSupportImpactModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::OffRouteMineModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::EffectClusterModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::TrajectoryAdlerModifyReplyHandler
|
||||
, protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AesHandler(std::shared_ptr<TrainingAreaBase::Interface::Fts> ftsTab, QObject *parent = nullptr);
|
||||
|
||||
bool init(MainDispatcher *mainDispatcher);
|
||||
bool sendAesModifyRequest(const QJsonObject &obj);
|
||||
bool sendExplosionArea(const QJsonObject &data);
|
||||
// DDS Overrides
|
||||
void onAirSupportImpactModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onOffRouteMineModifyReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
void onEffectClusterModifyReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
|
||||
// Internal
|
||||
void onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType);
|
||||
void onEffectClusterChanged(const AreaEffectSimulation::EffectCluster &data, DataModification modType);
|
||||
|
||||
void handleCreateSingleExplosion(const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data);
|
||||
void handleEXFire(const Feuerkampfdaten &data, int wsId);
|
||||
void handleEXDontFire(const Feuerkampfdaten &data, int wsId);
|
||||
// Reald Data
|
||||
void sendTrajectoryAdlerModifyRequest(const WirkfeldplanungData &data, int participantId, int wirkmittelIndex, int aesId);
|
||||
void handleEffectCluster(const WirkfeldplanungData &data, int wsId);
|
||||
|
||||
//
|
||||
void removeAllPendingEffectCluster(int partyId);
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Dtc> getDtc() { return m_dtcAes; };
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> getFtc() { return m_ftcAes; };
|
||||
|
||||
private:
|
||||
AreaEffectSimulation::Area createMinimumRect(int zone, const QVector<QPointF> &points);
|
||||
|
||||
signals:
|
||||
void explosionSingleChanged(const QJsonObject &jsonObj);
|
||||
|
||||
private:
|
||||
QList<qint32> findAllPendingEffectCluster(int partyId);
|
||||
void handleAmmoCount(const Feuerkampfdaten &data, int saaPartyId, bool sendExVollzug = false);
|
||||
|
||||
private:
|
||||
MainDispatcher *m_mainDispatcher;
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> m_ftcAes;
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Dtc> m_dtcAes;
|
||||
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtcPpm;
|
||||
std::shared_ptr<TrainingAreaBase::DdsHandler> m_ddsHandler;
|
||||
|
||||
void onTrajectoryAdlerModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
LtsUtils::RequestHelper *m_requestHelper;
|
||||
|
||||
QHash<int, AreaEffectSimulation::AesEffectState> m_singleExplosions;
|
||||
|
||||
WirkfeldplanungData m_wirkfeldPlanungsData;
|
||||
QHash<int, QString> m_aesIdToFeuerkampfReferenz; // key = aesId, value = feuerkampfReferenz
|
||||
|
||||
QHash<QString, int> m_feuerkampReferenzAmmoCounter; // key = feuerkampfReferenz, value = AmmoCounter
|
||||
QHash<QString, std::vector<ProjectDataManagement::L27_EffectorId>> m_feuerkampfReferenzWirkmittel; // key = feuerkampfReferenz, value = Kenner
|
||||
QHash<QString, bool> m_feuerkampfReferenzUsedFeuerHalt; // key = feuerkampfReferenz, value = boolean -> if Feuerhalt was activ
|
||||
|
||||
int m_participantId;
|
||||
int m_wirkmittelIndex;
|
||||
int m_aesId;
|
||||
QHash<int, int> aesIdWsId; // key = aesId value = wsId
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,50 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* $Id: $
|
||||
* $HeadURL: $
|
||||
* $Author: $
|
||||
* Created by Steve K., ESZS 12-01-2026
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "logger.h"
|
||||
#include <AssetManagement/asm_dtc.h>
|
||||
#include <AssetManagement/asm_ftc.h>
|
||||
#include "main_dispatcher.h"
|
||||
#include <QtCore/QObject>
|
||||
|
||||
namespace AssetManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
}
|
||||
}
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class AsmHandler : public QObject
|
||||
, protected AssetManagement::Interface::Ftc::AssetModifyReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AsmHandler(QObject *parent = nullptr);
|
||||
bool init(MainDispatcher* mainDispatcher);
|
||||
|
||||
std::shared_ptr<AssetManagement::Interface::Dtc> getDtc() { return m_dtcAsm; }
|
||||
std::shared_ptr<AssetManagement::Interface::Ftc> getFtc() { return m_ftcAsm; }
|
||||
void modifyAssetAdlerProperties(int assetId, bool isSaaConnected = false);
|
||||
private:
|
||||
void onAssetModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<AssetManagement::Interface::Dtc> m_dtcAsm;
|
||||
std::shared_ptr<AssetManagement::Interface::Ftc> m_ftcAsm;
|
||||
int m_exerciseId;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,67 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* FlmHandler for UFomHlaJson Plugin
|
||||
* $Id: pdm_handler.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/UFomHlaJson/pdm_handler.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "logger.h"
|
||||
#include <QtCore/QObject>
|
||||
#include <Lts/Services/FileManagement/flm_ftc.h>
|
||||
#include <NotificationManagement/nom_ftc.h>
|
||||
#include <NotificationManagement/nom_ftc_types.h>
|
||||
#include <OperatorManagement/opm_data_plugin_interface.h>
|
||||
#include <TrainingAreaBase/dds_handler.h>
|
||||
|
||||
namespace FileManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
}
|
||||
} // namespace FileManagement
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class FlmHandler
|
||||
: public QObject
|
||||
, protected FileManagement::Interface::Ftc::FileContentModifyReplyHandler
|
||||
, protected FileManagement::Interface::Ftc::PathCreateReplyHandler
|
||||
, protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit FlmHandler(QObject *parent = nullptr);
|
||||
|
||||
bool processHQMessage(int partyId, const QString &name, int meldungsnummer, const QJsonObject &obj);
|
||||
void createHQNotification(const int partyId, const int folderId, const int fileId);
|
||||
signals:
|
||||
public slots:
|
||||
bool init(MainDispatcher *mainDispatcher);
|
||||
void initHQFolders(int partyId);
|
||||
|
||||
private:
|
||||
void onFileContentModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onPathCreateReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject) override final;
|
||||
bool parseContent(const QString &contentString, QMap<QString, QString> &retMap);
|
||||
|
||||
private:
|
||||
MainDispatcher *m_mainDispatcher = nullptr;
|
||||
int m_exerciseId;
|
||||
int m_parentFolderId;
|
||||
int m_partyId;
|
||||
int m_folderHXMessagesId;
|
||||
std::shared_ptr<FileManagement::Interface::Dtc> m_dtcFlm;
|
||||
std::shared_ptr<FileManagement::Interface::Ftc> m_ftcFlm;
|
||||
std::shared_ptr<NotificationManagement::Interface::Ftc> m_ftcNom;
|
||||
std::shared_ptr<OperatorManagement::Interface::Dtc> m_opmDtc;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,54 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "telegrams.h"
|
||||
|
||||
class GenerateTelegrams
|
||||
{
|
||||
public:
|
||||
GenerateTelegrams();
|
||||
|
||||
static void SAATELEGRAMS_EXPORT addHeaderData(AdlerJson::EXTelegramBase &tele, const int saaId, const QString referenceUuid = QString{});
|
||||
static void SAATELEGRAMS_EXPORT generateConnectResponseMessage(AdlerJson::ExAnmeldebestaetigung &exAnmeldebestaetigung);
|
||||
static void SAATELEGRAMS_EXPORT generateConnectMessage(AdlerJson::EXRegistration &exRegistration, int partyId, bool isVerbund = true);
|
||||
static void SAATELEGRAMS_EXPORT generateDisconnectMessage(AdlerJson::EXDeregistration &eXDeregistration, int partyId);
|
||||
static void SAATELEGRAMS_EXPORT generateStatusMessage(AdlerJson::EXStatus &exStatus, AdlerJson::Szenarstatus status);
|
||||
static void SAATELEGRAMS_EXPORT generateConnectionTestMessage();
|
||||
static void SAATELEGRAMS_EXPORT generateAbmeldung(AdlerJson::EXDeregistration &req);
|
||||
static void SAATELEGRAMS_EXPORT generateZeit1(AdlerJson::Zeitangabe_DTG &zeit);
|
||||
static void SAATELEGRAMS_EXPORT generateZeit2(AdlerJson::Zeitangabe_DTG &zeit);
|
||||
|
||||
// fire
|
||||
static void SAATELEGRAMS_EXPORT generateZieldaten(AdlerJson::Zieldaten &wzd);
|
||||
static void SAATELEGRAMS_EXPORT generateWirkmittelFeuerkommando_Gmlrs(QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfr);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK_Gmlrs(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK_Dm72(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerbereit(AdlerJson::ExFeuerbereit &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern_Gmlrs(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern_Dm72(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateNichtFeuern(AdlerJson::exNichtFeuern &req);
|
||||
|
||||
static void SAATELEGRAMS_EXPORT generateAbgefeuert(AdlerJson::ExAbgefeuert &req);
|
||||
static void SAATELEGRAMS_EXPORT generateVollzugsmeldung(AdlerJson::ExVollzugsmeldung &req);
|
||||
// static void SAATELEGRAMS_EXPORT generateErkundungsanfrage(AdlerJson::ExErkundungsanfrage &req);
|
||||
static void SAATELEGRAMS_EXPORT generateErkundungsergebnisse(AdlerJson::ExErkundungsergebnisse &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerkampf(AdlerJson::ExFeuerkampf &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerhalt(AdlerJson::ExFeuerhalt &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungFS(AdlerJson::ExFeuerstellungFS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS_Gmlrs(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS_Dm72(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungLP(AdlerJson::ExFeuerstellungLP &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungswechsel(AdlerJson::ExStellungswechsel &req);
|
||||
static void SAATELEGRAMS_EXPORT generateKoordinierungsmassnahmen(AdlerJson::ExHqKoordinierungsmassnahmen &req);
|
||||
static void SAATELEGRAMS_EXPORT generateKoordinierungsmassnahmen_EX_L25(AdlerJson::ExHqKoordinierungsmassnahmen &req,
|
||||
ProjectDataManagement::L25_KindGuidingLine kind, int i);
|
||||
static void SAATELEGRAMS_EXPORT generateFuehrungslinien(AdlerJson::ExHqFuehrungslinien &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFuehrungslinien_EX_L24(AdlerJson::ExHqFuehrungslinien &req, AdlerJson::Art_L24 art24, int meldungsnummer);
|
||||
static void SAATELEGRAMS_EXPORT generateTechnischeQuittung(AdlerJson::ExTqTechnischeQuittung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFreitextmeldung(AdlerJson::ExAqFreitextmeldung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateManuelleQuittung(AdlerJson::ExMqManuelleQuittung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFlugbahnberechnung(AdlerJson::ExFlugbahnberechnung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFlugbahndaten(AdlerJson::ExFlugbahndaten &req);
|
||||
};
|
||||
@@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
class InterfaceController
|
||||
{
|
||||
public:
|
||||
InterfaceController();
|
||||
|
||||
public Q_SLOTS:
|
||||
void onRegistration();
|
||||
void onDeregistration();
|
||||
|
||||
void onNewConnection();
|
||||
void onWebSocketDisconnected();
|
||||
void onTextMessageReceived(const QByteArray &baJson);
|
||||
};
|
||||
@@ -1,158 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* HlaDispatcher for AdlerJson Plugin
|
||||
* $Id: hla_dispatcher.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/hla_dispatcher.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtWebSockets/QWebSocket>
|
||||
#include <Core/core_types.h> // tr_lts
|
||||
#include <TrainingAreaBase/tab_plugin_interface.h>
|
||||
// #include "logger.h"
|
||||
#include "aes_handler.h"
|
||||
#include "asm_handler.h"
|
||||
#include "flm_handler.h"
|
||||
#include "pdm_handler.h"
|
||||
#include "ppm_handler.h"
|
||||
#include "saa_interface.h"
|
||||
#include "telegrams.h"
|
||||
#include "ws_interface.h"
|
||||
|
||||
// #include <NotificationManagement/nom_ftc.h>
|
||||
#include <NotificationManagement/nom_enums.hpp>
|
||||
// #include <TrainingAreaBase/tab_dts.h>
|
||||
// #include <TrainingAreaBase/tab_fts.h>
|
||||
|
||||
class QTimer;
|
||||
namespace AdlerJson
|
||||
{
|
||||
using namespace TrainingAreaBase;
|
||||
class JsonHandlerRx;
|
||||
class JsonHandlerTx;
|
||||
class DdsHandler;
|
||||
// class EXStatus;
|
||||
|
||||
struct TrajectoryIdentifier
|
||||
{
|
||||
int aesItemId;
|
||||
int explosionId;
|
||||
};
|
||||
|
||||
class JsonDispatcher final
|
||||
: public TrainingAreaBase::Plugin::Interface
|
||||
, protected TrainingAreaBase::Interface::Fts::AdlerCalculateTrajectoryRequestHandler
|
||||
, protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
JsonDispatcher(TrainingAreaBase::Plugin::DataProvider *pdp,
|
||||
const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
||||
const std::shared_ptr<TrainingAreaBase::TxMixin> &sendToTabCb,
|
||||
NGL::Settings *settings,
|
||||
std::shared_ptr<TrainingAreaBase::DdsHandler> &ddsHandler,
|
||||
std::shared_ptr<FlmHandler> &flmHandler,
|
||||
MainDispatcher *mainDispatcher);
|
||||
|
||||
public Q_SLOTS:
|
||||
bool init() override;
|
||||
|
||||
public:
|
||||
std::shared_ptr<TrainingAreaBase::SendToTab> sendToTab() override;
|
||||
bool isDebugInterface() const override { return false; }
|
||||
bool canSendData() const override;
|
||||
void exerciseChanged() override { return; }
|
||||
const char *name() const override { return tr_lts("dds", "APHLA"); }
|
||||
std::shared_ptr<SAAInterface> getSAAByParty(const int partyId);
|
||||
std::shared_ptr<SAAInterface> getSAAByWs(const int wsId);
|
||||
QString getSender() { return QStringLiteral("EXCON@GUEZ.DE"); }
|
||||
// SendToTele
|
||||
bool sendExFeuerbereit(const ExFeuerbereit &exFBDataIn, const int partyId);
|
||||
bool sendExAbgefeuert(const ExAbgefeuert &exAFDataIn, int partyId);
|
||||
bool sendExMqManuelleQuittung(const ExMqManuelleQuittung &exMQDataIn, int partyId);
|
||||
bool sendExTqTechnischeQuittung(const ExTqTechnischeQuittung &exTQDataIn, int partyId);
|
||||
bool sendExVollzugsmeldung(const ExVollzugsmeldung &exVZDataIn, int partyId);
|
||||
void onAdlerCalculateTrajectoryRequest(const rti::core::SampleIdentity &cookie, const TrainingAreaBase::AdlerCalculateTrajectoryRequest &request) override;
|
||||
int getAssetId(const QString &saaName) const;
|
||||
// misc
|
||||
void cleanupSaaInterfaces(const QString &saaName, int wsId, int partyId);
|
||||
void getCreateNotificationRequestData(const int wsId,
|
||||
const QString &title,
|
||||
NotificationManagement::CreateNotification &data,
|
||||
const QString &content = {},
|
||||
const QStringList &contentArgs = {});
|
||||
void createNotificationRequest(const int wsId, const QString &title, const NotificationManagement::MessageType messageType, const NotificationManagement::NotificationType notificationType, const QString &content = {}, const QStringList &contentArgs = {});
|
||||
|
||||
public Q_SLOTS:
|
||||
void onSAARegistration(const int wsId, const int partyId, const QString &saaName, const QString &szenarName, bool isVerbund, const QString &uuid);
|
||||
void onSAADeregistration(const int wsId, const int partyId);
|
||||
void onSAAConnectionTest(const int wsId, const QString &uuid);
|
||||
void onSAAStatus(const int wsId, const EXStatus &status);
|
||||
void onSAAExceptionStatus(const int wsId, const TechnischeDaten &exceptionStatus);
|
||||
void onSAASQWS(const int wsId, const Waffensystemdaten &exSQWS);
|
||||
void onSAASQFS(const int wsId, const Feuerstellungsdaten &exSQFS);
|
||||
void onSAASQLP(const int wsId, const Ladeplatzdaten &exSQLP);
|
||||
void onSAAHXGuidingLines(const int wsId, const Koordinierungsdaten &koordinierungsdaten);
|
||||
void onSAAHXGuidingLinesAndBoundaries(const int wsId, const Fuehrungsdaten &fuehrungsdaten);
|
||||
void onSSAEXFIREHALT(const int wsId, const FeuerHaltDaten &feuerhaltdaten);
|
||||
void onSAATrajectoryData(const int wsId, const Flugbahndaten &exFlugbahndaten, const QString referenceUuid);
|
||||
|
||||
void onWebSocketConnected();
|
||||
void onNewWebsocketConnected(const int wsId, const QString &address, qint16 port);
|
||||
void onWSDisconnected(const int wsId);
|
||||
void onWebsocketExternalConnectionStateChanged(bool bConnected);
|
||||
void onWebSocketError();
|
||||
void onRecivedTelegram(int wsId, const QJsonObject &telegramData);
|
||||
void onTextMessageReceived(const QByteArray &message);
|
||||
void connectWebsocket();
|
||||
void reallyConnectWebsocket() { connectWebsocket(); }
|
||||
|
||||
void onKeepAliveTimerTimeout();
|
||||
void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject);
|
||||
Q_SIGNALS:
|
||||
void broadcastTelegramsRequest(const int equipmentNumber, const int broadcastIndex, const int resetCounter);
|
||||
void jsonTelegramReceived(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tele);
|
||||
void websocketConnected(quint16 port);
|
||||
|
||||
private:
|
||||
QUrl webSocketUrl() const;
|
||||
bool isConnectionTest(QJsonDocument &doc);
|
||||
QString getParticipantInfoLink(const QString &verein, const int partyId, const bool isVerbund);
|
||||
|
||||
std::shared_ptr<SAAInterface> getSAAByName(const QString &saaName);
|
||||
|
||||
private:
|
||||
std::shared_ptr<TrainingAreaBase::RecvFromTab> m_recvFromTabCb;
|
||||
std::shared_ptr<JsonHandlerRx> m_recvFromWebsocket;
|
||||
std::shared_ptr<JsonHandlerTx> m_sendToWebsocket;
|
||||
// DDS
|
||||
MainDispatcher *m_mainDispatcher;
|
||||
std::shared_ptr<FlmHandler> m_flmHandler;
|
||||
std::shared_ptr<PpmHandler> m_ppmHandler;
|
||||
|
||||
std::shared_ptr<TrainingAreaBase::Interface::Fts> m_ftsTab;
|
||||
std::shared_ptr<TrainingAreaBase::Interface::Dts> m_dtsTab;
|
||||
std::shared_ptr<NotificationManagement::Interface::Ftc> m_ftcNom;
|
||||
|
||||
QVector<std::shared_ptr<SAAInterface>> m_saaInterfaces;
|
||||
QMap<int, QTimer *> m_connectionKeepaliveTimer;
|
||||
|
||||
QHash<QString, TrajectoryIdentifier> m_trajectoryIdentifier; // key = exFlugbahnberechnung.uuid
|
||||
QHash<QString, Core::GeoPosition> m_positionsLaunch; // key = exFlugbahnberechnung.uuid
|
||||
|
||||
NGL::Settings *m_settings;
|
||||
QWebSocket *m_webSocket;
|
||||
std::shared_ptr<TrainingAreaBase::WebSocketInterface> m_webSocketInterface;
|
||||
QTimer *m_webSocketReconnectTimer;
|
||||
bool m_bWarnedOnce;
|
||||
rti::core::SampleIdentity m_cookieCalculateTrajectoryAdler;
|
||||
int m_explosionIndex;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,59 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* JsonHandlerRx for AdlerJson Plugin
|
||||
* $Id: hla_handler_rx.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/hla_handler_rx.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <TrainingAreaBase/recv_from_tab.h>
|
||||
#include <TrainingAreaBase/tx_mixin.h>
|
||||
#include <TrainingAreaBase/tab_plugin_interface.h>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QString>
|
||||
#include <memory>
|
||||
#include "logger.h"
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
class AesHandler;
|
||||
class PpmHandler;
|
||||
class JsonDispatcher;
|
||||
class JsonHandlerRx : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit JsonHandlerRx(const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
||||
const std::shared_ptr<TrainingAreaBase::TxMixin> &sendToTabCb,
|
||||
JsonDispatcher *dispatcher,
|
||||
AesHandler *aesHandler,
|
||||
PpmHandler *ppmHandler);
|
||||
|
||||
bool handleTelegram (const QByteArray &baJson );
|
||||
bool handleTelegram (TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tabTele);
|
||||
bool handleTelegram (int wsId, const QJsonObject& telegram, int &errorcode);
|
||||
Q_SIGNALS:
|
||||
void participantConnectionState(int equipmentNumber, bool dataCommunicationPossible);
|
||||
private:
|
||||
template<typename T>
|
||||
void rxData (const T &data );
|
||||
|
||||
template<typename T>
|
||||
void txData (const T &data );
|
||||
|
||||
bool checkExercise (int equipmentNumber) const;
|
||||
private:
|
||||
std::shared_ptr<TrainingAreaBase::RecvFromTab> m_rxHandler;
|
||||
std::shared_ptr<TrainingAreaBase::TxMixin> m_txHandler;
|
||||
JsonDispatcher *m_dispatcher;
|
||||
bool m_bWarnedOnce;
|
||||
bool m_bWarnedOnceTx;
|
||||
AesHandler *m_aesHandler;
|
||||
PpmHandler *m_ppmHandler;
|
||||
LOGGER_T m_logger;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,107 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* HlaHandlerTx for AdlerJson Plugin
|
||||
* $Id: hla_handler_tx.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/hla_handler_tx.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ppm_handler.h"
|
||||
#include "pdm_handler.h"
|
||||
#include "logger.h"
|
||||
//#include "ws_handler.h"
|
||||
#include "ws_interface.h"
|
||||
#include <TrainingAreaBase/send_to_tab.h>
|
||||
#include <TrainingAreaBase/recv_from_tab.h>
|
||||
#include <TrainingAreaBase/tab_plugin_interface.h>
|
||||
#include <QtCore/QHash>
|
||||
|
||||
class QWebSocket;
|
||||
class PpmHandler;
|
||||
class PdmHandler;
|
||||
class AesHandler;
|
||||
namespace AdlerJson
|
||||
{
|
||||
class JsonHandlerTx final : public QObject, public TrainingAreaBase::SendToTab
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit JsonHandlerTx(TrainingAreaBase::Plugin::DataProvider *pdp, MainDispatcher *mainDispatcher);
|
||||
|
||||
void onWebSocketConnected (QWebSocket *webSocket);
|
||||
void onWebSocketDisconnected ( );
|
||||
void onWebsocketConnectedToExternalSystem (bool bConnected );
|
||||
void setWSInterface(std::shared_ptr<TrainingAreaBase::WebSocketInterface> wsInterface) {m_wsInterface = wsInterface;};
|
||||
|
||||
const char *name () const override { return "ApAdler"; }
|
||||
void resetSendCounter () override;
|
||||
|
||||
HandleState canHandleTelegram (int equipmentNumber, int telegramId) const override;
|
||||
|
||||
bool txData (const TrainingAreaBase::TetraIcd::Acknowledge &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DemandBite &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::Init &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::SetVulnerabilityModel &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DemandEquipmentConfigurationReport &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DemandVulnerabilityStateChange &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::LanguageSelection &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::EquipmentMessage &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::EquipmentMessageOC &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateAreaExplosion &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateMineArea &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::MineAreaSingleMineState &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateNContamination &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateCContamination &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DeactivateEffectSimulation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ModifyAreaEffectSimulationName &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::PauseEffectSimulation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ResumeEffectSimulation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::MineTriggered &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DusMineReactivation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateFunctionalArea &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CreateDusSingleMine &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExerciseEnvironmentData &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExerciseStateData &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::OpaquePayloadDataOut &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ParticipantSwVersionsRequest &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CesHitInformation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::TechnicalArea &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::CesHitRequest &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ParticipantMode &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DemandParticipantMode &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ParticipantConfiguration &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::DemandParticipantConfiguration &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExerciseEquipmentAssignmentComplete &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::Sanitation &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::SelectiveReammunition &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::SetDevicePowerRequest &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::OcCommand &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::UAVPerformMission &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::UAVChangeState &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExFireReadiness &data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExFiredReport&data) override;
|
||||
bool txData (const TrainingAreaBase::TetraIcd::ExConfirmationReport &data) override;
|
||||
|
||||
QHash<int, bool> dataCommunicationPossible() const;
|
||||
public slots:
|
||||
void onParticipantConnectionState (const int equipmentNumber, const bool dataCommunicationPossible);
|
||||
void onGenericTelegram (const QJsonObject &telegram);
|
||||
void onGenericTelegram1 (const int wsId, const QJsonObject &telegram);
|
||||
private:
|
||||
bool sendToTx(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, const bool bForce = false);
|
||||
private:
|
||||
TrainingAreaBase::Plugin::DataProvider *m_pdp;
|
||||
QHash<int, bool> m_dataCommunicationPossible; // equioNo, reachable
|
||||
MainDispatcher *m_mainDispatcher;
|
||||
QWebSocket *m_webSocket;
|
||||
std::shared_ptr<TrainingAreaBase::WebSocketInterface> m_wsInterface;
|
||||
bool m_bWebsocketConnectedToExternalSystem;
|
||||
LOGGER_T m_logger;
|
||||
|
||||
};
|
||||
|
||||
}// namespace AdlerJson
|
||||
@@ -1,23 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Logger for AdlerJson Plugin
|
||||
* $Id: logger.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/logger.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <NGLLogger/INGLLogger.h>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
using LOGGER_T = NGL::INGLLogger&;
|
||||
|
||||
LOGGER_T getLogger(const char *name);
|
||||
inline LOGGER_T getLogger(const QString &loggerName)
|
||||
{
|
||||
return getLogger(loggerName.toUtf8().constData());
|
||||
}
|
||||
} // namespace AdlerJson
|
||||
@@ -1,84 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* MainDispatcher for AdlerJson Plugin
|
||||
* $Id: main_dispatcher.h 62899 2024-05-29 11:08:50Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <TrainingAreaBase/tab_plugin_interface.h>
|
||||
#include <Core/core_types.h> // tr_lts
|
||||
#include <TrainingAreaBase/dds_handler.h>
|
||||
//#include "logger.h"
|
||||
#include "ppm_handler.h"
|
||||
#include "pdm_handler.h"
|
||||
#include "aes_handler.h"
|
||||
#include "flm_handler.h"
|
||||
#include "asm_handler.h"
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
class JsonDispatcher;
|
||||
class PpmHandler;
|
||||
class PdmHandler;
|
||||
class AesHandler;
|
||||
class FlmHandler;
|
||||
class AsmHandler;
|
||||
|
||||
class MainDispatcher final : public TrainingAreaBase::Plugin::Interface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainDispatcher( TrainingAreaBase::Plugin::DataProvider *pdp,
|
||||
const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
||||
const std::shared_ptr<TrainingAreaBase::TxMixin> &sendToTabCb,
|
||||
const std::shared_ptr<TrainingAreaBase::DdsHandler> &ddsHandler,
|
||||
NGL::Settings *settings);
|
||||
~MainDispatcher();
|
||||
|
||||
std::shared_ptr<PpmHandler> ppmHandler() const { return m_ppmHandler; }
|
||||
std::shared_ptr<PdmHandler> pdmHandler() const { return m_pdmHandler; }
|
||||
std::shared_ptr<AesHandler> aesHandler() const { return m_aesHandler; }
|
||||
std::shared_ptr<AsmHandler> asmHandler() const { return m_asmHandler; }
|
||||
JsonDispatcher* jsonDispatcher() const { return m_adlerDispatcher; }
|
||||
std::shared_ptr<TrainingAreaBase::DdsHandler> ddsHandler() const { return m_ddsHandler; }
|
||||
|
||||
int exerciseId() const { return m_exerciseId; }
|
||||
|
||||
public slots:
|
||||
bool init() override;
|
||||
void onWebsocketConnected(quint16 port);
|
||||
|
||||
public:
|
||||
std::shared_ptr<TrainingAreaBase::SendToTab> sendToTab() override;
|
||||
bool canSendData () const override;
|
||||
void exerciseChanged () override;
|
||||
bool isDebugInterface () const override { return false; }
|
||||
const char *name () const override { return tr_lts("dds", "ApHlaJson"); }
|
||||
|
||||
private:
|
||||
JsonDispatcher *m_adlerDispatcher;
|
||||
|
||||
std::shared_ptr<TrainingAreaBase::RecvFromTab> m_recvFromTabCb;
|
||||
const std::shared_ptr<TrainingAreaBase::TxMixin> m_sendToTab;
|
||||
std::shared_ptr<TrainingAreaBase::SendToTab> m_mainHandlerTx;
|
||||
TrainingAreaBase::Plugin::DataProvider *m_pdp;
|
||||
|
||||
NGL::Settings *m_settings;
|
||||
|
||||
std::shared_ptr<PpmHandler> m_ppmHandler;
|
||||
std::shared_ptr<PdmHandler> m_pdmHandler;
|
||||
std::shared_ptr<AesHandler> m_aesHandler;
|
||||
std::shared_ptr<FlmHandler> m_flmHandler;
|
||||
std::shared_ptr<AsmHandler> m_asmHandler;
|
||||
std::shared_ptr<TrainingAreaBase::DdsHandler> m_ddsHandler;
|
||||
|
||||
int m_domainId;
|
||||
int m_exerciseId;
|
||||
};
|
||||
} // namespace AdlerJson
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* PdmHandler for AdlerJson Plugin
|
||||
* $Id: pdm_handler.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/pdm_handler.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "main_dispatcher.h"
|
||||
#include "logger.h"
|
||||
#include <TrainingAreaBase/dds_handler.h>
|
||||
#include <ProjectDataManagement/pdm.hpp>
|
||||
#include <ProjectDataManagement/pdm_dtc.h>
|
||||
#include <LtsUtils/LtsUtilsCore/data_modification_enum.h>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtCore/QDateTime>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class PdmHandler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PdmHandler(QObject *parent = nullptr);
|
||||
void getChargeTypes();
|
||||
std::shared_ptr<ProjectDataManagement::Interface::Dtc> getDtc() { return m_dtcPdm; }
|
||||
signals:
|
||||
void sendChargeTypes(QJsonObject jsonObj);
|
||||
public slots:
|
||||
bool init(MainDispatcher* mainDispatcher);
|
||||
|
||||
private:
|
||||
|
||||
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_dtcPdm;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* TabAdlerPlugin for AdlerJson Plugin
|
||||
* $Id: plugin.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/plugin.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "TrainingAreaBase/dds_handler.h"
|
||||
#include <QtCore/QObject>
|
||||
#include <TrainingAreaBase/tab_plugin_interface.h>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
class TabAdlerPlugin : public QObject, public TrainingAreaBase::Plugin::Plugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "special:3:tab.aphla")
|
||||
Q_INTERFACES(TrainingAreaBase::Plugin::Plugin)
|
||||
public:
|
||||
TabAdlerPlugin() = default;
|
||||
~TabAdlerPlugin() = default;
|
||||
std::shared_ptr<TrainingAreaBase::Plugin::Interface> createInterface(TrainingAreaBase::Plugin::DataProvider *pdp,
|
||||
const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
|
||||
const std::shared_ptr<TrainingAreaBase::TxMixin> &sendToTab,
|
||||
const std::shared_ptr<TrainingAreaBase::DdsHandler> &ddsHandler,
|
||||
NGL::Settings *settings) override;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,111 +0,0 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* PpmHandler for AdlerJson Plugin
|
||||
* $Id: ppm_handler.h 62899 2024-05-29 11:08:50Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ppm_handler.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Core/core.hpp"
|
||||
#include "main_dispatcher.h"
|
||||
#include "logger.h"
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm_ftc.h>
|
||||
#include <LtsUtils/LtsUtilsCore/data_modification_enum.h>
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QHash>
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <telegrams.h>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class PpmHandler
|
||||
: public QObject
|
||||
, protected ParticipantManagement::Interface::Ftc::ModifyParticipantDataReplyHandler
|
||||
, protected ParticipantManagement::Interface::Ftc::ModifyPartyDataReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PpmHandler(QObject *parent = nullptr);
|
||||
bool init(MainDispatcher* mainDispatcher);
|
||||
void getParticipants();
|
||||
bool isEqNumberInExercise(const int equipmentNumber) const;
|
||||
|
||||
|
||||
std::shared_ptr<ParticipantManagement::Interface::Dtc> getDtc() { return m_dtcPpm; }
|
||||
std::shared_ptr<ParticipantManagement::Interface::Ftc> getFtc() { return m_ftcPpm; }
|
||||
|
||||
void onCreateParticipant();
|
||||
|
||||
// ModifyParticipantDataRequestHandler interface
|
||||
void onModifyParticipantDataReply(const Core::FunctionReply &reply);
|
||||
void onModifyPartyDataReply(const Core::FunctionReply &reply);
|
||||
void modifyPartyAdlerProperties(const int wsId, const int assetId, const int partyId, const QString &saaName, const QString &szenarName,
|
||||
const ParticipantManagement::ConnectState &connectState, const bool isVerbund);
|
||||
|
||||
//parse functions that trigger other services
|
||||
void parseSQFS(const Feuerstellungsdaten &exSQFS, const int wsId);
|
||||
void parseSQWS(const Waffensystemdaten &exSQWS, const int wsId);
|
||||
void parseSQLP(const Ladeplatzdaten &exSQLP, const int wsId);
|
||||
|
||||
void removeAllSAAParticipants(const int partyId);
|
||||
ParticipantManagement::Participant findParticipantByInternalName(const QString &internalName, const int partyId, const bool isVerbund);
|
||||
|
||||
signals:
|
||||
void participantChanged(const QJsonObject &jsonObj);
|
||||
void participantUnmount(const QJsonObject &jsonObj);
|
||||
void participantMount(const QJsonObject &jsonObj);
|
||||
|
||||
private slots:
|
||||
void onPartyChanged(const ParticipantManagement::Party &data, DataModification modType);
|
||||
void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType);
|
||||
void onParticipantPositionChanged(const ParticipantManagement::ParticipantPosition &data, DataModification modType);
|
||||
void onDynamicParticipantDataChanged(const ParticipantManagement::DynamicParticipantData &data, DataModification modType);
|
||||
void onSendParticipantDataTimeout();
|
||||
private:
|
||||
void handleParticipantPositionChangedExternal(const ParticipantManagement::ParticipantPosition &position);
|
||||
void handleParticipantPositionChangedInternal(const ParticipantManagement::ParticipantPosition &position);
|
||||
|
||||
void sendParticipantMount(const ParticipantManagement::Participant &part, const ParticipantManagement::Participant &partToBeMounted);
|
||||
void sendParticipantUnmount(const ParticipantManagement::Participant &participant);
|
||||
void sendParticipantPositionChanged(const ParticipantManagement::ParticipantPosition &position);
|
||||
void onModifyParticipantDataReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onModifyPartyDataReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
QList<ParticipantManagement::Participant> findAllSAAParticipants(const int partyId);
|
||||
ParticipantManagement::ParticipantData findParticipantDataByInternalName(int &randomNumberInOut, const QString &internalName, const bool isVerbund);
|
||||
ParticipantManagement::ParticipantData findRootUnit(const int partyId);
|
||||
|
||||
void sendPositionFromTempMap(int rndNmbr, const int partyId, const bool isVerbund);
|
||||
void sendChargesFromTempMap(const int rndNmbr, const int partyId, const bool isVerbund);
|
||||
void sendReadyMessageFromTempMap(int rndNmbr, const int partyId, const bool isVerbund);
|
||||
int convertStatus_L28(const ProjectDataManagement::L28_Status &status);
|
||||
|
||||
QVector<AdlerJson::Geschoss> sumUpAnzahlForSameGeschoss(const QVector<AdlerJson::Geschoss> &geschosse) const;
|
||||
private:
|
||||
MainDispatcher *m_mainDispatcher;
|
||||
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtcPpm;
|
||||
std::shared_ptr<ParticipantManagement::Interface::Ftc> m_ftcPpm;
|
||||
QHash<int, int> m_participantIdsByEqNo; // eqNo, partId
|
||||
QHash<int, int> m_mountedParticipants;// participantId of passanger, participantId of Vehicle
|
||||
QTimer *m_sendParticipantDataTimer;
|
||||
QVector<int> m_randomNumbers;
|
||||
//maps
|
||||
QMap<ProjectDataManagement::L19_Oi, KoordinateMitHoehe> m_mapLocationToPosition;
|
||||
QMap<int, QMap<QString,KoordinateMitHoehe>> m_tempPositionMap;
|
||||
QMap<int, QVector<QString>> m_tempinternalNameMap;
|
||||
QMap<int, QMap<QString,QVector<Geschoss>>> m_tempChargesMap;
|
||||
QMap<int, std::vector<ParticipantManagement::ParticipantData>> m_tempPartDataList;
|
||||
QMap<int, QMap<QString,ProjectDataManagement::L28_Status>> m_tempReadyMessage;
|
||||
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
@@ -1,103 +0,0 @@
|
||||
#pragma once
|
||||
#include <QtCore/QString>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "ppm_handler.h"
|
||||
#include "aes_handler.h"
|
||||
#include "pdm_handler.h"
|
||||
|
||||
#include "logger.h"
|
||||
|
||||
// Forward:
|
||||
namespace LtsCoordTrans
|
||||
{
|
||||
struct UtmCoordinate;
|
||||
}
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
enum class ScenarioStatus // Szenarstatus
|
||||
{
|
||||
NONE ,
|
||||
INACTIVE , // Inaktiv
|
||||
PLANNED , // Geplant
|
||||
ACTIVE , // Aktiv
|
||||
STOPPED // Gestoppt
|
||||
};
|
||||
QString statusToStr(ScenarioStatus status);
|
||||
|
||||
ScenarioStatus strToStatus(QString status);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert (relative) Flugbahnpunkt to EXCON coordinate system
|
||||
* @param fbPos Flugbahnpunkt to be converted.
|
||||
* @param transformMatrix QTransform to be applied (most likely rotation).
|
||||
* @param utmLaunch launch coordinate for debugging purpose
|
||||
* @param logger to be used.
|
||||
* @return Coordinate transformed (rotated) in EXCON coordinate system.
|
||||
*/
|
||||
static Core::RelativePositionRelativeTime convertFlugbahnpunkt(const Flugbahnpunkt &fbPos,
|
||||
const QTransform &transformMatrix,
|
||||
const LtsCoordTrans::UtmCoordinate &utmLaunch,
|
||||
LOGGER_T logger);
|
||||
|
||||
|
||||
class JsonDispatcher;
|
||||
class SAAInterface
|
||||
: public QObject
|
||||
, protected AreaEffectSimulation::Interface::Ftc::TrajectoryAdlerModifyReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SAAInterface(int wsId, int partyId, const QString& saaName, const QString& szenarName, bool isVerbund, QObject *parent = nullptr);
|
||||
|
||||
bool init(std::shared_ptr<PpmHandler> ppmHandler,
|
||||
std::shared_ptr<PdmHandler> pdmHandler,
|
||||
std::shared_ptr<AesHandler> aesHandler,
|
||||
std::shared_ptr<TrainingAreaBase::Interface::Dts> dtsTab);
|
||||
|
||||
|
||||
int getWsId(){ return m_wsId; };
|
||||
void setWsId(int wsId){ m_wsId = wsId;};
|
||||
int getPartyId(){ return m_partyId; };
|
||||
void setPartyId(int partyId){ m_partyId = partyId; };
|
||||
QString getSAAName(){ return m_saaName; };
|
||||
//QString getSAAName(){ return QStringLiteral("SAA.GUEZ.DE"); };
|
||||
void setSaaName(const QString& saaName){ m_saaName = saaName; };
|
||||
//void setSaaName(const QString& saaName){ Q_UNUSED(saaName); m_saaName = QStringLiteral("SAA@GUEZ.de"); };
|
||||
QString getSzenarName() {return m_szenarName; }
|
||||
void setSzenarName(const QString &szenarName) { m_szenarName = szenarName; }
|
||||
Szenarstatus getStatus(){ return m_status; };
|
||||
void setStatus(Szenarstatus status);
|
||||
void setIsVerbund(bool isVerbund) { m_isVerbund = isVerbund; }
|
||||
bool getIsVerbund(){ return m_isVerbund; }
|
||||
void setIsAlive(bool isAlive) { m_isAlive = isAlive; }
|
||||
bool getIsAlive(){ return m_isAlive; }
|
||||
|
||||
//parse functions that trigger other services
|
||||
void parseFlugbahndaten(const Flugbahndaten &flugbahndaten, int aesItemId, int exposionId, const Core::GeoPosition &positionLaunch);
|
||||
|
||||
template<typename T>
|
||||
void rxData (const T &data );
|
||||
|
||||
private:
|
||||
void onTrajectoryAdlerModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
int m_wsId;
|
||||
int m_partyId;
|
||||
QString m_saaName;
|
||||
QString m_szenarName;
|
||||
Szenarstatus m_status;
|
||||
bool m_isVerbund;
|
||||
bool m_isAlive=false;
|
||||
|
||||
//int m_currentRandomNumber{0};
|
||||
//DDS
|
||||
std::shared_ptr<PpmHandler> m_ppmHandler;
|
||||
std::shared_ptr<PdmHandler> m_pdmHandler;
|
||||
std::shared_ptr<AesHandler> m_aesHandler;
|
||||
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> m_ftcAes;
|
||||
std::shared_ptr<TrainingAreaBase::Interface::Dts> m_dtsTab;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
* Settings for TetraRadio
|
||||
* $Id: settings.h 63154 2024-06-25 11:19:33Z karwat $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/24_adler/Lts/Proxies/TrainingAreaBase/settings.h $
|
||||
* $Author: karwat $
|
||||
* Created by Christian Ehrlicher, SLSE, 2016-04-14
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QJsonObject>
|
||||
|
||||
namespace NGL
|
||||
{
|
||||
class Settings;
|
||||
}
|
||||
|
||||
namespace TrainingAreaBase
|
||||
{
|
||||
|
||||
namespace Settings
|
||||
{
|
||||
|
||||
//!< The real NGL::Settings - object
|
||||
NGL::Settings *settings();
|
||||
|
||||
void setIniFile(const QString &ini);
|
||||
QString txDir();
|
||||
QString rxDir();
|
||||
QPair<quint16, quint16> getWebSocketServerPortRange(int type);
|
||||
}
|
||||
|
||||
} // namespace TrainingAreaBase
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,78 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "ws_interface.h"
|
||||
#include "logger.h"
|
||||
|
||||
#include <TrainingAreaBase/training_area_telegrams.h>
|
||||
#include <QtWebSockets/QWebSocketServer>
|
||||
#include <QtCore/QObject>
|
||||
#include <memory>
|
||||
|
||||
|
||||
namespace TrainingAreaBase
|
||||
{
|
||||
class WebSocketWrapper;
|
||||
|
||||
class WebSocketHandler : public WebSocketInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit WebSocketHandler(QObject *parent = nullptr);
|
||||
~WebSocketHandler();
|
||||
|
||||
// WSInterface interface
|
||||
public:
|
||||
bool init(quint16 listenPort) override;
|
||||
bool isConnected() const override;
|
||||
quint16 getPort() const override;
|
||||
bool sendTelegram(const int typeId, const QJsonObject *data, const int exerciseId) override;
|
||||
bool sendTelegram(const int wsId, const QJsonObject *data) override;
|
||||
bool disconnectWs(int wsId) override;
|
||||
QString getPeerAddress(int wsId) const override;
|
||||
QUrl getPeerUrl(int wsId) const override;
|
||||
|
||||
int getExerciseId(int wsId) const override;
|
||||
|
||||
//Q_SIGNALS:
|
||||
// void wsDisconnect(const int wsId);
|
||||
private Q_SLOTS:
|
||||
void onNewConnection();
|
||||
void onWebSocketDisconnected();
|
||||
void onTextMessageReceived(const QByteArray &baJson);
|
||||
private:
|
||||
bool sendTelegramInternal(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, const QString &type, int exerciseId);
|
||||
bool sendTelegramInternal(const int wsId, const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, const QString &type, const int exerciseId);
|
||||
int getWSIdFromWS( WebSocketWrapper* wsw );
|
||||
private:
|
||||
QWebSocketServer *m_webSocketServer;
|
||||
//QVector<std::shared_ptr<WebSocketWrapper>> m_webSockets;
|
||||
QMap<int, std::shared_ptr<WebSocketWrapper>> m_connections; // key = wsId
|
||||
|
||||
int m_nextWsId = 1;
|
||||
AdlerJson::LOGGER_T m_logger;
|
||||
};
|
||||
|
||||
class WebSocketWrapper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit WebSocketWrapper(QWebSocket *ws);
|
||||
~WebSocketWrapper();
|
||||
|
||||
bool sendTextMessage(const QString &msg);
|
||||
|
||||
void setExerciseId(int exerciseId);
|
||||
void setWsId(int wsId){ m_wsId = wsId; }
|
||||
int getWsId(){ return m_wsId; }
|
||||
int exerciseId() const { return m_exerciseId; }
|
||||
QWebSocket *webSocket() const { return m_webSocket; }
|
||||
Q_SIGNALS:
|
||||
void textMessageReceived(const QByteArray &data);
|
||||
private Q_SLOTS:
|
||||
void onTextMessageReceived(const QString &data);
|
||||
private:
|
||||
QWebSocket *m_webSocket;
|
||||
int m_wsId;
|
||||
int m_exerciseId;
|
||||
};
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <qobjectdefs.h>
|
||||
|
||||
namespace TrainingAreaBase {
|
||||
|
||||
class WebSocketInterface : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
virtual bool init(quint16 listenPort) = 0;
|
||||
bool init(const QPair<quint16, quint16> &portRange)
|
||||
{
|
||||
for (quint16 currentPort = portRange.first; currentPort != portRange.second; ++currentPort)
|
||||
{
|
||||
if (init(currentPort))
|
||||
return true;
|
||||
}
|
||||
|
||||
return init(0);
|
||||
}
|
||||
virtual bool isConnected() const = 0;
|
||||
virtual quint16 getPort() const = 0;
|
||||
|
||||
virtual bool disconnectWs(int wsId) = 0;
|
||||
|
||||
virtual bool sendTelegram(int typeId, const QJsonObject *data, int exerciseId) = 0;
|
||||
virtual bool sendTelegram(int wsId, const QJsonObject *data) = 0;
|
||||
virtual QString getPeerAddress(int wsId) const = 0;
|
||||
virtual QUrl getPeerUrl(int wsId) const = 0;
|
||||
virtual int getExerciseId(int wsId) const = 0;
|
||||
Q_SIGNALS:
|
||||
void recivedTelegram(int wsId, const QJsonObject& telegramData);
|
||||
void newConnection(int wsId, const QString& address, qint16 port);
|
||||
void wsDisconnected(int wsId);
|
||||
|
||||
|
||||
public:
|
||||
explicit WebSocketInterface(QObject* parent = nullptr) : QObject(parent){}
|
||||
virtual ~WebSocketInterface() {}
|
||||
};
|
||||
|
||||
}
|
||||
Loaded 100 of 184 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user