103 lines
3.9 KiB
C++
Executable File
103 lines
3.9 KiB
C++
Executable File
/**
|
|
* DdsInterface for Aes
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
#pragma once
|
|
|
|
#include <DDS/DDSConnector/dds_connector.h>
|
|
#include <AreaEffectSimulation/aes_dts.h>
|
|
#include <AreaEffectSimulation/aes_fts.h>
|
|
#include <Core/core_dtc.h>
|
|
#include <Core/topic_lock_master.h>
|
|
#include <ProjectDataManagement/pdm_dtc.h>
|
|
#include <ParticipantManagement/ppm_dtc.h>
|
|
#include <TrainingAreaBase/tab_ftc.h>
|
|
#include <CentralEffectSimulation/ces_ftc.h>
|
|
#include <AssetManagement/asm_dtc.h> // For Elevation
|
|
#include <ExerciseManagement/exm_dtc.h> // For Elevation
|
|
#include <InfrastructureManagement/ism_dtc.h>
|
|
|
|
#include "logger.h"
|
|
#include <QDateTime>
|
|
#include <QElapsedTimer>
|
|
|
|
namespace Core
|
|
{
|
|
class Pacemaker;
|
|
namespace Interface
|
|
{
|
|
class Dts;
|
|
}
|
|
}
|
|
|
|
namespace TrainingAreaBase
|
|
{
|
|
class EquipmentState;
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
}
|
|
|
|
namespace AreaEffectSimulation
|
|
{
|
|
class DdsHandler : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DdsHandler(int domainId,
|
|
int exerciseId,
|
|
QObject *parent = nullptr);
|
|
~DdsHandler();
|
|
|
|
bool init(const QStringList &qosFileList = QStringList());
|
|
|
|
std::shared_ptr<Core::Pacemaker> pacemaker() const { return m_pacemaker; }
|
|
|
|
QDateTime currentPartitionTime() const;
|
|
qint64 currentPartitionTimeMSec() const;
|
|
|
|
std::shared_ptr<AreaEffectSimulation::Interface::Dts> dts() const { return m_ddsDts; }
|
|
std::shared_ptr<AreaEffectSimulation::Interface::Fts> fts() const { return m_ddsFts; }
|
|
std::shared_ptr<TrainingAreaBase::Interface::Dtc> tabDtc() const { return m_tabDtc; }
|
|
std::shared_ptr<TrainingAreaBase::Interface::Ftc> tabFtc() const { return m_tabFtc; }
|
|
std::shared_ptr<ProjectDataManagement::Interface::Dtc> pdmDtc() const { return m_pdmDtc; }
|
|
std::shared_ptr<ParticipantManagement::Interface::Dtc> ppmDtc() const { return m_ppmDtc; }
|
|
std::shared_ptr<CentralEffectSimulation::Interface::Ftc> cesFtc() const { return m_cesFtc; }
|
|
std::shared_ptr<AssetManagement::Interface::Dtc> asmDtc() const { return m_asmDtc; }
|
|
std::shared_ptr<ExerciseManagement::Interface::Dtc> exmDtc() const { return m_exmDtc; }
|
|
std::shared_ptr<InfrastructureManagement::Interface::Dtc> ismDtc() const{ return m_ismDtc; }
|
|
std::shared_ptr<DDSConnector::DdsConnector> ddsConnector() const { return m_ddsConnector; }
|
|
std::shared_ptr<Core::TopicLockMaster> topicLockMaster() const { return m_topicLockMaster; }
|
|
int exerciseId() const { return ddsConnector()->getPartitionId(); }
|
|
ProjectDataManagement::ChargeType getChargeType(int chargeTypeId);
|
|
|
|
private slots:
|
|
void onPartitionTimeChanged(const Core::PartitionTime ¤tTime);
|
|
|
|
private:
|
|
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
|
|
std::shared_ptr<Core::Interface::Dtc> m_dtcCore;
|
|
std::shared_ptr<Core::Pacemaker> m_pacemaker;
|
|
std::shared_ptr<Core::TopicLockMaster> m_topicLockMaster;
|
|
std::shared_ptr<AreaEffectSimulation::Interface::Dts> m_ddsDts;
|
|
std::shared_ptr<AreaEffectSimulation::Interface::Fts> m_ddsFts;
|
|
std::shared_ptr<TrainingAreaBase::Interface::Dtc> m_tabDtc;
|
|
std::shared_ptr<TrainingAreaBase::Interface::Ftc> m_tabFtc;
|
|
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
|
|
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
|
|
std::shared_ptr<CentralEffectSimulation::Interface::Ftc> m_cesFtc;
|
|
std::shared_ptr<AssetManagement::Interface::Dtc> m_asmDtc;
|
|
std::shared_ptr<ExerciseManagement::Interface::Dtc> m_exmDtc;
|
|
std::shared_ptr<InfrastructureManagement::Interface::Dtc> m_ismDtc;
|
|
|
|
QElapsedTimer m_elapsedTimer;
|
|
qint64 m_currentTimeMSec;
|
|
|
|
NGL::INGLLogger &m_logger;
|
|
};
|
|
|
|
}
|