Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Services/CentralEffectSimulation/Plugins/Basic/simulation_movement.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

76 lines
2.6 KiB
C++
Executable File

/**
* Simulation for Movement
* $Id$
* $HeadURL$
* $Author$
* Created by gr, SLSE, 2017-12-13
*/
#pragma once
#include <CentralEffectSimulation/logger.h>
#include <CentralEffectSimulation/dds_handler.h>
#include <CentralEffectSimulation/handler_participant.h>
#include <CentralEffectSimulation/ces_db.h>
#include <QtCore/QLineF>
#include <QtCore/QObject>
#include <QtCore/QTimer>
namespace CentralEffectSimulationBasic
{
class SimulationMovement : public QObject
{
Q_OBJECT
public:
SimulationMovement(const std::shared_ptr<CentralEffectSimulation::DdsHandler> &ddsHandler,
const std::shared_ptr<CentralEffectSimulation::DatabaseInterface> &db,
const std::shared_ptr<CentralEffectSimulation::HandlerParticipant> &participantHandler,
const CentralEffectSimulation::SimulatedMovement &sml,
QObject *parent = nullptr);
~SimulationMovement();
void setSimulatedMovementRequest(const CentralEffectSimulation::SimulatedMovement &sml);
int id() const { return m_simMovement.id(); }
void setId(int id) { m_simMovement.id(id); }
int participantId() const { return m_simMovement.participantId(); }
void setJump(bool jump);
void setnextPoint(int nextPoint) { m_simMovement.nextPoint(nextPoint); }
int getNextPoint() const { return m_simMovement.nextPoint(); }
void publishSimulatedMovement();
const CentralEffectSimulation::SimulatedMovement &simMovementData() const { return m_simMovement; }
static CentralEffectSimulation::Database::CesSimulatedMovement toDb(const CentralEffectSimulation::SimulatedMovement &ddsSimMovement);
protected Q_SLOTS:
void publishNewPos();
void startNewSegment();
void move();
protected:
void updateNextPointInDb();
private:
std::shared_ptr<CentralEffectSimulation::DdsHandler> m_ddsHandler; ///< Pointer to VOM DDS handler
std::shared_ptr<CentralEffectSimulation::DatabaseInterface> m_db;
std::shared_ptr<CentralEffectSimulation::HandlerParticipant> m_handlerParticipant;
// Input Data
QVector<QPointF> m_points;
QVector<double> m_segSpeed;
QVector<int> m_segDelay;
// Dynamic Data
int m_moveTime; /// Time starts for each segment new
QLineF m_actSegment;
QPointF m_newPos;
bool m_simStart; /// Start of simulation
int m_zone;
QTimer *m_segTimer;
QTimer *m_moveTimer;
CentralEffectSimulation::SimulatedMovement m_simMovement;
CentralEffectSimulation::LOGGER_T &m_logger; ///< Interface to the Logging-Facility
};
}