[feature][T3TSK-2][AT]AT+CFSN:read sn
Change-Id: Idf7093c7a8f12dffde5ba83a46856a9da19101d9
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_at.cpp b/src/lynq/framework/lynq-atsvc/src/lynq_at.cpp
index 6ff642c..ce6d67c 100644
--- a/src/lynq/framework/lynq-atsvc/src/lynq_at.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_at.cpp
@@ -5,23 +5,24 @@
** Version: V1.0
** LastChange: 2021-09-28
** History:
-**=============================================================================*/
-#include "lynq_at.h"
-#include "common.h"
+**=============================================================================*/
+#include <string.h>
+#include "lynq_at.h"
+#include "common.h"
#include "stateManager/stateManager.h"
#include "Phone_utils.h"
#include "utils.h"
-
-int lynqSendAt(int argc,char *argv[],int uToken)
-{
+
+int lynqSendAt(int argc,char *argv[],int uToken)
+{
int request = RIL_REQUEST_OEM_HOOK_RAW;
RIL_SOCKET_ID id = RIL_SOCKET_1;
if(utils::is_support_dsds())
- {
+ {
id = (RIL_SOCKET_ID)get_default_sim_all_except_data();
}
- else if(utils::is_suppport_dsss())
- {
+ else if(utils::is_suppport_dsss())
+ {
id = (RIL_SOCKET_ID)Phone_utils::get_enable_sim_for_dsss();
}
// if (request < 1 || (request >= (int32_t)NUM_ELEMS(s_commands) && request < RIL_REQUEST_VENDOR_BASE)) {
@@ -31,10 +32,17 @@
//}
//RLOGD("REQUEST: %s ParamterNum:%d", requestToString(request), argc);
- RequestInfo *pRI = creatRILInfoAndInit(request, UDP, (RIL_SOCKET_ID)(id));
- pRI->lynqEvent=1;
- printf("Warren test ====> argv[1]=%s\n",argv[1]);
- sendATCMD(2, argv,id,pRI);
- return 0;
-}
-
+ RequestInfo *pRI = creatRILInfoAndInit(request, UDP, (RIL_SOCKET_ID)(id));
+ if(!strcmp(argv[1],"AT+CFSN"))
+ {
+ pRI->lynqEvent=2;
+ }
+ else
+ {
+ pRI->lynqEvent=1;
+ }
+ printf("Warren test ====> argv[1]=%s\n",argv[1]);
+ sendATCMD(2, argv,id,pRI);
+ return 0;
+}
+
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h b/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
index 1b1308d..d685cbb 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_at_transfer_table.h
@@ -3,6 +3,9 @@
{LYNQ_REQUEST_CGAUTO,"CGAUTO",0},
{LYNQ_REQUEST_CGACT,"CGACT",4},
{LYNQ_REQUEST_CGDCONT,"CGDCONT",4},
+/*lei add for clt*/
+{LYNQ_REQUEST_CFSN,"CFSN",7},
+/*lei add for clt*/
{LYNQ_USER_REQUEST_GNSS,"LYNQGNSS",7},
{LYNQ_USER_REQUEST_OTHRE,"LYNQOTHER",7},
{LYNQ_REQUEST_LAPNACT,"LAPNACT",7},
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp b/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
index 038fa4f..191b953 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_common.cpp
@@ -80,6 +80,7 @@
case LYNQ_REQUEST_GMI:
case LYNQ_REQUEST_CGACT:
case LYNQ_REQUEST_CGDCONT:
+ case LYNQ_REQUEST_CFSN:
{
return LYNQ_GOTO_AT;
}
diff --git a/src/lynq/framework/lynq-atsvc/src/lynq_common.h b/src/lynq/framework/lynq-atsvc/src/lynq_common.h
index 5c988ad..6d39ea1 100755
--- a/src/lynq/framework/lynq-atsvc/src/lynq_common.h
+++ b/src/lynq/framework/lynq-atsvc/src/lynq_common.h
@@ -66,6 +66,7 @@
#define LYNQ_REQUEST_CSCLK (LYNQ_VERSION +20)
#define LYNQ_REQUEST_MPWRSM (LYNQ_VERSION +21)
#define LYNQ_REQUEST_MWAKEUPCFG (LYNQ_VERSION +22)
+#define LYNQ_REQUEST_CFSN (LYNQ_VERSION +23)
/*lei add*/
#define LYNQ_USER_REQUEST_GNSS (LYNQ_VERSION +100)
#define LYNQ_USER_REQUEST_OTHRE (LYNQ_VERSION +101)
diff --git a/src/lynq/framework/lynq-atsvc/src/ril.cpp b/src/lynq/framework/lynq-atsvc/src/ril.cpp
index 1a68f59..cb27c32 100755
--- a/src/lynq/framework/lynq-atsvc/src/ril.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/ril.cpp
@@ -3845,6 +3845,42 @@
return 0;
}
+/**
+ * @brief EGMR->CFSN
+ *
+ * @param response
+ */
+static void lynq_parse_EGMR(void *response)
+{
+ char *ptr = (char *)response;
+ while(*ptr != '\0')
+ {
+ *ptr++;
+ if(*ptr == 'E')
+ {
+ *ptr = 'C';
+ }
+ if(*ptr == 'G')
+ {
+ *ptr = 'F';
+ }
+ if(*ptr == 'M')
+ {
+ *ptr = 'S';
+ }
+ if(*ptr == 'R')
+ {
+ *ptr = 'N';
+ }
+ if(*ptr == ':')
+ {
+ break;
+ }
+
+ }
+ return;
+}
+
extern "C" void
RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responselen) {
RequestInfo *pRI;
@@ -4081,6 +4117,18 @@
}
printf("n = %d\n",n);
}
+ if(pRI->lynqEvent==2)
+ {
+ if(strstr((const char*)response,"+EGMR")){
+ lynq_parse_EGMR(response);
+ }
+ int n = write(ttyGS3_fd,response,responselen);
+ if(n<0)
+ {
+ perror("lynq resp write:");
+ }
+ printf("n = %d\n",n);
+ }
}
default:
break;
diff --git a/src/lynq/framework/lynq-atsvc/src/stateManager/stateManager.cpp b/src/lynq/framework/lynq-atsvc/src/stateManager/stateManager.cpp
index a20fc58..d79c984 100755
--- a/src/lynq/framework/lynq-atsvc/src/stateManager/stateManager.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/stateManager/stateManager.cpp
@@ -130,7 +130,15 @@
int sendATCMD(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
{
android::Parcel p;
- char *cmd = (char *)argv[1];
+ char *cmd = NULL;
+ if(!strcmp(argv[1],"AT+CFSN"))
+ {
+ cmd = "AT+EGMR=0,5";
+ }
+ else
+ {
+ cmd = (char *)argv[1];
+ }
size_t pos = p.dataPosition();
if (cmd == NULL){
RLOGD("sendATCMD:cmd is null\n");