/** * @RDE_HEADER@ * JsonHandlerRx for AdlerJson Plugin * $Id: hla_handler_rx.h 62304 2024-03-21 08:17:45Z ewert_j $ * $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/hla_handler_rx.h $ * $Author: ewert_j $ * Created by Julius Ewert, ESIM, 2024-03-20 */ #pragma once #include #include #include #include #include #include #include "logger.h" namespace AdlerJson { class AesHandler; class PpmHandler; class JsonDispatcher; class JsonHandlerRx : public QObject { Q_OBJECT public: explicit JsonHandlerRx(const std::shared_ptr &recvFromTabCb, const std::shared_ptr &sendToTabCb, JsonDispatcher *dispatcher, AesHandler *aesHandler, PpmHandler *ppmHandler); bool handleTelegram (const QByteArray &baJson ); bool handleTelegram (TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tabTele); bool handleTelegram (int wsId, const QJsonObject& telegram, int &errorcode); Q_SIGNALS: void participantConnectionState(int equipmentNumber, bool dataCommunicationPossible); private: template void rxData (const T &data ); template void txData (const T &data ); bool checkExercise (int equipmentNumber) const; private: std::shared_ptr m_rxHandler; std::shared_ptr m_txHandler; JsonDispatcher *m_dispatcher; bool m_bWarnedOnce; bool m_bWarnedOnceTx; AesHandler *m_aesHandler; PpmHandler *m_ppmHandler; LOGGER_T m_logger; }; } // namespace AdlerJson