70 lines
1.3 KiB
C
70 lines
1.3 KiB
C
|
/**
|
||
|
* @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;
|
||
|
};
|