/** * Listen to EquipmentExerciseMapping telegrams from PPM * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2018-06-18 */ #pragma once #include #include #include #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 getDtc() { return m_ppmDtc; } std::unordered_map> 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> m_exerciseEquipmentAssignments; std::shared_ptr m_ppmDtc; MainHandler *m_mainHandler; QTimer *m_equipExerciseMappingTimer; LOGGER_T m_logger; }; }