/** * DdsHandler for CombatNetRadio * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Fritsche, SLSE, 2017-09-05 */ #include "dds_handler.h" #include #include #include #include #include #include namespace CombatNetRadio { DdsHandler::DdsHandler(int domainId) : m_ddsConnector(std::make_shared(domainId, IDL::PartitionType::Global)) , m_logger(getLogger("DdsHandler")) { DEBUG_LOG(m_logger) << "DdsHandler(" << domainId << ") for partition: " << m_ddsConnector->getDefaultPartition(); } bool DdsHandler::init(const QStringList &qosFileList) { DEBUG_LOG(m_logger) << LOGFUNCTION; if (!m_ddsConnector->init(qosFileList)) { ERROR_LOG(m_logger) << "Error initializing dds connections - aborting"; return false; } // default initialize Publisher and Subscriber m_ddsConnector->initPublisherSubscriber(); // Pacemaker m_pacemaker.reset(new Core::Pacemaker(m_ddsConnector)); m_asmDtc = AssetManagement::Interface::Dtc::create(m_ddsConnector); m_avmDtc = AudioVideoManagement::Interface::Dtc::create(m_ddsConnector); m_avmFtc = AudioVideoManagement::Interface::Ftc::create(m_ddsConnector); m_exmDtc = ExerciseManagement::Interface::Dtc::create(m_ddsConnector); m_ismDtc = InfrastructureManagement::Interface::Dtc::create(m_ddsConnector); return true; } void DdsHandler::enableDtcs() { Q_ASSERT(m_avmDtc); Q_ASSERT(m_exmDtc); bool status = m_asmDtc->enableTrainingArea() && m_avmDtc->enableFrequencySet() && m_avmDtc->enableFrequencyPlanning() && m_avmDtc->enableActiveFrequencyPlanning() && m_avmDtc->enableCnrChannel() && m_avmDtc->enableCnrConfig() && m_exmDtc->enableExercise() && m_avmFtc->enableClearFrequencyPlanningStatus() && m_avmFtc->enableModifyFrequencyPlanningStatus() && m_avmFtc->enableRemoveFrequencyPlanningStatusByClient() && m_ismDtc->enableMainStructureElement(); m_asmDtc->waitForHistoricalDataTrainingArea(); m_avmDtc->waitForHistoricalDataCnrChannel(); m_avmDtc->waitForHistoricalDataFrequencySet(); m_ismDtc->waitForHistoricalDataMainStructureElement(); Q_ASSERT(status); } dds::domain::DomainParticipant DdsHandler::domainParticipant() const { return m_ddsConnector->getDomainParticipant(); } } // Namespace CombatNetRadio