[feature][T8TSK-4] Optimize the network module, provide state buffer variables
Change-Id: Ied5f06519095cdfc88789f2a6e8b728e29b73c48
diff --git a/lib/liblynq-network/lynq_network.cpp b/lib/liblynq-network/lynq_network.cpp
index 3752455..7c86433 100755
--- a/lib/liblynq-network/lynq_network.cpp
+++ b/lib/liblynq-network/lynq_network.cpp
@@ -13,6 +13,7 @@
#include "lynq_network.h"
#include "liblog/lynq_deflog.h"
+#include "lynq_network_state_buffer.h"
#define LYNQ_SERVICE_PORT 8088
#define LYNQ_URC_SERVICE_PORT 8086
#define LYNQ_URC_ADDRESS "0.0.0.0"
@@ -202,14 +203,31 @@
urc_p->readInt32(&network_urc_slot_id);
switch(urc_id)
{
- case 1002: //RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
+ case RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED:
{
+ set_register_voice_buffer_valid(FALSE);
network_wait_urc_id = urc_id;
LYINFLOG("slot_id = %d",network_urc_slot_id);
send_signal_changes();
break;
}
- case 1009: //RIL_UNSOL_SIGNAL_STRENGTH
+ case RIL_UNSOL_RESPONSE_PS_NETWORK_STATE_CHANGED:
+ {
+ set_register_data_buffer_valid(FALSE);
+ network_wait_urc_id = urc_id;
+ LYINFLOG("slot_id = %d",network_urc_slot_id);
+ send_signal_changes();
+ break;
+ }
+ case RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED:
+ {
+ set_register_ims_buffer_valid(FALSE);
+ network_wait_urc_id = urc_id;
+ LYINFLOG("slot_id = %d",network_urc_slot_id);
+ send_signal_changes();
+ break;
+ }
+ case RIL_UNSOL_SIGNAL_STRENGTH:
{
urc_p->readInt32(&network_urc_solSigStren.rssi);
if((network_urc_solSigStren.rssi!=99)&&(network_urc_solSigStren.rssi!=0))
@@ -290,6 +308,7 @@
}
}
}
+ return NULL;
}
@@ -380,6 +399,8 @@
LYLOGEINIT(USER_LOG_TAG);
int ret = 0;
+ init_network_timer_all();
+
ret = lynq_server_socket_start();
if(ret !=0)
{
@@ -539,6 +560,9 @@
}
g_lynq_network_init_flag = 0;
network_urc_status = 0;
+
+ deinit_network_timer_all();
+
return 0;
}
@@ -823,10 +847,22 @@
strUpper(str);
if(!strcmp(str,"VOICE"))
{
+ if(lynq_get_registration_state_to_buf_voice(regState,netType,netRejected)==0)
+ {
+ return 0;
+ }
client_t.request = RIL_REQUEST_VOICE_REGISTRATION_STATE;
}else if(!strcmp(str,"DATA")){
+ if(lynq_get_registration_state_to_buf_data(regState,LAC,CID,netType)==0)
+ {
+ return 0;
+ }
client_t.request = RIL_REQUEST_DATA_REGISTRATION_STATE;
}else if(!strcmp(str,"IMS")){
+ if(lynq_get_registration_state_to_buf_ims(imsRegState,radioTechFam)==0)
+ {
+ return 0;
+ }
client_t.request = RIL_REQUEST_IMS_REGISTRATION_STATE;
}else{
LYERRLOG("request error");
@@ -882,7 +918,8 @@
lynqStrdupReadString(p);
lynqStrdupReadString(p);
lynqStrdupReadString(p);
- *netRejected = atoi(lynqStrdupReadString(p));
+ *netRejected = atoi(lynqStrdupReadString(p));
+ lynq_set_registration_state_to_buf_voice(*regState,*netType,*netRejected);
}
}else if(!strcmp(str,"DATA")){
p.readInt32(&num);
@@ -895,6 +932,7 @@
resp[1] = lynqStrdupReadString(p);
strcpy(CID,resp[1]);
*netType = atoi(lynqStrdupReadString(p));
+ lynq_set_registration_state_to_buf_data(*regState,LAC,CID,*netType);
}
}else if(!strcmp(str,"IMS")){
@@ -903,6 +941,7 @@
{
p.readInt32(imsRegState);
p.readInt32(radioTechFam);
+ lynq_set_registration_state_to_buf_ims(*imsRegState,*radioTechFam);
}
}else{
LYERRLOG("request error");