[Feature][ZXW-136]merge P50U04 version
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: I7b6a8e22777591bc7a9ede91d6695d9415116f81
diff --git a/ap/lib/libatext/ext_user_modem.c b/ap/lib/libatext/ext_user_modem.c
index 780a582..782ed7d 100755
--- a/ap/lib/libatext/ext_user_modem.c
+++ b/ap/lib/libatext/ext_user_modem.c
@@ -10,11 +10,12 @@
char netcon_value_char[70] = {0};
extern char* normal_getzversion();
int urcsysinfo = 0;
-typedef struct {
- int mode;
- int creg;
- int cgreg;
- int cereg;
+typedef struct
+{
+ int mode;
+ int creg;
+ int cgreg;
+ int cereg;
} EXT_NETSTATE_INFO;
EXT_NETSTATE_INFO urcinfo = {0};
//========================================================================================================//
@@ -24,561 +25,712 @@
static void comm_rspmsg_proc(void *rsp_msg, void**ret, int *retlen)
{
- AT_COMM_RSPMSG *msg = (AT_COMM_RSPMSG*)rsp_msg;
- char *at_str = NULL;
- int offset = 0;
+ AT_COMM_RSPMSG *msg = (AT_COMM_RSPMSG*)rsp_msg;
+ char *at_str = NULL;
+ int offset = 0;
- if (msg->result < 0) {
- at_str = malloc(32);
- assert(at_str);
- memset(at_str, 0x00, 32);
- if (msg->errcode) {
- sprintf(at_str, "\r\nERROR: %d\r\n", msg->errcode);
- } else {
- sprintf(at_str, "\r\nERROR\r\n");
- }
- } else {
- at_str = malloc(64);
- assert(at_str);
- memset(at_str, 0x00, 64);
- if (msg->msg_cmd == MSG_CMD_NETACT_REQ) {
- offset += sprintf(at_str, "\r\nOK\r\n");
- if (msg->urc_switch) {
- if (g_customer_type == CUSTOMER_GUODIAN)
- offset += sprintf(at_str + offset, "\r\n$MYURCACT: %d,%d\r\n", msg->extcid, msg->act_type);
- else if (g_customer_type == CUSTOMER_NANDIAN)
- offset += sprintf(at_str + offset, "\r\n$MYURCACT: %d,%d,\"%s\"\r\n", msg->extcid, msg->act_type, msg->ip);
- }
+ if (msg->result < 0)
+ {
+ at_str = malloc(32);
+ assert(at_str);
+ memset(at_str, 0x00, 32);
+ if (msg->errcode)
+ {
+ sprintf(at_str, "\r\nERROR: %d\r\n", msg->errcode);
+ }
+ else
+ {
+ sprintf(at_str, "\r\nERROR\r\n");
+ }
+ }
+ else
+ {
+ at_str = malloc(64);
+ assert(at_str);
+ memset(at_str, 0x00, 64);
+ if (msg->msg_cmd == MSG_CMD_NETACT_REQ)
+ {
+ offset += sprintf(at_str, "\r\nOK\r\n");
+ if (msg->urc_switch)
+ {
+ if (g_customer_type == CUSTOMER_GUODIAN)
+ {
+ offset += sprintf(at_str + offset, "\r\n$MYURCACT: %d,%d\r\n", msg->extcid, msg->act_type);
+ }
+ else if (g_customer_type == CUSTOMER_NANDIAN)
+ {
+ offset += sprintf(at_str + offset, "\r\n$MYURCACT: %d,%d,\"%s\"\r\n", msg->extcid, msg->act_type, msg->ip);
+ }
+ }
- *ret = at_str;
- *retlen = offset;
- return;
- }
- sprintf(at_str, "\r\nOK\r\n");
- }
- *ret = at_str;
- *retlen = strlen(at_str);
+ *ret = at_str;
+ *retlen = offset;
+ return;
+ }
+ sprintf(at_str, "\r\nOK\r\n");
+ }
+ *ret = at_str;
+ *retlen = strlen(at_str);
}
int ext_netcon_req(int at_fd, char *at_paras, void ** res_msg, int *res_msglen)
{
- struct netcon_reqmsg *reqmsg = malloc(sizeof(struct netcon_reqmsg));
- assert(reqmsg);
- char configname[10] = {0};
- char *l_quota = NULL;//×óË«ÒýºÅ
- char *r_quota = NULL;//ÓÒË«ÒýºÅ
- char *at_str = NULL;
+ struct netcon_reqmsg *reqmsg = malloc(sizeof(struct netcon_reqmsg));
+ assert(reqmsg);
+ char configname[10] = {0};
+ char *l_quota = NULL;//×óË«ÒýºÅ
+ char *r_quota = NULL;//ÓÒË«ÒýºÅ
+ char *at_str = NULL;
- //if (NULL == reqmsg) softap_assert("");
- //³õʼ»¯
- memset(reqmsg, 0x00, sizeof(struct netcon_reqmsg));
- reqmsg->auth_type = -1;
- reqmsg->cfgp = -1;
- reqmsg->cfgt = -1;
+ //if (NULL == reqmsg) softap_assert("");
+ //³õʼ»¯
+ memset(reqmsg, 0x00, sizeof(struct netcon_reqmsg));
+ reqmsg->auth_type = -1;
+ reqmsg->cfgp = -1;
+ reqmsg->cfgt = -1;
- reqmsg->extcid = at_paras[0] - '0';
- if (reqmsg->extcid < 0 || reqmsg->extcid >= 6)
- goto error;
- l_quota = strstr(at_paras, "\"");
- if (NULL == l_quota) {
- goto error;
- }
- r_quota = strstr(l_quota + 1, "\"");
+ reqmsg->extcid = at_paras[0] - '0';
+ if (reqmsg->extcid < 0 || reqmsg->extcid >= 6)
+ {
+ goto error;
+ }
+ l_quota = strstr(at_paras, "\"");
+ if (NULL == l_quota)
+ {
+ goto error;
+ }
+ r_quota = strstr(l_quota + 1, "\"");
- if (NULL == r_quota) {
- goto error;
- }
- memcpy(configname, l_quota + 1, r_quota - l_quota - 1);
- if (0 == at_strncmp(configname, "APN", strlen("APN"))) {
- l_quota = strstr(r_quota + 1, "\"");
- if (l_quota == NULL)
- goto error;
- r_quota = strstr(l_quota + 1, "\"");
- if (r_quota == NULL)
- goto error;
- memcpy(reqmsg->apn, l_quota + 1, r_quota - l_quota - 1);
- memset(netcon_value_char, 0, sizeof(netcon_value_char));
- memcpy(netcon_value_char, l_quota + 1, r_quota - l_quota - 1);
- } else if (0 == at_strncmp(configname, "USERPWD", strlen("USERPWD"))) {
- l_quota = strstr(r_quota + 1, "\"");
- if (l_quota == NULL)
- goto error;
- r_quota = strstr(l_quota + 1, "\"");
- if (r_quota == NULL)
- goto error;
- char *comma = strstr(l_quota + 1, ",");
- if (NULL != comma) { //ÓжººÅ£¬Óû§ÃûÃÜÂ벻Ϊ¿Õ
- if (comma > r_quota)
- goto error;
- memcpy(reqmsg->username, l_quota + 1, comma - l_quota - 1);
- memcpy(reqmsg->password, comma + 1, r_quota - comma - 1);
- }
- memset(netcon_value_char, 0, sizeof(netcon_value_char));
- memcpy(netcon_value_char, l_quota + 1, r_quota - l_quota - 1);
-
- reqmsg->is_userpwd = 1;
- } else if (0 == at_strncmp(configname, "CFGT", strlen("CFGT"))) {
- int len = strlen(r_quota + 2);
- char* str = malloc(len + 1);
- assert(str);
- strcpy(str, r_quota + 2);
- reqmsg->cfgt = atoi(str);
- if (reqmsg->cfgt < 1 || reqmsg->cfgt > 65535){
- free(str);
- goto error;
+ if (NULL == r_quota)
+ {
+ goto error;
+ }
+ memcpy(configname, l_quota + 1, r_quota - l_quota - 1);
+ if (0 == at_strncmp(configname, "APN", strlen("APN")))
+ {
+ l_quota = strstr(r_quota + 1, "\"");
+ if (l_quota == NULL)
+ {
+ goto error;
}
- netcon_value_int = atoi(str);
- free(str);
- } else if (0 == at_strncmp(configname, "CFGP", strlen("CFGP"))) {
- int len = strlen(r_quota + 2);
- char* str = malloc(len + 1);
- assert(str);
- strcpy(str, r_quota + 2);
- reqmsg->cfgp = atoi(str);
- if (reqmsg->cfgp < 1 || reqmsg->cfgp > 1460) {
- free(str);
- goto error;
+ r_quota = strstr(l_quota + 1, "\"");
+ if (r_quota == NULL)
+ {
+ goto error;
}
- netcon_value_int = atoi(str);
- free(str);
- } else if (0 == at_strncmp(configname, "AUTH", strlen("AUTH"))) {
- int len = strlen(r_quota + 2);
- char* str = malloc(len + 1);
- assert(str);
- strcpy(str, r_quota + 2);
- reqmsg->auth_type = atoi(str);
- if (reqmsg->auth_type < 0 || reqmsg->auth_type > 2) {
- free(str);
- goto error;
+ memcpy(reqmsg->apn, l_quota + 1, r_quota - l_quota - 1);
+ memset(netcon_value_char, 0, sizeof(netcon_value_char));
+ memcpy(netcon_value_char, l_quota + 1, r_quota - l_quota - 1);
+ }
+ else if (0 == at_strncmp(configname, "USERPWD", strlen("USERPWD")))
+ {
+ l_quota = strstr(r_quota + 1, "\"");
+ if (l_quota == NULL)
+ {
+ goto error;
}
- netcon_value_int = atoi(str);
- free(str);
- } else {
- goto error;
- }
- netcon_extcid = reqmsg->extcid;
- strncpy(netcon_configname, configname,sizeof(netcon_configname)-1);
+ r_quota = strstr(l_quota + 1, "\"");
+ if (r_quota == NULL)
+ {
+ goto error;
+ }
+ char *comma = strstr(l_quota + 1, ",");
+ if (NULL != comma) //ÓжººÅ£¬Óû§ÃûÃÜÂ벻Ϊ¿Õ
+ {
+ if (comma > r_quota)
+ {
+ goto error;
+ }
+ memcpy(reqmsg->username, l_quota + 1, comma - l_quota - 1);
+ memcpy(reqmsg->password, comma + 1, r_quota - comma - 1);
+ }
+ memset(netcon_value_char, 0, sizeof(netcon_value_char));
+ memcpy(netcon_value_char, l_quota + 1, r_quota - l_quota - 1);
- *res_msg = reqmsg;
- *res_msglen = sizeof(struct netcon_reqmsg);
- return AT_CONTINUE;
+ reqmsg->is_userpwd = 1;
+ }
+ else if (0 == at_strncmp(configname, "CFGT", strlen("CFGT")))
+ {
+ int len = strlen(r_quota + 2);
+ char* str = malloc(len + 1);
+ assert(str);
+ strcpy(str, r_quota + 2);
+ reqmsg->cfgt = atoi(str);
+ if (reqmsg->cfgt < 1 || reqmsg->cfgt > 65535)
+ {
+ free(str);
+ goto error;
+ }
+ netcon_value_int = atoi(str);
+ free(str);
+ }
+ else if (0 == at_strncmp(configname, "CFGP", strlen("CFGP")))
+ {
+ int len = strlen(r_quota + 2);
+ char* str = malloc(len + 1);
+ assert(str);
+ strcpy(str, r_quota + 2);
+ reqmsg->cfgp = atoi(str);
+ if (reqmsg->cfgp < 1 || reqmsg->cfgp > 1460)
+ {
+ free(str);
+ goto error;
+ }
+ netcon_value_int = atoi(str);
+ free(str);
+ }
+ else if (0 == at_strncmp(configname, "AUTH", strlen("AUTH")))
+ {
+ int len = strlen(r_quota + 2);
+ char* str = malloc(len + 1);
+ assert(str);
+ strcpy(str, r_quota + 2);
+ reqmsg->auth_type = atoi(str);
+ if (reqmsg->auth_type < 0 || reqmsg->auth_type > 2)
+ {
+ free(str);
+ goto error;
+ }
+ netcon_value_int = atoi(str);
+ free(str);
+ }
+ else
+ {
+ goto error;
+ }
+ netcon_extcid = reqmsg->extcid;
+ strncpy(netcon_configname, configname, sizeof(netcon_configname) - 1);
+
+ *res_msg = reqmsg;
+ *res_msglen = sizeof(struct netcon_reqmsg);
+ return AT_CONTINUE;
error:
free(reqmsg);
- at_str = malloc(32);
- assert(at_str);
- memset(at_str, 0x00, 32);
- sprintf(at_str, "\r\nERROR: 980\r\n");
- *res_msg = at_str;
- *res_msglen = strlen(at_str);
- return AT_END;
+ at_str = malloc(32);
+ assert(at_str);
+ memset(at_str, 0x00, 32);
+ sprintf(at_str, "\r\nERROR: 980\r\n");
+ *res_msg = at_str;
+ *res_msglen = strlen(at_str);
+ return AT_END;
}
int ext_netcon_rsp(void *rsp_msg, void**ret, int *retlen)
{
- comm_rspmsg_proc(rsp_msg, ret, retlen);
- return AT_END;
+ comm_rspmsg_proc(rsp_msg, ret, retlen);
+ return AT_END;
}
int ext_netact_req(int at_fd, char *at_paras, void ** res_msg, int *res_msglen)
{
- struct netact_reqmsg *reqmsg = malloc(sizeof(struct netact_reqmsg));
- assert(reqmsg);
- char *p[2] = {&reqmsg->extcid, &reqmsg->act_type};
+ struct netact_reqmsg *reqmsg = malloc(sizeof(struct netact_reqmsg));
+ assert(reqmsg);
+ char *p[2] = {&reqmsg->extcid, &reqmsg->act_type};
char *at_str = NULL;
- memset(reqmsg, 0x00, sizeof(struct comm_reqmsg));
- if(2 != parse_param2("%d,%d", at_paras, p)){
+ memset(reqmsg, 0x00, sizeof(struct comm_reqmsg));
+ if (2 != parse_param2("%d,%d", at_paras, p))
+ {
free(reqmsg);
- at_str = malloc(32);
- assert(at_str);
- memset(at_str, 0x00, 32);
- sprintf(at_str, "\r\nERROR: 980\r\n");
- *res_msg = at_str;
- *res_msglen = strlen(at_str);
- return AT_END;
- }
+ at_str = malloc(32);
+ assert(at_str);
+ memset(at_str, 0x00, 32);
+ sprintf(at_str, "\r\nERROR: 980\r\n");
+ *res_msg = at_str;
+ *res_msglen = strlen(at_str);
+ return AT_END;
+ }
- *res_msg = reqmsg;
- *res_msglen = sizeof(struct netact_reqmsg);
- return AT_CONTINUE;
+ *res_msg = reqmsg;
+ *res_msglen = sizeof(struct netact_reqmsg);
+ return AT_CONTINUE;
}
int ext_netact_rsp(void *rsp_msg, void**ret, int *retlen)
{
- comm_rspmsg_proc(rsp_msg, ret, retlen);
+ comm_rspmsg_proc(rsp_msg, ret, retlen);
- return AT_END;
+ return AT_END;
}
/*Èí¹Ø»ú*/
int ext_poweroff_req(int at_fd, char * at_paras, void **res_msg, int * res_msglen)
{
- return AT_CONTINUE;
+ return AT_CONTINUE;
}
int ext_i_act_func(int at_fd, char * at_paras, void * *res_msg, int * res_msglen)
{
- char *at_str = NULL;
+ char *at_str = NULL;
- at_str = malloc(128);
- assert(at_str);
- memset(at_str, 0, 128);
- sprintf((char*)at_str, "\r\nLQBS\r\nLQ300V3\r\nREVISION V1.0.0\r\nOK\r\n");
+ at_str = malloc(128);
+ assert(at_str);
+ memset(at_str, 0, 128);
+ sprintf((char*)at_str, "\r\nLQBS\r\nLQ300V3\r\nREVISION V1.0.0\r\nOK\r\n");
- *res_msg = at_str;
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ *res_msg = at_str;
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
int ext_myband_set_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYBAND_SET_REQ, strlen(at_paras), (unsigned char *)at_paras, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYBAND_SET_REQ, strlen(at_paras),
+ (unsigned char *)at_paras, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_myband_query_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYBAND_QUERY_REQ, 0, NULL, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYBAND_QUERY_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_beeh_act_func(int at_fd, char * at_paras, void * *res_msg, int * res_msglen)
{
- *res_msg = at_ok_build();
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ *res_msg = at_ok_build();
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
int ext_poweroff_rsp(void *rsp_msg, void**ret, int *retlen)
{
- char *at_str = NULL;
+ char *at_str = NULL;
- at_str = at_ok_build();
+ at_str = at_ok_build();
- *ret = at_str;
- *retlen = strlen(at_str);
+ *ret = at_str;
+ *retlen = strlen(at_str);
- return AT_END;
+ return AT_END;
}
/*¶ÁÈí¼þÍⲿ°æ±¾ºÅ*/
int ext_gmr_act_func(int at_fd, char * at_paras, void * *res_msg, int * res_msglen)
{
- char hwver[32] = {0};
- char swver[32] = {0};
- char *at_str = NULL;
+ char hwver[32] = {0};
+ char swver[32] = {0};
+ char *at_str = NULL;
- //sc_cfg_get(NV_HW_VERSION, hwver, sizeof(hwver));
- //sc_cfg_get(NV_WA_VERSION, swver, sizeof(swver));
- //³§ÉÌ´úºÅ¡¢Ä£¿éÐͺš¢Ó²¼þ·¢²¼ÈÕÆÚ¡¢Èí¼þ·¢²¼ÈÕÆÚÈçºÎ»ñÈ¡
- at_str = malloc(128);
- assert(at_str);
- memset(at_str, 0, 128);
- sprintf((char*)at_str, "\r\nLQBS\r\nLQ300V3\r\nV1.0.0\r\n151017\r\nV1.0\r\n151017\r\nOK\r\n");
- *res_msg = at_str;
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ //sc_cfg_get(NV_HW_VERSION, hwver, sizeof(hwver));
+ //sc_cfg_get(NV_WA_VERSION, swver, sizeof(swver));
+ //³§ÉÌ´úºÅ¡¢Ä£¿éÐͺš¢Ó²¼þ·¢²¼ÈÕÆÚ¡¢Èí¼þ·¢²¼ÈÕÆÚÈçºÎ»ñÈ¡
+ at_str = malloc(128);
+ assert(at_str);
+ memset(at_str, 0, 128);
+ sprintf((char*)at_str, "\r\nLQBS\r\nLQ300V3\r\nV1.0.0\r\n151017\r\nV1.0\r\n151017\r\nOK\r\n");
+ *res_msg = at_str;
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
/*»ñÈ¡SIM¿¨ÐòÁкÅ*/
int ext_ccid_act_func(int at_fd, char * at_paras, void * *res_msg, int * res_msglen)
{
- char iccid[32] = {0};
- char *at_str = NULL;
+ char iccid[32] = {0};
+ char *at_str = NULL;
- at_str = malloc(64);
- assert(at_str);
- memset(at_str, 0, 64);
- sc_cfg_get(NV_ZICCID, iccid, sizeof(iccid));
- //at_print(1,"ext_ccid_act_func: iccid = %s\n",iccid);
- sprintf((char*)at_str, "\r\n$MYCCID: \"%s\"\r\nOK\r\n", iccid);
- *res_msg = at_str;
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ at_str = malloc(64);
+ assert(at_str);
+ memset(at_str, 0, 64);
+ sc_cfg_get(NV_ZICCID, iccid, sizeof(iccid));
+ //at_print(1,"ext_ccid_act_func: iccid = %s\n",iccid);
+ sprintf((char*)at_str, "\r\n$MYCCID: \"%s\"\r\nOK\r\n", iccid);
+ *res_msg = at_str;
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
int ext_netcon_query_func(int at_fd, char *at_paras, void ** res_msg, int *res_msglen)
{
- char *at_str = NULL;
- int offset = 0;
+ char *at_str = NULL;
+ int offset = 0;
- if (netcon_extcid == -1) {
- at_str = malloc(32);
- assert(at_str);
- memset(at_str, 0x00, 32);
- sprintf(at_str, "\r\nERROR\r\n");
- } else {
- at_str = malloc(32 + sizeof(netcon_extcid) + sizeof(netcon_configname) + sizeof(netcon_value_char));
- assert(at_str);
- memset(at_str, 0, 32 + sizeof(netcon_extcid) + sizeof(netcon_configname) + sizeof(netcon_value_char));
- offset += sprintf(at_str + offset, "\r\n$MYNETCON: %d,\"%s\",", netcon_extcid, netcon_configname);
- if (0 == at_strncmp(netcon_configname, "APN", strlen("APN")) || 0 == at_strncmp(netcon_configname, "USERPWD", strlen("USERPWD"))) {
- offset += sprintf(at_str + offset, "\"%s\"\r\nOK\r\n", netcon_value_char);
- } else {
- offset += sprintf(at_str + offset, "%d\r\nOK\r\n", netcon_value_int);
- }
- }
+ if (netcon_extcid == -1)
+ {
+ at_str = malloc(32);
+ assert(at_str);
+ memset(at_str, 0x00, 32);
+ sprintf(at_str, "\r\nERROR\r\n");
+ }
+ else
+ {
+ at_str = malloc(32 + sizeof(netcon_extcid) + sizeof(netcon_configname) + sizeof(netcon_value_char));
+ assert(at_str);
+ memset(at_str, 0, 32 + sizeof(netcon_extcid) + sizeof(netcon_configname) + sizeof(netcon_value_char));
+ offset += sprintf(at_str + offset, "\r\n$MYNETCON: %d,\"%s\",", netcon_extcid, netcon_configname);
+ if (0 == at_strncmp(netcon_configname, "APN", strlen("APN"))
+ || 0 == at_strncmp(netcon_configname, "USERPWD", strlen("USERPWD")))
+ {
+ offset += sprintf(at_str + offset, "\"%s\"\r\nOK\r\n", netcon_value_char);
+ }
+ else
+ {
+ offset += sprintf(at_str + offset, "%d\r\nOK\r\n", netcon_value_int);
+ }
+ }
- *res_msg = at_str;
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ *res_msg = at_str;
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
int ext_gmr_query_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_GMR_QUERY_REQ, 0, NULL, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_GMR_QUERY_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_gmr_func(int at_fd, char * at_paras, void * *res_msg, int * res_msglen)
{
- *res_msg = at_ok_build();
- *res_msglen = strlen(*res_msg);
- return AT_END;
+ *res_msg = at_ok_build();
+ *res_msglen = strlen(*res_msg);
+ return AT_END;
}
int ext_mysysinfo_query_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYSYSINFO_QUERY_REQ, 0, NULL, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYSYSINFO_QUERY_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_mynetinfo_set_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYNETINFO_SET_REQ, strlen(at_paras), (unsigned char *)at_paras, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYNETINFO_SET_REQ, strlen(at_paras),
+ (unsigned char *)at_paras, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_mynetinfo_query_func(char *at_paras, void ** res_msg)
{
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYNETINFO_QUERY_REQ, 0, NULL, 0))
- softap_assert("");
- return AT_CONTINUE;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYNETINFO_QUERY_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ return AT_CONTINUE;
}
int ext_urcsysinfo_act_func(char *at_paras, void ** res_msg)
{
- int flag = 0;
- void *p[1] = {&flag};
- int ret = 0;
- ret = parse_param("%d", at_paras, p);
- if (ret != AT_PARSE_OK)
- return AT_END;
- if (1 == flag) {
- urcsysinfo = 1;
- *res_msg = at_ok_build();
- } else {
- *res_msg = at_err_build(0);
- }
- return AT_END;
+ int flag = 0;
+ void *p[1] = {&flag};
+ int ret = 0;
+ ret = parse_param("%d", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ return AT_END;
+ }
+ if (1 == flag)
+ {
+ urcsysinfo = 1;
+ *res_msg = at_ok_build();
+ }
+ else
+ {
+ *res_msg = at_err_build(0);
+ }
+ return AT_END;
}
int mode_inform_act(char *at_paras, int is_query_report)
{
- int mode = 0;
- void *p[1] = {&mode};
- int ret = 0;
- ret = parse_param("%d", at_paras, p);
- if (ret != AT_PARSE_OK)
- return AT_END;
- if ((mode != urcinfo.mode) && (urcsysinfo == 1)) {
- urcinfo.mode = mode;
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
- softap_assert("");
- }
- return AT_END;
+ int mode = 0;
+ void *p[1] = {&mode};
+ int ret = 0;
+ ret = parse_param("%d", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ return AT_END;
+ }
+ if ((mode != urcinfo.mode) && (urcsysinfo == 1))
+ {
+ urcinfo.mode = mode;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ }
+ return AT_END;
}
int net_state_transfer(int state)
{
- if ((state == 1) || (state == 5))
- return 1;
- else return 0;
+ if ((state == 1) || (state == 5))
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
}
int creg_inform_act(char *at_paras, int is_query_report)
{
- int state = 0;
- void *p[1] = {&state};
- int ret = 0;
- ret = parse_param("%d", at_paras, p);
- if (ret != AT_PARSE_OK)
- return AT_END;
- state = net_state_transfer(state);
- if ((state != urcinfo.creg) && (urcsysinfo == 1)) {
- urcinfo.creg = state;
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
- softap_assert("");
- }
- return AT_END;
+ int state = 0;
+ void *p[1] = {&state};
+ int ret = 0;
+ ret = parse_param("%d", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ return AT_END;
+ }
+ state = net_state_transfer(state);
+ if ((state != urcinfo.creg) && (urcsysinfo == 1))
+ {
+ urcinfo.creg = state;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ }
+ return AT_END;
}
int cgreg_inform_act(char *at_paras, int is_query_report)
{
- int state = 0;
- void *p[1] = {&state};
- int ret = 0;
- ret = parse_param("%d", at_paras, p);
- if (ret != AT_PARSE_OK)
- return AT_END;
- state = net_state_transfer(state);
- if ((state != urcinfo.cgreg) && (urcsysinfo == 1)) {
- urcinfo.cgreg = state;
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
- softap_assert("");
- }
- return AT_END;
+ int state = 0;
+ void *p[1] = {&state};
+ int ret = 0;
+ ret = parse_param("%d", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ return AT_END;
+ }
+ state = net_state_transfer(state);
+ if ((state != urcinfo.cgreg) && (urcsysinfo == 1))
+ {
+ urcinfo.cgreg = state;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ }
+ return AT_END;
}
int cereg_inform_act(char *at_paras, int is_query_report)
{
- int state = 0;
- void *p[1] = {&state};
- int ret = 0;
- ret = parse_param("%d", at_paras, p);
- if (ret != AT_PARSE_OK)
- return AT_END;
- state = net_state_transfer(state);
- if ((state != urcinfo.cereg) && (urcsysinfo == 1)) {
- urcinfo.cereg = state;
- if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
- softap_assert("");
- }
- return AT_END;
+ int state = 0;
+ void *p[1] = {&state};
+ int ret = 0;
+ ret = parse_param("%d", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ return AT_END;
+ }
+ state = net_state_transfer(state);
+ if ((state != urcinfo.cereg) && (urcsysinfo == 1))
+ {
+ urcinfo.cereg = state;
+ if (unix_send_proc(get_default_sockfd(), MODULE_ID_SOCKET_PROXY, MSG_CMD_MYURCSYSINFO_INFORM_REQ, 0, NULL, 0))
+ {
+ softap_assert("");
+ }
+ }
+ return AT_END;
}
int ext_time_set_func(char *at_paras, void ** res_msg)
-{
- char settime[32] = {0};
- void *p[] = {settime};
- int ret = 0;
- char *at_str = NULL;
- at_str = malloc(16);
- assert(at_str);
- memset(at_str,0,16);
- struct tm set_tm = {0};
- struct timeval time_tv = {0};
- struct timezone time_tz = {0, 0};
-
- ret = parse_param("%32s",at_paras, p);
- if(ret != AT_PARSE_OK)
- {
- sprintf(at_str,"\r\nERROR: 980\r\n");
- *res_msg = at_str;
- return AT_END;
- }
- sscanf(settime,"%2d/%2d/%2d,%2d:%2d:%2d",&set_tm.tm_year,
- &set_tm.tm_mon,&set_tm.tm_mday,&set_tm.tm_hour,&set_tm.tm_min,&set_tm.tm_sec);
- at_print(1,"ext_time_set_func: %2d/%2d/%2d,%2d:%2d:%2d\n",set_tm.tm_year,
- set_tm.tm_mon,set_tm.tm_mday,set_tm.tm_hour,set_tm.tm_min,set_tm.tm_sec);
+{
+ char settime[32] = {0};
+ void *p[] = {settime};
+ int ret = 0;
+ char *at_str = NULL;
+ at_str = malloc(16);
+ assert(at_str);
+ memset(at_str, 0, 16);
+ struct tm set_tm = {0};
+ struct timeval time_tv = {0};
+ struct timezone time_tz = {0, 0};
+
+ ret = parse_param("%32s", at_paras, p);
+ if (ret != AT_PARSE_OK)
+ {
+ sprintf(at_str, "\r\nERROR: 980\r\n");
+ *res_msg = at_str;
+ return AT_END;
+ }
+ sscanf(settime, "%2d/%2d/%2d,%2d:%2d:%2d", &set_tm.tm_year,
+ &set_tm.tm_mon, &set_tm.tm_mday, &set_tm.tm_hour, &set_tm.tm_min, &set_tm.tm_sec);
+ at_print(1, "ext_time_set_func: %2d/%2d/%2d,%2d:%2d:%2d\n", set_tm.tm_year,
+ set_tm.tm_mon, set_tm.tm_mday, set_tm.tm_hour, set_tm.tm_min, set_tm.tm_sec);
#if 1 // kw 3
- if(set_tm.tm_year < 0 || set_tm.tm_year > 5000)
+ if (set_tm.tm_year < 0 || set_tm.tm_year > 5000)
{
set_tm.tm_year = 1970;
}
- if(set_tm.tm_mon < 0 || set_tm.tm_mon > 13)
+ if (set_tm.tm_mon < 0 || set_tm.tm_mon > 13)
{
set_tm.tm_mon = 1;
}
#endif
- set_tm.tm_year = set_tm.tm_year + 100;
- set_tm.tm_mon = set_tm.tm_mon - 1;
+ set_tm.tm_year = set_tm.tm_year + 100;
+ set_tm.tm_mon = set_tm.tm_mon - 1;
- time_tv.tv_sec = mktime(&set_tm);
- if(time_tv.tv_sec < 0)// cov M
+ time_tv.tv_sec = mktime(&set_tm);
+ if (time_tv.tv_sec < 0) // cov M
{
time_tv.tv_sec = 0;
}
-
-// time_tv.tv_sec = time_tv.tv_sec; // cov M
- struct tm * new_time = gmtime(&time_tv.tv_sec);
- if(new_time)
- time_tz.tz_minuteswest = (mktime(new_time) - (time_tv.tv_sec)) / 60;
-
- if (0 != settimeofday(&time_tv,&time_tz))
- {
- at_print(AT_ERR,"zmmi_auto_act,set time of system wrong");
- sprintf(at_str,"\r\nERROR: 981\r\n");
- *res_msg = at_str;
- return AT_END;
- }
- rtc_set_time(MODULE_ID_AT_CTL);
- sprintf(at_str,"\r\nOK\r\n");
- *res_msg = at_str;
- return AT_END;
+
+ // time_tv.tv_sec = time_tv.tv_sec; // cov M
+ struct tm * new_time = gmtime(&time_tv.tv_sec);
+ if (new_time)
+ {
+ time_tz.tz_minuteswest = (mktime(new_time) - (time_tv.tv_sec)) / 60;
+ }
+
+ if (0 != settimeofday(&time_tv, &time_tz))
+ {
+ at_print(AT_ERR, "zmmi_auto_act,set time of system wrong");
+ sprintf(at_str, "\r\nERROR: 981\r\n");
+ *res_msg = at_str;
+ return AT_END;
+ }
+ rtc_set_time(MODULE_ID_AT_CTL);
+ sprintf(at_str, "\r\nOK\r\n");
+ *res_msg = at_str;
+ return AT_END;
}
int ext_time_query_func(char *at_paras, void ** res_msg)
-{
- struct tm *p;
- time_t timep;
- char buf[32] = {0};
- char *at_str = NULL;
- at_str = malloc(64);
- assert(at_str);
- memset(at_str,0,64);
- time(&timep);
- p = localtime(&timep);
- assert(p);
- snprintf(buf,32,"%02d/%02d/%02d,%02d:%02d:%02d",(1900 + p->tm_year)%100,1 + p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
- at_print(1,"ext_time_query_func: time: %s\n",buf);
- sprintf(at_str,"\r\n+CCLK: \"%s\"\r\nOK\r\n",buf);
- *res_msg = at_str;
- return AT_END;
+{
+ struct tm *p;
+ time_t timep;
+ char buf[32] = {0};
+ char *at_str = NULL;
+ at_str = malloc(64);
+ assert(at_str);
+ memset(at_str, 0, 64);
+ time(&timep);
+ p = localtime(&timep);
+ assert(p);
+ snprintf(buf, 32, "%02d/%02d/%02d,%02d:%02d:%02d", (1900 + p->tm_year) % 100, 1 + p->tm_mon, p->tm_mday, p->tm_hour,
+ p->tm_min, p->tm_sec);
+ at_print(1, "ext_time_query_func: time: %s\n", buf);
+ sprintf(at_str, "\r\n+CCLK: \"%s\"\r\nOK\r\n", buf);
+ *res_msg = at_str;
+ return AT_END;
}
+#ifdef USE_CAP_SUPPORT
+int ext_nitz_query_func(char *at_paras, void ** res_msg)
+{
+ struct tm *p = 0;
+ time_t timep;
+ char buf[32] = {0};
+ char time_zone[16] = {0};
+ char sav_time[16] = {0};
+ char nitz_valid[16] = {0};
+ char *at_str = NULL;
+
+ sc_cfg_get("nitz_time_zone", time_zone, sizeof(time_zone) - 1);
+ sc_cfg_get("nitz_sav_time", sav_time, sizeof(sav_time) - 1);
+
+ at_str = malloc(64);
+ assert(at_str);
+ memset(at_str, 0, 64);
+
+ sc_cfg_get("nitz_is_valid", nitz_valid, sizeof(nitz_valid) - 1);
+ if (1 != atoi(nitz_valid))
+ {
+ sprintf(at_str, "\r\n+ZNITZ: 0,0,\"\"\r\nOK\r\n");
+ *res_msg = at_str;
+ return AT_END;
+ }
+
+ time(&timep);
+ p = gmtime(&timep);
+ assert(p);
+ snprintf(buf, 32, "%02d/%02d/%02d,%02d:%02d:%02d", (1900 + p->tm_year) % 100, 1 + p->tm_mon, p->tm_mday, p->tm_hour,
+ p->tm_min, p->tm_sec);
+
+ at_print(1, "ext_nitz_query_func: time: %s\n", buf);
+
+ sprintf(at_str, "\r\n+ZNITZ: %s,%s,\"%s\"\r\nOK\r\n", time_zone, sav_time, buf);
+
+ *res_msg = at_str;
+
+ return AT_END;
+}
+#endif
+
int ext_user_modem_regist(void)
{
-//#ifdef GUODIAN
- if (g_customer_type == CUSTOMER_GUODIAN) {
- //PDP¼¤»î
- register_serv_func2("MYNETCON=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETCON_REQ, MSG_CMD_NETCON_RSP, ext_netcon_req, ext_netcon_rsp);
- register_serv_func2("MYNETACT=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETACT_REQ, MSG_CMD_NETACT_RSP, ext_netact_req, ext_netact_rsp);
- register_serv_func2("MYPOWEROFF", MODULE_ID_MAIN_CTRL, MSG_CMD_POWEROFF_REQUEST, MSG_CMD_POWEROFF_RSP, ext_poweroff_req, ext_poweroff_rsp);
+ //#ifdef GUODIAN
+ if (g_customer_type == CUSTOMER_GUODIAN)
+ {
+ //PDP¼¤»î
+ register_serv_func2("MYNETCON=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETCON_REQ, MSG_CMD_NETCON_RSP, ext_netcon_req,
+ ext_netcon_rsp);
+ register_serv_func2("MYNETACT=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETACT_REQ, MSG_CMD_NETACT_RSP, ext_netact_req,
+ ext_netact_rsp);
+ register_serv_func2("MYPOWEROFF", MODULE_ID_MAIN_CTRL, MSG_CMD_POWEROFF_REQUEST, MSG_CMD_POWEROFF_RSP, ext_poweroff_req,
+ ext_poweroff_rsp);
- register_serv_func2("MYGMR", 0, 0, 0, ext_gmr_act_func, NULL);
- register_serv_func2("MYCCID", 0, 0, 0, ext_ccid_act_func, NULL);
- register_serv_func2("ATI", 0, 0, 0, ext_i_act_func, NULL);
+ register_serv_func2("MYGMR", 0, 0, 0, ext_gmr_act_func, NULL);
+ register_serv_func2("MYCCID", 0, 0, 0, ext_ccid_act_func, NULL);
+ register_serv_func2("ATI", 0, 0, 0, ext_i_act_func, NULL);
- register_serv_func2("MYBCCH?", 0, 0, 0, ext_beeh_act_func, NULL);
- register_serv_func2("MYBCCH=?", 0, 0, 0, ext_beeh_act_func, NULL);
- register_serv_func2("MYBCCH=", 0, 0, 0, ext_beeh_act_func, NULL);
+ register_serv_func2("MYBCCH?", 0, 0, 0, ext_beeh_act_func, NULL);
+ register_serv_func2("MYBCCH=?", 0, 0, 0, ext_beeh_act_func, NULL);
+ register_serv_func2("MYBCCH=", 0, 0, 0, ext_beeh_act_func, NULL);
- register_serv_func("MYBAND=", MODULE_ID_SOCKET_PROXY, ext_myband_set_func);
- register_serv_func("MYBAND?", MODULE_ID_SOCKET_PROXY, ext_myband_query_func);
+ register_serv_func("MYBAND=", MODULE_ID_SOCKET_PROXY, ext_myband_set_func);
+ register_serv_func("MYBAND?", MODULE_ID_SOCKET_PROXY, ext_myband_query_func);
- register_serv_func2("MYNETCON?", 0, 0, 0, ext_netcon_query_func, NULL);
+ register_serv_func2("MYNETCON?", 0, 0, 0, ext_netcon_query_func, NULL);
- register_serv_func("GMR", MODULE_ID_SOCKET_PROXY, ext_gmr_query_func);
- register_serv_func2("GMR=?", 0, 0, 0, ext_gmr_func, NULL);
- } else if (g_customer_type == CUSTOMER_NANDIAN) {
- register_serv_func2("MYPOWEROFF", MODULE_ID_MAIN_CTRL, MSG_CMD_POWEROFF_REQUEST, MSG_CMD_POWEROFF_RSP, ext_poweroff_req, ext_poweroff_rsp);
- register_serv_func2("MYNETCON=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETCON_REQ, MSG_CMD_NETCON_RSP, ext_netcon_req, ext_netcon_rsp);
- register_serv_func2("MYNETCON?", 0, 0, 0, ext_netcon_query_func, NULL);
- register_serv_func2("MYNETACT=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETACT_REQ, MSG_CMD_NETACT_RSP, ext_netact_req, ext_netact_rsp);
+ register_serv_func("GMR", MODULE_ID_SOCKET_PROXY, ext_gmr_query_func);
+ register_serv_func2("GMR=?", 0, 0, 0, ext_gmr_func, NULL);
+ }
+ else if (g_customer_type == CUSTOMER_NANDIAN)
+ {
+ register_serv_func2("MYPOWEROFF", MODULE_ID_MAIN_CTRL, MSG_CMD_POWEROFF_REQUEST, MSG_CMD_POWEROFF_RSP, ext_poweroff_req,
+ ext_poweroff_rsp);
+ register_serv_func2("MYNETCON=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETCON_REQ, MSG_CMD_NETCON_RSP, ext_netcon_req,
+ ext_netcon_rsp);
+ register_serv_func2("MYNETCON?", 0, 0, 0, ext_netcon_query_func, NULL);
+ register_serv_func2("MYNETACT=", MODULE_ID_SOCKET_PROXY, MSG_CMD_NETACT_REQ, MSG_CMD_NETACT_RSP, ext_netact_req,
+ ext_netact_rsp);
- register_serv_func2("MYGMR", 0, 0, 0, ext_gmr_act_func, NULL);
- register_serv_func2("MYCCID", 0, 0, 0, ext_ccid_act_func, NULL);
+ register_serv_func2("MYGMR", 0, 0, 0, ext_gmr_act_func, NULL);
+ register_serv_func2("MYCCID", 0, 0, 0, ext_ccid_act_func, NULL);
- register_serv_func2("ATI", 0, 0, 0, ext_i_act_func, NULL);
- register_serv_func("GMR", MODULE_ID_SOCKET_PROXY, ext_gmr_query_func);
- register_serv_func2("GMR=?", 0, 0, 0, ext_gmr_func, NULL);
+ register_serv_func2("ATI", 0, 0, 0, ext_i_act_func, NULL);
+ register_serv_func("GMR", MODULE_ID_SOCKET_PROXY, ext_gmr_query_func);
+ register_serv_func2("GMR=?", 0, 0, 0, ext_gmr_func, NULL);
- register_serv_func("MYURCSYSINFO=", 0, ext_urcsysinfo_act_func);
- register_serv_func("MYSYSINFO", MODULE_ID_SOCKET_PROXY, ext_mysysinfo_query_func);
- register_serv_func("MYNETINFO=", MODULE_ID_SOCKET_PROXY, ext_mynetinfo_set_func);
- register_serv_func("MYNETINFO?", MODULE_ID_SOCKET_PROXY, ext_mynetinfo_query_func);
+ register_serv_func("MYURCSYSINFO=", 0, ext_urcsysinfo_act_func);
+ register_serv_func("MYSYSINFO", MODULE_ID_SOCKET_PROXY, ext_mysysinfo_query_func);
+ register_serv_func("MYNETINFO=", MODULE_ID_SOCKET_PROXY, ext_mynetinfo_set_func);
+ register_serv_func("MYNETINFO?", MODULE_ID_SOCKET_PROXY, ext_mynetinfo_query_func);
- register_inform_func("CEREG", cereg_inform_act);
- register_inform_func("CGREG", cgreg_inform_act);
- register_inform_func("CREG", creg_inform_act);
- register_inform_func("MODE", mode_inform_act);
- }
- register_serv_func("CCLK=",0,ext_time_set_func);
- register_serv_func("CCLK?",0,ext_time_query_func);
- return 0;
+ register_inform_func("CEREG", cereg_inform_act);
+ register_inform_func("CGREG", cgreg_inform_act);
+ register_inform_func("CREG", creg_inform_act);
+ register_inform_func("MODE", mode_inform_act);
+ }
+ register_serv_func("CCLK=", 0, ext_time_set_func);
+ register_serv_func("CCLK?", 0, ext_time_query_func);
+
+#ifdef USE_CAP_SUPPORT
+ register_serv_func("ZNITZ?", 0, ext_nitz_query_func);
+#endif
+ return 0;
}
#endif