/** * @file TopicMonitor.h * @author jinchao * @brief 主题监控器基类 * @version 1.0 * @date 2025-03-10 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include #include #include #include #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 m_MonitorStatus; };