Qt6 Migration: Merge latest Qt5 devel content and apply migration fixes

- Merged 292 changed files from dlbo snapshot
- Fixed IDL enum collisions (PortType, PdmEventType)
- Fixed Grantlee template for C++11 scoped enums
- Fixed CMake VERSION_GREATER syntax
- Added missing directories (THP, LtsRestClient, etc.)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
torstenandCopilot committed 2026-09-15 18:20:51 +00:00
1 parent c9e245a211
commit 3028302f7b
310 files changed
+2823 -740

No files matched your search

@@ -40,19 +40,19 @@ AbstractFiringStrategy::~AbstractFiringStrategy()
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
void AbstractFiringStrategy::calculateDispersionTrajectory()
bool AbstractFiringStrategy::calculateDispersionTrajectory()
{
DEBUG_LOG(m_logger) << "calculateDispersionTrajectory";
// 1. Neuen Zielpunkt berechnen
const auto &intendendTrajectory = m_effector->intendendTrajectory();
const auto intendendTrajectory = m_effector->intendendTrajectory();
// sanity check:
if (intendendTrajectory.size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION
<< " size of intendendTrajectory not sufficiant, size=" << intendendTrajectory.size();
return;
return false;
}
LtsUtils::QPoint3D newTarget = intendendTrajectory.last().position;
@@ -66,6 +66,16 @@ void AbstractFiringStrategy::calculateDispersionTrajectory()
// 2. Neue Trajektorie berechnen
m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(intendendTrajectory, newTarget);
// sanity check:
if (m_transformedTrajectory.size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION
<< " size of m_transformedTrajectory not sufficiant, size=" << m_transformedTrajectory.size();
return false;
}
return true;
}
std::vector<Core::GeoPositionRelativeTime> AbstractFiringStrategy::buildTrajectoryGeometry(const QVector<TrajectoryPoint> &relativeTrajectory)
@@ -135,7 +145,7 @@ int AbstractFiringStrategy::sendChargeEffect(const TrajectoryTimeAware &trajecto
{
DEBUG_LOG(m_logger) << "sendChargeEffect";
const auto &trajGeometry = trajectoryTimeAware.geometry();
const auto trajGeometry = trajectoryTimeAware.geometry();
// sanity check:
if (trajGeometry.size() < 2)
@@ -165,7 +175,7 @@ int AbstractFiringStrategy::sendChargeEffect(const TrajectoryTimeAware &trajecto
chargeEffect.trajectoryTimeAware(trajectoryTimeAware);
const auto &reply = m_effector->mainHandler()->chargeEffectHandler()->createChargeEffect(chargeEffect);
DEBUG_LOG(m_logger) << "reply.id=" << reply.id() << ", str:" << reply.str() << ", uniqueId:" << reply.uniqueId();
DEBUG_LOG(m_logger) << LOGFUNCTION << " reply.id=" << reply.id() << ", str:" << reply.str() << ", uniqueId:" << reply.uniqueId();
return reply.id();
}
@@ -44,7 +44,7 @@ public:
explicit AbstractFiringStrategy(ObjectEffector *parent);
virtual ~AbstractFiringStrategy();
virtual void doFiring() = 0;
virtual bool doFiring() = 0;
Q_SIGNALS:
// Has to be emitted in doFiring() implementation!
@@ -52,7 +52,7 @@ Q_SIGNALS:
protected:
// methods:
void calculateDispersionTrajectory();
bool calculateDispersionTrajectory();
std::vector<Core::GeoPositionRelativeTime> buildTrajectoryGeometry(const QVector<TrajectoryPoint> &trajectory);
TrajectoryTimeAware buildTrajectoryTimeAware(const std::vector<Core::GeoPositionRelativeTime> &trajectoryGeometry, qint64 curTime, int index = 0);
@@ -29,19 +29,50 @@ DefaultFiringStrategy::~DefaultFiringStrategy()
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
void DefaultFiringStrategy::doFiring()
bool DefaultFiringStrategy::doFiring()
{
calculateDispersionTrajectory();
// 1: calculateDispersionTrajectory
if (!calculateDispersionTrajectory())
{
ERROR_LOG(m_logger) << LOGFUNCTION << " Error on calculateDispersionTrajectory";
return false;
}
if (m_transformedTrajectory.size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant"
<< ", m_transformedTrajectory.size()" << m_transformedTrajectory.size();
return false;
}
// 2: getStartTime
const qint64 trajectoryStartTime = getStartTime();
const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory);
const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
// 3a buildTrajectoryGeometry
const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory);
// 3b: buildTrajectoryTimeAware
const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
// to be bullet-proof:
if (trajTimeAware.geometry().size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " trajTimeAware is empty";
return false;
}
// 4: sendChargeEffect
const int chargeEffectId = sendChargeEffect(trajTimeAware);
if (chargeEffectId < 0)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed";
return false;
}
// 5: signalFired
emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId});
DEBUG_LOG(m_logger) << "created ChargeEffectId: " << chargeEffectId;
return true;
}
} //namespace AreaEffectSimulation
@@ -22,7 +22,7 @@ public:
explicit DefaultFiringStrategy(ObjectEffector *effector);
virtual ~DefaultFiringStrategy();
void doFiring() override;
bool doFiring() override;
}; // class DefaultFiringStrategy
} // namespace AreaEffectSimulation
@@ -32,35 +32,57 @@ Dm72FiringStrategy::Dm72FiringStrategy(ObjectEffector *effector)
DEBUG_LOG(m_logger) << "using Dm72FiringStrategy";
}
void Dm72FiringStrategy::doFiring()
bool Dm72FiringStrategy::doFiring()
{
m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(m_effector->intendendTrajectory(), m_impactPoints.at(m_impactPointIndex++));
if (m_transformedTrajectory.size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant"
<< ", m_transformedTrajectory.size()" << m_transformedTrajectory.size();
return false;
}
if (m_impactPointIndex >= m_impactPoints.size())
m_impactPointIndex = 0;
const qint64 trajectoryStartTime = getStartTime();
const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory);
const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory);
const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
QJsonObject props{{QStringLiteral("effectDurationMsec"), m_effectDurationMsec}};
const int chargeEffectId = sendChargeEffect(trajTimeAware, props);
if (chargeEffectId < 0)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed";
return false;
}
emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId});
return true;
}
void Dm72FiringStrategy::init()
{
DEBUG_LOG(m_logger) << LOGFUNCTION << " START"
<< ", m_effector->participantId=" << m_effector->participantId()
<< ", m_effector->aesItemId=" << m_effector->aesItemId();
using namespace AdlerJson;
using namespace LtsCoordTrans;
m_impactPointIndex = 0;
m_impactPoints.clear();
bool bOk;
bool bOk = false;
WirkmittelFeuerkommandoRakete wirkmittel;
const QJsonObject properties = QJsonDocument::fromJson(QByteArray::fromStdString(m_effector->effectorData().properties())).object();
const std::string propertiesStdStr = m_effector->effectorData().properties();
DEBUG_LOG(m_logger) << LOGFUNCTION << " START" << ", propertiesStdStr= '" << propertiesStdStr << "'";
const QJsonObject properties = QJsonDocument::fromJson(QByteArray::fromStdString(propertiesStdStr)).object();
const Core::GeoPosition geoStartPos = participantPosition(m_effector->participantId());
const UtmCoordinate utmStartPos = UtmCoordinate::fromGeographic(geoStartPos.lon(), geoStartPos.lat());
@@ -99,6 +121,8 @@ void Dm72FiringStrategy::init()
}
DEBUG_LOG(m_logger) << "Got " << m_impactPoints.size() << " impact points";
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
QVector<QPointF> Dm72FiringStrategy::mineLayingCentroids() const
@@ -24,7 +24,7 @@ class Dm72FiringStrategy : public AbstractFiringStrategy
public:
explicit Dm72FiringStrategy(ObjectEffector *effector);
void doFiring() override final;
bool doFiring() final;
private: // methods
void init();
@@ -36,7 +36,7 @@ GmlrsFiringStrategy::~GmlrsFiringStrategy()
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
void GmlrsFiringStrategy::doFiring()
bool GmlrsFiringStrategy::doFiring()
{
m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(m_effector->intendendTrajectory(), m_impactPoints.at(m_impactPointIndex++));
@@ -45,12 +45,18 @@ void GmlrsFiringStrategy::doFiring()
const qint64 trajectoryStartTime = getStartTime();
const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory);
const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory);
const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime);
const int chargeEffectId = sendChargeEffect(trajTimeAware);
if (chargeEffectId < 0)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed";
return false;
}
emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId});
return true;
}
void GmlrsFiringStrategy::init()
@@ -28,7 +28,7 @@ public:
explicit GmlrsFiringStrategy(ObjectEffector *effector);
virtual ~GmlrsFiringStrategy();
void doFiring() override;
bool doFiring() override;
private: // methods
void init();
@@ -35,7 +35,7 @@ SmartFiringStrategy::~SmartFiringStrategy()
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
}
void SmartFiringStrategy::doFiring()
bool SmartFiringStrategy::doFiring()
{
TRACE_LOG(m_logger) << LOGFUNCTION << " START";
@@ -59,13 +59,19 @@ void SmartFiringStrategy::doFiring()
// convert from intendendTrajectory (relativ) to TRAJECTORY_TYPE (absolute)
// The TrajectorySplitter needs TRAJECTORY_TYPE
// using TRAJECTORY_TYPE = std::vector<Core::GeoPositionRelativeTime>;
const auto &intendendTrajectory = m_effector->intendendTrajectory();
const auto &trajGeometry = buildTrajectoryGeometry(intendendTrajectory);
const auto intendendTrajectory = m_effector->intendendTrajectory();
const auto trajGeometry = buildTrajectoryGeometry(intendendTrajectory);
if (trajGeometry.size() < 2)
{
ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant"
<< ", size=" << trajGeometry.size();
return false;
}
// split and avoid copying:
const TrajectorySplitter<std::vector<Core::GeoPositionRelativeTime>> splitter(trajGeometry);
const auto &trajGeo1 = splitter.getTrajectory1();
const auto &trajGeo2 = splitter.getTrajectory2();
const auto trajGeo1 = splitter.getTrajectory1();
const auto trajGeo2 = splitter.getTrajectory2();
DEBUG_LOG(m_logger) << "splitter: " << " intendendTrajectory.size = " << intendendTrajectory.size();
DEBUG_LOG(m_logger) << "splitter: " << " trajGeometry.size = " << trajGeometry.size();
@@ -76,27 +82,32 @@ void SmartFiringStrategy::doFiring()
//
// and second, process both Trajectories/Impacts
//
// ToDo: Check, how oftem signalFired should be fired?
QVector<int> chargeEffectIds;
if (trajGeo1.size() > 2)
{
const auto &trajTimeAware = buildTrajectoryTimeAware(trajGeo1, trajectoryStartTime, 0);
const auto trajTimeAware = buildTrajectoryTimeAware(trajGeo1, trajectoryStartTime, 0);
const int chargeEffectId = sendChargeEffect(trajTimeAware);
chargeEffectIds << chargeEffectId;
if (chargeEffectId < 0)
WARNING_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed";
else
chargeEffectIds << chargeEffectId;
DEBUG_LOG(m_logger) << "Trajectory1 - created ChargeEffectId: " << chargeEffectId;
}
if (trajGeo2.size() > 2)
{
const auto &trajTimeAware = buildTrajectoryTimeAware(trajGeo2, trajectoryStartTime, 1);
const auto trajTimeAware = buildTrajectoryTimeAware(trajGeo2, trajectoryStartTime, 1);
const int chargeEffectId = sendChargeEffect(trajTimeAware);
chargeEffectIds << chargeEffectId;
if (chargeEffectId < 0)
WARNING_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed";
else
chargeEffectIds << chargeEffectId;
DEBUG_LOG(m_logger) << "Trajectory2 - created ChargeEffectId: " << chargeEffectId;
}
if (chargeEffectIds.size())
if (!chargeEffectIds.empty())
emit signalFired(m_effector->participantId(), m_effector->aesItemId(), chargeEffectIds);
TRACE_LOG(m_logger) << LOGFUNCTION << " END";
return true;
}
} // namespace AreaEffectSimulation
@@ -27,7 +27,7 @@ public:
explicit SmartFiringStrategy(ObjectEffector *effector);
virtual ~SmartFiringStrategy();
void doFiring() override;
bool doFiring() override;
private: // methods