ACAServer.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. /* 打印ACA服务一些基础配置参数 */
  47. void printACAServerConfig();
  48. private slots:
  49. /* 处理MQTT消息 */
  50. void do_receiveMQTTMessage(const QMQTT::Message& message);
  51. private:
  52. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  53. FromMQTT m_fromMQTT;
  54. std::atomic_bool m_isRunning = false; /* 线程运行标志位 */
  55. const QString m_webapiTopic = "LH_WEBINFO";
  56. QString m_mqttIP;
  57. int m_mqttPort = 1883; /* MQTT服务器端口 */
  58. FromWebAPI m_fromWebAPI;
  59. QString m_webAPIUrl; /* WebAPI地址 */
  60. QString m_webAPIID; /* WebAPI ID */
  61. const QString m_appType = "ACAWatch"; /* 应用类型 */
  62. std::atomic_bool m_isGetWebInfoSuccess = false; /* 是否获取WebAPI信息成功 */
  63. // ThreadCompareItemManager* m_threadCompareItemManager = nullptr; /* 对比项管理线程 */
  64. /* --------------------------------- RTP服务 --------------------------------- */
  65. RTPServer* m_rtpServer = nullptr; /* RTP服务对象 */
  66. };
  67. #endif /* ACASERVER_H */