Files
qt5-legatus-legacy/Lts/Proxies/TrainingAreaBase/ppm_handler.h
T
2026-08-13 18:33:10 +02:00

47 lines
1.3 KiB
C++
Executable File

/**
* Listen to EquipmentExerciseMapping telegrams from PPM
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2018-06-18
*/
#pragma once
#include <ParticipantManagement/ppm_dtc.h>
#include <unordered_map>
#include <unordered_set>
#include "logger.h"
class QTimer;
namespace TrainingAreaBase
{
class MainHandler;
class PpmHandler final : public QObject
{
Q_OBJECT
public:
explicit PpmHandler(MainHandler *mainHandler);
bool init();
std::shared_ptr<ParticipantManagement::Interface::Dtc> getDtc() { return m_ppmDtc; }
std::unordered_map<int, std::unordered_set<int>> exerciseEquipmentAssignment() const { return m_exerciseEquipmentAssignments; }
Q_SIGNALS:
void position(int equipNo, const ParticipantManagement::ParticipantPosition &pos);
private Q_SLOTS:
void onParticipantPositionChanged(const ParticipantManagement::ParticipantPosition &data, DataModification modType);
void onEquipmentExerciseMappingChanged(const ParticipantManagement::EquipmentExerciseMapping &data, DataModification modType);
void sendEquipmentExerciseAssignment();
private:
std::unordered_map<int, std::unordered_set<int>> m_exerciseEquipmentAssignments;
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
MainHandler *m_mainHandler;
QTimer *m_equipExerciseMappingTimer;
LOGGER_T m_logger;
};
}