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