207 lines
3.5 KiB
C++
Executable File
207 lines
3.5 KiB
C++
Executable File
/**
|
||
* @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);
|
||
};
|