47 lines
1.3 KiB
C++
Executable File
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;
|
|
};
|
|
}
|