[Bugfix][T800][task-view-326] there is error in filling wcdma rscp and
ecno in signalstrength
Only Configure: No
Affected branch: unknown
Affected module: network
Is it affected on both ZXIC and MTK: MTK
Self-test: yes
Doc Update: no
Change-Id: I6f05d389fa122756d9f4f627f4cd0b2465545ba6
diff --git a/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp b/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
index f5c592e..963cae2 100755
--- a/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
@@ -405,6 +405,25 @@
return RESULT_OK;
}
+int is_network_registed(char* network_status)
+{
+ if(strcmp(network_status , "registered") != 0 && strcmp(network_status , "current") !=0) // add by hq on 18/09/2024 for bug-188, registered is for T800, current is for T106
+ {
+ return false;
+ }
+ return true;
+}
+
+int is_network_available(char* network_status)
+{
+ if(strcmp(network_status , "visible") != 0 && strcmp(network_status , "available") !=0) // add by hq on 18/09/2024 for bug-188, visible is for T800, available is for T106
+ {
+ return false;
+ }
+ return true;
+}
+
+
int lynq_query_available_network(char *OperatorFN,char *OperatorSH,char *MccMnc,char * NetStatus)
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -1025,6 +1044,36 @@
return RESULT_OK;
}
+void convert_rscp(int relative_value, int* abs_value)
+{
+ if (0 == relative_value) {
+ (*abs_value) = 120;
+ }
+ else if (0 < relative_value && relative_value <= 96) {
+ (*abs_value) = 121 - relative_value;
+ }
+ else
+ {
+ (*abs_value) = 0x7FFFFFFF;
+ }
+}
+
+void convert_ecno(int relative_value, int* opposite_value_10_times)
+{
+ if (0 == relative_value)
+ {
+ (*opposite_value_10_times) = 240 ;
+ }
+ else if (0 < relative_value && relative_value <= 49)
+ {
+ (*opposite_value_10_times) = 245 - relative_value*5;
+ }
+ else
+ {
+ (*opposite_value_10_times) = 0x7FFFFFFF;
+ }
+}
+
int is_rssi_valid(int rssi)
{
if(rssi < 99 && rssi >=0)
@@ -1042,6 +1091,7 @@
}
return false;
}
+
int lynq_solicited_signal_strength(signalStrength_t *solSigStren)
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -1065,6 +1115,8 @@
int none = 0;
+ int rscp;
+ int ecno;
p->readInt32(&solSigStren->rssi);
if(is_rssi_valid(solSigStren->rssi))
@@ -1102,12 +1154,16 @@
p->readInt32(&none);
p->readInt32(&solSigStren->wcdma_signalstrength);
p->readInt32(&none);
- p->readInt32(&solSigStren->rscp);
- p->readInt32(&solSigStren->ecno);
+ p->readInt32(&rscp);
+ p->readInt32(&ecno);
+
+
LYINFLOG("WCDMA_signalstrength:%d",solSigStren->wcdma_signalstrength);
if(is_rssi_valid(solSigStren->wcdma_signalstrength))
{
solSigStren->wcdma_sig_valid = 1;
+ convert_rscp(rscp,&solSigStren->rscp);
+ convert_ecno(ecno,&solSigStren->ecno);
}else{
solSigStren->wcdma_sig_valid = 0;
}
@@ -1350,8 +1406,9 @@
int resp_type;
int none = 0;
int NR_sum = 0;
-
- int size=p->dataSize();
+ int size=p->dataSize();
+ int rscp;
+ int ecno;
p->readInt32(&resp_type);
p->readInt32(&s_module_wait_urc_id);
p->readInt32(&s_module_urc_slot_id);
@@ -1411,13 +1468,15 @@
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&s_network_urc_solSigStren.wcdma_signalstrength);
- p->readInt32(&none);
- p->readInt32(&s_network_urc_solSigStren.rscp);
- p->readInt32(&s_network_urc_solSigStren.ecno);
+ p->readInt32(&none);//bitErrorRate
+ p->readInt32(&rscp);
+ p->readInt32(&ecno);
if(is_rssi_valid(s_network_urc_solSigStren.wcdma_signalstrength))
{
s_network_urc_solSigStren.wcdma_sig_valid = 1;
- LYINFLOG("urc_WCDMA_signalstrength:%d",s_network_urc_solSigStren.wcdma_signalstrength);
+ convert_rscp(rscp,&s_network_urc_solSigStren.rscp);
+ convert_ecno(ecno,&s_network_urc_solSigStren.ecno);
+ LYINFLOG("urc_WCDMA_signalstrength:%d",s_network_urc_solSigStren.wcdma_signalstrength);
}else{
s_network_urc_solSigStren.wcdma_sig_valid = 0;
}