#ifndef _FROMMQTT_H_ #define _FROMMQTT_H_ #include #include "MQTTBase.h" class FromMQTT : public MQTTBase { Q_OBJECT public: FromMQTT(QObject* parent = nullptr); ~FromMQTT() override; /* 初始化MQTT */ bool initMQTT(); QString m_webAPIUrl; QString m_webAPIID; signals: /* 刷新页面信号 */ void signal_updatePlan(); /* Web信息到达信号(用于退出等待) */ void signal_webInfoReady(); private: /* 读取配置文件 */ void readConfig(); /* 等待获取到WebAPI信息(非阻塞UI,收到立即返回)*/ bool waitForWebInfo(int timeoutMs); protected: /* 接收到消息,子类继承这个解析消息数据 */ void recvMessage(const QMQTT::Message& message) override; private: QString m_mqttIP; /* MQTT服务器IP */ int m_mqttPort = 1883; /* MQTT服务器端口 */ int m_timeOut = 20000; /* 超时时间 */ const QString m_topic_WebAPI = "LH_WEBINFO"; /* 订阅WebAPI信息的主题 */ const QString m_topic_UpdatePlan = "LH_EQM_ALARM_PERIOD"; /* 订阅更新计划的主题 */ const QString m_configName = "/Config.ini"; std::atomic_bool m_isGetWebInfoSuccess{false}; /* 是否获取到WebAPI信息 */ }; #endif // _FROMMQTT_H_