ACAServer.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef ACASERVER_H
  2. #define ACASERVER_H
  3. /**
  4. * @file ACAServer.h
  5. * @author your name (you@domain.com)
  6. * @brief
  7. * @version 0.1
  8. * @date 2025-07-16
  9. *
  10. * @copyright Copyright (c) 2025
  11. *
  12. */
  13. /**
  14. 说明:
  15. 1、这个类初始化全局信息,读取配置文件,连接MQTT服务器,订阅主题等
  16. 2、从这里开启对比项服务
  17. 3、这里获取初始的检测参数
  18. 4、检测参数可以被动态库配置的从GInfo转移到了SysConfig中
  19. */
  20. #include <QObject>
  21. #include "FromMQTT.h"
  22. #include "FromWebAPI.h"
  23. #include "spdlog/spdlog.h"
  24. #include "ThreadCompareItemManager.h"
  25. class ACAServer : public QObject
  26. {
  27. Q_OBJECT
  28. public:
  29. ACAServer();
  30. ~ACAServer();
  31. /* 初始化基础信息 */
  32. bool initGlobalInfo();
  33. /* 开启服务 */
  34. bool startService();
  35. private:
  36. /* 读取配置文件 */
  37. bool readConfigFile();
  38. /* 等待webapi回复信息 */
  39. bool waitForWebAPIReply();
  40. private:
  41. /* 线程函数,定时删除录音线程的实例 */
  42. void thread_deleteRecordThread();
  43. private slots:
  44. /* 处理MQTT消息 */
  45. void do_receiveMQTTMessage(const QMQTT::Message& message);
  46. private:
  47. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  48. FromMQTT m_fromMQTT;
  49. std::atomic_bool m_isRunning = false; /* 线程运行标志位 */
  50. const QString m_webapiTopic = "LH_WEBINFO";
  51. QString m_mqttIP;
  52. int m_mqttPort = 1883; /* MQTT服务器端口 */
  53. FromWebAPI m_fromWebAPI;
  54. QString m_webAPIUrl; /* WebAPI地址 */
  55. QString m_webAPIID; /* WebAPI ID */
  56. const QString m_appType = "ACAWatch"; /* 应用类型 */
  57. std::atomic_bool m_isGetWebInfoSuccess = false; /* 是否获取WebAPI信息成功 */
  58. // ThreadCompareItemManager* m_threadCompareItemManager = nullptr; /* 对比项管理线程 */
  59. };
  60. #endif /* ACASERVER_H */