更新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));