/** * 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 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 &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