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:
310 files changed
+2823
-740
No files matched your search
+15
-5
@@ -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);
|
||||
|
||||
|
||||
+35
-4
@@ -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();
|
||||
|
||||
+23
-12
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user