2025-04-28 12:25:20 +08:00

70 lines
1.3 KiB
C++
Executable File

/**
* @file TopicMonitor.h
* @author jinchao
* @brief 主题监控器基类
* @version 1.0
* @date 2025-03-10
*
* @copyright Copyright (c) 2025 COMAC
*
*/
#pragma once
#include <QString>
#include <QObject>
#include <QMap>
#include <QSharedPointer>
#include "../TypeDefine.h"
/**
* @brief 主题监控器基类
*/
class TopicMonitor : public QObject
{
Q_OBJECT
public:
/**
* @brief 构造函数
* @param parent: 父对象
*/
TopicMonitor(QObject *parent = nullptr) : QObject(parent) {}
/**
* @brief 析构函数
*/
virtual ~TopicMonitor() {}
/**
* @brief 启动监控
* @param topicName: 主题名称
* @return bool: 是否启动成功
*/
virtual bool startMonitoring(const QString &topicName) = 0;
/**
* @brief 停止监控
* @param topicName: 主题名称
*/
virtual void stopMonitoring(const QString &topicName) = 0;
/**
* @brief 注入数据
* @param varName: 变量名称
* @param value: 数据值
* @return bool: 是否注入成功
*/
virtual bool injectData(const QString &varName, double value) = 0;
/**
* @brief 获取数据
* @param topicName: 主题名称
* @param varName: 变量名称
* @return QString: 数据值
*/
virtual QString getData(const QString &topicName, const QString &varName) = 0;
/**
* @brief 监控状态
*/
QMap<QString, int> m_MonitorStatus;
};