XNSim/Release/include/XNCore/XNTimeManager.h

134 lines
2.9 KiB
C
Raw Normal View History

2025-04-28 12:25:20 +08:00
/**
* @file XNTimeManager.h
* @author jinchao
* @brief
* @version 1.0
* @date 2024-11-10
*
* @copyright Copyright (c) 2024 XN
*
*/
#pragma once
#include "XNBaseFrameObject.h"
#include <QDateTime>
class XNTimeManagerPrivate;
/**
* @brief
* @details 仿仿
*/
class XNCORE_EXPORT XNTimeManager : public XNBaseFrameObject
{
Q_OBJECT
Q_DISABLE_COPY(XNTimeManager);
Q_DECLARE_PRIVATE(XNTimeManager);
public:
/**
* @brief
* @param parent:
*/
explicit XNTimeManager(QObject *parent = nullptr);
/**
* @brief
*/
virtual ~XNTimeManager();
protected:
/**
* @brief
* @param dd:
* @param parent:
*/
XNTimeManager(XNTimeManagerPrivate &dd, QObject *parent = nullptr);
public:
/**
* @brief 仿
* @return QDateTime: 仿
*/
QDateTime GetSimTime();
signals:
/**
* @brief 仿
* @param simTime: timespec结构体类型线
* @details 使线
*/
void SetStartTime(const timespec &simTime);
/**
* @brief 仿
* @param objectId: ID
* @param cmd: 仿
*/
void SimControl(quint32 objectId, SimControlCmd cmd);
public slots:
/**
* @brief 仿
* @param simTime: timespec类型仿
*/
void OnSetStartTime(const timespec &simTime);
/**
* @brief
* @details 线
*/
void OnStart();
/**
* @brief
* @details 线
*/
void OnAbort();
/**
* @brief
* @details 线
*/
void OnPause();
/**
* @brief
* @details 线
*/
void OnContinue();
/**
* @brief
* @return true:
* @return false:
* @details
*/
virtual void OnInitialize() override;
/**
* @brief 仿
* @note
*/
virtual void OnPrepareForExecute() override;
/**
* @brief 仿
* @param objectId: ID
* @param cmd: 仿
*/
void OnSimControl(quint32 objectId, SimControlCmd cmd);
public:
/**
* @brief
* @return RunStatus: 线
* @details 线
*/
RunStatus GetStatus();
private:
/**
* @brief 线
*/
void StepExecute();
};