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

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

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

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

394 lines
9.2 KiB
C++
Executable File

#pragma once
#include <QtCore/QString>
#include <QtCore/QVector>
#include "buildingcontrolcommon_export.h"
#include <bcu_types.h>
class QJsonObject;
namespace BuildingControlUnit
{
namespace Json
{
namespace Telegrams
{
class BUILDINGCONTROLCOMMON_EXPORT BaseTelegram
{
protected:
explicit BaseTelegram(const QString &telegramId)
: m_telegramId(telegramId)
{}
public:
virtual ~BaseTelegram() = default;
QString telegramId() const
{
return m_telegramId;
}
virtual QByteArray toJson() const = 0;
static BaseTelegram *telegramFromJson(const QByteArray &jsonMsg);
protected:
virtual QByteArray toJsonInternal(const QJsonObject &data) const;
private:
QString m_telegramId;
};
class BUILDINGCONTROLCOMMON_EXPORT BaseReport : public BaseTelegram
{
protected:
explicit BaseReport(const QString &telegramId)
: BaseTelegram(telegramId)
{}
protected:
QByteArray toJsonInternal(const QJsonObject &_data) const override;
static void fromJsonInternal(const QJsonObject &data, BaseReport *tele, bool &bOk);
public:
qint64 timestamp = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT BsmTriggerFlashlight : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("BsmTriggerFlashlight"); }
BsmTriggerFlashlight()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static BsmTriggerFlashlight *fromJson(const QJsonObject &data);
int sensorId = 0;
int numberOfFlashes = 1;
int pauseBetweenFlashesSec = 1;
QString hostname;
};
class BUILDINGCONTROLCOMMON_EXPORT SetDamageState : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("SetDamageState"); }
explicit SetDamageState()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static SetDamageState *fromJson(const QJsonObject &data);
DamageState damageState = DamageState::NoDamage;
QVector<int> roomIds;
int originatorId = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT SetContaminationState : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("SetContaminationState"); }
explicit SetContaminationState()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static SetContaminationState *fromJson(const QJsonObject &data);
std::vector<BuildingControlUnit::ContaminationState> contaminationStates;
};
class BUILDINGCONTROLCOMMON_EXPORT ResetContaminationState : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("ResetContaminationState"); }
explicit ResetContaminationState()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static ResetContaminationState *fromJson(const QJsonObject &data);
};
class BUILDINGCONTROLCOMMON_EXPORT SetEffectStates : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("SetEffectStates"); }
explicit SetEffectStates()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static SetEffectStates *fromJson(const QJsonObject &data);
QString segment = QString();
QVector<BcuEffectState> effectStates;
};
class BUILDINGCONTROLCOMMON_EXPORT SwitchRelay : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("SwitchRelay"); }
explicit SwitchRelay()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static SwitchRelay *fromJson(const QJsonObject &data);
QString segment;
SwitchRelayValues switchRelayValues;
};
class BUILDINGCONTROLCOMMON_EXPORT RelayState : public BaseReport
{
public:
static QString telegramId() { return QStringLiteral("RelayState"); }
explicit RelayState()
: BaseReport(telegramId())
{}
QByteArray toJson() const override;
static RelayState *fromJson(const QJsonObject &data);
struct RelayStateInfo
{
int id = 0;
bool state = false;
};
QVector<RelayStateInfo> relayStates;
QString segment = QString();
qint64 stateTime = 0;
qint64 offlineTime = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT EffectOverride : public BaseReport
{
public:
static QString telegramId() { return QStringLiteral("EffectOverrides"); }
explicit EffectOverride()
: BaseReport(telegramId())
{}
QByteArray toJson() const override;
static EffectOverride *fromJson(const QJsonObject &data);
struct OverrideInfo
{
int id = 0;
int effectOverride = 0;
};
QVector<OverrideInfo> overrides;
QString segment = QString();
qint64 stateTime = 0;
qint64 offlineTime = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT SetFortifyFactor : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("SetFortifyFactor"); }
explicit SetFortifyFactor()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static SetFortifyFactor *fromJson(const QJsonObject &data);
struct FortifyInfo
{
int roomId = 0;
double fortifyFactor = 1.0;
};
QVector<FortifyInfo> fortifyFactors;
int originatorId = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT CentralEffectSimulationHit : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("CentralEffectSimulationHit"); }
explicit CentralEffectSimulationHit()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static CentralEffectSimulationHit *fromJson(const QJsonObject &data);
qint64 effectTimeMSec = 0;
int chargeTypeId = 0;
int destructiveFactor = -1;
int penetrationFactor = -1;
int aesId = 0;
struct
{
double x = 0;
double y = 0;
double z = 0;
} relPosition;
QString properties;
};
class BUILDINGCONTROLCOMMON_EXPORT CentralEffectSimulationHit3D : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("CentralEffectSimulationHit3D"); }
explicit CentralEffectSimulationHit3D()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static CentralEffectSimulationHit3D *fromJson(const QJsonObject &data);
qint64 effectTimeMSec{0};
int chargeTypeId{0};
int destructiveFactor{-1};
int penetrationFactor{-1};
int aesId{0};
struct
{
double x{0};
double y{0};
double z{0};
} impactPosition, detonationLocation;
double detonationDistance{0};
QString properties;
};
class BUILDINGCONTROLCOMMON_EXPORT DebugSimulateBSMHit : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("DebugSimulateBSMHit"); }
explicit DebugSimulateBSMHit()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static DebugSimulateBSMHit *fromJson(const QJsonObject &data);
qint64 effectTimeMSec = 0;
int sensorId = 0;
int originatorId = 0;
int chargeTypeId = 0;
int deposition1 = 0;
int deposition2 = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT HitResult : public BaseReport
{
public:
static QString telegramId() { return QStringLiteral("HitResult"); }
explicit HitResult()
: BaseReport(telegramId())
, hitResult(HitResultInfo())
{}
QByteArray toJson() const override;
static HitResult *fromJson(const QJsonObject &data);
struct HitRoomInfo
{
int roomId = 0;
int damagePercent = 0;
int remainingEffectPercent = 0;
double fortifyFactor = 1.0;
};
struct ContaminationStateInfo
{
int aesId = 0;
std::vector<int> rooms;
};
struct HitResultInfo
{
int sensorId = 0;
int originatorId = 0;
OriginatorType originatorType = OriginatorType::Unknown;
int chargeTypeId = 0;
int damagePercentOld = 0;
int damagePercentNew = 0;
int effectSoundId = 0;
int hitOnRoomId = 0;
DamageState damageState = DamageState::Unknown;
QVector<HitRoomInfo> rooms;
QVector<ContaminationStateInfo> contaminations;
} hitResult;
};
class BUILDINGCONTROLCOMMON_EXPORT BsmState : public BaseReport
{
public:
static QString telegramId() { return QStringLiteral("BsmState"); }
explicit BsmState()
: BaseReport(telegramId())
{}
QByteArray toJson() const override;
static BsmState *fromJson(const QJsonObject &data);
struct BsmStateInfo
{
QString hostname;
QString versionInfo;
int id = 0;
quint16 port;
bool connected = false;
};
QVector<BsmStateInfo> bsmStates;
};
class BUILDINGCONTROLCOMMON_EXPORT GetBsmBitTimeout : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("GetBsmBitTimeout"); }
explicit GetBsmBitTimeout()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static GetBsmBitTimeout *fromJson(const QJsonObject &data);
int sensorId = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT GetBsmConfiguration : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("GetBsmConfiguration"); }
explicit GetBsmConfiguration()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static GetBsmConfiguration *fromJson(const QJsonObject &data);
int sensorId = 0;
};
class BUILDINGCONTROLCOMMON_EXPORT GetBsmTechnicalStatus : public BaseTelegram
{
public:
static QString telegramId() { return QStringLiteral("GetBsmTechnicalStatus"); }
explicit GetBsmTechnicalStatus()
: BaseTelegram(telegramId())
{}
QByteArray toJson() const override;
static GetBsmTechnicalStatus *fromJson(const QJsonObject &data);
int sensorId = 0;
};
}
}
}