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