57 lines
1.5 KiB
C++
Executable File
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
|