/** * NgsHandler for HighLevelArchitecture * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-04-07 */ #include "ngs_handler.h" #include "ngs_connector.h" #include #include #include #include //#include #include "RTIVector.h" #include namespace HighLevelArchitecture { NgsHandler::NgsHandler(QObject *parent) : QObject(parent) , m_logger(getLogger("NgsHandler")) {} NgsHandler::~NgsHandler() { m_ngsConnector = nullptr; } bool NgsHandler::init() { /* private: // data T * _v; // vectorsize unsigned int _l; // vectorcapacity; unsigned int _c; }; template int ngsrti::Vector::compare(const Vector& v) const { unsigned int lmin = _l; if(_v._l < lmin) lmin = _v._l; */ ngsrti::Vector myVec; ngsrti::Vector myVec2; if (myVec < myVec2) { INFO_LOG(m_logger) << "Protocol = "; } // initialize DDS // m_ddsHandler = ddsHandler; QMap protToStr; protToStr.insert(ngs::IObserver::ProtocolType::DIS, QStringLiteral("DIS")); protToStr.insert(ngs::IObserver::ProtocolType::HLA, QStringLiteral("HLA")); protToStr.insert(ngs::IObserver::ProtocolType::CORBANOTIFY, QStringLiteral("CORBA")); ngs::IObserver::ProtocolType protocol = Settings::hlaProtocol(); INFO_LOG(m_logger) << "Protocol = " << protToStr.value(protocol, QStringLiteral("UNKNOWN")); m_ngsConnector = /* (protocol == ngs::IObserver::ProtocolType::DIS) ? std::make_shared(Settings::federationName(), this) : */ std::make_shared(Settings::federationName(), this); connect(m_ngsConnector.get(), &NgsConnector::firstTickFinished, this, &NgsHandler::onFirstTickFinished, Qt::UniqueConnection); return m_ngsConnector->initialize(protocol, QHostInfo::localHostName().toUpper(), QCoreApplication::applicationDirPath()); } bool NgsHandler::isConnectedToHla() const { return m_ngsConnector && m_ngsConnector->canPublishData(); } void NgsHandler::onFirstTickFinished() { // m_ppmHandler = std::make_shared(this); // m_aesHandler = std::make_shared(this); // if (!m_ppmHandler->init()) // ERROR_LOG(m_logger) << "Could not init ppm handler - not able to publish participants to HLA"; // if (!m_aesHandler->init()) // ERROR_LOG(m_logger) << "Could not init ppm handler - not able to publish area effect simulations to HLA"; emit firstTickFinished(); // connect(m_ppmHandler.get(), &PpmHandler::externalEquipmentNumberAdded, // this, &NgsHandler::externalEquipmentNumberAdded); // connect(m_ppmHandler.get(), &PpmHandler::externalEquipmentNumberRemoved, // this, &NgsHandler::externalEquipmentNumberRemoved); // connect(this, &NgsHandler::participantInitRequest, m_ppmHandler.get(), &PpmHandler::participantInitRequest); // connect(this, &NgsHandler::participantBiteRequest, m_ppmHandler.get(), &PpmHandler::participantBiteRequest); emit ngsHandlerReady(); } } // namespace HighLevelArchitecture