[Bugfix][T800][task-view-324] add
wcdma_signalstrength lte_signalstrength in signalStrength_t
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: I82d6bc06a73292e0831d3aaa152a85ea2b098068
diff --git a/LYNQ_PUBLIC/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/network/RpNwController.cpp b/LYNQ_PUBLIC/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/network/RpNwController.cpp
index c4fddf2..4c37289 100755
--- a/LYNQ_PUBLIC/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/network/RpNwController.cpp
+++ b/LYNQ_PUBLIC/IC_src/mtk/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/network/RpNwController.cpp
@@ -348,6 +348,12 @@
{
RIL_SignalStrength_v14 p_cur;
memset(&p_cur, 0, sizeof(p_cur));
+ /*hq add for API-1299 20240325 begin*/
+ p_cur.WCDMA_SignalStrength.signalStrength = -1;
+ p_cur.LTE_SignalStrength.signalStrength = -1;
+ p_cur.GW_SignalStrength.signalStrength = -1;
+ /*hq add for API-1299 20240325 end*/
+
mipc_nw_signal_type_const_enum type = mipc_nw_signal_ind_get_signal_type(result_ptr,mipc_nw_signal_type_const_NONE);
RFX_LOG_D(RFX_LOG_TAG,"mipc_signal_strength_ind_to_parcel type =%d\n", type);
@@ -483,6 +489,12 @@
{
RIL_SignalStrength_v14 p_cur;
memset(&p_cur, 0, sizeof(p_cur));
+ /*hq add for API-1299 20240325 begin*/
+ p_cur.WCDMA_SignalStrength.signalStrength = -1;
+ p_cur.LTE_SignalStrength.signalStrength = -1;
+ p_cur.GW_SignalStrength.signalStrength = -1;
+ /*hq add for API-1299 20240325 end*/
+
mipc_nw_signal_type_const_enum type = mipc_nw_set_signal_cnf_get_signal_type(result_ptr,mipc_nw_signal_type_const_NONE);
RFX_LOG_D(RFX_LOG_TAG,"mipc_signal_strength_cnf_to_parcel type =%d\n", type);
diff --git a/LYNQ_PUBLIC/common_src/framework/lynq-ril-service/src/ril.cpp b/LYNQ_PUBLIC/common_src/framework/lynq-ril-service/src/ril.cpp
index bf24c67..90a842a 100755
--- a/LYNQ_PUBLIC/common_src/framework/lynq-ril-service/src/ril.cpp
+++ b/LYNQ_PUBLIC/common_src/framework/lynq-ril-service/src/ril.cpp
@@ -2624,7 +2624,7 @@
str[i] = (char)(c + n%90); //encode
}
else
- { //After encoding, the space beyond the end reaches ‘z’, and the cycle starts from the beginning.
+ { //After encoding, the space beyond the end reaches 'z', and the cycle starts from the beginning.
str[i] = (char)(c + n%90 - 90);//encode
}
}
@@ -2654,7 +2654,7 @@
}
else
{
- //After decoding, there are over spaces until ‘z’, and the lowercase letters are processed into printable information by looping
+ //After decoding, there are over spaces until ''z', and the lowercase letters are processed into printable information by looping
str[i] = (char)(c - n%90 + 90); //decode
}
}
@@ -2998,12 +2998,19 @@
p.writeInt32(p_cur->WCDMA_SignalStrength.rscp);
p.writeInt32(p_cur->WCDMA_SignalStrength.ecno);
#ifdef TELEMATIC_5G_SUPPORT
- p.writeInt32(p_cur->NR_SignalStrength.ssRsrp);
- p.writeInt32(p_cur->NR_SignalStrength.ssRsrq);
- p.writeInt32(p_cur->NR_SignalStrength.ssSinr);
- p.writeInt32(p_cur->NR_SignalStrength.csiRsrp);
- p.writeInt32(p_cur->NR_SignalStrength.csiRsrq);
- p.writeInt32(p_cur->NR_SignalStrength.csiSinr);
+ if(responselen >= sizeof (RIL_SignalStrength_v14))
+ {
+ p.writeInt32(p_cur->NR_SignalStrength.ssRsrp);
+ p.writeInt32(p_cur->NR_SignalStrength.ssRsrq);
+ p.writeInt32(p_cur->NR_SignalStrength.ssSinr);
+ p.writeInt32(p_cur->NR_SignalStrength.csiRsrp);
+ p.writeInt32(p_cur->NR_SignalStrength.csiRsrq);
+ p.writeInt32(p_cur->NR_SignalStrength.csiSinr);
+ }
+ else
+ {
+ memset(&(p_cur->NR_SignalStrength), 0, sizeof(p_cur->NR_SignalStrength));
+ }
#endif
startResponse;
diff --git a/LYNQ_PUBLIC/common_src/lib/liblynq-network/include/lynq_network/lynq_network.h b/LYNQ_PUBLIC/common_src/lib/liblynq-network/include/lynq_network/lynq_network.h
index 00c5669..ced745b 100755
--- a/LYNQ_PUBLIC/common_src/lib/liblynq-network/include/lynq_network/lynq_network.h
+++ b/LYNQ_PUBLIC/common_src/lib/liblynq-network/include/lynq_network/lynq_network.h
@@ -11,6 +11,7 @@
int gw_sig_valid; /*1 valid,1 invalid*/
int rssi; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
int wcdma_sig_valid;/*1 valid,0 invalid*/
+ int wcdma_signalstrength;/* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
int rscp; /* The Received Signal Code Power in dBm multipled by -1.
* Range : 25 to 120
* INT_MAX: 0x7FFFFFFF denotes invalid value.
@@ -19,6 +20,7 @@
* by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
* will be 125.*/
int lte_sig_valid;/*1 valid,0 invalid*/
+ int lte_signalstrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
* Range: 44 to 140 dBm
* INT_MAX: 0x7FFFFFFF denotes invalid value.
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 311a360..f5c592e 100755
--- a/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
+++ b/LYNQ_PUBLIC/common_src/lib/liblynq-network/lynq_network.cpp
@@ -18,6 +18,7 @@
#define LYNQ_RESP_STRING_MAX_NUM 128
#define LYNQ_TYPE_BUF 10
+#define LYNQ_URC_MSG_HEAD_ELEMENT_NUM 3
#define USER_LOG_TAG "LYNQ_NETWORK"
/*in CR AUTO00210807 MTK confirm set network selection mode max time is 14min 30s, first set 5 min 10s*/
@@ -1024,6 +1025,23 @@
return RESULT_OK;
}
+int is_rssi_valid(int rssi)
+{
+ if(rssi < 99 && rssi >=0)
+ {
+ return true;
+ }
+ return false;
+}
+
+int is_nr_ss_rsrp_valid(int ss_rsrp)
+{
+ if(ss_rsrp > 0 && ss_rsrp < 255)
+ {
+ return true;
+ }
+ return false;
+}
int lynq_solicited_signal_strength(signalStrength_t *solSigStren)
{
if(g_module_init_flag != MODULE_RUNNING)
@@ -1043,15 +1061,13 @@
{
LYERRLOG("%s call lynq_send_common_request failure, ret is %d",__func__,ret);
return ret;
- }
-
- int sum = 0;
- int LTE_signalstrength = 0;
- int WCDMA_signalstrength = 0;
+ }
+
+
int none = 0;
p->readInt32(&solSigStren->rssi);
- if((solSigStren->rssi!=99)&&(solSigStren->rssi!=0))
+ if(is_rssi_valid(solSigStren->rssi))
{
solSigStren->gw_sig_valid = 1;
}else{
@@ -1065,13 +1081,14 @@
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
- p->readInt32(<E_signalstrength);
+ p->readInt32(&solSigStren->lte_signalstrength);
+
// p->readInt32(&solSigStren->signalStrength.LTE_SignalStrength.signalStrength);
p->readInt32(&solSigStren->rsrp);
p->readInt32(&solSigStren->rsrq);
p->readInt32(&solSigStren->rssnr);
- LYINFLOG("LTE_signalstrength:%d",LTE_signalstrength);
- if((LTE_signalstrength!=99)&&(LTE_signalstrength!=0))
+ LYINFLOG("LTE_signalstrength:%d",solSigStren->lte_signalstrength);
+ if(is_rssi_valid(solSigStren->lte_signalstrength))
{
solSigStren->lte_sig_valid = 1;
}else{
@@ -1083,12 +1100,12 @@
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
- p->readInt32(&WCDMA_signalstrength);
+ p->readInt32(&solSigStren->wcdma_signalstrength);
p->readInt32(&none);
p->readInt32(&solSigStren->rscp);
p->readInt32(&solSigStren->ecno);
- LYINFLOG("WCDMA_signalstrength:%d",WCDMA_signalstrength);
- if((WCDMA_signalstrength!=99)&&(WCDMA_signalstrength!=0))
+ LYINFLOG("WCDMA_signalstrength:%d",solSigStren->wcdma_signalstrength);
+ if(is_rssi_valid(solSigStren->wcdma_signalstrength))
{
solSigStren->wcdma_sig_valid = 1;
}else{
@@ -1096,18 +1113,18 @@
}
/*bug fix*/
p->readInt32(&solSigStren->ssRsrp);
- p->readInt32(&solSigStren->ssRsrq);
- p->readInt32(&solSigStren->ssSinr);
- p->readInt32(&solSigStren->csiRsrp);
- p->readInt32(&solSigStren->csiRsrq);
- p->readInt32(&solSigStren->csiSinr);
- sum = (solSigStren->ssRsrp) + (solSigStren->ssRsrq) + (solSigStren->ssSinr) + (solSigStren->csiRsrp)+\
- (solSigStren->csiRsrq) + (solSigStren->csiSinr);
- if(sum != 0)
+ if(is_nr_ss_rsrp_valid(solSigStren->ssRsrp))
{
solSigStren->nr_sig_valid = 1;
- }else{
+ p->readInt32(&solSigStren->ssRsrq);
+ p->readInt32(&solSigStren->ssSinr);
+ p->readInt32(&solSigStren->csiRsrp);
+ p->readInt32(&solSigStren->csiRsrq);
+ p->readInt32(&solSigStren->csiSinr);
+ }
+ else{
LYERRLOG("None of NR signal info");
+ solSigStren->nr_sig_valid = 0;
}
LYINFLOG("%s suc",__func__);
@@ -1168,9 +1185,11 @@
LYDBGLOG("get state update to signal info");
solSigStren->gw_sig_valid = s_network_urc_solSigStren.gw_sig_valid;
solSigStren->rssi = s_network_urc_solSigStren.rssi;
+ solSigStren->wcdma_signalstrength = s_network_urc_solSigStren.wcdma_signalstrength;
solSigStren->wcdma_sig_valid = s_network_urc_solSigStren.wcdma_sig_valid;
solSigStren->rscp = s_network_urc_solSigStren.rscp;
solSigStren->ecno = s_network_urc_solSigStren.ecno;
+ solSigStren->lte_signalstrength = s_network_urc_solSigStren.lte_signalstrength;
solSigStren->lte_sig_valid = s_network_urc_solSigStren.lte_sig_valid;
solSigStren->rsrp = s_network_urc_solSigStren.rsrp;
solSigStren->rsrq = s_network_urc_solSigStren.rsrq;
@@ -1331,8 +1350,6 @@
int resp_type;
int none = 0;
int NR_sum = 0;
- int urc_LTE_signalstrength = 0;
- int urc_WCDMA_signalstrength = 0;
int size=p->dataSize();
p->readInt32(&resp_type);
@@ -1362,16 +1379,13 @@
case RIL_UNSOL_SIGNAL_STRENGTH:
{
p->readInt32(&s_network_urc_solSigStren.rssi);
- if((s_network_urc_solSigStren.rssi!=99)&&(s_network_urc_solSigStren.rssi!=0))
+ if(is_rssi_valid(s_network_urc_solSigStren.rssi))
{
s_network_urc_solSigStren.gw_sig_valid = 1;
+ LYINFLOG("urc_GSM_signalstrength:%d",s_network_urc_solSigStren.rssi);
}else{
s_network_urc_solSigStren.gw_sig_valid = 0;
}
- if(s_network_urc_solSigStren.gw_sig_valid == 1)
- {
- LYINFLOG("urc_GSM_signalstrength:%d",s_network_urc_solSigStren.rssi);
- }
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
@@ -1379,60 +1393,59 @@
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
- p->readInt32(&urc_LTE_signalstrength);
- // p.readInt32(&solSigStren->signalStrength.LTE_SignalStrength.signalStrength);
+ p->readInt32(&s_network_urc_solSigStren.lte_signalstrength);
p->readInt32(&s_network_urc_solSigStren.rsrp);
p->readInt32(&s_network_urc_solSigStren.rsrq);
p->readInt32(&s_network_urc_solSigStren.rssnr);
- if((urc_LTE_signalstrength!=99)&&(urc_LTE_signalstrength!=0))
+ if(is_rssi_valid(s_network_urc_solSigStren.lte_signalstrength))
{
s_network_urc_solSigStren.lte_sig_valid = 1;
+ LYINFLOG("urc_LTE_signalstrength:%d",s_network_urc_solSigStren.lte_signalstrength);
}else{
s_network_urc_solSigStren.lte_sig_valid = 0;
}
- if(s_network_urc_solSigStren.lte_sig_valid == 1)
- {
- LYINFLOG("urc_LTE_signalstrength:%d",urc_LTE_signalstrength);
- }
+
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
p->readInt32(&none);
- p->readInt32(&urc_WCDMA_signalstrength);
+ 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);
- if((urc_WCDMA_signalstrength!=99)&&(urc_WCDMA_signalstrength!=0))
+ 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);
}else{
s_network_urc_solSigStren.wcdma_sig_valid = 0;
}
- if(s_network_urc_solSigStren.wcdma_sig_valid == 1)
+
+ if(size >= sizeof(RIL_SignalStrength_v14)+sizeof(int)*LYNQ_URC_MSG_HEAD_ELEMENT_NUM)
{
- LYINFLOG("urc_WCDMA_signalstrength:%d",urc_WCDMA_signalstrength);
+ p->readInt32(&s_network_urc_solSigStren.ssRsrp);
+ if(is_nr_ss_rsrp_valid(s_network_urc_solSigStren.ssRsrp))
+ {
+ s_network_urc_solSigStren.nr_sig_valid = 1;
+ p->readInt32(&s_network_urc_solSigStren.ssRsrq);
+ p->readInt32(&s_network_urc_solSigStren.ssSinr);
+ p->readInt32(&s_network_urc_solSigStren.csiRsrp);
+ p->readInt32(&s_network_urc_solSigStren.csiRsrq);
+ p->readInt32(&s_network_urc_solSigStren.csiSinr);
+ LYINFLOG("[NR signal]ssRsrp is %d , ssRsrq is %d , ssSinr is %d , csiRsrp is %d , csiRsrq is %d , csiSinr is %d",\
+ s_network_urc_solSigStren.ssRsrp,s_network_urc_solSigStren.ssRsrq,s_network_urc_solSigStren.ssSinr, \
+ s_network_urc_solSigStren.csiRsrp,s_network_urc_solSigStren.csiRsrq,s_network_urc_solSigStren.csiSinr);
+ }
+ else
+ {
+ s_network_urc_solSigStren.nr_sig_valid = 0;
+ }
}
- p->readInt32(&s_network_urc_solSigStren.ssRsrp);
- p->readInt32(&s_network_urc_solSigStren.ssRsrq);
- p->readInt32(&s_network_urc_solSigStren.ssSinr);
- p->readInt32(&s_network_urc_solSigStren.csiRsrp);
- p->readInt32(&s_network_urc_solSigStren.csiRsrq);
- p->readInt32(&s_network_urc_solSigStren.csiSinr);
- NR_sum = (s_network_urc_solSigStren.ssRsrp) + (s_network_urc_solSigStren.ssRsrq) + (s_network_urc_solSigStren.ssSinr) + (s_network_urc_solSigStren.csiRsrp)+\
- (s_network_urc_solSigStren.csiRsrq) + (s_network_urc_solSigStren.csiSinr);
- if(NR_sum != 0)
+ else
{
- s_network_urc_solSigStren.nr_sig_valid = 1;
- }else{
- s_network_urc_solSigStren.nr_sig_valid = 0;
+ s_network_urc_solSigStren.nr_sig_valid = 0;
}
- if(s_network_urc_solSigStren.nr_sig_valid == 1)
- {
- LYINFLOG("[NR signal]ssRsrp is %d , ssRsrq is %d , ssSinr is %d , csiRsrp is %d , csiRsrq is %d , csiSinr is %d",\
- s_network_urc_solSigStren.ssRsrp,s_network_urc_solSigStren.ssRsrq,s_network_urc_solSigStren.ssSinr, \
- s_network_urc_solSigStren.csiRsrp,s_network_urc_solSigStren.csiRsrq,s_network_urc_solSigStren.csiSinr);
- }
send_urc_signal_changes();
break;
}