/** * Send / Receive telegrams to/from PrtCnv * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-09-26 */ #pragma once #include #include #include #include #include "logger.h" namespace WlsTetra { class TetraPrtCnv final : public QObject { Q_OBJECT public: explicit TetraPrtCnv(TrainingAreaBase::Plugin::DataProvider *pdp, QObject *parent = nullptr); ~TetraPrtCnv(); bool init(); public Q_SLOTS: void onExerciseChanged(); void logWlsTelegram(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *tele, bool bIsSend); Q_SIGNALS: void tetraConnectionChanged(bool bConnected); void textMessageFromPrtCnv(const QByteArray &message); void textMessageToPrtCnv(const QByteArray &message); void broadcastTelegramsRequest(int equipmentNumber, int broadcastIndex, int resetCounter); private: void cleanupProcess(); static QString iniFileIn(); QString iniFileOut() const; static QString iniPath(); static QString playerIdsFile(); bool updatePrtCnv(); bool checkConfigTemplates(); bool startPrtCnv(); quint16 randomListenPort() const; private: TrainingAreaBase::Plugin::DataProvider *m_pdp; PrtCnv::PrtCnvApplication *m_prtCnvApp; int m_exerciseId; int m_radioGrpId; NGL::INGLLogger &m_logger; }; } // namespace WlsTetra