新增信号质量上报

This commit is contained in:
cxh 2026-01-22 17:12:49 +08:00
parent 35f41e9f05
commit 4e115b45ca
3 changed files with 25 additions and 1 deletions

View File

@ -30,3 +30,5 @@ void stop_serial_at();
void start_http_server(int port);
void stop_http_server();
RadioInfo get_radio_info();

View File

@ -11,6 +11,7 @@
#include "record_manager.hpp"
#include "rtmp_manager.hpp"
#include "serial_AT.hpp"
std::shared_ptr<MQTTClient> mqtt_client;
@ -59,6 +60,20 @@ static void send_heartbeat()
: (running_count == total ? 1 : 2); // 全部正常 or 部分异常
hb["channels"] = channels;
// ===== 新增:读取 radio 信息(线程安全,返回拷贝)=====
RadioInfo ri = get_radio_info();
nlohmann::json hb;
hb["timestamp"] = ms;
hb["status"] = (running_count == 0) ? 0 : (running_count == total ? 1 : 2);
hb["channels"] = channels;
// ===== 新增:把 radio 塞进心跳 =====
hb["radio"] = {
{"state", ri.state}, {"rat", ri.rat}, {"pci", ri.pci}, {"band", ri.band}, {"arfcn", ri.arfcn},
{"rsrp", ri.rsrp}, {"rsrq", ri.rsrq}, {"sinr", ri.sinr}, {"raw", ri.raw},
};
// 发布心跳
mqtt_client->publish(g_app_config.mqtt.topics.heartbeat_up, hb.dump(), 0);
// LOG_INFO("[MQTT] Sent video heartbeat (" + std::to_string(running_count) + "/" + std::to_string(total) +

View File

@ -20,6 +20,12 @@ std::mutex imei_mutex;
RadioInfo g_radio_info;
static std::mutex radio_mutex;
RadioInfo get_radio_info()
{
std::lock_guard<std::mutex> lk(radio_mutex);
return g_radio_info;
}
// ================== 运行控制 ==================
static std::atomic<bool> serial_at_running{false};
@ -151,10 +157,11 @@ static void parse_qeng_servingcell(const std::string& line)
g_radio_info.rat = rat;
g_radio_info.pci = pci;
g_radio_info.band = band;
g_radio_info.arfcn = arfcn;
g_radio_info.rsrp = rsrp;
g_radio_info.rsrq = rsrq;
g_radio_info.sinr = sinr;
g_radio_info.arfcn = arfcn;
g_radio_info.raw = line;
}