/** * @file XNScenarioDescriptor.h * @author jinchao * @brief 运行环境描述管理器类头文件 * @version 1.0 * @date 2024-11-07 * * @copyright Copyright (c) 2024 XN * */ #pragma once #include "XNBaseFrameObject.h" class XNScenarioManagerPrivate; /** * @brief 运行环境描述管理器类 * @details 主要负责解析运行环境配置文件来设置系统运行参数。 */ class XNScenarioManager : public XNBaseFrameObject { Q_OBJECT Q_DECLARE_PRIVATE(XNScenarioManager) Q_DISABLE_COPY(XNScenarioManager) public: /** * @brief 运行环境描述管理器类默认构造函数 */ explicit XNScenarioManager(QObject *parent = nullptr); /** * @brief 运行环境描述管理器类析构函数 */ virtual ~XNScenarioManager(); protected: /** * @brief 运行环境描述管理器类带参构造函数 * @param p:私有结构体指针 * @details 子类构造时调用此构造函数,传入子类的私有结构体指针 */ XNScenarioManager(XNScenarioManagerPrivate &dd, QObject *parent = nullptr); public: /** * @brief 获取运行环境名称 * @return const XNString&: 运行环境名称 */ const QString &GetSimName(); /** * @brief 设置运行环境名称 * @param simName: XNString类型,运行环境名称 */ void SetSimName(QString &simName); /** * @brief 获取运行环境开始时间 * @return const XNTime&: 运行环境开始时间 */ const QDateTime &GetSimStartTime(); /** * @brief 设置运行环境开始时间 * @param startTime: QDateTime类型,运行环境开始时间 */ void SetSimStartTime(QDateTime &startTime); signals: /** * @brief 信号,用于通知线程管理器添加线程 */ void AddThreadPool(QString name, FreqLevel freq, quint32 priority, quint32 CPUAff, double RunInter); /** * @brief 信号,用于通知模型管理器加载模型 */ void LoadModel(const QString &modelPath, const QString &className); /** * @brief 信号,用于通知服务管理器加载服务 */ void LoadService(const QString &servicePath, const QString &className); /** * @brief 信号,用于通知框架设置工作路径 */ void SetWorkPath(const QString &workPath); /** * @brief 信号,用于通知框架设置模型库路径 */ void SetModelPath(const QString &modelPath); /** * @brief 信号,用于通知框架设置服务库路径 */ void SetServicePath(const QString &servicePath); /** * @brief 信号,用于通知框架设置CPU亲和性 */ void SetCpuAffinity(quint32 cpuAffinity); /** * @brief 设置基础运行频率 * @param freq: 基础运行频率,单位Hz */ void SetBaseFreq(const double &freq); /** * @brief 设置DDS域ID * @param domainID: DDS域ID */ void SetDomainID(quint32 domainID); /** * @brief 解析配置文件成功 */ void AnalyzeScenarioXmlSuccess(); /** * @brief 解析配置文件失败 */ void AnalyzeScenarioXmlFailed(); public slots: /** * @brief 初始化运行环境描述管理器 * @return true: 初始化成功 * @return false: 初始化失败 * @details 运行环境描述管理器的初始化接口函数 */ virtual void OnInitialize() override; /** * @brief 仿真运行前最后处理 * @note 运行环境描述管理器在系统运行开始前的准备工作 */ virtual void OnPrepareForExecute() override; /** * @brief 运行环境配置文件解析 * @param XmlPath: QString类型,运行环境配置文件解析路径 */ virtual void AnalysisScenarioXml(const QString &XmlPath); };