[feature][T8TSK-68][sim]Sim card power management
Change-Id: I43ddcda71e010db41058f2f6796a7b4799f4bc3a
diff --git a/lib/liblynq-sim/src/lynq_sim.cpp b/lib/liblynq-sim/src/lynq_sim.cpp
index 76403e1..913599c 100755
--- a/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/lib/liblynq-sim/src/lynq_sim.cpp
@@ -331,6 +331,59 @@
return error1;
}
+int lynq_sim_power(int mode)
+{
+ if(g_lynq_sim_init_flag == 0)
+ {
+ 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("sendto error:");
+ 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(&request);
+ p.readInt32(&slot_id);
+ p.readInt32(&error1);
+ p.readInt32(&num);
+ if(num == -1){
+ }else{
+ p.read(test, num);
+ return error1;
+ }
+ }
+ return error1;
+}
+
int lynq_disable_pin(char *pin){
if(g_lynq_sim_init_flag == 0)
{