/** * Convert Json from WLS to internal telegrams * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-09-26 */ #pragma once #include #include #include #include #include #include #include "logger.h" namespace ApHlaJson { class AesHandler; class PpmHandler; class HlaDispatcher; class HlaHandlerRx : public QObject { Q_OBJECT public: explicit HlaHandlerRx(const std::shared_ptr &recvFromTabCb, const std::shared_ptr &sendToTabCb, HlaDispatcher *dispatcher, AesHandler* aesHandler, PpmHandler* ppmHandler); bool handleTelegram(const QByteArray &baJson); bool handleTelegram(TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tabTele); Q_SIGNALS: void participantConnectionState(int equipmentNumber, bool dataCommunicationPossible); private: template void rxData(const T &data); template void txData(const T &data); private: bool checkExercise(int equipmentNumber) const; std::shared_ptr m_rxHandler; std::shared_ptr m_txHandler; HlaDispatcher *m_dispatcher; bool m_bWarnedOnce; bool m_bWarnedOnceTx; AesHandler* m_aesHandler; PpmHandler* m_ppmHandler; LOGGER_T m_logger; }; } // namespace HlaJson