/** * Send AES data to NGS * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Baeuerle, SLSE, 2017-05-08 */ #include "aes_handler.h" #include "ngs_handler.h" #include #include #include #include #include #include #include #include using namespace AreaEffectSimulation; namespace HighLevelArchitecture { AesHandler::AesHandler(NgsHandler *ngsHandler) : m_ngsHandler(ngsHandler) , m_dtcAes(nullptr) , m_ftcAes(nullptr) , m_dtcPpm(nullptr) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(getLogger("AesHandler")) { } int64_t AesHandler::externalId(int aesItemId) const { AesItem aesItem; if (!m_dtcAes->aesItemFromId(aesItemId, aesItem)) return 0; return aesItem.externalId(); } bool AesHandler::init() { connect(m_ngsHandler->ngsConnector().get(), &NgsConnector::airSupportImpact, this, &AesHandler::onAirSupportImpact); m_dtcAes = AreaEffectSimulation::Interface::Dtc::create(m_ngsHandler->ddsHandler()->ddsConnector()); m_ftcAes = AreaEffectSimulation::Interface::Ftc::create(m_ngsHandler->ddsHandler()->ddsConnector()); m_ftcAes->enableAirSupportImpactModify(); m_dtcPpm = ParticipantManagement::Interface::Dtc::create(m_ngsHandler->ddsHandler()->ddsConnector()); return true; } void AesHandler::onAirSupportImpactModifyReply(const Core::FunctionReplyObject &reply) { m_requestHelper->requestReply(reply); } void AesHandler::onAirSupportImpact(AirSupportImpactModifyRequest asi, int equipmentNumber) { asi.participantId(m_dtcPpm->participantIdByEquipmentNumber(equipmentNumber)); if (!asi.externalId().is_set()) return; m_requestHelper->startSingleRequest([this, asi]() { return m_ftcAes->airSupportImpactModifyRequest(asi, this); }); } } // namespace HighLevelArchitecture