Migration of Legatus codebase to Qt6 with RTI Connext DDS 7.7 integration is partially complete. Core DDS targets build successfully, but ProjectDataManagement module blocks full ddsfts compilation due to IDL definition conflicts.
This commit is contained in:
12 files changed
+203
-144
No files matched your search
@@ -0,0 +1,399 @@
|
||||
/**
|
||||
* @file pdm_dtc_impl.h
|
||||
* @brief Stub header for pdm_dtc_impl.h when BUILD_RTI=OFF
|
||||
*
|
||||
* This file provides stub definitions for the DtcImpl base class and related types
|
||||
* that are normally generated by RTI DDS code generation.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "pdm_types.h"
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtCore/QJsonObject>
|
||||
#include <memory>
|
||||
|
||||
namespace DDSConnector
|
||||
{
|
||||
class DdsConnector;
|
||||
}
|
||||
|
||||
namespace ProjectDataManagement
|
||||
{
|
||||
|
||||
// Stub types not defined in pdm_types.h
|
||||
enum class GearClass
|
||||
{
|
||||
None = 0,
|
||||
PrimaryWeapon = 1,
|
||||
SecondaryWeapon = 2,
|
||||
Grenade = 3,
|
||||
Mine = 4,
|
||||
Other = 5
|
||||
};
|
||||
|
||||
enum class VolatilityType
|
||||
{
|
||||
Unknown = 0,
|
||||
Low = 1,
|
||||
Medium = 2,
|
||||
High = 3
|
||||
};
|
||||
|
||||
enum class IgniterFunctionBase
|
||||
{
|
||||
IfbImpact = 0,
|
||||
IfbProximity = 1,
|
||||
IfbTime = 2,
|
||||
IfbRemote = 3
|
||||
};
|
||||
|
||||
struct CasEffect
|
||||
{
|
||||
int effectId = 0;
|
||||
QString effectName;
|
||||
};
|
||||
|
||||
struct SanitationProcedure
|
||||
{
|
||||
int procedureId = 0;
|
||||
QString procedureName;
|
||||
};
|
||||
|
||||
enum class ChargeTypeProperty : int
|
||||
{
|
||||
None = 0,
|
||||
LRF = 1,
|
||||
LTD = 2
|
||||
};
|
||||
|
||||
// Use ChargeType from pdm_types.h, but we need a struct for DTC data
|
||||
struct ChargeTypeData
|
||||
{
|
||||
int chargeTypeId = 0;
|
||||
QString name;
|
||||
QString shortName;
|
||||
QString baseSuffix;
|
||||
GearClass gearClass = GearClass::None;
|
||||
QJsonObject properties;
|
||||
};
|
||||
|
||||
struct IgniterType
|
||||
{
|
||||
int igniterTypeId = 0;
|
||||
int id = 0;
|
||||
QString name;
|
||||
QString shortName;
|
||||
QJsonObject properties;
|
||||
|
||||
bool operator==(const IgniterType &other) const
|
||||
{
|
||||
return igniterTypeId == other.igniterTypeId && id == other.id && name == other.name &&
|
||||
shortName == other.shortName && properties == other.properties;
|
||||
}
|
||||
};
|
||||
|
||||
struct IgniterFunction
|
||||
{
|
||||
int igniterFunctionId = 0;
|
||||
int id = 0;
|
||||
QString name;
|
||||
QString shortName;
|
||||
QJsonObject properties;
|
||||
};
|
||||
|
||||
struct LoadType
|
||||
{
|
||||
int loadTypeId = 0;
|
||||
int id = 0;
|
||||
QString name;
|
||||
QString shortName;
|
||||
QJsonObject properties;
|
||||
|
||||
bool operator==(const LoadType &other) const
|
||||
{
|
||||
return loadTypeId == other.loadTypeId && id == other.id && name == other.name &&
|
||||
shortName == other.shortName && properties == other.properties;
|
||||
}
|
||||
};
|
||||
|
||||
struct TargetSubType
|
||||
{
|
||||
int targetSubTypeId = 0;
|
||||
QString name;
|
||||
|
||||
bool operator==(const TargetSubType &other) const
|
||||
{
|
||||
return targetSubTypeId == other.targetSubTypeId && name == other.name;
|
||||
}
|
||||
};
|
||||
|
||||
struct ChargeTypeIgniterTypeIgniterFunction
|
||||
{
|
||||
int id = 0;
|
||||
int chargeTypeId = 0;
|
||||
int igniterTypeId = 0;
|
||||
int igniterFunctionId = 0;
|
||||
bool isSmoke = false;
|
||||
bool isDus = false;
|
||||
bool isConcrete = false;
|
||||
int volatilityTypeId = 0;
|
||||
IgniterFunctionBase igniterFunctionBase = IgniterFunctionBase::IfbImpact;
|
||||
double impactRadius = 0.0;
|
||||
double hazardDistance = 0.0;
|
||||
int chargeLegacyId = 0;
|
||||
QJsonObject properties;
|
||||
};
|
||||
|
||||
struct ChargeTypeLoadType
|
||||
{
|
||||
int chargeTypeId = 0;
|
||||
int loadTypeId = 0;
|
||||
int id = 0;
|
||||
QJsonObject properties;
|
||||
};
|
||||
|
||||
struct GearType
|
||||
{
|
||||
int gearTypeId = 0;
|
||||
QString name;
|
||||
};
|
||||
|
||||
struct GearTypeChargeType
|
||||
{
|
||||
int gearTypeId = 0;
|
||||
int chargeTypeId = 0;
|
||||
};
|
||||
|
||||
enum class PdmBaseName : int
|
||||
{
|
||||
None = 0,
|
||||
ChargeType = 1,
|
||||
IgniterType = 2,
|
||||
IgniterFunction = 3,
|
||||
LoadType = 4,
|
||||
TargetType = 5,
|
||||
TargetSubType = 6,
|
||||
GearType = 7,
|
||||
FirePurpose = 8,
|
||||
LanguageHmi = 9,
|
||||
LanguageXdu = 10,
|
||||
NuclearPreset = 11,
|
||||
RadioGroup = 12,
|
||||
VulnerabilityKind = 13,
|
||||
SanitationMaterial = 14,
|
||||
BiteComponent = 15,
|
||||
CanComponent = 16
|
||||
};
|
||||
|
||||
struct BuildingChargeEffect
|
||||
{
|
||||
int effectId = 0;
|
||||
QString effectName;
|
||||
};
|
||||
|
||||
namespace Interface
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief Base class for DTC (Data Type Configuration) implementation
|
||||
*
|
||||
* This is a stub implementation used when BUILD_RTI=OFF.
|
||||
* In production, this is generated by RTI DDS code generation.
|
||||
*/
|
||||
class DtcImpl : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DtcImpl(QObject *parent = nullptr) : QObject(parent) {}
|
||||
explicit DtcImpl(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector, QObject *parent = nullptr) : QObject(parent) { Q_UNUSED(ddsConnector); }
|
||||
virtual ~DtcImpl() = default;
|
||||
|
||||
// Custom procs - pure virtual methods that must be implemented by derived classes
|
||||
virtual QVector<ChargeTypeData> chargesForGearClass(GearClass gearClass) = 0;
|
||||
virtual QVector<IgniterType> ignitersForChargeType(int chargeTypeId) = 0;
|
||||
virtual QVector<ChargeTypeIgniterTypeIgniterFunction> igniterFunctionsForChargeTypeIgniterType(int chargeTypeId, int igniterTypeId) = 0;
|
||||
virtual QVector<LoadType> loadsForChargeType(int chargeTypeId) = 0;
|
||||
virtual QVector<TargetSubType> targetSubTypesForTargetType(int targetType) = 0;
|
||||
|
||||
virtual double expansionFactor(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual double impactRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual double impactEdgeLength(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isDryFire(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int mineClass(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool canBeThrown(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool canBeCreated(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isIed(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isReactivatable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isSmart(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int maxEffectShows(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isSmoke(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isVisible(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isIndirect(int chargeTypeId) = 0;
|
||||
virtual int searchRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool showHitline(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int remainingTasCode(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int secondaryRemainingTasCode(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int segments(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isLine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isFromMineLayer(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isMineLaying(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual QJsonObject mineLayingPattern(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int height(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isLaserGuidable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isUasDroppable(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isJamming(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual QVector<int> spacing(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual VolatilityType volatilityTypeId(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual int hazardDistance(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual QVector<CasEffect> casEffects(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual GearClass gearClassFromChargeTypeId(int chargeTypeId) = 0;
|
||||
virtual QVector<int> gearTypeIdFromChargeTypeId(int chargeTypeId) = 0;
|
||||
virtual int chargeTypeIdFromLegacyId(GearClass gearClass, int legacyId) = 0;
|
||||
virtual bool isGmlrs(int chargeTypeId) = 0;
|
||||
virtual bool isDm72(int chargeTypeId) = 0;
|
||||
virtual bool isRocket(int chargeTypeId) = 0;
|
||||
|
||||
virtual ChargeTypeIgniterTypeIgniterFunction getChargeTypeIgniterTypeIgniterFunction(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual ChargeTypeLoadType getChargeTypeLoadType(int chargeTypeId, int loadTypeId) = 0;
|
||||
|
||||
virtual bool canRestock(int gearTypeId) = 0;
|
||||
virtual bool canSetDefaults(int gearTypeId) = 0;
|
||||
virtual int maxCharges(int gearTypeId) = 0;
|
||||
virtual int cadence(int gearTypeId) = 0;
|
||||
virtual int getAdlerWeaponSystemId(int gearTypeId) = 0;
|
||||
virtual int factoryDefault(int gearTypeId, int chargeTypeId) = 0;
|
||||
virtual int maxCharge(int gearTypeId, int chargeTypeId) = 0;
|
||||
virtual bool isAtMine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual bool isApMine(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual double getLethalRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual double getNonLethalRadius(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual double getMaxRange(int chargeTypeId, int gearTypeId) = 0;
|
||||
virtual BuildingChargeEffect getBuildingChargeEffectByChargeTypeId(int chargeTypeId) = 0;
|
||||
virtual bool isVirtuallyFireable(int chargeTypeId) = 0;
|
||||
virtual bool isAdlerChargeType(int chargeTypeId) = 0;
|
||||
virtual int getAmountFireMarkers(int firePurposeId) = 0;
|
||||
virtual bool getWithDurationFirePurpose(int firePurposeId) = 0;
|
||||
|
||||
// Adler names/ids
|
||||
virtual int getTargetTypeIdFromAdlerTargetType(const QString &typ) = 0;
|
||||
virtual int getTargetSubTypeIdFromAdlerTargetSubType(const QString &subTyp) = 0;
|
||||
virtual int getChargeTypeIdFromAdlerCharges(const QString &geschosssorte) = 0;
|
||||
virtual int getIgniterTypeIdFromAdlerIgniter(const QString &zuender) = 0;
|
||||
virtual int getIgniterFunctionIdFromAdlerIgniterFunction(const QString &zuenderFunktion) = 0;
|
||||
virtual int getLoadTypeIdFromAdlerLoad(const QString &ladung) = 0;
|
||||
virtual QString adlerTargetTypeName(int targetTypeId) = 0;
|
||||
virtual QString adlerTargetSubTypeName(int targetSubTypeId) = 0;
|
||||
virtual QString adlerChargeTypeName(int chargeTypeId) = 0;
|
||||
virtual QString adlerIgniterTypeName(int igniterTypeId) = 0;
|
||||
virtual QString adlerIgniterFunctionName(int igniterFunctionId) = 0;
|
||||
virtual QString adlerLoadTypeName(int loadTypeId) = 0;
|
||||
|
||||
// Data access methods
|
||||
virtual ChargeTypeData chargeType(int chargeTypeId) = 0;
|
||||
virtual IgniterType igniterType(int igniterTypeId) = 0;
|
||||
virtual IgniterFunction igniterFunction(int igniterFunctionId) = 0;
|
||||
virtual LoadType loadType(int loadTypeId) = 0;
|
||||
virtual GearType gearType(int gearTypeId) = 0;
|
||||
virtual int targetType(int targetTypeId) = 0;
|
||||
virtual TargetSubType targetSubType(int targetSubTypeId) = 0;
|
||||
|
||||
// Collection getters
|
||||
virtual QMap<int, ChargeTypeData> chargeTypes() = 0;
|
||||
virtual QVector<IgniterType> igniterTypes() = 0;
|
||||
virtual QVector<IgniterFunction> igniterFunctions() = 0;
|
||||
virtual QVector<LoadType> loadTypes() = 0;
|
||||
virtual QVector<GearType> gearTypes() = 0;
|
||||
virtual QVector<int> targetTypes() = 0;
|
||||
virtual QVector<TargetSubType> targetSubTypes() = 0;
|
||||
virtual QVector<ChargeTypeIgniterTypeIgniterFunction> chargeTypeIgniterTypeIgniterFunctions() = 0;
|
||||
virtual QVector<ChargeTypeLoadType> chargeTypeLoadTypes() = 0;
|
||||
virtual QVector<GearTypeChargeType> gearTypeChargeTypes() = 0;
|
||||
virtual QVector<BuildingChargeEffect> buildingChargeEffects() = 0;
|
||||
|
||||
// isEnabled checks
|
||||
virtual bool isChargeTypeEnabled() = 0;
|
||||
virtual bool isIgniterTypeEnabled() = 0;
|
||||
virtual bool isIgniterFunctionEnabled() = 0;
|
||||
virtual bool isLoadTypeEnabled() = 0;
|
||||
virtual bool isGearTypeEnabled() = 0;
|
||||
virtual bool isTargetTypeEnabled() = 0;
|
||||
virtual bool isTargetSubTypeEnabled() = 0;
|
||||
virtual bool isChargeTypeIgniterTypeIgniterFunctionEnabled() = 0;
|
||||
virtual bool isChargeTypeLoadTypeEnabled() = 0;
|
||||
virtual bool isGearTypeChargeTypeEnabled() = 0;
|
||||
virtual bool isBuildingChargeEffectEnabled() = 0;
|
||||
|
||||
// enable* methods
|
||||
virtual void enableIgniterType(bool enable) = 0;
|
||||
virtual void enableChargeTypeIgniterTypeIgniterFunction(bool enable) = 0;
|
||||
virtual void enableIgniterFunction(bool enable) = 0;
|
||||
virtual void enableLoadType(bool enable) = 0;
|
||||
virtual void enableChargeTypeLoadType(bool enable) = 0;
|
||||
virtual void enableTargetType(bool enable) = 0;
|
||||
virtual void enableTargetSubType(bool enable) = 0;
|
||||
virtual void enableChargeType(bool enable) = 0;
|
||||
virtual void enableGearType(bool enable) = 0;
|
||||
virtual void enableGearTypeChargeType(bool enable) = 0;
|
||||
virtual void enableTargetTypeTargetSubType(bool enable) = 0;
|
||||
virtual void enableRadioGroup(bool enable) = 0;
|
||||
virtual void enableVulnerabilityKind(bool enable) = 0;
|
||||
virtual void enableBuildingChargeEffect(bool enable) = 0;
|
||||
|
||||
// waitForHistoricalData methods
|
||||
virtual void waitForHistoricalDataChargeType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataIgniterType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataIgniterFunction(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataLoadType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataGearType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataTargetType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataTargetSubType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataChargeTypeIgniterTypeIgniterFunction(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataChargeTypeLoadType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataGearTypeChargeType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataBuildingChargeEffect(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataTargetTypeTargetSubType(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataRadioGroup(int timeout_ms) = 0;
|
||||
virtual void waitForHistoricalDataVulnerabilityKind(int timeout_ms) = 0;
|
||||
|
||||
// Helper methods
|
||||
virtual QJsonObject propertiesToJson(const std::string &properties) = 0;
|
||||
|
||||
virtual QString trBiteComponentTextName(int biteComponentId) = 0;
|
||||
virtual QString trCanComponentStringName(int canComponentId) = 0;
|
||||
virtual QString trChargeTypeShortName(int chargeTypeId, bool omitBaseSuffix = false) = 0;
|
||||
virtual QString trChargeTypeName(int chargeTypeId, bool omitBaseSuffix = false) = 0;
|
||||
virtual QString trFirePurposeName(int firePurposeId) = 0;
|
||||
virtual QString trGearTypeName(int gearTypeId) = 0;
|
||||
virtual QString trIgniterTypeName(int igniterTypeId) = 0;
|
||||
virtual QString trIgniterTypeShortName(int igniterTypeId) = 0;
|
||||
virtual QString trIgniterFunctionName(int igniterFunctionId) = 0;
|
||||
virtual QString trIgniterFunctionShortName(int igniterFunctionId) = 0;
|
||||
virtual QString trLoadTypeName(int loadTypeId) = 0;
|
||||
virtual QString trLoadTypeShortName(int loadTypeId) = 0;
|
||||
virtual QString trTargetTypeName(int targetTypeId) = 0;
|
||||
virtual QString trTargetSubTypeName(int targetSubTypeId) = 0;
|
||||
virtual QString trLanguageHmiName(int languageHmiId) = 0;
|
||||
virtual QString trLanguageXduName(int languageXduId) = 0;
|
||||
virtual QString trNuclearPresetName(int nucularPresetId) = 0;
|
||||
virtual QString trRadioGroupName(int radioGroupId) = 0;
|
||||
virtual QString trVulnerabilityKindName(int vulnerabilityKindId, VulnerabilityClass vulnerabilityClassId) = 0;
|
||||
virtual QString trSanitationMaterialName(int sanitationMaterialId) = 0;
|
||||
virtual QString trSanitationProcedureName(int sanitationProcedureId) = 0;
|
||||
virtual QString trSanitationInjuryKindName(int sanitationInjuryKindId) = 0;
|
||||
virtual QString trSanitationInjuryPlace1Name(int sanitationInjuryPlace1Id) = 0;
|
||||
virtual QString trSanitationInjuryPlace2Name(int sanitationInjuryPlace2Id) = 0;
|
||||
|
||||
virtual QStringList chargeNames(std::vector<int> &chargeIds) = 0;
|
||||
virtual int getAvailableChargeTypeId(int chargeTypeId) = 0;
|
||||
virtual ChargeTypeProperty getChargeTypeSpecialProperty(int chargeTypeId, int igniterTypeId, int igniterFunctionId) = 0;
|
||||
virtual QVector<SanitationProcedure> getSanitationProcedures(qint64 procedures) = 0;
|
||||
virtual QStringList sanitationProceduresList(qint64 procedures) = 0;
|
||||
|
||||
protected:
|
||||
DtcImpl() = default;
|
||||
};
|
||||
|
||||
} // namespace Interface
|
||||
} // namespace ProjectDataManagement
|
||||
Reference in new issue
Block a user