更新调试窗口,更清楚查看4g信号 2900/1 2900/head 2901/target/1
author孙春阳 <snickersun@163.com>
Wed, 10 Dec 2025 03:56:34 +0000 (11:56 +0800)
committer孙春阳 <snickersun@163.com>
Wed, 10 Dec 2025 03:56:34 +0000 (11:56 +0800)
code/sdk/application/wearable/ln/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp
code/sdk/zhihui/4g/cat1Service/Service/cat1_runtime.c
code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c
code/sdk/zhihui/4g/cat1Service/include/cat1_runtime.h

index 70aac00..b3ffe5b 100644 (file)
@@ -16,6 +16,8 @@
 #include <ConfigModel.h>
 #include "cat1_pub_api.h"
 #include "cat1_runtime.h"
+#include <sstream>
+#include <iomanip>
 /* 避免依赖深路径头文件:声明所需 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());
index d8d2805..1be77e3 100644 (file)
@@ -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;
index ba704ba..e67311f 100644 (file)
@@ -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);
index eebf05e..b2fa702 100644 (file)
@@ -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);