From 8236c85be660bcbd0ea33de84aac85098102aadf Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Wed, 10 Dec 2025 11:56:34 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=B4=E6=96=B0=E8=B0=83=E8=AF=95=E7=AA=97?= =?utf8?q?=E5=8F=A3=EF=BC=8C=E6=9B=B4=E6=B8=85=E6=A5=9A=E6=9F=A5=E7=9C=8B4?= =?utf8?q?g=E4=BF=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../debug_output_notification.cpp | 28 +++++++++++++---- .../4g/cat1Service/Service/cat1_runtime.c | 30 +++++++++++++++++++ .../4g/cat1Service/Service/cat1_server.c | 18 +++++++++-- .../4g/cat1Service/include/cat1_runtime.h | 6 ++++ 4 files changed, 73 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/wearable/ln/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp b/code/sdk/application/wearable/ln/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp index 70aac00fb..b3ffe5b2f 100644 --- a/code/sdk/application/wearable/ln/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp +++ b/code/sdk/application/wearable/ln/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp @@ -16,6 +16,8 @@ #include #include "cat1_pub_api.h" #include "cat1_runtime.h" +#include +#include /* 避免依赖深路径头文件:声明所需 C 接口,保持 C 链接名 */ #ifdef __cplusplus extern "C" @@ -43,6 +45,14 @@ namespace OHOS static const DebugOutputViewMapper ViewMapper[] = {}; + /* -------------------------------------------------------------------------- */ + /* 辅助函数:格式化浮点数保留2位小数 */ + static std::string float_to_string_2decimals(float value) + { + std::ostringstream oss; + oss << std::fixed << std::setprecision(2) << value; + return oss.str(); + } /* -------------------------------------------------------------------------- */ UIViewGroup *DebugGroupView{nullptr}; UILabel *debugOutputtitleLabel{nullptr}; @@ -196,12 +206,18 @@ namespace OHOS #ifdef SUPPORT_PPP_SERVICE //ppp波特率 deviceInfo += "cat1 cesq:" + std::string(cat1_api_runtime_get_cat1_cesq())+ "\n"; - deviceInfo += "cat1 csq_rssi:" + std::to_string(cat1_api_runtime_get_cat1_signal())+ "\n"; + deviceInfo += "cat1 rsrq_db:" + float_to_string_2decimals(cat1_api_runtime_get_cat1_rsrq_db()); + deviceInfo += " rsrp_dbm:" + float_to_string_2decimals(cat1_api_runtime_get_cat1_rsrp_dbm()); + deviceInfo += " rsrq_quality:" + std::string(cat1_api_runtime_get_cat1_rsrq_quality())+ "\n"; + deviceInfo += "cat1 csq_rssi:" + std::to_string(cat1_api_runtime_get_cat1_signal())+ " "+std::to_string(cat1_api_runtime_get_cat1_signal_bars())+"\n"; uint32_t ppp_baudrate = get_ppp_baudrate_from_config_model(); deviceInfo += "ppp波特率:" + std::to_string(ppp_baudrate) + "\n"; #else deviceInfo += "cat1 cesq:" + std::string(cat1_api_runtime_get_cat1_cesq())+ "\n"; - deviceInfo += "cat1 csq_rssi:" + std::to_string(cat1_api_runtime_get_cat1_signal())+ "\n"; + deviceInfo += "cat1 rsrq_db:" + float_to_string_2decimals(cat1_api_runtime_get_cat1_rsrq_db()); + deviceInfo += " rsrp_dbm:" + float_to_string_2decimals(cat1_api_runtime_get_cat1_rsrp_dbm()); + deviceInfo += " rsrq_quality:" + std::string(cat1_api_runtime_get_cat1_rsrq_quality())+ "\n"; + deviceInfo += "cat1 csq_rssi:" + std::to_string(cat1_api_runtime_get_cat1_signal())+ " "+std::to_string(cat1_api_runtime_get_cat1_signal_bars())+"\n"; #endif return deviceInfo; } @@ -285,12 +301,12 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new debugOutputLabel fail"); return nullptr; } - debugOutputLabel->SetPosition(30, 65, 300, 70); + debugOutputLabel->SetPosition(35, 65, 290, 70); debugOutputLabel->SetText(DebugOutputViewEventListener::GetInstance().GetLeiNiaoDeviceInfo().c_str()); - debugOutputLabel->SetStyle(STYLE_TEXT_FONT, 20); - debugOutputLabel->SetStyle(STYLE_LINE_HEIGHT, 20); + debugOutputLabel->SetStyle(STYLE_TEXT_FONT, 18); + debugOutputLabel->SetStyle(STYLE_LINE_HEIGHT, 18); debugOutputLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP); - debugOutputLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20); + debugOutputLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18); DebugGroupView->Add(debugOutputLabel); } RootView::GetInstance()->SetOnKeyActListener((OHOS::RootView::OnKeyActListener *)&DebugOutputViewEventListener::GetInstance()); diff --git a/code/sdk/zhihui/4g/cat1Service/Service/cat1_runtime.c b/code/sdk/zhihui/4g/cat1Service/Service/cat1_runtime.c index d8d2805f0..1be77e3cf 100644 --- a/code/sdk/zhihui/4g/cat1Service/Service/cat1_runtime.c +++ b/code/sdk/zhihui/4g/cat1Service/Service/cat1_runtime.c @@ -24,6 +24,9 @@ typedef struct int sim ; int signal ; int signal_bars ; + float rsrq_db ; + float rsrp_dbm ; + char rsrq_quality[32] ; char cesq[64] ; char opera[64] ; char imei[32] ; @@ -34,6 +37,33 @@ typedef struct static cat1_runtime_status_t g_runtime={0}; +void cat1_api_runtime_set_cat1_rsrq_db(float rsrq_db) +{ + g_runtime.rsrq_db=rsrq_db; +} +float cat1_api_runtime_get_cat1_rsrq_db(void) +{ + return g_runtime.rsrq_db; +} +void cat1_api_runtime_set_cat1_rsrp_dbm(float rsrp_dbm) +{ + g_runtime.rsrp_dbm=rsrp_dbm; +} +float cat1_api_runtime_get_cat1_rsrp_dbm(void) +{ + return g_runtime.rsrp_dbm; +} +void cat1_api_runtime_set_cat1_rsrq_quality(char* rsrq_quality) +{ + if (rsrq_quality == NULL) return; + int len=strlen(rsrq_quality); + memset_s(g_runtime.rsrq_quality,sizeof(g_runtime.rsrq_quality),0,sizeof(g_runtime.rsrq_quality)); + memcpy_s(g_runtime.rsrq_quality,sizeof(g_runtime.rsrq_quality),rsrq_quality,len); +} +char* cat1_api_runtime_get_cat1_rsrq_quality(void) +{ + return g_runtime.rsrq_quality; +} void cat1_api_runtime_set_cat1_signal_bars(int signal_bars) { g_runtime.signal_bars=signal_bars; diff --git a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c index ba704ba92..e67311f80 100644 --- a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c +++ b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c @@ -1146,21 +1146,33 @@ static int cat1_parse_cesq_response(const char *response) // RSRQ >= -9.0 且 RSRP >= -90: 信号良好 // RSRQ >= -12.0 且 RSRP >= -100: 信号一般 // 其他: 信号较差 + char* rsrq_quality = NULL; if (rsrq_db >= -6.0f && rsrp_dbm >= -80.0f) { + rsrq_quality = "极佳"; signal_strength = 4; } else if (rsrq_db >= -9.0f && rsrp_dbm >= -90.0f) { - signal_strength = 3; + rsrq_quality = "良好"; + signal_strength = 3; } else if (rsrq_db >= -12.0f && rsrp_dbm >= -100.0f) { - signal_strength = 2; + rsrq_quality = "一般"; + signal_strength = 2; } else { - signal_strength = 1; + rsrq_quality = "较差"; + signal_strength = 1; } + cat1_api_runtime_set_cat1_rsrq_db(rsrq_db); + cat1_api_runtime_set_cat1_rsrp_dbm(rsrp_dbm); + cat1_api_runtime_set_cat1_rsrq_quality(rsrq_quality); } else { // RSRQ/RSRP无效(非4G网络或无效值) cat1_print_warning("cat1_getsignal: RSRQ/RSRP invalid (rsrq=%d, rsrp=%d), signal_strength=0\n", rsrq, rsrp); signal_strength = 0; + cat1_api_runtime_set_cat1_rsrq_db(0); + cat1_api_runtime_set_cat1_rsrp_dbm(0); + cat1_api_runtime_set_cat1_rsrq_quality("无信号"); } + // 更新信号强度到运行时状态 int current_signal_bars = cat1_api_runtime_get_cat1_signal_bars(); bool signal_changed = (current_signal_bars != signal_strength); diff --git a/code/sdk/zhihui/4g/cat1Service/include/cat1_runtime.h b/code/sdk/zhihui/4g/cat1Service/include/cat1_runtime.h index eebf05eea..b2fa702d4 100644 --- a/code/sdk/zhihui/4g/cat1Service/include/cat1_runtime.h +++ b/code/sdk/zhihui/4g/cat1Service/include/cat1_runtime.h @@ -25,6 +25,12 @@ extern "C" { * 详细内容见 runtime_status_t 定义 */ /***************************************cat1 runtime 变量设置获取函数**************************************************/ +void cat1_api_runtime_set_cat1_rsrq_db(float rsrq_db); +float cat1_api_runtime_get_cat1_rsrq_db(void); +void cat1_api_runtime_set_cat1_rsrp_dbm(float rsrp_dbm); +float cat1_api_runtime_get_cat1_rsrp_dbm(void); +void cat1_api_runtime_set_cat1_rsrq_quality(char* rsrq_quality); +char* cat1_api_runtime_get_cat1_rsrq_quality(void); void cat1_api_runtime_set_cat1_cesq(char* cesq); char* cat1_api_runtime_get_cat1_cesq(void); -- 2.17.1