新增信号质量上报
This commit is contained in:
parent
35f41e9f05
commit
4e115b45ca
@ -30,3 +30,5 @@ void stop_serial_at();
|
|||||||
|
|
||||||
void start_http_server(int port);
|
void start_http_server(int port);
|
||||||
void stop_http_server();
|
void stop_http_server();
|
||||||
|
|
||||||
|
RadioInfo get_radio_info();
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
#include "record_manager.hpp"
|
#include "record_manager.hpp"
|
||||||
#include "rtmp_manager.hpp"
|
#include "rtmp_manager.hpp"
|
||||||
|
#include "serial_AT.hpp"
|
||||||
|
|
||||||
std::shared_ptr<MQTTClient> mqtt_client;
|
std::shared_ptr<MQTTClient> mqtt_client;
|
||||||
|
|
||||||
@ -59,6 +60,20 @@ static void send_heartbeat()
|
|||||||
: (running_count == total ? 1 : 2); // 全部正常 or 部分异常
|
: (running_count == total ? 1 : 2); // 全部正常 or 部分异常
|
||||||
hb["channels"] = channels;
|
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);
|
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) +
|
// LOG_INFO("[MQTT] Sent video heartbeat (" + std::to_string(running_count) + "/" + std::to_string(total) +
|
||||||
|
|||||||
@ -20,6 +20,12 @@ std::mutex imei_mutex;
|
|||||||
RadioInfo g_radio_info;
|
RadioInfo g_radio_info;
|
||||||
static std::mutex radio_mutex;
|
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};
|
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.rat = rat;
|
||||||
|
|
||||||
g_radio_info.pci = pci;
|
g_radio_info.pci = pci;
|
||||||
|
g_radio_info.band = band;
|
||||||
|
g_radio_info.arfcn = arfcn;
|
||||||
g_radio_info.rsrp = rsrp;
|
g_radio_info.rsrp = rsrp;
|
||||||
g_radio_info.rsrq = rsrq;
|
g_radio_info.rsrq = rsrq;
|
||||||
g_radio_info.sinr = sinr;
|
g_radio_info.sinr = sinr;
|
||||||
g_radio_info.arfcn = arfcn;
|
|
||||||
g_radio_info.raw = line;
|
g_radio_info.raw = line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user