/** * @file XNFramework.h * @author jinchao * @brief 框架类 * @version 1.0 * @date 2025-01-08 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include "XNObject.h" class XNFrameworkPrivate; /** * @brief 框架类 */ class XNCORE_EXPORT XNFramework : public XNObject { /** * @brief 宏定义,用于支持Qt的元对象系统 */ Q_OBJECT /** * @brief 宏定义,用于禁用拷贝构造函数 */ Q_DISABLE_COPY(XNFramework) /** * @brief 宏定义,用于声明私有数据成员 */ Q_DECLARE_PRIVATE(XNFramework); /** * @brief 宏定义,用于声明属性workPath */ Q_PROPERTY(QString workPath READ GetWorkPath WRITE SetWorkPath) /** * @brief 宏定义,用于声明属性modelPath */ Q_PROPERTY(QString modelPath READ GetModelPath WRITE SetModelPath) /** * @brief 宏定义,用于声明属性cpuAffinity */ Q_PROPERTY(quint32 cpuAffinity READ GetCpuAffinity WRITE SetCpuAffinity) public: /** * @brief 构造函数 * @param parent 父对象 */ explicit XNFramework(QObject *parent = nullptr); /** * @brief 析构函数 */ virtual ~XNFramework(); /** * @brief 获取工作路径 * @return 工作路径 */ QString GetWorkPath(); /** * @brief 获取模型库路径 * @return 模型库路径 */ QString GetModelPath(); /** * @brief 获取服务库路径 * @return 服务库路径 */ QString GetServicePath(); /** * @brief 获取CPU亲和性 * @return CPU亲和性 */ quint32 GetCpuAffinity(); /** * @brief 设置场景XML * @param scenarioXml 场景XML */ void SetScenarioXml(const QString &scenarioXml); signals: /** * @brief 初始化 */ void Initialize(); /** * @brief 初始化成功 */ void InitializeSuccess(bool isSuccess); /** * @brief 准备执行 */ void PrepareForExecute(); /** * @brief 准备执行成功 */ void PrepareForExecuteSuccess(bool isSuccess); /** * @brief 分析场景XML * @param scenarioXml 场景XML */ void AnalyzeScenarioXml(const QString &scenarioXml); /** * @brief 仿真控制 * @param objectId 对象ID * @param cmd 命令 */ void SimControl(quint32 objectId, SimControlCmd cmd); public slots: /** * @brief 设置工作路径 * @param workPath 工作路径 */ void SetWorkPath(const QString &workPath); /** * @brief 设置模型库路径 * @param modelPath 模型库路径 */ void SetModelPath(const QString &modelPath); /** * @brief 设置服务库路径 * @param servicePath 服务库路径 */ void SetServicePath(const QString &servicePath); /** * @brief 设置CPU亲和性 * @param cpuAffinity CPU亲和性 */ void SetCpuAffinity(quint32 cpuAffinity); /** * @brief 初始化 */ void OnInitialize(); /** * @brief 初始化成功 */ void OnInitializeSuccess(); /** * @brief 初始化失败 */ void OnInitializeFailed(); /** * @brief 解析配置文件成功 */ void OnAnalyzeScenarioXmlSuccess(); /** * @brief 解析配置文件失败 */ void OnAnalyzeScenarioXmlFailed(); /** * @brief 准备执行 */ void OnPrepareForExecute(); /** * @brief 准备执行成功 */ void OnPrepareForExecuteSuccess(); /** * @brief 准备执行失败 */ void OnPrepareForExecuteFailed(); /** * @brief 仿真控制 * @param cmd 命令 */ void OnSimControl(quint32 objectId, SimControlCmd cmd); protected: /** * @brief 构造函数 * @param dd 私有数据成员 * @param parent 父对象 */ XNFramework(XNFrameworkPrivate &dd, QObject *parent = nullptr); };