ACAServer.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 RTPServer;
  26. class ACAServer : public QObject
  27. {
  28. Q_OBJECT
  29. public:
  30. ACAServer();
  31. ~ACAServer();
  32. /* 初始化基础信息 */
  33. bool initGlobalInfo();
  34. /* 开启服务 */
  35. bool startService();
  36. private:
  37. /* 读取配置文件 */
  38. bool readConfigFile();
  39. /* 等待webapi回复信息 */
  40. bool waitForWebAPIReply();
  41. private:
  42. /* 线程函数,定时删除录音线程的实例 */
  43. void thread_deleteRecordThread();
  44. /* 线程函数,开启RTP监听服务,一个壳 */
  45. void thread_RTPServer();
  46. private slots:
  47. /* 处理MQTT消息 */
  48. void do_receiveMQTTMessage(const QMQTT::Message& message);
  49. private:
  50. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  51. FromMQTT m_fromMQTT;
  52. std::atomic_bool m_isRunning = false; /* 线程运行标志位 */
  53. const QString m_webapiTopic = "LH_WEBINFO";
  54. QString m_mqttIP;
  55. int m_mqttPort = 1883; /* MQTT服务器端口 */
  56. FromWebAPI m_fromWebAPI;
  57. QString m_webAPIUrl; /* WebAPI地址 */
  58. QString m_webAPIID; /* WebAPI ID */
  59. const QString m_appType = "ACAWatch"; /* 应用类型 */
  60. std::atomic_bool m_isGetWebInfoSuccess = false; /* 是否获取WebAPI信息成功 */
  61. // ThreadCompareItemManager* m_threadCompareItemManager = nullptr; /* 对比项管理线程 */
  62. /* --------------------------------- RTP服务 --------------------------------- */
  63. RTPServer* m_rtpServer = nullptr; /* RTP服务对象 */
  64. };
  65. #endif /* ACASERVER_H */