/** * @file AerodynamicsMonitor.h * @author jinchao * @brief 气动模型主题监控类 * @version 1.0 * @date 2025-03-10 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include "../TopicMonitorFactory/TopicMonitor.h" #include "../../XNModels/XNAerodynamics/XNAerodynamicsInterface/XNAerodynamicsInterface.hpp" #include /** * @brief 气动模型主题监控类 */ class AerodynamicsMonitor : public TopicMonitor { Q_OBJECT public: /** * @brief 构造函数 * @param parent 父对象 */ AerodynamicsMonitor(QObject *parent = nullptr); /** * @brief 析构函数 */ virtual ~AerodynamicsMonitor(); /** * @brief 开始监控 * @param topicName 主题名称 * @return 是否成功 */ virtual bool startMonitoring(const QString &topicName) override; /** * @brief 停止监控 * @param topicName 主题名称 * @return 是否成功 */ virtual void stopMonitoring(const QString &topicName) override; /** * @brief 注入数据 * @param varName 变量名称 * @param value 值 * @return 是否成功 */ virtual bool injectData(const QString &varName, double value) override; /** * @brief 获取数据 * @param topicName 主题名称 * @param varName 变量名称 * @return 值 */ virtual QString getData(const QString &topicName, const QString &varName) override; private: /** * @brief 输入接口 */ XNSim::ATA04::Aerodynamics_input_Interface *inputInterface; /** * @brief 输出接口 */ XNSim::ATA04::Aerodynamics_output_Interface *outputInterface; /** * @brief 心跳接口 */ XNSim::ATA04::Aerodynamics_heartbeat_Interface *heartbeatInterface; };