更新LYNQ接口输出格式,优化test部分的代码问题,sms模块添加一个del list接口

Change-Id: Ibb65ec80abe2e8995b6166d60acdd7098566ee4b
diff --git a/mbtk/include/lynq/lynq_qser_sms.h b/mbtk/include/lynq/lynq_qser_sms.h
index 7276fca..b8f2c03 100755
--- a/mbtk/include/lynq/lynq_qser_sms.h
+++ b/mbtk/include/lynq/lynq_qser_sms.h
@@ -192,7 +192,11 @@
 int qser_sms_client_deinit(sms_client_handle_type h_sms);
      
 /* Delete the SMS specified in the  pt_sms_storage */
-int qser_sms_deletefromstorage(sms_client_handle_type  h_sms, QSER_sms_storage_info_t  *pt_sms_storage);
+int qser_sms_deletefromstorage(sms_client_handle_type         h_sms, QSER_sms_storage_info_t *pt_sms_storage);
+
+/* List the SMS sequence numbers specified in pt_sms_storage for deletion
+*/
+int qser_sms_deletefromstoragelist( sms_client_handle_type h_sms, char* del_list);
 
 /* Send sms PDU.
 */
diff --git a/mbtk/lynq_lib/src/lynq_sms.c b/mbtk/lynq_lib/src/lynq_sms.c
index 37cc6a1..0fbed26 100755
--- a/mbtk/lynq_lib/src/lynq_sms.c
+++ b/mbtk/lynq_lib/src/lynq_sms.c
@@ -79,13 +79,13 @@
         sms_info_handle = mbtk_info_handle_get();
         if(sms_info_handle)
         {
-            printf("creat sms_info_handle is success\n");
+            LOGI("creat sms_info_handle is success");
             *ph_sms = sms_info_handle->client_fd;
             g_sms_val = sms_info_handle->client_fd;
         }
         else
         {
-            printf("creat sms_info_handle is fail\n");
+            LOGE("creat sms_info_handle is fail");
             return -1;
         }
     }
@@ -98,19 +98,18 @@
     //UNUSED(h_sms);
     if (h_sms != g_sms_val || g_sms_val == -1)
     {
-        printf("handle NULL\n");
+        LOGE("handle NULL\n");
         return -1;
     }
 
-
     if(sms_info_handle)
     {
         mbtk_info_handle_free(&sms_info_handle);
-        printf("deinit sms_info_handle is succuess\n");
+        LOGI("deinit sms_info_handle is succuess");
     }
     else
     {
-        printf("deinit sms_info_handle is fail\n");
+        LOGE("deinit sms_info_handle is fail");
         return -1;
     }
 
@@ -123,20 +122,19 @@
     //UNUSED(pt_sms_info);
     if (h_sms != g_sms_val || g_sms_val == -1)
     {
-        printf("handle NULL\n");
+        LOGE("handle NULL");
         return -1;
     }
 
-
     if (pt_sms_info == NULL)
     {
-        printf("QSER_sms_info_t NULL\n");
+        LOGE("QSER_sms_info_t NULL");
         return -1;
     }
 
     if(sms_info_handle == NULL)
     {
-        printf("qser_sms_send_sms sms_info_handle NULL\n");
+        LOGE("qser_sms_send_sms sms_info_handle NULL");
         return -1;
     }
 
@@ -169,43 +167,42 @@
 
     if (pt_sms_info->storage == 0)
     {
-        strncpy(mem, "SM", 2);
+        strcpy(mem, "SM");
     }
     else if (pt_sms_info->storage == 1)
     {
-        strncpy(mem, "ME", 2);
+        strcpy(mem, "ME");
     }
     else
     {
-        printf("qser_sms_deletefromstorage storage is no Support \n");
+        LOGE("qser_sms_deletefromstorage storage is no Support");
         return -1;
     }
 
     memset(resp, 0, sizeof(resp));
     err = mbtk_sms_cpms_set(sms_info_handle, mem, resp);
     if(err) {
-        printf("Error : %d\n", err);
+        LOGE("Error : %d", err);
     } else {
-        printf("cpms set success. resp:%s\n", resp);
+        LOGI("cpms set success. resp:%s", resp);
     }
 
     if(data == NULL)
     {
-        printf("qser_sms_send_sms data NULL\n");
+        LOGE("qser_sms_send_sms data NULL");
         return -1;
     }
 
     if(phone_num == NULL)
     {
-        printf("qser_sms_send_sms phone_num NULL\n");
+        LOGE("qser_sms_send_sms phone_num NULL");
         return -1;
     }
 
-
     if(strlen(data) > 512 || strlen(data) == 0 || strlen(phone_num) == 0)
     {
-        printf("strlen(telephony_num):%d\n", strlen(phone_num));
-        printf("strlen(msg):%d\n", strlen(data));
+        LOGE("strlen(telephony_num):%d", strlen(phone_num));
+        LOGE("strlen(msg):%d", strlen(data));
         return -1;
     }
 
@@ -228,20 +225,20 @@
 
         for (i = 0; i < pdus->count; i++)
         {
-             printf("第 %d 条:\n", i + 1);
-             printf("%s\n", pdus->PDU[i]);
+             LOGI("第 %d 条:", i + 1);
+             LOGI("%s\n", pdus->PDU[i]);
              pdu = pdus->PDU[i];
         }
 
         sprintf(p, "%s",smsc);
-        printf("pdu_data:%s\n", pdu_data);
+        LOGI("pdu_data:%s", pdu_data);
         sprintf(p+strlen(p), "%s", pdu);
-        printf("pdu_data:%s\n",pdu_data);
+        LOGI("pdu_data:%s",pdu_data);
 
         //sprintf(cmgs,"%d,%s",strlen(pdu_data), pdu_data);
         int t = strlen(pdu_data);
         sprintf(cmgs,"%d,%s",(t-18)/2, pdu_data);
-        printf("cmgs:%s\n", cmgs);
+        LOGI("cmgs:%s", cmgs);
 #else
         char *tmp_t = "0891683108200805F011000D91688189914026F3000800044F60597D";
         sprintf(cmgs,"%d,%s",19,tmp_t);
@@ -253,22 +250,22 @@
         err = mbtk_sms_cmgf_set(sms_info_handle, mode);
         if(err)
         {
-           printf("cmgf set error : %d\n", err);
+           LOGE("cmgf set error : %d", err);
         }
         else
         {
-           printf("cmgf set success\n");
+           LOGI("cmgf set success");
         }
 
         err = mbtk_sms_cmgs_set(sms_info_handle, cmgs, resp);
         if(err)
         {
-            printf("Error : %d\n", err);
+            LOGE("Error : %d", err);
             return -1;
         }
         else
         {
-            printf("cmgs set success . resp:%s\n", resp);
+            LOGI("cmgs set success . resp:%s", resp);
         }
     }
     else if (mode == 1)   // text
@@ -276,32 +273,32 @@
         err = mbtk_sms_cmgf_set(sms_info_handle, mode);
         if(err)
         {
-           printf("cmgf set error : %d\n", err);
+           LOGE("cmgf set error : %d", err);
         }
         else
         {
-           printf("cmgf set success\n");
+           LOGI("cmgf set success");
         }
 
         sprintf(cmgs,"%s,%s", phone_num, data);
-        printf("cmgs:%s\n", cmgs);
+        LOGI("cmgs:%s", cmgs);
 
         memset(resp, 0, sizeof(resp));
 
         err = mbtk_sms_cmgs_set(sms_info_handle, cmgs, resp);
         if(err)
         {
-            printf("Error : %d\n", err);
+            LOGE("Error : %d", err);
             return -1;
         }
         else
         {
-            printf("cmgs set success . resp:%s\n", resp);
+            LOGI("cmgs set success . resp:%s", resp);
         }
     }
     else
     {
-        printf("Error : mode\n");
+        LOGE("Error : mode");
         return -1;
     }
 
@@ -316,14 +313,14 @@
 
     if(sms_info_handle == NULL)
     {
-        printf("qser_sms_addrxmsghandler sms_info_handle NULL\n");
+        LOGE("qser_sms_addrxmsghandler sms_info_handle NULL");
         return -1;
     }
 
     int err = mbtk_sms_cnmi_set(sms_info_handle);
     if(err)
     {
-        printf("set cnmi fail\n");
+        LOGE("set cnmi fail");
         return -1;
     }
 
@@ -349,20 +346,19 @@
 
     if (h_sms != g_sms_val || g_sms_val == -1)
     {
-        printf("handle NULL\n");
+        LOGE("handle NULL");
         return -1;
     }
 
-
     if(pt_sms_storage == NULL)
     {
-        printf("qser_sms_deletefromstorage pt_sms_storage NULL\n");
+        LOGE("qser_sms_deletefromstorage pt_sms_storage NULL");
         return -1;
     }
 
     if(sms_info_handle == NULL)
     {
-        printf("qser_sms_deletefromstorage sms_info_handle NULL\n");
+        LOGE("qser_sms_deletefromstorage sms_info_handle NULL");
         return -1;
     }
 
@@ -378,16 +374,16 @@
     }
     else
     {
-        printf("qser_sms_deletefromstorage storage is no Support \n");
+        LOGE("qser_sms_deletefromstorage storage is no Support");
         return -1;
     }
 
     memset(resp, 0, sizeof(resp));
     err = mbtk_sms_cpms_set(sms_info_handle, mem, resp);
     if(err) {
-        printf("Error : %d\n", err);
+        LOGE("Error : %d", err);
     } else {
-        printf("cpms set success. resp:%s\n", resp);
+        LOGI("cpms set success. resp:%s", resp);
     }
 
     id_x = pt_sms_storage->storage_idx;//获取idx的值
@@ -401,17 +397,17 @@
         sprintf(cmgd,"%d",id_x);
     }
 
-    printf("cmgd:%s\n", cmgd);
+    LOGI("cmgd:%s", cmgd);
 
     err = mbtk_sms_cmgd_set(sms_info_handle, cmgd);
     if(err)
     {
-        printf("qser_sms_deletefromstorage Error : %d\n", err);
+        LOGE("qser_sms_deletefromstorage Error : %d", err);
         return -1;
     }
     else
     {
-        printf("qser_sms_deletefromstorage set success\n");
+        LOGI("qser_sms_deletefromstorage set success");
     }
 
     return 0;
@@ -428,51 +424,49 @@
 
     if (h_sms != g_sms_val || g_sms_val == -1)
     {
-        printf("handle NULL\n");
+        LOGE("handle NULL");
         return -1;
     }
 
-
     if (set_sca_cfg == NULL)
     {
-        printf("QSER_sms_service_center_cfg_t NULL\n");
+        LOGE("QSER_sms_service_center_cfg_t NULL");
         return -1;
     }
 
-
     if(sms_info_handle == NULL)
     {
-        printf("qser_sms_getsmscenteraddress sms_info_handle NULL\n");
+        LOGE("qser_sms_getsmscenteraddress sms_info_handle NULL");
         return -1;
     }
 
     int err = mbtk_sms_csca_get(sms_info_handle, sms_center_addree);
     if(sms_center_addree[0] == '\0')
     {
-        printf("qser_sms_getsmscenteraddress Error : %d\n", err);
+        LOGE("qser_sms_getsmscenteraddress Error : %d", err);
         return -1;
     }
     else
     {
-        p1 = strchr(sms_center_addree, '\"'); // 查找第一个双引号
-        p2 = strrchr(sms_center_addree, '\"'); // 查找最后一个双引号
-        if (p1 && p2 && p2 > p1) // 如果找到了两个双引号
+        p1 = strchr(sms_center_addree, '\"');
+        p2 = strrchr(sms_center_addree, '\"');
+        if (p1 && p2 && p2 > p1)
         {
-            len_t = p2 - p1 - 1; // 计算双引号内的字符串长度
-            char substr_t[len_t + 1]; // 定义一个新的字符串
-            strncpy(substr_t, p1 + 1, len_t); // 复制双引号内的字符串到新的字符串中
-            substr_t[len_t] = '\0'; // 在新的字符串末尾添加结束符
-            //printf("双引号内的字符串为:%s\n", substr_t); // 输出结果
+            len_t = p2 - p1 - 1;
+            char substr_t[len_t + 1];
+            strncpy(substr_t, p1 + 1, len_t);
+            substr_t[len_t] = '\0';
+
             substr = substr_t;
             
             memcpy(set_sca_cfg->service_center_addr, substr, strlen(substr));
             memcpy(sms_center_address, substr, strlen(substr));
 
-            printf("qser_sms_getsmscenteraddress success\n");
+            LOGI("qser_sms_getsmscenteraddress success");
         }
         else
         {
-            printf("未找到双引号内的字符串\n"); // 输出结果
+            LOGE("String inside double quotes not found");
             return -1;
         }
     }
@@ -489,20 +483,19 @@
 
     if (h_sms != g_sms_val || g_sms_val == -1)
     {
-        printf("handle NULL\n");
+        LOGE("handle NULL");
         return -1;
     }
 
-
     if(sms_info_handle == NULL)
     {
-        printf("qser_sms_setsmscenteraddress sms_info_handle NULL\n");
+        LOGE("qser_sms_setsmscenteraddress sms_info_handle NULL");
         return -1;
     }
 
     if(get_sca_cfg == NULL)
     {
-        printf("qser_sms_setsmscenteraddress get_sca_cfg NULL\n");
+        LOGE("qser_sms_setsmscenteraddress get_sca_cfg NULL");
         return -1;
     }
 
@@ -514,14 +507,14 @@
 
     if (destNum == NULL)
     {
-        printf("qser_sms_setsmscenteraddress destNum NULL\n");
+        LOGE("qser_sms_setsmscenteraddress destNum NULL");
         return -1;
     }
 
     int err = mbtk_sms_csca_set(sms_info_handle, destNum);
     if(err)
     {
-        printf("Error : %d\n", err);
+        LOGE("Error : %d", err);
         return -1;
     }
     else
@@ -529,7 +522,36 @@
     //    memset(sms_center_address, 0, sizeof(sms_center_address));
     //    memcpy(sms_center_address, destNum, strlen(destNum));
         //printf("destNum:%s\n", destNum);
-        printf("qser_sms_setsmscenteraddress success\n");
+        LOGI("qser_sms_setsmscenteraddress success");
+    }
+
+    return 0;
+}
+
+
+//显示删除列表
+int qser_sms_deletefromstoragelist( sms_client_handle_type h_sms, char* del_list)//in out
+{
+    //UNUSED(h_sms);
+    //UNUSED(get_sca_cfg);
+
+    if (h_sms != g_sms_val || g_sms_val == -1)
+    {
+        LOGE("handle NULL");
+        return -1;
+    }
+
+    if(sms_info_handle == NULL)
+    {
+        LOGE("qser_sms_deletefromstoragelist sms_info_handle NULL");
+        return -1;
+    }
+
+    int err = mbtk_sms_cmgd_get(sms_info_handle, del_list);
+    if(err > 0  && err != 300)//MBTK_INFO_ERR_SUCCESS
+    {
+        LOGE("Error : %d", err);
+        return -1;
     }
 
     return 0;
diff --git a/mbtk/lynq_lib/src/lynq_voice_call.c b/mbtk/lynq_lib/src/lynq_voice_call.c
index 96e6f63..5b6bfb1 100755
--- a/mbtk/lynq_lib/src/lynq_voice_call.c
+++ b/mbtk/lynq_lib/src/lynq_voice_call.c
Binary files differ
diff --git a/mbtk/mbtk_lib/src/mbtk_info_api.c b/mbtk/mbtk_lib/src/mbtk_info_api.c
index 05b803a..ef7ee1c 100755
--- a/mbtk/mbtk_lib/src/mbtk_info_api.c
+++ b/mbtk/mbtk_lib/src/mbtk_info_api.c
@@ -1663,6 +1663,19 @@
 }
 
 /*
+* Get sms cmgd.
+*
+* +CMGD: (XXX,XXX)(0-4)
+*
+* Restarting takes effect after execution.
+*/
+int mbtk_sms_cmgd_get(mbtk_info_handle_t* handle, char * cmdg)
+{
+    return info_item_process(handle, MBTK_INFO_ID_SMS_CMGD_REQ, NULL, 0, cmdg) ? handle->info_err : 0;
+}
+
+
+/*
 * Set sms cmgl.
 *
 * AT+CMGL[=<stat>]
diff --git a/mbtk/mbtk_ril/src/mbtk_sms.c b/mbtk/mbtk_ril/src/mbtk_sms.c
index 5235a18..110fbc9 100755
--- a/mbtk/mbtk_ril/src/mbtk_sms.c
+++ b/mbtk/mbtk_ril/src/mbtk_sms.c
@@ -355,6 +355,50 @@
 }
 
 /*
+AT+CMGD=?
+
++CMGD: (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37),(0-4)
+
+OK
+
+*/
+static int req_cmgd_get(char *reg, int *cme_err)
+{
+    ATResponse *response = NULL;
+    char *tmp_ptr = NULL;
+    int err = at_send_command_singleline("AT+CMGD=?", "+CMGD:", &response);
+
+    if (err < 0 || response->success == 0 || !response->p_intermediates){
+        *cme_err = at_get_cme_error(response);
+        goto exit;
+    }
+
+    char *line = response->p_intermediates->line;
+
+    const char* start = strchr(line, '(');
+    const char* end = strchr(line, ')');
+
+    if (start && end && end > start)
+    {
+        int len_t = end - start - 1;
+        char substr_t[len_t + 1];
+
+        strncpy(substr_t, start + 1, len_t);
+        substr_t[len_t] = '\0';
+        strncpy(reg, substr_t, len_t);
+    }
+    else
+    {
+        strcpy(reg, "");
+    }
+
+exit:
+    at_response_free(response);
+    return err;
+}
+
+
+/*
 AT+CMGL="ALL"	
 
 +CMGL: 1,"REC READ","10658678",,"22.11.14 10:41:44 GMT+8"
@@ -1019,8 +1063,21 @@
         {
             if(pack->data_len == 0 || pack->data == NULL)   // Get VoLTE state.
             {
-                printf("pack->data_len:%d,,pack->data:%s\n",pack->data_len, pack->data);
-                err = MBTK_INFO_ERR_UNSUPPORTED;
+                char reg[1024] = {0};
+                if(req_cmgd_get(reg, &cme_err) || cme_err != MBTK_INFO_ERR_CME_NON)
+                {
+                    if(cme_err != MBTK_INFO_ERR_CME_NON) {
+                        err = MBTK_INFO_ERR_CME + cme_err;
+                    } else {
+                        err = MBTK_INFO_ERR_UNKNOWN;
+                    }
+                    LOG("Get SMS CMGD fail.");
+                }
+                else
+                {
+                    LOG("req_cmgd_get success, reg:%s, len:%d ", reg, strlen(reg));
+                    pack_rsp_send(cli_info->fd, MBTK_INFO_ID_SMS_CMGD_RSP, reg, strlen(reg));
+                }
             }
             else     // Set VoLTE state.
             {
diff --git a/mbtk/test/asr1806/lynq_call_test.c b/mbtk/test/asr1806/lynq_call_test.c
index 7885848..9bb9572 100755
--- a/mbtk/test/asr1806/lynq_call_test.c
+++ b/mbtk/test/asr1806/lynq_call_test.c
@@ -298,7 +298,8 @@
     int opt;
     int lv_voll = 0;
     voice_client_handle_type handle = -1;
-    int  voice_call_id = 1;
+    int  voice_call_id = 0;
+    mbtk_log_init("radio", "CALL_TEST");
 
     while(1)
     {
@@ -313,7 +314,7 @@
             "\t7 call set volume level 0-5\n"
             "\t8 call get volume\n"
             "\t9 call deinit\n"
-            "operator: >> ");
+            "operator: >> \n");
 
         fgets(operator, sizeof(operator), stdin);
         fflush(stdin);
@@ -328,10 +329,8 @@
             printf("test>>: handle = %d\n",handle);
             break;
         case 2:
-            {
             qser_voice_call_addstatehandler(handle, yk_voice_call_cb_func, &voice_call_id);
             break;
-            }
         case 3:
             qser_voice_call_start(handle, E_QSER_VCALL_EXTERNAL_SLOT_1, "18981904623", &voice_call_id);//被叫电话
             break;
@@ -346,24 +345,22 @@
             break;
         case 7:
             {
-            printf("Pleas set volume level(0-5)>>>>\n");
-            memset(operator, 0x00, sizeof(operator));
-            fgets(operator, sizeof(operator), stdin);
-            fflush(stdin);
-            //def level 3
-            lv_voll = atoi(operator);
-            if (lv_voll >= 0 && lv_voll <= 5)
-                qser_voice_set_speech_volume(lv_voll);
-            else
-                printf("set volume level(0-5) ERR\n");
-            break;
+                printf("Pleas set volume level(0-5)>>>>\n");
+                memset(operator, 0x00, sizeof(operator));
+                fgets(operator, sizeof(operator), stdin);
+                fflush(stdin);
+                //def level 3
+                lv_voll = atoi(operator);
+                if (lv_voll >= 0 && lv_voll <= 5)
+                    qser_voice_set_speech_volume(lv_voll);
+                else
+                    printf("set volume level(0-5) ERR\n");
             }
+            break;
         case 8:
-            {
             qser_voice_get_speech_volume(&lv_voll);
             printf("volume level = %d\n",lv_voll);
             break;
-            }
         case 9:
             qser_voice_call_client_deinit(handle);
             break;
diff --git a/mbtk/test/asr1806/lynq_qser_sms_test.c b/mbtk/test/asr1806/lynq_qser_sms_test.c
index 358464c..e6f56a1 100755
--- a/mbtk/test/asr1806/lynq_qser_sms_test.c
+++ b/mbtk/test/asr1806/lynq_qser_sms_test.c
@@ -272,6 +272,7 @@
     QSER_sms_info_t test_sms_info;

     QSER_sms_service_center_cfg_t test_sca_cfg;

     QSER_sms_storage_info_t test_sms_storage;

+    mbtk_log_init("radio", "SMS_TEST");

 

     while(1)

     {

@@ -281,12 +282,12 @@
             "\t2 send text sms\n"

             "\t3 wait receive new sms\n"

             "\t4 send PDU sms\n"

-            "\t5 //list sms\n"

+            "\t5 delete sms list\n"

             "\t6 delete sms\n"

             "\t7 query service number\n"

             "\t8 set service number\n"

             "\t9 deinit sms\n"

-            "operator: >> ");

+            "operator: >> \n");

         fgets(operator, sizeof(operator), stdin);

         fflush(stdin);

         opt = atoi(operator);

@@ -304,10 +305,8 @@
                 }else{

                     printf("qser_sim_client_init error\n");

                 }

-                sleep(2);

-                //printf("test>>: handle = %d\n",handle);

-                break;

             }

+            break;

         case 2:

             {

                 memset(&test_sms_info, 0x00, sizeof(QSER_sms_info_t));

@@ -321,8 +320,8 @@
                 memcpy(test_sms_info.sms_data, tmp, len);

                 memcpy(test_sms_info.src_addr, num, num_len);

                 qser_sms_send_sms(handle, &test_sms_info);

-                break;

             }

+            break;

         case 3:

             qser_sms_addrxmsghandler(qser_sms_handler, NULL);

             break;

@@ -345,16 +344,15 @@
             break;

         case 5:

             {

-                printf("No such interface \n");

-                /*

-                memset(operator, 0x00, sizeof(operator));

-                printf("please input index (0~50): \n");

-                fgets(operator, sizeof(operator), stdin);

-                fflush(stdin);

-                opt = atoi(operator);

-                */

-                break;

+                char list_del[1024] = {0};

+

+                qser_sms_deletefromstoragelist(handle, list_del);

+                if (strcmp(list_del, "") == 0)

+                    printf("list_del = NULL\n");

+                else

+                    printf("list_del = [%s]\n",list_del);

             }

+            break;

         case 6:

             {

                 memset(&test_sms_storage, 0x00, sizeof(QSER_sms_storage_info_t));