XNSim/XNCore/XNScenarioManager.h
2025-04-28 12:25:20 +08:00

149 lines
3.5 KiB
C++
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @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);
};