/** * @RDE_HEADER@ * AsmHandler for AdlerJson Plugin * $Id: pdm_handler.cpp 62304 2024-03-21 08:17:45Z ewert_j $ * $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/UFomHlaJson/pdm_handler.cpp $ * $Author: ewert_j $ * Created by Hanna E. Rathje, 2025-11-18 */ #include "asm_handler.h" #include #include #include namespace AdlerJson { AsmHandler::AsmHandler(QObject *parent) : QObject(parent) , m_dtcAsm(nullptr) , m_ftcAsm(nullptr) , m_exerciseId(-1) , m_logger(getLogger("AsmHandler")) {} bool AsmHandler::init(MainDispatcher* mainDispatcher) { m_ftcAsm = AssetManagement::Interface::Ftc::create(mainDispatcher->ddsHandler()->ddsConnector()); m_ftcAsm->enableAssetModify(); m_dtcAsm = AssetManagement::Interface::Dtc::create(mainDispatcher->ddsHandler()->ddsConnector()); if (!m_dtcAsm->enableAsset()) { ERROR_LOG(m_logger)<<" Can't read data from ASM"; return false; } m_exerciseId = mainDispatcher->exerciseId(); m_dtcAsm->waitForHistoricalDataAsset(1000); return true; } /*! * \brief AsmHandler::modifyAssetAdlerProperties * update asset properties: if hostAddress is found in asset (asset.name()) * exerciseId of party will be stored in the props else -1 * \param hostAddress * \param exerciseId */ void AsmHandler::modifyAssetAdlerProperties(int assetId, bool isSaaConnected) { WARNING_LOG(m_logger)<<">> modify asset properties: set exerciseId: "<asset(assetId); if (asset.id() <= 0) return; QJsonObject assetPropsObj = QJsonDocument::fromJson(asset.properties().c_str()).object(); assetPropsObj[QStringLiteral("exerciseId")] = isSaaConnected ? m_exerciseId : -1; asset.properties(QJsonDocument(assetPropsObj).toJson().toStdString()); m_ftcAsm->assetModifyRequest(asset); } void AsmHandler::onAssetModifyReply(const Core::FunctionReplyObject &reply) { DEBUG_LOG(m_logger) << "Got Function Reply error ? "<