/** * MainHandler for OC-connection to the SFM * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Dassow, NLST, 2018-01-23 */ #include "main_handler.h" #include "settings.h" #include "logger.h" #include namespace TrainingAreaBaseOC { MainHandler::MainHandler(QObject *parent) : QObject(parent) , m_aesDtc(nullptr) , m_aesFtc(nullptr) , m_pdmDtc(nullptr) , m_canagHandler(nullptr) , m_connectionHandler(nullptr) , m_ddsHandler(nullptr) , m_rxHandler(nullptr) , m_ftsHandler(nullptr) , m_websocketHandler(nullptr) , m_logger(getLogger("MainHandler")) {} MainHandler::~MainHandler() { m_rxHandler.reset(); m_canagHandler.reset(); m_connectionHandler.reset(); m_ftsHandler.reset(); m_aesDtc.reset(); m_aesFtc.reset(); m_pdmDtc.reset(); m_ddsHandler.reset(); } bool MainHandler::init(int domainId, int exerciseId) { // initialize DDS m_ddsHandler = std::make_shared(domainId, exerciseId); if (!m_ddsHandler->init()) { ERROR_LOG(m_logger) << "Could not initialise DdsHandler."; return false; } // create AES Dtc m_aesDtc = AreaEffectSimulation::Interface::Dtc::create(m_ddsHandler->ddsConnector()); DEBUG_LOG(m_logger) << "Created AES Dtc"; // create AES Ftc m_aesFtc = AreaEffectSimulation::Interface::Ftc::create(m_ddsHandler->ddsConnector()); DEBUG_LOG(m_logger) << "Created AES Ftc"; // create PDM Dtc m_pdmDtc = ProjectDataManagement::Interface::Dtc::create(m_ddsHandler->ddsConnector()); DEBUG_LOG(m_logger) << "Created PDM Dtc"; // ConnectionHandler m_connectionHandler = std::make_shared(); if (!m_connectionHandler->init()) { ERROR_LOG(m_logger) << "Could not initialise ConnectionHandler."; return false; } // to DDS m_rxHandler = std::make_shared(this); // CanagHandler / to TrainingArea m_canagHandler = std::make_shared(this); if (!m_canagHandler->init()) { ERROR_LOG(m_logger) << "Could not initialise CanagHandler."; return false; } // from DDS m_ftsHandler = std::make_shared(this); #ifndef GUEZ_MODE m_websocketHandler = std::make_shared(this, exerciseId, m_ddsHandler->dtsTaboc(), m_ddsHandler->dtcTaboc()); #endif m_ddsHandler->pacemaker()->setNewState(Core::RunningState::Running); return true; } } // namespace TrainingAreaBaseOC