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
#include <string>
@ -6,7 +7,7 @@
#include <atomic>
#include <mutex>
#include <mqtt/async_client.h>
#include "mqtt_config.hpp"
#include "app_config.hpp"
class MQTTClient : public virtual mqtt::callback
{

View File

@ -1,12 +1,17 @@
// mqtt_client_wrapper.hppa
#pragma once
#include "mqtt_config.hpp"
#include "app_config.hpp"
#include "logger.hpp"
#include "mqtt_client.hpp"
#include <memory>
#include <atomic>
// 启动 MQTT 客户端(内部自动连接、订阅、发布等)
// 启动 MQTT 客户端线程(内部自动连、订阅等)
void mqtt_client_thread_func();
// 外部可访问的 MQTT 客户端指针
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"
std::shared_ptr<MQTTClient> mqtt_client;
@ -9,7 +10,11 @@ static uint16_t broadcast_sequence = 0;
static void on_mqtt_connected()
{
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()
@ -34,7 +39,8 @@ void mqtt_client_thread_func()
{
while (true)
{
const auto &cfg = g_mqtt_config;
const auto &cfg = g_app_config;
mqtt_client = std::make_unique<MQTTClient>(cfg);
mqtt_client->setConnectCallback(on_mqtt_connected);
mqtt_client->setDisconnectCallback(on_mqtt_disconnected);