first commit

This commit is contained in:
cxh 2025-09-08 15:09:33 +08:00
parent 0d22e2b95f
commit 7c095fe3b2
3 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,4 @@
// mqtt_client.hpp
#pragma once #pragma once
#include <string> #include <string>
@ -6,7 +7,7 @@
#include <atomic> #include <atomic>
#include <mutex> #include <mutex>
#include <mqtt/async_client.h> #include <mqtt/async_client.h>
#include "mqtt_config.hpp" #include "app_config.hpp"
class MQTTClient : public virtual mqtt::callback class MQTTClient : public virtual mqtt::callback
{ {

View File

@ -1,12 +1,17 @@
// mqtt_client_wrapper.hppa
#pragma once #pragma once
#include "mqtt_config.hpp" #include "app_config.hpp"
#include "logger.hpp" #include "logger.hpp"
#include "mqtt_client.hpp" #include "mqtt_client.hpp"
#include <memory>
#include <atomic>
// 启动 MQTT 客户端(内部自动连接、订阅、发布等) // 启动 MQTT 客户端线程(内部自动连、订阅等)
void mqtt_client_thread_func(); void mqtt_client_thread_func();
// 外部可访问的 MQTT 客户端指针 // 外部可访问的 MQTT 客户端指针
extern std::shared_ptr<MQTTClient> mqtt_client; extern std::shared_ptr<MQTTClient> mqtt_client;
extern std::atomic<bool> mqtt_restart_required;
// 请求 MQTT 客户端重启
extern std::atomic<bool> mqtt_restart_required;

View File

@ -1,3 +1,4 @@
// mqtt_client_wrapper.cpp
#include "mqtt_client_wrapper.hpp" #include "mqtt_client_wrapper.hpp"
std::shared_ptr<MQTTClient> mqtt_client; std::shared_ptr<MQTTClient> mqtt_client;
@ -9,7 +10,11 @@ static uint16_t broadcast_sequence = 0;
static void on_mqtt_connected() static void on_mqtt_connected()
{ {
LOG_INFO("[MQTT] Connected to broker."); LOG_INFO("[MQTT] Connected to broker.");
mqtt_client->subscribe(g_mqtt_config.topics.downlink);
const auto &topics = g_app_config.mqtt.topics;
mqtt_client->subscribe(topics.video_down);
mqtt_client->subscribe(topics.substream_down);
mqtt_client->subscribe(topics.reset_down);
} }
static void on_mqtt_disconnected() static void on_mqtt_disconnected()
@ -34,7 +39,8 @@ void mqtt_client_thread_func()
{ {
while (true) while (true)
{ {
const auto &cfg = g_mqtt_config; const auto &cfg = g_app_config;
mqtt_client = std::make_unique<MQTTClient>(cfg); mqtt_client = std::make_unique<MQTTClient>(cfg);
mqtt_client->setConnectCallback(on_mqtt_connected); mqtt_client->setConnectCallback(on_mqtt_connected);
mqtt_client->setDisconnectCallback(on_mqtt_disconnected); mqtt_client->setDisconnectCallback(on_mqtt_disconnected);