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

113 lines
3.3 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 <MeteoDataManagement/mdm_dtc.h>
#include <QString>
namespace EffectShowManagement
{
/**
* @brief Converts the data telegrams to be set to Training Area Base proxy.
*
* For the telegram data to be converted see GUEZSB60_ICD-0046C.
*/
namespace ConvertToTab
{
/**
* @brief Order effect show.
*/
struct EffectShowOrder_t
{
qint16 idEffectShow = 0; // ID effect show
qint32 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 shotsPerVolley = 0; // number of volley
qint8 typeOfAmmunition = 0; // type of ammunition
qint16 duration = 0; // duration of the effect show
QString name;
};
/**
* @brief Returns the telegram to order a effect show.
* @return Telegram to order a effect show.
*/
std::vector<uint8_t> convertEffectShowOrder(const EffectShowOrder_t &effectShowOrder);
/**
* @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 telegram to order a relocation of the effect show actor.
* @return Telegram to order a relocation.
*/
std::vector<uint8_t> convertRelocationOrder(const RelocationOrder_t &relocationOrder);
/**
* @brief Returns the telegram to stop the effect show.
* @return Telegram to stop the effect show.
*/
std::vector<uint8_t> convertEffectShowStop(const qint16 &idEffectShow);
/**
* @brief Order continue Effect Show.
*/
struct EffectShowContinue_t
{
qint16 idEffectShow = 0; // ID of effect show
qint64 executionTime = 0; // GPS time [s]
};
/**
* @brief Returns the telegram to continue the effect show.
* @return Telegram to continue the effect show.
*/
std::vector<uint8_t> convertEffectShowContinue(const EffectShowContinue_t &effectShowContinue);
/**
* @brief Retract order.
*/
struct RetractOrder_t
{
qint8 orderType = 0; // 0=Relocation; 1=Effect Show
qint16 id = 0; // Id of Relocation or Effect Show
};
/**
* @brief Returns the telegram to retract the order.
* @return Telegram to retract the order.
*/
std::vector<uint8_t> convertOrderRetract(const RetractOrder_t &retractOrder);
/**
* @brief Returns the telegram to request the status.
* @return Telegram to request the status.
*/
std::vector<uint8_t> convertStatusRequest();
/**
* @brief Returns the telegram to provide meteo data.
* @return Telegram to to provide meteo data.
*/
std::vector<uint8_t> convertMeteoData(const MeteoDataManagement::MeteoData &meteoData);
}
} //namespace EffectShowManagement