#pragma once #include #include #include "ppm_handler.h" #include "aes_handler.h" #include "pdm_handler.h" #include "logger.h" namespace LtsCoordTrans { struct UtmCoordinate; } namespace AdlerJson { enum class ScenarioStatus { NONE , INACTIVE , PLANNED , ACTIVE , STOPPED }; QString statusToStr(ScenarioStatus status); ScenarioStatus strToStatus(QString status); static Core::RelativePositionRelativeTime convertFlugbahnpunkt(const Flugbahnpunkt &fbPos, const QTransform &transformMatrix, const LtsCoordTrans::UtmCoordinate &utmLaunch, LOGGER_T logger); class JsonDispatcher; class SAAInterface : public QObject , protected AreaEffectSimulation::Interface::Ftc::TrajectoryAdlerModifyReplyHandler { Q_OBJECT public: SAAInterface(int wsId, int partyId, const QString& saaName, const QString& szenarName, bool isVerbund, QObject *parent = nullptr); bool init(std::shared_ptr ppmHandler, std::shared_ptr pdmHandler, std::shared_ptr aesHandler, std::shared_ptr dtsTab); int getWsId(){ return m_wsId; }; void setWsId(int wsId){ m_wsId = wsId;}; int getPartyId(){ return m_partyId; }; void setPartyId(int partyId){ m_partyId = partyId; }; QString getSAAName(){ return m_saaName; }; void setSaaName(const QString& saaName){ m_saaName = saaName; }; QString getSzenarName() {return m_szenarName; } void setSzenarName(const QString &szenarName) { m_szenarName = szenarName; } Szenarstatus getStatus(){ return m_status; }; void setStatus(Szenarstatus status); void setIsVerbund(bool isVerbund) { m_isVerbund = isVerbund; } bool getIsVerbund(){ return m_isVerbund; } void setIsAlive(bool isAlive) { m_isAlive = isAlive; } bool getIsAlive(){ return m_isAlive; } void parseFlugbahndaten(const Flugbahndaten &flugbahndaten, int aesItemId, int exposionId, const Core::GeoPosition &positionLaunch); template void rxData (const T &data ); private: NGL::INGLLogger &m_logger; void onTrajectoryAdlerModifyReply(const Core::FunctionReplyObject &reply) override; int m_wsId; int m_partyId; QString m_saaName; QString m_szenarName; Szenarstatus m_status; bool m_isVerbund; bool m_isAlive=false; std::shared_ptr m_ppmHandler; std::shared_ptr m_pdmHandler; std::shared_ptr m_aesHandler; std::shared_ptr m_ftcAes; std::shared_ptr m_dtsTab; }; }