Files
qt5-legatus-legacy/Lts/Services/EffectShowClient/esc_convert_from_tab.h
T
2026-08-13 18:33:10 +02:00

126 lines
3.7 KiB
C++
Executable File

/**
* @RDE_HEADER@
* MeteoDataManagement - Static Meteo Data Edit Dialog
* $Id$
* $HeadURL$
* $Author$
* Created by hjl, SLSE, 2016-10-17
*/
#pragma once
#include <TrainingAreaBase/tab_dtc.h>
#include <EffectShowClient/esc_dts.h>
#include <QString>
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