82 lines
4.9 KiB
C++
Executable File
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
|