Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Plugins/SAAs/Common/saa_utils.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

71 lines
2.0 KiB
C++
Executable File

#pragma once
#include <QtCore/QProcess>
#include <QtCore/QJsonDocument>
#include <QtCore/QJsonObject>
#include <ParticipantManagement/ppm_enums.hpp>
namespace SAAUtils
{
struct PingItem
{
int assetId = -1;
QString host;
int port;
QProcess *process = nullptr;
bool reachable = false;
bool connected = false;
};
struct AsmAssetProps
{
AsmAssetProps(const QString &properties)
{
if (properties.isEmpty())
return;
const QJsonObject propObj = QJsonDocument::fromJson(properties.toUtf8()).object();
if (propObj.contains(QStringLiteral("credentials")) )
{
const QJsonObject adlerObj = propObj[QStringLiteral("credentials")].toObject();
exId = propObj.value(QStringLiteral("exerciseId")).toInt(-1);
userName = adlerObj.value(QStringLiteral("username")).toString();
password = adlerObj.value(QStringLiteral("password")).toString();
host = adlerObj.value(QStringLiteral("host")).toString();
port = adlerObj.value(QStringLiteral("port")).toInt(-1);
}
}
bool hasCredential() const { return (!userName.isEmpty() && !password.isEmpty()); }
bool hasExerciseId() const { return exId > 0;}
QString userName;
QString password;
QString host;
int port=-1;
int exId = -1;
};
struct SaaProps
{
SaaProps(const QString &properties)
{
if ( properties.isEmpty())
return;
const QJsonObject propertiesObj = QJsonDocument::fromJson(properties.toUtf8()).object();
if (!propertiesObj.contains(QStringLiteral("Adler")) )
return;
const QJsonObject adlerObj = propertiesObj[QStringLiteral("Adler")].toObject();
isConnected = (adlerObj.value(QStringLiteral("saaConnectedState")).toInt() == ParticipantManagement::ConnectState::Connected);
name = adlerObj.value(QStringLiteral("SaaName")).toString(QStringLiteral(""));
assetId = adlerObj.value(QStringLiteral("assetId")).toInt(-1);
}
bool hasAsset() const { return assetId > 0; }
QString name;
QString ipAdress;
int assetId = -1;
bool isConnected = false;
};
}