#include <ConfigModel.h>
#include "cat1_pub_api.h"
#include "cat1_runtime.h"
+#include <sstream>
+#include <iomanip>
/* 避免依赖深路径头文件:声明所需 C 接口,保持 C 链接名 */
#ifdef __cplusplus
extern "C"
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};
#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;
}
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());
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] ;
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;
// 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);
* 详细内容见 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);