Squashed 'LYNQ_PUBLIC/' changes from 369b02ab4..b26cb1ccb
b26cb1ccb [Feature][T8TSK-289] merge rndis_status of uci config from old platform branch
e1d75e9dc [Feature][T8TSK-289] merge lynq-ril-service from old platform branch
604e75d9c Merge "[Feature][T8TSK-289] add at+gpsinfo command"
67117dd03 Merge "[Feature][T8TSK-289] merge liblynq-sim from old platform branch"
24d54af81 [Feature][T8TSK-289] merge liblynq-sim from old platform branch
b990775f9 [Feature][T8TSK-289] add at+gpsinfo command
7a54b2130 [Feature][T8TSK-289] temp fix circle reboot caused by fota backup
f3167cdb0 [Bugfix][API-1519] fix set_codec bad open/close param
git-subtree-dir: LYNQ_PUBLIC
git-subtree-split: b26cb1ccb6a2bfa3aa046aa82053880878225d41
Change-Id: I3afd3aa3c1a48ce0d340b1b8d167a67501f7e6f3
diff --git a/IC_meta/mtk/2735/lynq-ril-service/lynq-ril-service.bb b/IC_meta/mtk/2735/lynq-ril-service/lynq-ril-service.bb
index 848f503..ece6cd1 100755
--- a/IC_meta/mtk/2735/lynq-ril-service/lynq-ril-service.bb
+++ b/IC_meta/mtk/2735/lynq-ril-service/lynq-ril-service.bb
@@ -6,6 +6,7 @@
DEPENDS += "platform-libs audio-mixer-ctrl libvendor-ril libpal gstreamer1.0 glib-2.0 dtmf libapn dbus liblynq-log liblynq-systime liblynq-uci liblynq-thermal liblynq-fota liblynq-protcl liblynq-shm liblynq-codec"
inherit workonsrc
WORKONSRC = "${TOPDIR}/../LYNQ_PUBLIC/common_src/framework/lynq-ril-service/src"
+MTK_LED_SUPPORT ?= "no"
TARGET_CC_ARCH += "${LDFLAGS}"
SYSTEMD_PACKAGES = "${PN}"
@@ -15,7 +16,8 @@
#Parameters passed to do_compile()
EXTRA_OEMAKE = "'RAT_CONFIG_C2K_SUPPORT = ${RAT_CONFIG_C2K_SUPPORT}'\
'MTK_MULTI_SIM_SUPPORT = ${MTK_MULTI_SIM_SUPPORT}'\
- 'TARGET_PLATFORM = ${TARGET_PLATFORM}'"
+ 'TARGET_PLATFORM = ${TARGET_PLATFORM}'\
+ 'MTK_LED_SUPPORT = ${MTK_LED_SUPPORT}'"
#INHIBIT_PACKAGE_STRIP = "1"
do_compile () {
diff --git a/IC_src/mtk/lib/liblynq-fota/rock_ua/rock_ua.c b/IC_src/mtk/lib/liblynq-fota/rock_ua/rock_ua.c
index c970ce1..e65becb 100755
--- a/IC_src/mtk/lib/liblynq-fota/rock_ua/rock_ua.c
+++ b/IC_src/mtk/lib/liblynq-fota/rock_ua/rock_ua.c
@@ -1839,6 +1839,7 @@
close(fd);
RLOGD("[+UP]: lynq_up_info.ota_run=%d\n",lynq_up_info.ota_run);
+ /*
if((lynq_check_oemapp("oemapp") == 0) || (lynq_check_oemapp("oemapp2") == 0))
{
RLOGD("ENTER LYNQ_CHECK_OEMAPP\n");
@@ -1858,6 +1859,7 @@
sleep(5);
reboot_device();
}
+ */
if(lynq_up_info.ota_run != 0)
diff --git a/IC_src/mtk/lib/liblynq-gnss/src/lynq_callback.c b/IC_src/mtk/lib/liblynq-gnss/src/lynq_callback.c
index 59a866a..6c0dff4 100755
--- a/IC_src/mtk/lib/liblynq-gnss/src/lynq_callback.c
+++ b/IC_src/mtk/lib/liblynq-gnss/src/lynq_callback.c
@@ -240,7 +240,11 @@
void lynq_at_gps_location_callback(lynq_GpsLocation_ext* location)
{
-
+ at_gpsinfo_ok = 1;
+ sprintf(gpsinfo, "+CGPSINFO: %.10lf,%.10lf,%f,%f,%.10lf,%f,%ld",location->legacyLocation.latitude \
+ , location->legacyLocation.longitude, location->horizontalAccuracyMeters,location->legacyLocation.bearing \
+ ,location->legacyLocation.altitude, location->legacyLocation.speed\
+ ,location->legacyLocation.timestamp/1000);
}
void lynq_at_gps_status_callback(GpsStatus* status)
diff --git a/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnss.c b/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnss.c
index 6c8ba42..0f9181f 100755
--- a/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnss.c
+++ b/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnss.c
@@ -51,6 +51,15 @@
int g_gnss_sync_enable_flag = 0;
int g_gnss_sync_done = 0;
#endif
+
+enum
+{
+ Gnss_ok = 0,
+ Not_open = 1,
+ Not_located = 10,
+ Gnss_unknow = 100
+};
+
/**
* @brief mark gnss raw meas state
* 0: deinit state
@@ -63,6 +72,8 @@
int g_ttyGS_fd= -1;
bool Open_ELT = true;
#endif
+int at_gpsinfo_ok = 0;
+char gpsinfo[512] = {0};
int lynq_gnss_init(void)
{
@@ -155,6 +166,7 @@
RLOGD("timer de init end");
g_lynq_gnss_calback_flag = 0;
g_lynq_gnss_init_flag = 0;
+ at_gpsinfo_ok = 0;
#ifdef GNSS_ELT_OUTPUT_CFG
if(g_ttyGS_fd >= 0)
{
@@ -388,7 +400,8 @@
void atsvc_incb_entity(const char *input,const int length);
int lynq_at_cgps(int at_type,char *at_paramter);
int lynq_at_cgpsnmea(int at_type,char *at_paramter);
-
+int lynq_at_cgpsinfo(void);
+void lynq_display_res(int res);
int strUpper(char * str)
{
@@ -516,14 +529,13 @@
}
else if (!strcmp(parse_atcmd[0], "AT+CGPSNMEA"))
{
- lynq_at_cgpsnmea(income_at_type,parse_atcmd[1]);
+ res = lynq_at_cgpsnmea(income_at_type,parse_atcmd[1]);
}
- else
+ else if (!strcmp(parse_atcmd[0], "AT+CGPSINFO"))
{
- memcpy(gnss_at_cmd,"+CME ERROR: 100\r\n",strlen("+CME ERROR: 100\r\n"));
+ res = lynq_at_cgpsinfo();
}
- memcpy(gnss_at_cmd,"OK\r\n",4);
- atsvc_gnss_outcb(gnss_at_cmd,4,0);
+ lynq_display_res(res);
}
@@ -657,4 +669,43 @@
}
return 0;
}
-}
\ No newline at end of file
+}
+
+int lynq_at_cgpsinfo()
+{
+ if(at_gps_status == 0)//not open gps
+ {
+ return Not_open;
+ }
+ if(at_gpsinfo_ok == 0)//means not valid location
+ {
+ return Not_located;
+ }
+ else
+ {
+ atsvc_gnss_outcb(gpsinfo, strlen(gpsinfo), 1);
+ return 0;
+ }
+}
+
+void lynq_display_res(int res)
+{
+ char res_buf[128] = {0};
+ switch (res)
+ {
+ case Gnss_ok:
+ sprintf(res_buf,"OK\r\n",4);
+ break;
+ case Not_open:
+ sprintf(res_buf, "+CME ERROR: %d\r\n", Not_open);
+ break;
+ case Not_located:
+ sprintf(res_buf, "+CME ERROR: %d\r\n", Not_located);
+ break;
+ default:
+ sprintf(res_buf,"+CME ERROR: %d\r\n", Gnss_unknow);
+ break;
+ }
+ atsvc_gnss_outcb(res_buf,strlen(res_buf),0);
+}
+
diff --git a/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnsshal.h b/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnsshal.h
index 04938c9..0b4f5e2 100755
--- a/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnsshal.h
+++ b/IC_src/mtk/lib/liblynq-gnss/src/lynq_gnsshal.h
@@ -42,6 +42,8 @@
extern lynq_atsvc_outcb atsvc_gnss_outcb;
extern int at_gpsnmea_status;
+extern int at_gpsinfo_ok;
+extern char gpsinfo[512];
typedef enum{
LYNQ_ATCMD_TEST = 0,
diff --git a/common_src/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp b/common_src/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
index e0b8321..f261dbd 100755
--- a/common_src/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
+++ b/common_src/framework/lynq-ril-service/src/atci/atci_lynq_data_cmd.cpp
@@ -10,7 +10,8 @@
#include <vendor-ril/telephony/ril.h>
#include <string.h>
#include <log/log.h>
-
+#include <vector>
+#include "Radio_capability_switch_util.h"
#include "ATCI.h"
#include "atci_util.h"
#include "atci_at_util.h"
@@ -139,6 +140,51 @@
return SYS_SUCC;
}
+int check_sim_state(void)
+{
+ char buf[16];
+ //send request
+ char* argv[1] = { 0 };
+ argv[0] = "RIL_REQUEST_GET_SIM_STATUS";
+ android::lynqSendToRil(1,argv,1024);
+ //wait response from callback
+ if(lynq_wait_result_comeback(2000))
+ {
+ sprintf(buf,"%s","+CME ERROR: 14");//sim busy
+ if(atci_send_data(buf)!=0)
+ {
+ RLOGD("send data fail");
+ return SYS_FAIL;
+ }
+ RLOGD("[%d][%s] wait sim state timeout",LINE,FUNC);
+ return SYS_FAIL;
+ }
+ //judge result
+ if(g_lynq_sim_state != 1)
+ {
+ RLOGD("SIM card absent");
+ sprintf(buf,"%s","+CME ERROR: 10");
+ if(atci_send_data(buf)!=0)
+ {
+ RLOGD("send data fail");
+ return SYS_FAIL;
+ }
+ return SYS_FAIL;
+ }
+ if(checkDataRegistration(1024))
+ {
+ RLOGD("[%d][%s] data registion fail",LINE,FUNC);
+ sprintf(buf,"%s","+CME ERROR: 1");
+ if(atci_send_data(buf)!=0)
+ {
+ RLOGD("send data fail");
+ return SYS_FAIL;
+ }
+ return SYS_FAIL;
+ }
+ return SYS_SUCC;
+}
+
int atci_data_enable_pdp_hdlr(char *cmd, int op_mode, int target, char *response)
{
int ret;
@@ -174,6 +220,10 @@
if(state==1)
{
+ if(check_sim_state())
+ {
+ return SYS_FAIL;
+ }
req.request_id = RIL_REQUEST_SETUP_DATA_CALL;
}
else if(state == 0)
@@ -204,6 +254,31 @@
ATCIResponseNoToken(0,buf,RIL_REQUEST_SETUP_DATA_CALL);
break;
}
+ case AT_READ_MODE:
+ {
+ for(int i = 0;i < LYNQ_APN_CHANNEL_MAX; i ++)
+ {
+ if(!apn_table[i].used)
+ {
+ continue;
+ }
+ memset(buf,0,sizeof(buf));
+ sprintf(buf,"+LAPNACT: %s,%s,%d,%s,%s\n", apn_table[i].apn, apn_table[i].apntype ,apn_table[i].pdpstate, apn_table[i].ifaceName, apn_table[i].address);
+ if(atci_send_data(buf)!=0)
+ {
+ RLOGD("send data fail");
+ return SYS_FAIL;
+ }
+ }
+ if(apn_count == 0)
+ {
+ memset(buf,0,sizeof(buf));
+ ATCIResponseNoToken(0,buf,RIL_REQUEST_SETUP_DATA_CALL);
+ return SYS_SUCC;
+ }
+ atci_send_result(0);
+ break;
+ }
default:
{
RLOGD("set mute error");
@@ -320,6 +395,10 @@
atci_data_req_t req;
if(state==1)
{
+ if(check_sim_state())
+ {
+ return SYS_FAIL;
+ }
req.request_id = RIL_REQUEST_SETUP_DATA_CALL;
}
else if(state == 0)
@@ -357,7 +436,7 @@
continue;
}
memset(buf,0,sizeof(buf));
- sprintf(buf,"+ELAPNACT:%s,%s,%d,%s,%s\n", apn_table[i].apn, apn_table[i].apntype ,apn_table[i].pdpstate, apn_table[i].ifaceName, apn_table[i].address);
+ sprintf(buf,"+ELAPNACT: %s,%s,%d,%s,%s\n", apn_table[i].apn, apn_table[i].apntype ,apn_table[i].pdpstate, apn_table[i].ifaceName, apn_table[i].address);
if(atci_send_data(buf)!=0)
{
RLOGD("send data fail");
diff --git a/common_src/framework/lynq-ril-service/src/cc.cpp b/common_src/framework/lynq-ril-service/src/cc.cpp
index a283bf9..fa06fda 100755
--- a/common_src/framework/lynq-ril-service/src/cc.cpp
+++ b/common_src/framework/lynq-ril-service/src/cc.cpp
@@ -49,6 +49,9 @@
#include <binder/Parcel.h>
#include "call_rtp.h"
#include "liblynq-codec/lynq_codec.h"
+#ifdef LED_SUPPORT
+#include "led.h"
+#endif
using android::Parcel;
/*Warren add for t800 ril servie 2021/12/23 end*/
@@ -1283,7 +1286,7 @@
//RLOGD("DemoAPP Call shell command (pactl set-card-profile 0 phonecall)");
//system("pactl set-card-profile 0 phonecall");
//RLOGD("DemoAPP Call shell command end");
- set_codec(LYNQ_CALL, CODEC_CLOSE); //hqing add for Geely demand on 11/07/2022, init cs call, open codec
+ set_codec(LYNQ_CALL, CODEC_OPEN); //hqing add for Geely demand on 11/07/2022, init cs call, open codec
if (get_audio_path() == 0) {
mixer_set(1);
speechStatus = NORMAL_SPEECH_ON;
@@ -1314,7 +1317,7 @@
inCallstatus = CALL_OFF;
resetMute();
unlock_rtp_audio_mtx();
- set_codec(LYNQ_CALL, CODEC_OPEN); //hqing add for Geely demand on 11/07/2022, after cs call, close codec for power Manager
+ set_codec(LYNQ_CALL, CODEC_CLOSE); //hqing add for Geely demand on 11/07/2022, after cs call, close codec for power Manager
RLOGD("[speech]: set off");
} else {
unlock_rtp_audio_mtx();
diff --git a/common_src/framework/lynq-ril-service/src/common.cpp b/common_src/framework/lynq-ril-service/src/common.cpp
index 2c2cdde..402aad1 100755
--- a/common_src/framework/lynq-ril-service/src/common.cpp
+++ b/common_src/framework/lynq-ril-service/src/common.cpp
@@ -95,6 +95,7 @@
*/
extern int current_data_reg = -1;
extern int modemStatus = 0;
+int g_lynq_sim_state = -1;
/*Warren add for SZZT 2021/11/14 end*/
@@ -372,22 +373,26 @@
pthread_mutex_unlock(&s_state_change_mutex);
}
-void lynq_wait_result_comeback(int mtime)
+int lynq_wait_result_comeback(int mtime)
{
RLOGD("wait_call_state");
int sec = 0;
- int usec = 0;
+ int ms = 0;
struct timeval now;
struct timespec timeout;
gettimeofday(&now,NULL);
sec = mtime/1000;
- usec = mtime%1000;
+ ms = mtime%1000;
timeout.tv_sec = now.tv_sec+sec;
- timeout.tv_nsec = now.tv_usec*1000+usec*1000000;
+ unsigned long long ns;
+ ns = now.tv_usec*1000ull + ms*1000000ull;
+ timeout.tv_sec += ns/1000000000;
+ timeout.tv_nsec = ns % 1000000000;
pthread_mutex_lock(&s_state_change_mutex);
- pthread_cond_timedwait(&s_state_change_cond,&s_state_change_mutex,&timeout);
+ int ret = pthread_cond_timedwait(&s_state_change_cond,&s_state_change_mutex,&timeout);
pthread_mutex_unlock(&s_state_change_mutex);
RLOGD("wait_call_state end");
+ return ret;
}
int get_default_sim_voice(){
@@ -566,6 +571,9 @@
} else {
RLOGD("[slot%d]updateCardStatusV6: sim card message is null", slot);
}
+#ifdef LED_SUPPORT
+ mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);
+#endif
}
char* getAid(int slot)
@@ -592,6 +600,9 @@
reg_voice_service_state[slot] = atoi(code);
regCodeToServiceState(request, atoi(code), slot);
}
+#ifdef LED_SUPPORT
+ mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);
+#endif
}
void update_reg_voice_radio_tech(int request, int code, int slot, int32_t token) {
@@ -611,6 +622,9 @@
current_data_reg = status;
/*Warren change for SZZT 2021//11/14 end*/
}
+#ifdef LED_SUPPORT
+ mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);
+#endif
}
void update_reg_data_radio_tech(int request, int code, int slot, int32_t token){
@@ -1040,6 +1054,18 @@
}
return false;
}
+
+bool ril_get_if_3gpp_data_reg_success()
+{
+ int slot_id=get_default_sim_data();
+
+ if(slot_id==0 || slot_id ==1)
+ {
+ return reg_data_service_state[slot_id] ==1;
+ }
+ return false;
+}
+
#endif
/*hq add for key info output 2022/03/01 begin*/
// void lynq_output_LINFO_all()
diff --git a/common_src/framework/lynq-ril-service/src/common.h b/common_src/framework/lynq-ril-service/src/common.h
index fba62ac..a7f2a6b 100755
--- a/common_src/framework/lynq-ril-service/src/common.h
+++ b/common_src/framework/lynq-ril-service/src/common.h
@@ -153,6 +153,7 @@
*/
extern int current_data_reg;
extern int modemStatus;
+extern int g_lynq_sim_state;
/*Warren add for SZZT 2021/11/14 end*/
// extern int lynq_output_LINFO_enable;
@@ -176,7 +177,7 @@
void lynq_output_info(const char* format,...);
void lynq_send_result_already(void);
-void lynq_wait_result_comeback(int mtime);
+int lynq_wait_result_comeback(int mtime);
void updateCardStatusV6(RIL_CardStatus_v6 *card_status,int slot);
char* getAid(int slot);
@@ -211,6 +212,7 @@
/*for led add by hq 20221202*/
bool ril_get_if_insert_simcard();
bool ril_get_if_3gpp_reg_success();
+bool ril_get_if_3gpp_data_reg_success();
#endif
/*for urc broad cast optimission by hq 20221216*/
diff --git a/common_src/framework/lynq-ril-service/src/data/data_gdbus.cpp b/common_src/framework/lynq-ril-service/src/data/data_gdbus.cpp
index 3ea7719..0136939 100755
--- a/common_src/framework/lynq-ril-service/src/data/data_gdbus.cpp
+++ b/common_src/framework/lynq-ril-service/src/data/data_gdbus.cpp
@@ -147,6 +147,12 @@
writeStringToParcel(p,urc_response->ifname);
android::LYNQ_RIL_urcBroadcast(p,LYNQ_URC_DATA_CALL_STATUS_IND);
RLOGD("removed apn:%s,apntype:%s",apn_table[i].apn,apn_table[i].apntype);
+#ifdef LED_SUPPORT
+ if(apn_count==0)
+ {
+ mbtk_netled_state_update(GPIO_NETLED_PPP_CLOSED);
+ }
+#endif
break;
}
}
diff --git a/common_src/framework/lynq-ril-service/src/led/include/led.h b/common_src/framework/lynq-ril-service/src/led/include/led.h
new file mode 100755
index 0000000..d8d6508
--- /dev/null
+++ b/common_src/framework/lynq-ril-service/src/led/include/led.h
@@ -0,0 +1,44 @@
+/**
+ * @file led.h
+ * @author hq
+ * @brief
+ * @version 1.0
+ * @date 2022-11-28
+ *
+ * @copyright Copyright (c) 2022
+ *
+ */
+#ifdef LED_SUPPORT
+#ifndef LED_H
+#define LED_H 1
+
+#define wait_led_update_effective_timer_ms 20
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+ GPIO_NETLED_REFLASH_NORMAL,
+ GPIO_NETLED_CS_CALLING,
+ GPIO_NETLED_CS_CALLEND,
+ GPIO_NETLED_PPP_CONNECT,
+ GPIO_NETLED_PPP_CLOSED,
+ GPIO_NETLED_AP_GOINGSLEEP,
+ GPIO_NETLED_AP_WAKEUP,
+ GPIO_NETLED_WWAN_CONNECT,
+ GPIO_NETLED_WWAN_CLOSED,
+} mbtk_netled_reflash_type;
+
+void mbtk_netled_state_update(mbtk_netled_reflash_type flag);
+
+void mbtk_netled_init();
+
+void mbtk_netled_deinit();
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif
diff --git a/common_src/framework/lynq-ril-service/src/led/led.cpp b/common_src/framework/lynq-ril-service/src/led/led.cpp
index 62e4b11..a252764 100755
--- a/common_src/framework/lynq-ril-service/src/led/led.cpp
+++ b/common_src/framework/lynq-ril-service/src/led/led.cpp
@@ -273,24 +273,25 @@
mbtk_netled_reg_net_status mbtk_get_reg_net_status(void)
{
- mbtk_netled_reg_net_status reg_net_status = NET_REG_FAIL;
-
if(false == ril_get_if_insert_simcard())
{
RLOGE("ril_get_if_insert_simcard false" );
- reg_net_status = NET_REG_FAIL;
- return reg_net_status;
+ return NET_REG_FAIL;
}
if(true == ril_get_if_3gpp_reg_success())
{
RLOGD("ril_get_if_3gpp_reg_success true");
- reg_net_status = NET_REG_SUCCESS;
- return reg_net_status;
+ return NET_REG_SUCCESS;
}
- return reg_net_status;
+ if(true == ril_get_if_3gpp_data_reg_success())
+ {
+ RLOGD("ril_get_if_3gpp_data_reg_success true");
+ return NET_REG_SUCCESS;
+ }
+ return NET_REG_FAIL;
}
/*=============================================
@@ -504,7 +505,6 @@
}
}
-
/*=============================================
FUNCTION
mbtk_netled_reflash_handle
diff --git a/common_src/framework/lynq-ril-service/src/led/led_inner.h b/common_src/framework/lynq-ril-service/src/led/led_inner.h
new file mode 100755
index 0000000..5b0750d
--- /dev/null
+++ b/common_src/framework/lynq-ril-service/src/led/led_inner.h
@@ -0,0 +1,61 @@
+/**
+ * @file led_inner.h
+ * @author hq
+ * @brief
+ * @version 1.0
+ * @date 2022-11-28
+ *
+ * @copyright Copyright (c) 2022
+ *
+ */
+#ifdef LED_SUPPORT
+#ifndef LED_INNER_H
+#define LED_INNER_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*************************************************************
+ Definitions:enum,struct,union,class
+*************************************************************/
+typedef struct {
+ bool gpio_netled_cs_flag;
+ bool gpio_netled_ppp_flag;
+ bool gpio_netled_wwan_flag;
+ bool gpio_netled_goingsleep_flag;
+}mbtk_netled_state_t;
+
+typedef enum
+{
+ GPIO_NETLED_OFF,
+ GPIO_NETLED_REG,
+ GPIO_NETLED_CONNECT,
+ GPIO_NETLED_LIGHT,
+ GPIO_CS_REG,
+ GPIO_NETLED_MAX
+}mbtk_netled_status_type;
+
+typedef enum
+{
+ NET_REG_SUCCESS,
+ NET_REG_FAIL,
+ NET_REG_MAX
+}mbtk_netled_reg_net_status;
+
+typedef enum
+{
+ MBTK_SOCKET_CONNECTED,
+ MBTK_SOCKET_DISCONNECT,
+ MBTK_SOCKET_CONN_MAX
+}mbtk_netled_socket_conn_status;
+
+/*************************************************************
+ Function Declaration
+*************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+#endif
diff --git a/common_src/framework/lynq-ril-service/src/lynq_common.cpp b/common_src/framework/lynq-ril-service/src/lynq_common.cpp
index 418fe86..a5338bc 100755
--- a/common_src/framework/lynq-ril-service/src/lynq_common.cpp
+++ b/common_src/framework/lynq-ril-service/src/lynq_common.cpp
@@ -390,8 +390,11 @@
char *argv_temp[3]={};
argv_temp[0] = "RIL_REQUEST_DATA_REGISTRATION_STATE";
android::lynqSendToRil(1,argv_temp,uToken);
- ret = lynqATWaitWithTime(10);
- printf("ret=%d\n,current_data_reg=%d\n",ret,current_data_reg);
+ if(lynqATWaitWithTime(2000))
+ {
+ RLOGD("function %s line %d time out", __FUNCTION__, __LINE__);
+ return -1;
+ }
/*
if(ret == ETIMEDOUT)
{
@@ -405,11 +408,6 @@
*/
if(current_data_reg!=0)
{
- int n = write(ttyGS3_fd,"+CME ERROR: 1\n",strlen("+CME ERROR: 1\n"));
- if(n<0)
- {
- perror("lynq resp write:");
- }
return -1;
}
return 0;
@@ -887,21 +885,24 @@
return 0;
}
-int lynqATWaitWithTime(int time)
+int lynqATWaitWithTime(int mtime)
{
- int ret = 0;
- struct timespec start_tm;
- //struct timespec end_tm;
- //int timeout_ms = 2500;
- clock_gettime(CLOCK_MONOTONIC, &start_tm);
- //struct timeval now;
- struct timespec outTime;
- //gettimeofday(&now, NULL);//now.tv_sec(s),now.tv_usec(Micro s)
- outTime.tv_sec = start_tm.tv_sec + time;
+ RLOGD("wait_call_state");
+ int sec = 0;
+ int usec = 0;
+ struct timeval now;
+ struct timespec outtime;
+ gettimeofday(&now,NULL);
+ sec = mtime/1000;
+ outtime.tv_sec = now.tv_sec+sec;
+ unsigned long long ns;
+ ns = now.tv_usec*1000ull + (mtime%1000)*1000000ull;
+ outtime.tv_sec += ns/1000000000;
+ outtime.tv_nsec = ns%1000000000;
pthread_mutex_lock(&lynq_at_mutex);
- //ret = pthread_cond_timedwait(&lynq_at_cond,&lynq_at_mutex,&outTime);
- pthread_cond_wait(&lynq_at_cond,&lynq_at_mutex);
+ int ret = pthread_cond_timedwait(&lynq_at_cond,&lynq_at_mutex,&outtime);
pthread_mutex_unlock(&lynq_at_mutex);
+ RLOGD("wait_call_state end");
return ret;
}
void lynqAtRespWatingEvent()
diff --git a/common_src/framework/lynq-ril-service/src/lynq_common.h b/common_src/framework/lynq-ril-service/src/lynq_common.h
index ec1e9e2..16b6403 100755
--- a/common_src/framework/lynq-ril-service/src/lynq_common.h
+++ b/common_src/framework/lynq-ril-service/src/lynq_common.h
@@ -122,4 +122,5 @@
int lynq_modify_apn_info(int argc,char*argv[],char *rilReq, int uToken);
void sendSignalApnChange();
int waitApnResult();
+int checkDataRegistration(int uToken);
#endif
diff --git a/common_src/framework/lynq-ril-service/src/makefile b/common_src/framework/lynq-ril-service/src/makefile
index 2a07df1..db6b04e 100755
--- a/common_src/framework/lynq-ril-service/src/makefile
+++ b/common_src/framework/lynq-ril-service/src/makefile
@@ -25,6 +25,10 @@
LOCAL_CFLAGS += -DMODE_DSSS
endif
+ifeq ($(strip $(MTK_LED_SUPPORT)), yes)
+ LOCAL_CFLAGS += -DLED_SUPPORT
+endif
+
$(warning ################# TARGET_PLATFORM: $(TARGET_PLATFORM))
ifeq ($(strip $(TARGET_PLATFORM)), mt2731)
$(warning ################# TARGET_PLATFORM_MT2731)
@@ -40,6 +44,10 @@
LOCAL_CFLAGS += -DTARGET_PLATFORM_MT2735
LOCAL_CFLAGS += -DBASELIB_DIR_LIB64 -DTELEMATIC_5G_SUPPORT
endif
+ifeq ($(strip $(MOBILETEK_RIL_CFG)), GSW)
+ LOCAL_CFLAGS += -DGSW_RIL_CFG
+
+endif
LOCAL_PATH = .
@@ -68,6 +76,7 @@
-I$(LOCAL_PATH)/factory \
-I$(LOCAL_PATH)/fota \
-I$(LOCAL_PATH)/temp \
+ -I$(LOCAL_PATH)/led/include \
-I$(LOCAL_PATH)/rtp \
-I$(ROOT)$(includedir)/logger \
-I$(ROOT)$(includedir)/liblog \
@@ -128,7 +137,7 @@
endif
-SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp sms/lynqSmsManager/*.cpp rndis/*.cpp factory/*.cpp temp/*.cpp fota/*.cpp rtp/*.cpp)
+SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp sms/lynqSmsManager/*.cpp rndis/*.cpp factory/*.cpp temp/*.cpp led/*.cpp fota/*.cpp rtp/*.cpp)
EXECUTABLE = lynq-ril-service
diff --git a/common_src/framework/lynq-ril-service/src/ril.cpp b/common_src/framework/lynq-ril-service/src/ril.cpp
index ecabb01..ef41d33 100755
--- a/common_src/framework/lynq-ril-service/src/ril.cpp
+++ b/common_src/framework/lynq-ril-service/src/ril.cpp
@@ -4177,6 +4177,11 @@
}
}
+static void lynq_get_sim_state(RIL_CardStatus_v6 *card_status)
+{
+ g_lynq_sim_state = card_status->card_state;
+}
+
extern "C" void
RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responselen) {
RequestInfo *pRI;
@@ -4361,7 +4366,9 @@
if (responselen == sizeof (RIL_CardStatus_v6)) {
RIL_CardStatus_v6 *p_cur = ((RIL_CardStatus_v6 *) response);
updateCardStatusV6(p_cur, socket_id);
+ lynq_get_sim_state(p_cur);
}
+ lynq_send_result_already();
break;
}
case RIL_REQUEST_VOICE_RADIO_TECH:
@@ -5753,6 +5760,9 @@
static void initCoditions()
{
+#ifdef LED_SUPPORT
+ mbtk_netled_init();
+#endif
mixer_init();
lynq_init_rtp();
@@ -6276,6 +6286,9 @@
}
RLOGD("close socket fd");
close(server_socket_fd);
+#ifdef LED_SUPPORT
+ mbtk_netled_deinit();
+#endif
return ;
}
int LYNQ_RIL_respSocket(Parcel &p,RIL_Token t)
diff --git a/common_src/framework/lynq-ril-service/src/stateManager/stateManager.cpp b/common_src/framework/lynq-ril-service/src/stateManager/stateManager.cpp
index 9e16b5e..d4f3ce3 100755
--- a/common_src/framework/lynq-ril-service/src/stateManager/stateManager.cpp
+++ b/common_src/framework/lynq-ril-service/src/stateManager/stateManager.cpp
@@ -47,6 +47,9 @@
#include "util/utils.h"
#include <cutils/jstring.h>
#include <liblog/lynq_deflog.h>
+#ifdef LED_SUPPORT
+#include "led.h"
+#endif
#undef LOG_TAG
#define LOG_TAG "DEMO_MANAGER"
@@ -96,7 +99,13 @@
size_t pos = p.dataPosition();
p.writeInt32(1);
- p.writeInt32(atoi(argv[1]));
+
+ int screen_state= atoi(argv[1]);
+ p.writeInt32(screen_state);
+#ifdef LED_SUPPORT
+ mbtk_netled_state_update(screen_state==0 ? GPIO_NETLED_AP_GOINGSLEEP : GPIO_NETLED_AP_WAKEUP);
+ usleep(wait_led_update_effective_timer_ms*1000);
+#endif
p.setDataPosition(pos);
pRI->pCI->dispatchFunction(p, pRI);
diff --git a/common_src/lib/liblynq-sim/src/lynq_sim.cpp b/common_src/lib/liblynq-sim/src/lynq_sim.cpp
index f14fda2..c780859 100755
--- a/common_src/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/common_src/lib/liblynq-sim/src/lynq_sim.cpp
@@ -16,27 +16,16 @@
#include <log/log.h>
#include <cutils/jstring.h>
#include <pthread.h>
-#include "lynq_sim.h"
-#include <sys/socket.h>
-#include <netinet/in.h>
+#include <vendor-ril/telephony/ril.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h> /*add for get recvfrom errorid on 20220921*/
#include <sys/stat.h>
#include <fcntl.h>
+#include "lynq_sim.h"
#define MAX_BUF 20
#define MAX_NUM 80
-#define RIL_REQUEST_GET_SIM_STATUS 1
-#define RIL_REQUEST_GET_IMSI 11
-#define RIL_REQUEST_QUERY_ICCID 2026
-#define RIL_REQUEST_SET_FACILITY_LOCK 43
-#define RIL_REQUEST_QUERY_FACILITY_LOCK 42
-#define RIL_REQUEST_ENTER_SIM_PIN 2
-#define RIL_REQUEST_ENTER_SIM_PUK 3
-#define RIL_REQUEST_CHANGE_SIM_PIN 6
-#define RIL_REQUEST_OEM_HOOK_RAW 59
-#define RIL_REQUEST_SCREEN_STATE 61
-#define RIL_REQUEST_SIM_IO 28
-#define RIL_REQUEST_DEVICE_IDENTITY 98
#define LYNQ_REQUEST_SET_DEFAULT_SIM_ALL 8008
#define LYNQ_REQUEST_CHANGE_SCREEN_STATE 8014 /*add for two sim suspend on 20220919*/
#define LYNQ_REQUEST_CHANGE_RADIO 8015
@@ -55,17 +44,11 @@
char param[MAX_LEN];
}lynq_client_t;
-lynq_client_t client_t;
/* socket文件描述符 */
int len_addr_serv;
struct sockaddr_in addr_serv;
static int sock_fd = 0;
-int Global_uToken = 0;
-int solicited_token = -1;
-int resp_type = -1;
-int request = -1;
-int slot_id = -1;
-int error1 = -1;
+int Global_uToken = 0;
static pthread_mutex_t g_lynq_sim_sendto_mutex;
/**
* @brief mark call initialization state
@@ -81,11 +64,154 @@
char pin2_buf[32] = {0};
char aidPtr_buf[32] = {0};
-/**/
+/**
+ * @brief lynq_shutdown need
+ */
char options_buf[32] = {0};
char time_buf[32] = {0};
char message_buf[32] = {0};
+typedef struct{
+ int resp_type;
+ int token;
+ int request;
+ int slot_id;
+ int error;
+}lynq_resp_t;
+
+#define RESULT_OK (0)
+#define RESULT_ERROR (-1)
+
+typedef enum{
+ /*base abnormal*/
+ LYNQ_E_PARAMETER_ANONALY=7000,
+ LYNQ_E_SEND_REQUEST_FAIL=7001,
+ LYNQ_E_GET_HEAD_ERROR=7002,
+ LYNQ_E_INNER_ERROR=7100,
+ LYNQ_E_MALLOC_ERROR=7101,
+ /**/
+ LYNQ_E_CARDSTATE_ERROR=8000,
+ /* The voice service state is out of service*/
+ LYNQ_E_STATE_OUT_OF_SERVICE=8001,
+ /* The voice service state is EMERGENCY_ONLY*/
+ LYNQ_E_STATE_EMERGENCY_ONLY=8002,
+ /* The radio power is power off*/
+ LYNQ_E_STATE_POWER_OFF=8003,
+ LYNQ_E_TIME_OUT=8004,
+ /*create or open sms DB fail */
+ LYNQ_E_SMS_DB_FAIL=8005,
+ /*Failed to execute sql statement*/
+ LYNQ_E_SMS_SQL_FAIL = 8006,
+ LYNQ_E_SMS_NOT_FIND = 8007,
+ /* The logic conflict*/
+ LYNQ_E_CONFLICT=9000,
+ /*Null anomaly*/
+ LYNQ_E_NULL_ANONALY=9001,
+ /*Invalid id anomaly*/
+ LYNQ_E_INVALID_ID_ANONALY=9002,
+#ifdef ECALL_SUPPORT
+ LYNQ_E_ECALL_BEING_RUNNING =9003,
+ LYNQ_E_ECALL_MSD_LENGTH_ERROR =9004,
+ LYNQ_E_ECALL_DAILING_NO_ANSWER =9005,
+#endif
+}LYNQ_E;
+
+/**@brief print solicied response msg's head information
+* @param head [IN]: head information
+* @return none
+*/
+void PrintHeader(lynq_resp_t& head)
+{
+ RLOGD("resp_type=%d,token=%d,request=%d,slot_id=%d,error_code=%d",head.resp_type,head.token,head.request,head.slot_id,head.error);
+}
+
+int GetHeader(Parcel* &p, lynq_resp_t& head, int request_id)
+{
+ RLOGD("get header");
+ if(p->dataAvail() > 0)
+ {
+ p->readInt32(&(head.resp_type));
+ p->readInt32(&(head.token));
+ p->readInt32(&(head.request));
+ RLOGD("%s %d", __FUNCTION__, head.request);
+ p->readInt32(&(head.slot_id));
+ p->readInt32(&(head.error));
+ PrintHeader(head);
+ return head.error;
+ }
+ else
+ {
+ return RESULT_ERROR;
+ }
+}
+
+int lynq_send_common_request(Parcel* p, int request_id, int argc, int cnt, const char* format,...)
+{
+ lynq_client_t client;
+ int ret;
+ int send_num;
+ int recv_num;
+ char res_data[MAX_LEN] = {0};
+ client.uToken = Global_uToken;
+ if(request_id == RIL_REQUEST_SCREEN_STATE)
+ {
+ client.request = LYNQ_REQUEST_CHANGE_SCREEN_STATE;
+ }
+ else if(request_id == RIL_REQUEST_RADIO_POWER)
+ {
+ client.request = LYNQ_REQUEST_CHANGE_RADIO;
+ }
+ else
+ {
+ client.request = request_id;
+ }
+ client.paramLen = argc;
+ bzero(client.param,MAX_LEN);
+ if(argc!=0)
+ {
+ va_list args;
+ va_start(args, format);
+ vsnprintf(client.param, MAX_LEN, format, args);
+ va_end(args);
+ }
+ RLOGD("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+ pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
+ send_num = sendto(sock_fd,&client,sizeof(client),0,(struct sockaddr *)&addr_serv,len_addr_serv);
+ if(send_num <= 0)
+ {
+ RLOGD("send request fail, send num is %d", send_num);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return LYNQ_E_SEND_REQUEST_FAIL;
+ }
+ lynq_resp_t head;
+ head.request = -1;
+ for(int i = 0; i < cnt;)
+ {
+ recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN, 0, (struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
+ if(recv_num <= 0)
+ {
+ RLOGD("recv request fail, recv num is %d", recv_num);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return recv_num;
+ }
+ p->setData((uint8_t *)res_data,sizeof(char)*recv_num);
+ p->setDataPosition(0);
+ ret=GetHeader(p,head,request_id);
+ if(ret!=0)
+ {
+ RLOGD("%s %d get head error %d",__FUNCTION__,client.uToken,ret);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return ret;
+ }
+ if(request_id == head.request)
+ {
+ i++;
+ }
+ }
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return ret;
+}
+
int lynq_sim_init(int utoken){
RLOGE("%s start, parameter is %d", __func__,utoken);
@@ -169,104 +295,34 @@
{
return -1;
}
- int ret = -1;
- if(card_status == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- lynq_client_t client_t1;
- memset(&client_t1, 0, sizeof(client_t1) );
- client_t1.request = RIL_REQUEST_GET_SIM_STATUS;
- client_t1.paramLen = 0;
- client_t1.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- int len1 = sizeof(client_t1.param);
- memset(client_t1.param, 0, sizeof(char)*MAX_LEN);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN, 0, (struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- if(recv_num < 0 || recv_num == 0)
+ Parcel p;
+ int res = lynq_send_common_request(&p,RIL_REQUEST_GET_SIM_STATUS,0,1,"");
+ if(res != 0)
{
- RLOGD("recvfrom step2 fail:");
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return recv_num;
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- Parcel p;;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
- {
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- p.readInt32(card_status);
- }
- return error1;
+ p.readInt32(card_status);
+ return res;
}
int lynq_get_imsi(char buf[])
-{
+{
if(g_lynq_sim_init_flag == 0)
{
return -1;
}
- int ret = -1;
- if(buf == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- lynq_client_t client_t1;
- memset(&client_t1, 0, sizeof(client_t1) );
- client_t1.request = RIL_REQUEST_GET_IMSI;
- client_t1.paramLen = 0;
- client_t1.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- memset(client_t1.param, 0, sizeof(client_t1.param));
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_GET_IMSI,0,1,"");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- if(!error1){
- char * test = lynqStrdupReadString(p);
- memcpy(buf, test, strlen(test));
- free(test);
- }
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ char * test = lynqStrdupReadString(p);
+ memcpy(buf, test, strlen(test));
+ free(test);
+ return res;
}
@@ -277,50 +333,17 @@
{
return -1;
}
- int ret = -1;
- if(buf == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- client_t.request = RIL_REQUEST_QUERY_ICCID;
- client_t.paramLen = 0;
- client_t.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- memset(client_t.param, 0, sizeof(client_t.param));
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_QUERY_ICCID,0,1,"");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- if(!error1){
- char * test = lynqStrdupReadString(p);
- memcpy(buf, test, strlen(test));
- free(test);
- }
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ char * test = lynqStrdupReadString(p);
+ memcpy(buf, test, strlen(test));
+ free(test);
+ return res;
}
int lynq_enable_pin(char *pin){
@@ -328,47 +351,14 @@
{
return -1;
}
- int ret = -1;
- if(pin == NULL)
- return ret;
- if(!strlen(pin))
- return ret;
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- client_t.request = RIL_REQUEST_SET_FACILITY_LOCK;
- client_t.paramLen = 4;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s %s %s %s\n", "SC", pin, "11", "1");
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
-
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_SET_FACILITY_LOCK,4,1,"%s %s %s %s\n", "SC", pin, "11", "1");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
int lynq_sim_power(int mode)
@@ -377,53 +367,14 @@
{
return -1;
}
- int ret = -1;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- char res_data[MAX_LEN] = {0};
- client_t.request = RIL_REQUEST_OEM_HOOK_RAW;
- client_t.paramLen = 1;
- client_t.uToken = Global_uToken;
- char buf[64] = {0};
- sprintf(buf, "%s%d", "AT+ESIMPOWER=", mode);
- sprintf(client_t.param, "%s\n", buf);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return ret;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- int num = -1;
- if(p.dataAvail() > 0)
- {
- char test[128] = {0};
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- p.readInt32(&num);
- if(num == -1){
- }else{
- p.read(test, num);
- return error1;
- }
+ int res = lynq_send_common_request(&p,RIL_REQUEST_OEM_HOOK_RAW,1,1,"%s%d", "AT+ESIMPOWER=", mode);
+ if(res != 0)
+ {
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
int lynq_disable_pin(char *pin){
@@ -431,44 +382,14 @@
{
return -1;
}
- int ret = -1;
- if(pin == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- client_t.request = RIL_REQUEST_SET_FACILITY_LOCK;
- client_t.paramLen = 4;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s %s %s %s\n", "SC", pin, "11", "0");
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_SET_FACILITY_LOCK,4,1,"%s %s %s %s\n", "SC", pin, "11", "0");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
int lynq_query_pin_lock(char *pin,int buf[]){
@@ -476,55 +397,25 @@
{
return -1;
}
- int ret = -1;
- if(pin == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- client_t.request = RIL_REQUEST_QUERY_FACILITY_LOCK;
- client_t.paramLen = 3;
- client_t.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- sprintf(client_t.param, "%s %s %s\n", "SC", pin, "11");
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- int num = -1;
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_QUERY_FACILITY_LOCK,3,1,"%s %s %s\n", "SC", pin, "11");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- p.readInt32(&num);
- if(num > 0){
- int *test = (int *)calloc(1, sizeof(int)*num);
- for(int i =0; i <num; i++){
- p.readInt32(&test[i]);
- buf[i] = test[i];
- }
- free(test);
- }
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ int num = -1;
+ p.readInt32(&num);
+ if(num > 0)
+ {
+ int *test = (int *)calloc(num, sizeof(int));
+ for(int i =0; i <num; i++){
+ p.readInt32(&test[i]);
+ buf[i] = test[i];
+ }
+ free(test);
+ }
+ return res;
}
int lynq_verify_pin(char *pin){
@@ -532,45 +423,14 @@
{
return -1;
}
- int ret = -1;
- if(pin == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- int len = 0;
- client_t.request = RIL_REQUEST_ENTER_SIM_PIN;
- client_t.paramLen = 1;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s\n", pin);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_ENTER_SIM_PIN,1,1,"%s\n", pin);
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
int lynq_change_pin(char *old_pin, char *new_pin){
@@ -578,49 +438,21 @@
{
return -1;
}
- int ret = -1;
+ int res = -1;
if(old_pin == NULL || new_pin == NULL)
- return ret;
+ return res;
if(!strlen(new_pin))
- return ret;
+ return res;
if(!strlen(old_pin))
- return ret;
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- int len = 0;
- client_t.request = RIL_REQUEST_CHANGE_SIM_PIN;
- client_t.paramLen = 2;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s %s\n", old_pin, new_pin);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
+ return res;
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ res = lynq_send_common_request(&p,RIL_REQUEST_CHANGE_SIM_PIN,2,1,"%s %s\n", old_pin, new_pin);
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
int lynq_unlock_pin(char *puk, char *pin){
@@ -628,45 +460,16 @@
{
return -1;
}
- int ret = -1;
if(puk == NULL || pin == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- int len = 0;
- client_t.request = RIL_REQUEST_ENTER_SIM_PUK;
- client_t.paramLen = 2;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s %s\n", puk, pin);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
+ return -1;
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_ENTER_SIM_PUK,2,1,"%s %s\n", puk, pin);
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ return res;
}
static void delete_char(char str[],char target){
@@ -736,55 +539,24 @@
{
return -1;
}
- int ret = -1;
- if(buf == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- char res_data[MAX_LEN] = {0};
- client_t.request = RIL_REQUEST_OEM_HOOK_RAW;
- client_t.paramLen = 1;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%s\n", "AT+CNUM");
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return ret;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- int num = -1;
- if(p.dataAvail() > 0)
- {
- char test[128] = {0};
- char *argv[5] = {0};
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- p.readInt32(&num);
- if(num == -1){
- }else{
- p.read(test, num);
- num = parse_param(test, argv, buf);
- return num;
- }
+ int res = lynq_send_common_request(&p,RIL_REQUEST_OEM_HOOK_RAW,1,1,"%s\n", "AT+CNUM");
+ if(res != 0)
+ {
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ int num = -1;
+ p.readInt32(&num);
+ char test[128] = {0};
+ char *argv[5] = {0};
+ if(num != -1)
+ {
+ p.read(test, num);
+ num = parse_param(test, argv, buf);
+ return num;
+ }
+ return res;
}
int lynq_get_imei(char buf[])
@@ -793,147 +565,68 @@
{
return -1;
}
- int ret = -1;
- if(buf == NULL)
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- lynq_client_t client_t1;
- memset(&client_t1, 0, sizeof(client_t1) );
- client_t1.request = RIL_REQUEST_DEVICE_IDENTITY;
- client_t1.paramLen = 0;
- client_t1.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- memset(client_t1.param, 0, sizeof(client_t1.param));
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
- }
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- int num = 0;
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_DEVICE_IDENTITY,0,1,"");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- if(!error1){
- p.readInt32(&num);
- char * test = lynqStrdupReadString(p);
- memcpy(buf, test, strlen(test));
- free(test);
- }
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ int num = 0;
+ p.readInt32(&num);
+ char * test = lynqStrdupReadString(p);
+ memcpy(buf, test, strlen(test));
+ free(test);
+ return res;
}
int lynq_get_imei_and_sv(char imei[],char sv[])
{
- RLOGD("%s called",__func__);
if(g_lynq_sim_init_flag == 0)
{
- RLOGD("%s init_flag is %d",__func__,g_lynq_sim_init_flag);
- return -2;
- }
- int ret = -1;
- if(imei == NULL || sv== NULL)
- {
- RLOGD("%s imei is NULL or sv is NULL",__func__);
- return ret;
- }
-
- int send_num = 0;
- int recv_num = 0;
- int len = 0;
- lynq_client_t client_t1;
- memset(&client_t1, 0, sizeof(client_t1) );
- client_t1.request = RIL_REQUEST_DEVICE_IDENTITY;
- client_t1.paramLen = 0;
- client_t1.uToken = Global_uToken;
- char res_data[MAX_LEN] = {0};
- memset(client_t1.param, 0, sizeof(client_t1.param));
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("%s sendto error: %d",__func__,send_num);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- //get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("%s recvfrom step2 fail:%d",__func__,recv_num);
- return recv_num;
+ return -1;
}
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- int num = 0;
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_DEVICE_IDENTITY,0,1,"");
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- if(!error1){
- p.readInt32(&num);
- if(num<2)
- {
- RLOGD("%s num %d error, should greater than 1",__func__,num);
- return -1;
- }
- char *resp[2]={NULL,NULL};
- int i;
- for(i=0;i<2;i++)
- {
- resp[i]= lynqStrdupReadString(p);
- if(resp[i]==NULL)
- {
- break;
- }
- }
-
- if(i==2){
- memcpy(imei, resp[0], strlen(resp[0])+1);
- memcpy(sv, resp[1], strlen(resp[1])+1);
- }
- else
- {
- RLOGD("%s resp[%d] is null",__func__,i);
- }
-
- for(i=0;i<2;i++)
- {
- if(resp[i]!=NULL)
- {
- free(resp[i]);
- }
- }
- return i==2? 0:-1;
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
+ }
+ int num = 0;
+ p.readInt32(&num);
+ if(num<2)
+ {
+ RLOGD("%s num %d error, should greater than 1",__func__,num);
+ return -1;
+ }
+ char *resp[2]={NULL,NULL};
+ int i;
+ for(i=0;i<2;i++)
+ {
+ resp[i]= lynqStrdupReadString(p);
+ if(resp[i]==NULL)
+ {
+ break;
}
- }
- RLOGD("%s called failed %d",__func__,error1);
- return error1;
+ }
+ if(i==2){
+ memcpy(imei, resp[0], strlen(resp[0])+1);
+ memcpy(sv, resp[1], strlen(resp[1])+1);
+ }
+ else
+ {
+ RLOGD("%s resp[%d] is null",__func__,i);
+ }
+ for(i=0;i<2;i++)
+ {
+ if(resp[i]!=NULL)
+ {
+ free(resp[i]);
+ }
+ }
+ return i==2? 0:-1;
+
}
static int judge(int slot){
@@ -951,16 +644,16 @@
{
return -1;
}
- int ret = -1;
if(!judge(slot))
- return ret;
+ return -1;
int send_num = 0;
+ lynq_client_t client_t;
client_t.request = LYNQ_REQUEST_SET_DEFAULT_SIM_ALL;
client_t.paramLen = 1;
client_t.uToken = Global_uToken;
sprintf(client_t.param, "%d\n", slot);
pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
+ send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv); //because ril of id = -1
if(send_num < 0)
{
RLOGD("function %s sendto error:", __FUNCTION__);
@@ -979,74 +672,16 @@
{
return -1;
}
-
- int ret = -1;
if(!judge(num))
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int error[2];
- char res_data[MAX_LEN] = {0};
-
- //change the first screen
- client_t.request = LYNQ_REQUEST_CHANGE_SCREEN_STATE; //8014
- client_t.paramLen = 1;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%d\n", num);
-
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
+ return -1;
+ Parcel p;
+ int res = lynq_send_common_request(&p,RIL_REQUEST_SCREEN_STATE,1,2,"%d\n",num);
+ if(res != 0)
{
- RLOGD("sendto error:\n");
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- for(int i=0;i<2;i++)
- {
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- if(recv_num < 0 || recv_num == 0)
- {
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);//recvfrom fail
- RLOGD("screen recvform error\n");
- return errno;
- }
- if(i == 1)
- {
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- RLOGD("recvfrom success\n");
- }
- Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
- {
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- error[i] = error1;//change screen state result
- }
- }
-
- if((error[0] != 0) || (error[1] != 0))
- {
- RLOGD("error[0] = %d errpr[1] = %d\n",error[0], error[1]);
- if(error[0] != 0)
- {
- return error[0];
- }
- else
- {
- return error[1];
- }
- }
- else
- {
- return 0;
- }
-
+ return res;
}
/**@breif change screen state
@@ -1059,73 +694,16 @@
{
return -1;
}
-
- int ret = -1;
if(!judge(num))
- return ret;
- int send_num = 0;
- int recv_num = 0;
- int error[2];
- char res_data[MAX_LEN] = {0};
- //change the first screen
- client_t.request = LYNQ_REQUEST_CHANGE_RADIO; //8015
- client_t.paramLen = 1;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%d\n", num);
-
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
+ return -1;
+ Parcel p;
+ int res = lynq_send_common_request(&p,RIL_REQUEST_RADIO_POWER,1,2,"%d\n",num);
+ if(res != 0)
{
- RLOGD("sendto error:\n");
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- for(int i=0;i<2;i++)
- {
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- if(recv_num < 0 || recv_num == 0)
- {
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);//recvfrom fail
- RLOGD("screen recvform error\n");
- return errno;
- }
- if(i == 1)
- {
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- RLOGD("recvfrom success\n");
- }
- Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
- {
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- error[i] = error1;//change screen state result
- }
- }
-
- if((error[0] != 0) || (error[1] != 0))
- {
- RLOGD("error[0] = %d errpr[1] = %d\n",error[0], error[1]);
- if(error[0] != 0)
- {
- return error[0];
- }
- else
- {
- return error[1];
- }
- }
- else
- {
- return 0;
- }
-
+ return res;
}
/**
@@ -1197,54 +775,23 @@
{
return -1;
}
- int ret = -1;
if(judge_illegal(list, path, data, pin2, aidPtr, sw, simResponse))
{
- return ret;
- }
- int send_num = 0;
- int recv_num = 0;
- char res_data[MAX_LEN] = {0};
- client_t.request = RIL_REQUEST_SIM_IO;
- client_t.paramLen = 9;
- client_t.uToken = Global_uToken;
- sprintf(client_t.param, "%d %d %s %d %d %d %s %s %s\n", list[0], list[1], path, list[2], list[3], list[4], data_buf, pin2_buf, aidPtr_buf);
- pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
- if(send_num < 0)
- {
- RLOGD("function %s sendto error:", __FUNCTION__);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- return send_num;
- }
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- if(recv_num < 0 || recv_num == 0)
- {
- RLOGD("recvfrom step2 fail:");
- return recv_num;
+ return -1;
}
Parcel p;
- p.setData((uint8_t *)res_data,sizeof(char)*recv_num); // p.setData((uint8_t *) buffer, buflen);
- p.setDataPosition(0);
- if(p.dataAvail() > 0)
+ int res = lynq_send_common_request(&p,RIL_REQUEST_SIM_IO,9,1,"%d %d %s %d %d %d %s %s %s\n", list[0], list[1], path, list[2], list[3], list[4], data_buf, pin2_buf, aidPtr_buf);
+ if(res != 0)
{
- p.readInt32(&resp_type);
- p.readInt32(&solicited_token);
- p.readInt32(&request);
- p.readInt32(&slot_id);
- p.readInt32(&error1);
- if(!error1)
- {
- p.readInt32(&sw[0]);
- p.readInt32(&sw[1]);
- char * test = lynqStrdupReadString(p);
- memcpy(simResponse, test, strlen(test));
- free(test);
- }
-
+ RLOGD("function %s execute error", __FUNCTION__);
+ return res;
}
- return error1;
+ p.readInt32(&sw[0]);
+ p.readInt32(&sw[1]);
+ char * test = lynqStrdupReadString(p);
+ memcpy(simResponse, test, strlen(test));
+ free(test);
+ return res;
}
static void wait_reset_mipc_response(int *response)
@@ -1272,12 +819,13 @@
}
int ret = -1;
int send_num = 0;
+ lynq_client_t client_t;
client_t.request = RIL_REQUEST_OEM_HOOK_RAW;
client_t.paramLen = 1;
client_t.uToken = Global_uToken;
sprintf(client_t.param, "%s\n", "AT+LRSTMD");
pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
+ send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);//because response not by ril callback
if(send_num < 0)
{
RLOGD("function %s sendto error:", __FUNCTION__);
@@ -1286,7 +834,7 @@
}
wait_reset_mipc_response(&ret);
pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
- RLOGD("function %d ret %d",__FUNCTION__, ret);
+ RLOGD("function %s ret %d",__FUNCTION__, ret);
return ret;
}
@@ -1338,60 +886,31 @@
int lynq_get_version(char buf[])
{
- FILE * fp;
+ FILE *fp;
char buffer[128];
sprintf(buffer, "%s", "uci get lynq_uci_ro.lynq_version.LYNQ_SW_VERSION");
fp = popen(buffer, "r");
- fgets(buffer, sizeof(buffer), fp);
+ if(NULL == fp)
+ {
+ RLOGE("popen failed !");
+ return -1;
+ }
+ if(NULL != fgets(buffer, sizeof(buffer), fp))
+ {
+ if('\n' == buffer[strlen(buffer) - 1])
+ {
+ buffer[strlen(buffer) - 1] = '\0';
+ }
+ }
+ else
+ {
+ RLOGE("fgets failed !");
+ pclose(fp);
+ return -1;
+ }
memcpy(buf, buffer, strlen(buffer));
buf[strlen(buffer)] = '\0';
pclose(fp);
return 0;
}
-#if FLAG_TESS
-int lynq_query_operator(char buf[]){
- int32_t token = -1;
- if(buf == NULL)
- return token;
- char msg_imsi[20] = {0};
- memset(msg_imsi,0,sizeof(msg_imsi));
- token = lynq_get_imsi(msg_imsi);
- if(strlen(msg_imsi) != 0){
- FindOperator *ope_command = NULL;
- ope_command = find_ope_command(msg_imsi, findOperator);
- if(ope_command){
- memcpy(buf, ope_command->buf, strlen(ope_command->buf));
- buf[strlen(ope_command->buf)] = '\0';
- }
- else{
- /*more*/
- char mccmnc[5] = {0};
- memcpy(buf, msg_imsi, 5);
- buf[5] = '\0';
- /*more*/
- }
- return token;
- }
- else{
- //msg->base.e = err;
- const char *test = "please insert sim card";
- memcpy(buf, test, strlen(test));
- return token;
- }
-}
-FindOperator findOperator[] = {
-#include "operator.h"
-};
-static FindOperator*find_ope_command (char *name,FindOperator *Class){
- if(name == NULL || Class == NULL){
- return ((FindOperator *)NULL);
- }
- register int i;
- for (i = 0; Class[i].MCCMCN; i++)
- if (strncmp (name, Class[i].MCCMCN, 5) == 0)
- return (&Class[i]);
- return ((FindOperator *)NULL);
-}
-
-#endif
diff --git a/common_src/lib/liblynq-uci/lynq_uci.config b/common_src/lib/liblynq-uci/lynq_uci.config
index 501a034..a9232a1 100755
--- a/common_src/lib/liblynq-uci/lynq_uci.config
+++ b/common_src/lib/liblynq-uci/lynq_uci.config
@@ -27,6 +27,9 @@
config lynq_rndis 'lynq_rndis'
option initiate '0'
+config rndis_status 'rndis'
+ option status '0'
+
config debug_mode_status 'debug_mode'
option rild_debug_status '0'
option sysinfo_debug_status '0'