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

57 lines
1.5 KiB
C++
Executable File

/**
* Convert Json from WLS to internal telegrams
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2016-09-26
*/
#pragma once
#include <TrainingAreaBase/recv_from_tab.h>
#include <TrainingAreaBase/tx_mixin.h>
#include <TrainingAreaBase/tab_plugin_interface.h>
#include <QObject>
#include <QString>
#include <memory>
#include "logger.h"
namespace ApHlaJson
{
class AesHandler;
class PpmHandler;
class HlaDispatcher;
class HlaHandlerRx : public QObject
{
Q_OBJECT
public:
explicit HlaHandlerRx(const std::shared_ptr<TrainingAreaBase::RecvFromTab> &recvFromTabCb,
const std::shared_ptr<TrainingAreaBase::TxMixin> &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<typename T>
void rxData(const T &data);
template<typename T>
void txData(const T &data);
private:
bool checkExercise(int equipmentNumber) const;
std::shared_ptr<TrainingAreaBase::RecvFromTab> m_rxHandler;
std::shared_ptr<TrainingAreaBase::TxMixin> m_txHandler;
HlaDispatcher *m_dispatcher;
bool m_bWarnedOnce;
bool m_bWarnedOnceTx;
AesHandler* m_aesHandler;
PpmHandler* m_ppmHandler;
LOGGER_T m_logger;
};
} // namespace HlaJson