/** * @RDE_HEADER@ * HlaHandlerTx for AdlerJson Plugin * $Id: hla_handler_tx.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_tx.h $ * $Author: ewert_j $ * Created by Julius Ewert, ESIM, 2024-03-20 */ #pragma once #include "ppm_handler.h" #include "pdm_handler.h" #include "logger.h" //#include "ws_handler.h" #include "ws_interface.h" #include #include #include #include class QWebSocket; class PpmHandler; class PdmHandler; class AesHandler; namespace AdlerJson { class JsonHandlerTx final : public QObject, public TrainingAreaBase::SendToTab { Q_OBJECT public: explicit JsonHandlerTx(TrainingAreaBase::Plugin::DataProvider *pdp, MainDispatcher *mainDispatcher); void onWebSocketConnected (QWebSocket *webSocket); void onWebSocketDisconnected ( ); void onWebsocketConnectedToExternalSystem (bool bConnected ); void setWSInterface(std::shared_ptr wsInterface) {m_wsInterface = wsInterface;}; const char *name () const override { return "ApAdler"; } void resetSendCounter () override; HandleState canHandleTelegram (int equipmentNumber, int telegramId) const override; bool txData (const TrainingAreaBase::TetraIcd::Acknowledge &data) override; bool txData (const TrainingAreaBase::TetraIcd::DemandBite &data) override; bool txData (const TrainingAreaBase::TetraIcd::Init &data) override; bool txData (const TrainingAreaBase::TetraIcd::SetVulnerabilityModel &data) override; bool txData (const TrainingAreaBase::TetraIcd::DemandEquipmentConfigurationReport &data) override; bool txData (const TrainingAreaBase::TetraIcd::DemandVulnerabilityStateChange &data) override; bool txData (const TrainingAreaBase::TetraIcd::LanguageSelection &data) override; bool txData (const TrainingAreaBase::TetraIcd::EquipmentMessage &data) override; bool txData (const TrainingAreaBase::TetraIcd::EquipmentMessageOC &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateAreaExplosion &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateMineArea &data) override; bool txData (const TrainingAreaBase::TetraIcd::MineAreaSingleMineState &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateNContamination &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateCContamination &data) override; bool txData (const TrainingAreaBase::TetraIcd::DeactivateEffectSimulation &data) override; bool txData (const TrainingAreaBase::TetraIcd::ModifyAreaEffectSimulationName &data) override; bool txData (const TrainingAreaBase::TetraIcd::PauseEffectSimulation &data) override; bool txData (const TrainingAreaBase::TetraIcd::ResumeEffectSimulation &data) override; bool txData (const TrainingAreaBase::TetraIcd::MineTriggered &data) override; bool txData (const TrainingAreaBase::TetraIcd::DusMineReactivation &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateFunctionalArea &data) override; bool txData (const TrainingAreaBase::TetraIcd::CreateDusSingleMine &data) override; bool txData (const TrainingAreaBase::TetraIcd::ExerciseEnvironmentData &data) override; bool txData (const TrainingAreaBase::TetraIcd::ExerciseStateData &data) override; bool txData (const TrainingAreaBase::TetraIcd::OpaquePayloadDataOut &data) override; bool txData (const TrainingAreaBase::TetraIcd::ParticipantSwVersionsRequest &data) override; bool txData (const TrainingAreaBase::TetraIcd::CesHitInformation &data) override; bool txData (const TrainingAreaBase::TetraIcd::TechnicalArea &data) override; bool txData (const TrainingAreaBase::TetraIcd::CesHitRequest &data) override; bool txData (const TrainingAreaBase::TetraIcd::ParticipantMode &data) override; bool txData (const TrainingAreaBase::TetraIcd::DemandParticipantMode &data) override; bool txData (const TrainingAreaBase::TetraIcd::ParticipantConfiguration &data) override; bool txData (const TrainingAreaBase::TetraIcd::DemandParticipantConfiguration &data) override; bool txData (const TrainingAreaBase::TetraIcd::ExerciseEquipmentAssignmentComplete &data) override; bool txData (const TrainingAreaBase::TetraIcd::Sanitation &data) override; bool txData (const TrainingAreaBase::TetraIcd::SelectiveReammunition &data) override; bool txData (const TrainingAreaBase::TetraIcd::SetDevicePowerRequest &data) override; bool txData (const TrainingAreaBase::TetraIcd::OcCommand &data) override; bool txData (const TrainingAreaBase::TetraIcd::UAVPerformMission &data) override; bool txData (const TrainingAreaBase::TetraIcd::UAVChangeState &data) override; bool txData (const TrainingAreaBase::TetraIcd::ExFireReadiness &data) override; bool txData (const TrainingAreaBase::TetraIcd::ExFiredReport&data) override; bool txData (const TrainingAreaBase::TetraIcd::ExConfirmationReport &data) override; QHash dataCommunicationPossible() const; public slots: void onParticipantConnectionState (const int equipmentNumber, const bool dataCommunicationPossible); void onGenericTelegram (const QJsonObject &telegram); void onGenericTelegram1 (const int wsId, const QJsonObject &telegram); private: bool sendToTx(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, const bool bForce = false); private: TrainingAreaBase::Plugin::DataProvider *m_pdp; QHash m_dataCommunicationPossible; // equioNo, reachable MainDispatcher *m_mainDispatcher; QWebSocket *m_webSocket; std::shared_ptr m_wsInterface; bool m_bWebsocketConnectedToExternalSystem; LOGGER_T m_logger; }; }// namespace AdlerJson