/** * Handler for player data * $Id$ * $HeadURL$ * $Author$ * Created by gr, SLSE, 2017-02-20 */ #pragma once #include "dds_handler.h" #include "logger.h" #include "esm_convert_from_tab.h" #include "esm_convert_to_tab.h" #include // AES-Handling for Mine Fields namespace EffectShowManagement { class Initialization; /** * @brief Handler for data exchange with the Training Aeria Base (TAB) Proxy. * * (1)Receives the telegrams from the effect show vehicle via Training Area Base proxy. * (2)Sends Telegrams to effect show actor/vehicle via Training Area Base proxy. */ class HandlerTabData : public QObject , protected TrainingAreaBase::Interface::Ftc::SendFireSmokeMarkerDataReplyHandler , protected TrainingAreaBase::Interface::Ftc::AdlerFqFbReplyHandler { Q_OBJECT public: explicit HandlerTabData(Initialization *mainHandler, QObject *parent = nullptr); /** * @brief Receives the relevant telegrams from TAB after service start */ bool init(); /** * @brief Sends order for effect show vehicle status request to TAB. * @param[in] equipmentNumber Equipment number for request target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle */ void effectShowVehicleStatusRequest(int equipmentNumber, int participantId); /** * @brief Triggers TAB to send an effect show actor relocation order telegramm to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] relocationOrder Effect Show Actor Relocation Order telegram data */ void relocationOrder(int equipmentNumber, int participantId, const ConvertToTab::RelocationOrder_t &relocationOrder); /** * @brief Triggers TAB to send an effect show stop telegramm to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] idEffectShow ID of effect show */ void effectShowStop(int equipmentNumber, int participantId, const qint16 &idEffectShow); /** * @brief Triggers TAB to send an effect show continue telegramm to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] effectShowOrder Effect Show Continue telegram data */ void effectShowContinue(int equipmentNumber, int participantId, const ConvertToTab::EffectShowContinue_t &effectShowContinue); /** * @brief Triggers TAB to send a effect show order telegramm to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] effectShowOrder Effect Show Order telegram data */ void effectShowOrder(int equipmentNumber, int participantId, const ConvertToTab::EffectShowOrder_t &effectShowOrder); /** * @brief Triggers TAB to send a retract order telegramm to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] retractOrder Retract Order telegram data */ void retractOrder(int equipmentNumber, int participantId, const ConvertToTab::RetractOrder_t &retractOrder); /** * @brief Triggers TAB to send meteo data to effect show actor. * @param[in] equipmentNumber Equipment number for telegram target * @param[in] participantId Effect Show Acter Id allocated to the effect show vehicle * @param[in] meteoData Meteo data */ void meteoData(int equipmentNumber, int participantId, const MeteoDataManagement::MeteoData &meteoData); /** * @brief Triggers TAB to send AdlerFqFb to SAA * @param[in] aesId of AeraEffectSimulation */ void sendAdlerFqFb(const int aesId); protected: void onSendFireSmokeMarkerDataReply(const Core::FunctionReplyObject &reply) override final; void onAdlerFqFbReply(const Core::FunctionReplyObject &reply) override final; private Q_SLOTS: void onFireSmokeMarkerDataChanged(const TrainingAreaBase::FireSmokeMarkerData &data, DataModification modType); private: void publishVehicleStatus(const EffectShowManagement::EffectShowVehicleStatus &vehicleStatus); private: // attributes Initialization *m_mainHandler; NGL::INGLLogger &m_logger; QMap m_effectShowVehicleStatus; }; } // namespace EffectShowManagement