优化LYNQ_CALL添加音量控制和优化LYNQ_SMS添加存储器位置的判断上库LYNQ_NW接口以及添加对应测试demo

Change-Id: Ic19a55f139d6fbf194dffc7ec878a51d1abf656c
diff --git a/mbtk/test/asr1806/lynq_call_test.c b/mbtk/test/asr1806/lynq_call_test.c
index 00fe145..7885848 100755
--- a/mbtk/test/asr1806/lynq_call_test.c
+++ b/mbtk/test/asr1806/lynq_call_test.c
@@ -360,7 +360,7 @@
             }
         case 8:
             {
-            qser_voice_set_speech_volume(&lv_voll);
+            qser_voice_get_speech_volume(&lv_voll);
             printf("volume level = %d\n",lv_voll);
             break;
             }
diff --git a/mbtk/test/asr1806/lynq_nw_test.c b/mbtk/test/asr1806/lynq_nw_test.c
new file mode 100755
index 0000000..62c231d
--- /dev/null
+++ b/mbtk/test/asr1806/lynq_nw_test.c
@@ -0,0 +1,389 @@
+#include "lynq_qser_network.h"
+#include "mbtk_type.h"
+#include "mbtk_info_api.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+char *tech_domain[] = {"NONE", "3GPP", "3GPP2"};
+char *radio_tech[] = {"unknown", 
+    "TD_SCDMA", "GSM",      "HSPAP",    "LTE",      "EHRPD",    "EVDO_B", 
+    "HSPA",     "HSUPA",    "HSDPA",    "EVDO_A",   "EVDO_0",   "1xRTT", 
+    "IS95B",    "IS95A",    "UMTS",     "EDGE",     "GPRS",     "NONE"};
+
+void nw_event_ind_handler (
+    nw_client_handle_type h_nw, 
+    u_int32_t ind_flag, 
+    void                  *ind_msg_buf, 
+    u_int32_t              ind_msg_len, 
+    void                  *contextPtr)
+{
+    switch(ind_flag) {
+        case NW_IND_VOICE_REG_EVENT_IND_FLAG:
+            {
+                printf(">>>>>NW_IND_VOICE_REG_EVENT_IND_FLAG!!! \n");
+                QSER_NW_VOICE_REG_EVENT_IND_T *ind = (QSER_NW_VOICE_REG_EVENT_IND_T*)ind_msg_buf;
+                printf("Recv event indication : VOICE REG EVENT\n");
+                
+                if(ind==NULL)
+                {
+                     printf("ind is NULL\n");
+                     break;
+                }
+                /*
+                if(ind->registration_valid)
+                {
+                    printf("voice_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n", 
+                            ind->registration.tech_domain, 
+                            ind->registration.radio_tech,
+                            ind->registration.roaming,
+                            ind->registration.registration_state);
+                }
+                */
+                if(ind->registration_details_3gpp_valid)
+                {
+                    printf("voice_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n", 
+                            ind->registration_details_3gpp.tech_domain, 
+                            ind->registration_details_3gpp.radio_tech,
+                            ind->registration_details_3gpp.mcc,
+                            ind->registration_details_3gpp.mnc,
+                            ind->registration_details_3gpp.roaming,
+                            ind->registration_details_3gpp.forbidden,                    
+                            ind->registration_details_3gpp.cid,
+                            ind->registration_details_3gpp.lac,
+                            ind->registration_details_3gpp.psc,
+                            ind->registration_details_3gpp.tac);
+                }
+                /*
+                if(ind->registration_details_3gpp2_valid)
+                {
+                    printf("voice_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, sid=%d, nid=%d, bsid=%d\n", 
+                            ind->registration_details_3gpp2.tech_domain, 
+                            ind->registration_details_3gpp2.radio_tech,
+                            ind->registration_details_3gpp2.mcc,
+                            ind->registration_details_3gpp2.mnc,
+                            ind->registration_details_3gpp2.roaming,
+                            ind->registration_details_3gpp2.forbidden,                    
+                            ind->registration_details_3gpp2.sid,
+                            ind->registration_details_3gpp2.nid,
+                            ind->registration_details_3gpp2.bsid);
+                }
+                */
+                break;
+            }
+        case NW_IND_DATA_REG_EVENT_IND_FLAG:
+            {
+                printf(">>>>>NW_IND_DATA_REG_EVENT_IND_FLAG!!! \n");
+                QSER_NW_DATA_REG_EVENT_IND_T *ind = (QSER_NW_DATA_REG_EVENT_IND_T*)ind_msg_buf;
+
+                printf("Recv event indication : DATA REG EVENT\n");
+                
+                if(ind==NULL)
+                {
+                     printf("ind is NULL\n");
+                     break;
+                }
+                /*
+                if(ind->registration_valid)
+                {
+                    printf("data_registration: \ntech_domain=%s, radio_tech=%s, roaming=%d, registration_state=%d\n", 
+                            ind->registration.tech_domain, 
+                            ind->registration.radio_tech,
+                            ind->registration.roaming,
+                            ind->registration.registration_state);
+                }
+                */
+                if(ind->registration_details_3gpp_valid)
+                {
+                    printf("data_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n", 
+                            ind->registration_details_3gpp.tech_domain, 
+                            ind->registration_details_3gpp.radio_tech,
+                            ind->registration_details_3gpp.mcc,
+                            ind->registration_details_3gpp.mnc,
+                            ind->registration_details_3gpp.roaming,
+                            ind->registration_details_3gpp.forbidden,                    
+                            ind->registration_details_3gpp.cid,
+                            ind->registration_details_3gpp.lac,
+                            ind->registration_details_3gpp.psc,
+                            ind->registration_details_3gpp.tac);
+                }
+                /*
+                if(ind->registration_details_3gpp2_valid)
+                {
+                    printf("data_registration_details_3gpp2: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, prl=%d, css=%d, sid=%d, nid=%d, bsid=%d\n", 
+                            ind->registration_details_3gpp2.tech_domain, 
+                            ind->registration_details_3gpp2.radio_tech,
+                            ind->registration_details_3gpp2.mcc,
+                            ind->registration_details_3gpp2.mnc,
+                            ind->registration_details_3gpp2.roaming,
+                            ind->registration_details_3gpp2.forbidden,   
+                            ind->registration_details_3gpp2.inPRL,
+                            ind->registration_details_3gpp2.css,
+                            ind->registration_details_3gpp2.sid,
+                            ind->registration_details_3gpp2.nid,
+                            ind->registration_details_3gpp2.bsid);
+                }
+                */
+                break;
+            }
+        case NW_IND_SIGNAL_STRENGTH_EVENT_IND_FLAG:
+            {
+                printf(">>>>>NW_IND_SIGNAL_STRENGTH_EVENT_IND_FLAG!!! \n");
+                QSER_NW_SINGNAL_EVENT_IND_T *ind = (QSER_NW_SINGNAL_EVENT_IND_T*)ind_msg_buf;
+
+                printf("Recv event indication : SIGNAL STRENGTH EVENT\n");
+                
+                if(ind==NULL)
+                {
+                     printf("ind is NULL\n");
+                     break;
+                }
+
+                if(ind->gsm_sig_info_valid)
+                {
+                    printf("gsm_sig_info: rssi=%d\n", 
+                            ind->gsm_sig_info.rssi);
+                } 
+
+                if(ind->wcdma_sig_info_valid)
+                {
+                    printf("wcdma_sig_info: rssi=%d, ecio=%d\n", 
+                            ind->wcdma_sig_info.rssi, 
+                            ind->wcdma_sig_info.ecio);
+                }
+                /*
+                if(ind->tdscdma_sig_info_valid)
+                {
+                    printf("tdscdma_sig_info: rssi=%d, rscp=%d, ecio=%d, sinr=%d\n", 
+                            ind->tdscdma_sig_info.rssi, 
+                            ind->tdscdma_sig_info.rscp,
+                            ind->tdscdma_sig_info.ecio,
+                            ind->tdscdma_sig_info.sinr);
+                } 
+                */
+                if(ind->lte_sig_info_valid)
+                {
+                    printf("lte_sig_info: rssi=%d, rsrq=%d, rsrp=%d, snr=%d\n", 
+                            ind->lte_sig_info.rssi, 
+                            ind->lte_sig_info.rsrq,
+                            ind->lte_sig_info.rsrp,
+                            ind->lte_sig_info.snr);
+                } 
+                /*
+                if(ind->cdma_sig_info_valid)
+                {
+                    printf("cdma_sig_info: rssi=%d, ecio=%d\n", 
+                            ind->cdma_sig_info.rssi, 
+                            ind->cdma_sig_info.ecio);
+                } 
+                if(ind->hdr_sig_info_valid)
+                {
+                    printf("hdr_sig_info: rssi=%d, ecio=%d, sinr=%d, io=%d\n", 
+                            ind->hdr_sig_info.rssi, 
+                            ind->hdr_sig_info.ecio,
+                            ind->hdr_sig_info.sinr,
+                            ind->hdr_sig_info.io);
+                }
+                */
+                break;
+            }        
+        default:
+            printf(">>>>>NO DATA!!! \n");
+            break;
+    }
+}
+
+
+int main(int argc, char *argv[])
+{
+    char operator[10];
+    int opt;
+    int lv_voll = 0;
+    nw_client_handle_type handle = -1;
+    mbtk_log_init("radio", "NW_TEST");
+
+    while(1)
+    {
+        printf("=========network main=========\n"
+            "\t0 exit\n"
+            "\t1 network init\n"
+            "\t2 network add rx msg handle\n"
+            "\t3 network band set config\n"
+            "\t4 network get operator name\n"
+            "\t5 network get reg status\n"
+            "\t6 network get signal strength\n"
+            "\t7 network set oos config\n"
+            "\t8 network get oos config\n"
+            "\t9 network set rf config\n"
+            "\t10 network get rf config\n"
+            "\t11 network deinit\n"
+            "operator: >> ");
+
+        fgets(operator, sizeof(operator), stdin);
+        fflush(stdin);
+        opt = atoi(operator);
+        switch (opt)
+        {
+        case 0:
+            printf("main exit\n");
+            return 0;
+        case 1:
+            qser_nw_client_init(&handle);
+            printf("test>>: handle = %d\n",handle);
+            break;
+        case 2:
+            qser_nw_add_rx_msg_handler(handle, nw_event_ind_handler, NULL);
+            break;
+        case 3:
+            {
+            //漫游开关现在不支持,所以就不用配置
+            printf("please input \n"
+                    "\t1:GSM \n"
+                    "\t2:WCDMA \n"
+                    "\t4:CDMA \n"
+                    "\t8:EVDO \n"
+                    "\t16:LTE \n"
+                    "\t32:TDSCDMA \n"
+            );
+            fgets(operator, sizeof(operator), stdin);
+            fflush(stdin);
+            opt = atoi(operator);
+            QSER_NW_CONFIG_INFO_T t_info;
+            switch(opt)
+            {
+                case 1:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_GSM;//2G CMCC/CU
+                    break;
+                case 2:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_WCDMA;//3G CU
+                    break;
+                case 4:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_CDMA;//3G CT
+                    break;
+                case 8:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_EVDO;//3G CT
+                    break;
+                case 16:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_LTE;//4G  全网通
+                    break;
+                case 32:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_TDSCDMA;//3G CMCC
+                    break;
+                default:
+                    t_info.preferred_nw_mode = QSER_NW_MODE_LTE;//4G
+                    break;
+            }
+            //t_info.preferred_nw_mode = QSER_NW_MODE_LTE;
+            qser_nw_set_config(handle, &t_info);
+            break;
+            }
+        case 4:
+            {
+            QSER_NW_OPERATOR_NAME_INFO_T t_info;
+            int err = qser_nw_get_operator_name(handle, &t_info);
+            if(err) {
+                printf("Error : %d\n", err);
+            } else {
+                printf("Operator : %s, %s, %s, %s\n", t_info.long_eons, t_info.short_eons, t_info.mcc, t_info.mnc);
+            }
+            break;
+            }
+        case 5:
+            {
+            QSER_NW_REG_STATUS_INFO_T reg;
+            int err = qser_nw_get_reg_status(handle, &reg);
+            if(err) {
+                printf("Error : %d\n", err);
+            } else {
+                 if(reg.voice_registration_details_3gpp_valid)
+                 {
+                     printf("voice_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n", 
+                         tech_domain[reg.voice_registration_details_3gpp.tech_domain], 
+                         radio_tech[reg.voice_registration_details_3gpp.radio_tech],
+                         reg.voice_registration_details_3gpp.mcc,
+                         reg.voice_registration_details_3gpp.mnc,
+                         reg.voice_registration_details_3gpp.roaming,
+                         reg.voice_registration_details_3gpp.forbidden,                    
+                         reg.voice_registration_details_3gpp.cid,
+                         reg.voice_registration_details_3gpp.lac,
+                         reg.voice_registration_details_3gpp.psc,
+                         reg.voice_registration_details_3gpp.tac);
+                 }
+                 if(reg.data_registration_details_3gpp_valid)
+                 {
+                     printf("data_registration_details_3gpp: \ntech_domain=%s, radio_tech=%s, mcc=%s, mnc=%s, roaming=%d, forbidden=%d, cid=0x%X, lac=%d, psc=%d, tac=%d\n", 
+                         tech_domain[reg.data_registration_details_3gpp.tech_domain], 
+                         radio_tech[reg.data_registration_details_3gpp.radio_tech],
+                         reg.data_registration_details_3gpp.mcc,
+                         reg.data_registration_details_3gpp.mnc,
+                         reg.data_registration_details_3gpp.roaming,
+                         reg.data_registration_details_3gpp.forbidden,                    
+                         reg.data_registration_details_3gpp.cid,
+                         reg.data_registration_details_3gpp.lac,
+                         reg.data_registration_details_3gpp.psc,
+                         reg.data_registration_details_3gpp.tac);
+                 }
+                //printf("Data Reg: radio_tech = %d, lac = %x, cid = %x\n", reg.data_registration_details_3gpp.radio_tech, reg.data_registration_details_3gpp.lac, reg.data_registration_details_3gpp.cid);
+                //printf("Voice Reg: radio_tech = %d, lac = %x, cid = %x\n", reg.voice_registration_details_3gpp.radio_tech, reg.voice_registration_details_3gpp.lac, reg.voice_registration_details_3gpp.cid);
+            }
+            break;
+            }
+        case 6:
+            {
+            QSER_NW_SIGNAL_STRENGTH_INFO_T sig;
+            int err = qser_nw_get_signal_strength(handle, &sig);
+            if(err) {
+                printf("Error : %d\n", err);
+            } else {
+                if (sig.gsm_sig_info_valid == TRUE)
+                    printf("Signal GSM: rssi = %d\n", sig.gsm_sig_info.rssi);
+                else if (sig.lte_sig_info_valid == TRUE)
+                    printf("Signal LTE: rssi = %d, rsrp = %d, rsrq = %d, snr = %d\n", sig.lte_sig_info.rssi , sig.lte_sig_info.rsrp, sig.lte_sig_info.rsrq, sig.lte_sig_info.snr);
+                else if (sig.wcdma_sig_info_valid == TRUE)
+                    printf("Signal UTRAN: rssi = %d, ecio = %d\n", sig.wcdma_sig_info.rssi , sig.wcdma_sig_info.ecio);
+                else
+                    printf("Signal type not supported \n");
+            }
+            break;
+            }
+        case 7:
+            {
+            qser_nw_set_oos_config(NULL, NULL);
+            break;
+            }
+        case 8:
+            {
+            qser_nw_get_oos_config(NULL, NULL);
+            break;
+            }
+        case 9:
+            {
+            printf("please input 0 or 1: \n");
+            fgets(operator, sizeof(operator), stdin);
+            fflush(stdin);
+            opt = atoi(operator);
+            if (opt == 0 || opt == 1)
+                qser_nw_set_rf_mode(handle, opt);
+            else
+                printf(">>>Please re-enter\n");
+            break;
+            }
+        case 10:
+            {
+            int rf_t;
+            qser_nw_get_rf_mode(handle, &rf_t);
+            printf(">>>rf_mode = [%d]\n",rf_t);
+            break;
+            }
+        case 11:
+            qser_nw_client_deinit(handle);
+            break;
+        default:
+            break;
+        }
+
+    }
+
+    return 0;
+}
+
diff --git a/mbtk/test/asr1806/lynq_qser_sms_test.c b/mbtk/test/asr1806/lynq_qser_sms_test.c
index 143ffac..358464c 100755
--- a/mbtk/test/asr1806/lynq_qser_sms_test.c
+++ b/mbtk/test/asr1806/lynq_qser_sms_test.c
@@ -275,7 +275,7 @@
 

     while(1)

     {

-        printf("=========audio main=========\n"

+        printf("=========sms main=========\n"

             "\t0 exit\n"

             "\t1 sms init\n"

             "\t2 send text sms\n"

@@ -316,6 +316,7 @@
                 int len = strlen(tmp);

                 int num_len = strlen(num);

                 test_sms_info.format = 0;

+                test_sms_info.storage = 1; //默认 ME

                 //test_sms_info.sms_data_len = len;

                 memcpy(test_sms_info.sms_data, tmp, len);

                 memcpy(test_sms_info.src_addr, num, num_len);

@@ -333,6 +334,7 @@
                 int len = strlen(tmp);

                 int num_len = strlen(num);

                 test_sms_info.format = 2;

+                test_sms_info.storage = 1; //默认 ME

                 //test_sms_info.sms_data_len = len;

                 memcpy(test_sms_info.sms_data, tmp, len);

                 memcpy(test_sms_info.src_addr, num, num_len);

@@ -340,23 +342,46 @@
                 qser_sms_send_sms(handle, &test_sms_info);

                 break;

             }

-       //     printf("please input volume (0~100): \n");

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

-       //     fflush(stdin);

-       //     opt = atoi(operator);

-        //    lynq_delete_sms(opt);

             break;

         case 5:

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

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

-            fflush(stdin);

-            opt = atoi(operator);

-       //     lynq_list_sms(1, opt, "ALL" );

-            break;

+            {

+                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;

+            }

         case 6:

             {

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

-                test_sms_storage.storage_idx = 1;

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

+                printf("please input index \n");

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

+                fflush(stdin);

+                opt = atoi(operator);

+                int t_index = opt;

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

+                printf("please input Storage area\n"

+                        "\t 0 : Message store to UIM(SIM) \n"

+                        "\t 1 : Message store to NV(ME) \n"

+                        "\t default :   store to NV(ME) \n");

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

+                fflush(stdin);

+                opt = atoi(operator);

+

+                if (opt == 0 || opt == 1)

+                {

+                    test_sms_storage.storage = opt;

+                }

+                else

+                {

+                    test_sms_storage.storage = 1;

+                }

+                test_sms_storage.storage_idx = t_index;

                 qser_sms_deletefromstorage(handle, &test_sms_storage);

                 break;

             }

@@ -369,15 +394,9 @@
                 break;

             }

         case 8:

-        //    printf("please input service num: \n");

-        //    fgets(phonenumter, sizeof(phonenumter), stdin);

-        //    fflush(stdin);

-        //    memcpy(phonenumter, "+8613800280500", "+8613800280500");

-            

-        //    ret= ql_sms_set_sms_center_address(phonenumter);

             {

                 memset(&test_sca_cfg, 0x00, sizeof(QSER_sms_service_center_cfg_t));

-                char *num = "+8613800280500";//成都移动中心号码不用更改

+                char *num = "+8613800280500";//成都移动中心号码不用更改(根据情况可以写死值或者动态获取)

                 int len = strlen(num);

                 memcpy(test_sca_cfg.service_center_addr, num, len);