FromMQTT.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef _FROMMQTT_H_
  2. #define _FROMMQTT_H_
  3. #include <atomic>
  4. #include "MQTTBase.h"
  5. class FromMQTT : public MQTTBase
  6. {
  7. Q_OBJECT
  8. public:
  9. FromMQTT(QObject* parent = nullptr);
  10. ~FromMQTT() override;
  11. /* 初始化MQTT */
  12. bool initMQTT();
  13. QString m_webAPIUrl;
  14. QString m_webAPIID;
  15. signals:
  16. /* 刷新页面信号 */
  17. void signal_updatePlan();
  18. /* Web信息到达信号(用于退出等待) */
  19. void signal_webInfoReady();
  20. private:
  21. /* 读取配置文件 */
  22. void readConfig();
  23. /* 等待获取到WebAPI信息(非阻塞UI,收到立即返回)*/
  24. bool waitForWebInfo(int timeoutMs);
  25. protected:
  26. /* 接收到消息,子类继承这个解析消息数据 */
  27. void recvMessage(const QMQTT::Message& message) override;
  28. private:
  29. QString m_mqttIP; /* MQTT服务器IP */
  30. int m_mqttPort = 1883; /* MQTT服务器端口 */
  31. int m_timeOut = 20000; /* 超时时间 */
  32. const QString m_topic_WebAPI = "LH_WEBINFO"; /* 订阅WebAPI信息的主题 */
  33. const QString m_topic_UpdatePlan = "LH_EQM_ALARM_PERIOD"; /* 订阅更新计划的主题 */
  34. const QString m_configName = "/Config.ini";
  35. std::atomic_bool m_isGetWebInfoSuccess{false}; /* 是否获取到WebAPI信息 */
  36. };
  37. #endif // _FROMMQTT_H_