#ifndef ACASERVER_H #define ACASERVER_H /** * @file ACAServer.h * @author your name (you@domain.com) * @brief * @version 0.1 * @date 2025-07-16 * * @copyright Copyright (c) 2025 * */ /** 说明: 1、这个类初始化全局信息,读取配置文件,连接MQTT服务器,订阅主题等 2、从这里开启对比项服务 3、这里获取初始的检测参数 4、检测参数可以被动态库配置的从GInfo转移到了SysConfig中 */ #include #include "FromMQTT.h" #include "FromWebAPI.h" #include "spdlog/spdlog.h" #include "ThreadCompareItemManager.h" class RTPServer; class ACAServer : public QObject { Q_OBJECT public: ACAServer(); ~ACAServer(); /* 初始化基础信息 */ bool initGlobalInfo(); /* 开启服务 */ bool startService(); private: /* 读取配置文件 */ bool readConfigFile(); /* 等待webapi回复信息 */ bool waitForWebAPIReply(); private: /* 线程函数,定时删除录音线程的实例 */ void thread_deleteRecordThread(); /* 线程函数,开启RTP监听服务,一个壳 */ void thread_RTPServer(); /* 线程函数,为了发送MQTT消息,更新对比项信息到MQTT中,数据由对比项管理器提供 */ private slots: /* 处理MQTT消息 */ void do_receiveMQTTMessage(const QMQTT::Message& message); private: std::shared_ptr m_logger = nullptr; FromMQTT m_fromMQTT; std::atomic_bool m_isRunning = false; /* 线程运行标志位 */ const QString m_webapiTopic = "LH_WEBINFO"; QString m_mqttIP; int m_mqttPort = 1883; /* MQTT服务器端口 */ FromWebAPI m_fromWebAPI; QString m_webAPIUrl; /* WebAPI地址 */ QString m_webAPIID; /* WebAPI ID */ const QString m_appType = "ACAWatch"; /* 应用类型 */ std::atomic_bool m_isGetWebInfoSuccess = false; /* 是否获取WebAPI信息成功 */ // ThreadCompareItemManager* m_threadCompareItemManager = nullptr; /* 对比项管理线程 */ /* --------------------------------- RTP服务 --------------------------------- */ RTPServer* m_rtpServer = nullptr; /* RTP服务对象 */ }; #endif /* ACASERVER_H */