126 lines
3.7 KiB
C++
Executable File
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
|
|
|