/** * @RDE_HEADER@ * MeteoDataManagement - Static Meteo Data Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2016-10-17 */ #pragma once #include #include #include namespace EffectShowClient { /** * @brief Converts the data telegrams to be read from Training Area Base proxy. * * For the telegram data to be converted see GUEZSB60_ICD-0046C. */ namespace ConvertFromTab { /** * @brief Rx Telegram types. */ enum class RxTelegram_e { EffectShowOrder, RelocationOrder, EffectShowStop, EffectShowContinue, OrderRetract, StatusRequest, MeteoData, unknown }; /** * @brief Returns the type of telegram related to the received data. * @return The type of the telegram */ RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Order effect show. */ struct EffectShowOrder_t { qint16 idEffectShow = 0; // ID effect show qint64 startTime = 0; // GPS time Core::GeoPosition2D centerPosition; // center pos effect area int areaWidth = 0; // [0..300] int areaDepth = 0; // [0..300] double rotation = 0; // [deg] Core::GeoPosition2D lowerLeftPosition; // lower left corner effect area qint8 numOfVolley = 0; // number of volley qint8 shotsInTotal = 0; // shots in total qint8 typeOfAmmunition = 0; // type of ammunition qint16 duration = 0; // duration of the effect show QString name; }; /** * @brief Returns Effect Show order from telegram. * @param[out] effectShowOrder Effect Show order from telegram. */ EffectShowOrder_t convertEffectShowOrder(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Order Relocation of Effect Show Actor. */ struct RelocationOrder_t { qint16 idRelocation = 0; qint64 executionTime = 0; // GPS time [s] Core::GeoPosition2D centerPosition; // center pos effect area QString infoText; // max ASCII-char: 40 }; /** * @brief Returns the order to relocation from the telegram. * @param[out] relocationOrder Relocation Order from telegram */ RelocationOrder_t convertRelocationOrder(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Returns the order to stop the effect show from telegram. * param[out] idEffectShow ID of the effect show to be stoped */ int convertEffectShowStop(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Order continue Effect Show. */ struct EffectShowContinue_t { qint16 idEffectShow = 0; // ID of effect show qint64 executionTime = 0; // GPS time [s] }; /** * @brief Returns the order to continue the effect show from telegram. * @param[out] effectShowContinue Order to continue the effect show */ EffectShowContinue_t convertEffectShowContinue(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Retract order. */ struct OrderRetract_t { qint8 orderType = 0; // 0=Relocation; 1=Effect Show qint16 id = 0; // Id of Relocation or Effect Show }; /** * @brief Returns the order to be retract from telegram. * param[out] rectractPrder Order to rectract the effect show */ OrderRetract_t convertOrderRetract(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Returns the status request from telegram. * return (true)Status request. */ bool convertStatusRequest(const TrainingAreaBase::FireSmokeMarkerData &data); /** * @brief Returns the meteo data from Telegram. * @param[out] meteoData Meteo data from the telegram. */ EffectShowClient::MeteoNearVehicle convertMeteoData(const TrainingAreaBase::FireSmokeMarkerData &data); } } //namespace EffectShowManagement