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

82 lines
4.9 KiB
C++
Executable File

/**
* Manages central aes data to be sent
* $Id: handler_oc_situation_data.h 57655 2022-07-20 11:38:28Z karwat $
* $HeadURL: svn://192.168.133.21/TDS/branches/product/features/3dws_devel/Lts/Services/OcSituationServer/handler_oc_situation_data.h $
* $Author: karwat $
* Created by Hannes Fritsche, SLTE, 16-08-2022
*/
#pragma once
#include "AreaEffectSimulation/aes_dtc.h"
#include "oc_situation.h"
namespace OcSituationServer
{
namespace DataBuilder
{
QByteArray getByteStreamAesItem(const AreaEffectSimulation::EffectCluster &effectCluster, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::NContamination &nContamination, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::BCContamination &bCContamination, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::ExplosionArea &explosionArea, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::ExplosionSingle &explosionSingle, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::MineArea &mineArea, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::FunctionalArea &functionalArea, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::BoobyTrap &boobyTrap, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::OffRouteMine &offRouteMine, bool &isPrioritized);
QByteArray getByteStreamAesItem(const AreaEffectSimulation::ExplosionCluster &explosionCluster, bool &isPrioritized);
// Building Byte Stream
void addAesItemId(QByteArray &buf, int32_t aesItemId);
void addAesMaLayingProcedureType(QByteArray &buf, const AreaEffectSimulation::AesMaLayingProcedureType &aesMaLayingProcedureType);
void addAesType(QByteArray &buf, const AreaEffectSimulation::AesType &aesType);
void addAltitude(QByteArray &buf, int32_t altitude);
void addArea(QByteArray &buf, const AreaEffectSimulation::Area &area);
void addBorderLengthInner(QByteArray &buf, double borderLengthInner);
void addBorderLengthOuter(QByteArray &buf, double borderLengthOuter);
void addCannonCount(QByteArray &buf, int32_t cannonCount);
void addCannonRounds(QByteArray &buf, int32_t cannonRounds);
void addCentralAesChangeType(QByteArray &buf, OcSituation::CentralAesChangeType changeType);
void addCentralAngle(QByteArray &buf, double centralAngle);
void addChargeTypeId(QByteArray &buf, int32_t chargeType);
template <typename T>
void addDdsEnumVal(QByteArray &buf, const T &ddsEnumVal);
void addDeconMode(QByteArray &buf, const AreaEffectSimulation::AesOperatingMode &deconMode);
void addDeconTime(QByteArray &buf, int32_t deconTime);
void addDensity(QByteArray &buf, double density);
void addDetonationValue(QByteArray &buf, double detonationValue);
void addEffectDuration(QByteArray &buf, int32_t effectDuration);
void addEffectStart(QByteArray &buf, rti::core::int64 effectStart);
void addExplosionGeometry(QByteArray &buf, const AreaEffectSimulation::AesExplosionGeometry &explosionGeometry);
void addFireRequestTime(QByteArray &buf, rti::core::int64 fireRequestTime);
void addIgniterType(QByteArray &buf, int32_t igniterTypeId);
void addFunctionalAreaTypeId(QByteArray &buf, int32_t functionalAreaTypeId);
void addImpactCount(QByteArray &buf, int32_t impactCount);
void addImpactPosition(QByteArray &buf, const Core::GeoPosition2D &position);
void addImpactRadius(QByteArray &buf, double impactRadius);
void addIsCenterLine(QByteArray &buf, bool isCenterLine);
void addIsLayedHidden(QByteArray &buf, bool isLayedHidden);
void addMaintMode(QByteArray &buf, const AreaEffectSimulation::AesOperatingMode &maintMode);
void addMaintTime(QByteArray &buf, int32_t maintTime);
void addMedicMode(QByteArray &buf, const AreaEffectSimulation::AesOperatingMode &medicMode);
void addMedicTime(QByteArray &buf, int32_t medicTime);
void addMhpCount(QByteArray &buf, int32_t mhpCount);
void addMhpRotation(QByteArray &buf, double mhpRotation);
void addName(QByteArray &buf, const std::string &name);
void addPartyId(QByteArray &buf, int32_t partyId);
void addPointSymbol(QByteArray &buf, const std::string &pointSymbol);
void addPosition2D(QByteArray &buf, const Core::GeoPosition2D &position);
void addPropagationDirection(QByteArray &buf, double propagationDirection);
void addPurpose(QByteArray &buf, const std::string &purpose);
void addRotationAngle(QByteArray &buf, double rotationAngle);
void addSegments(QByteArray &buf, const std::vector<AreaEffectSimulation::MineSegment> &segments);
void addSpanAngle(QByteArray &buf, double spanAngle);
void addString(QByteArray &buf, const std::string &str, size_t maxLen = 15);
void addTriggerRadius(QByteArray &buf, double triggerRadius);
void addWidth(QByteArray &buf, double width);
void addWindSpeed(QByteArray &buf, double windSpeed);
} // namespace DataBuilder
} // namespace OcSituationServer