[Bugfix][T108-GSW][bug-view-1473] change gsw_reset_modem from sim module to nw module

    Only Configure: No
    Affected branch: unknown
    Affected module: data
    Is it affected on both ZXIC and ASR: only ASR
    Self-test: yes
    Doc Update: no

Change-Id: Id20dde78474bc49b3cfe02d85e2371b2203e203f
diff --git a/mbtk/libgsw_lib/gsw_nw_interface.c b/mbtk/libgsw_lib/gsw_nw_interface.c
index 9005bbd..a21aec5 100755
--- a/mbtk/libgsw_lib/gsw_nw_interface.c
+++ b/mbtk/libgsw_lib/gsw_nw_interface.c
@@ -14,6 +14,10 @@
 #define ENTRY_LENGTH 6

 #define FPLMN_ARRAY_SIZE (FPLMN_STRING_LENGTH / 6) + 1

 

+#define MBTK_ERR_OK             0

+#define GSW_IMEI_LENGTH 20+1

+

+

 #ifndef FALSE

 #define FALSE   (0)

 #endif

@@ -328,6 +332,8 @@
 int (*mbtk_radio_state_change_cb_reg)(mbtk_info_handle_t* handle, mbtk_info_callback_func cb);

 int (*mbtk_oos_get)(mbtk_info_handle_t* handle, mbtk_oos_info *oos_info);

 int (*mbtk_oos_set)(mbtk_info_handle_t* handle, mbtk_oos_info *oos_info);

+int (*mbtk_imei_get)(mbtk_info_handle_t* handle, void *imei);

+

 

 static void (*mbtk_log)(int level, const char *format, ...);

 static void (*mbtk_log_init)(char *path, char *tag);

@@ -603,6 +609,13 @@
         LOGE("mbtk_oos_set dlsym fail\n");

         return GSW_HAL_NORMAL_FAIL;

     }

+  

+    mbtk_imei_get = (int (*)(mbtk_info_handle_t* handle, void *imei))dlsym(dlHandle_mbtk, "mbtk_imei_get");

+   if (mbtk_imei_get == NULL) 

+   {

+       LOGE("mbtk_imei_get dlsym fail\n");

+       return GSW_HAL_NORMAL_FAIL;

+   }

 

     return GSW_HAL_SUCCESS;

 }

@@ -1486,10 +1499,10 @@
 {

 

     int ret = -1;

-    LOGE("gsw_get_nwinfo start\n");

+    printf("gsw_get_nwinfo start\n");

     if (nw_init_flag == 0 || nw_info_handle == NULL)

     {

-        LOGE("nw_sdk_deinit not init\n");

+        printf("nw_sdk_deinit not init\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -1999,6 +2012,10 @@
  */

 int gsw_sigInfo_to_csq(int netType, int sigValue)

 {

+    if (nw_init_flag == 0 || nw_info_handle == NULL)

+    {

+        return GSW_HAL_NORMAL_FAIL;

+    }

     switch(netType)

     {

         case 1:

@@ -2107,7 +2124,7 @@
 

     if (nw_init_flag == 0 || nw_info_handle == NULL)

     {

-        LOGE("nw_sdk_deinit not init\n");

+        printf("nw_sdk_deinit not init\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -2461,7 +2478,7 @@
  */

 int gsw_remove_forbidden_networks(gsw_nw_plmn_list_t *plmn_list)

 {

-    LOGE("gsw_remove_forbidden_networks enter\n");

+    printf("gsw_remove_forbidden_networks enter\n");

     if (nw_init_flag == 0 || nw_info_handle == NULL)

     {

         return GSW_HAL_NORMAL_FAIL;

@@ -2646,5 +2663,80 @@
     return GSW_HAL_SUCCESS;

 }

 

+/**

+ * @brief get imei function

+ * @param  [in] len imei length,max is 20

+ * @param  [out] imei return imei from this func

+ * @retval 0: success

+ * @retval other: fail

+ */

+int gsw_get_imei(int len, char *imei)

+{

+    int ret = -1;

 

+    if (nw_init_flag == 0 || nw_info_handle == NULL)

+    {

+        printf("nw sdk has been deinit\n");

+        return GSW_HAL_NORMAL_FAIL;

+    }

+

+    if(imei == NULL)

+    {

+        LOGE("imei is NULL.");

+        return GSW_HAL_ARG_INVALID;

+    }

+

+    if(len < GSW_IMEI_LENGTH)

+    {

+        LOGE("imei len is too short,len = %d\n", len);

+        return GSW_HAL_NORMAL_FAIL;

+    }

+

+    ret = mbtk_imei_get(nw_info_handle, (void *)imei);

+    if(ret != MBTK_ERR_OK)

+    {

+        LOGE("[gsw_nw] mbtk_imei_get fail [err = %d].", ret);

+        return GSW_HAL_NORMAL_FAIL;

+    }

+

+    return GSW_HAL_SUCCESS;

+}

+

+/**

+ * @brief reset modem stack only, notice: after use this method, all ril sdk

+ * need restart by app, means network, sim, sms, data need deinit then init!

+ * @param  

+ * @retval 0: success

+ * @retval other: fail

+ */

+int gsw_reset_modem(void)

+{

+    int ret = -1;

+    if (nw_init_flag == 0 || nw_info_handle == NULL)

+    {

+        printf("nw sdk has been deinit\n");

+        return GSW_HAL_NORMAL_FAIL;

+    }

+    mbtk_modem_info_t info;

+    info.fun = MBTK_DEV_MODEM_MIN_FUN;

+    info.rst = 0;

+

+    ret = mbtk_set_modem_fun(nw_info_handle, &info);

+    if(ret)

+    {

+        LOGE("[gsw_nw] mbtk_set_modem_fun 0 fail [err = %d].", ret);

+        return GSW_HAL_NORMAL_FAIL;

+    }

+

+    sleep(1);

+

+    info.fun = MBTK_DEV_MODEM_FULL_FUN;

+    ret = mbtk_set_modem_fun(nw_info_handle, &info);

+    if(ret)

+    {

+        LOGE("[gsw_nw] mbtk_set_modem_fun 1 fail [err = %d].", ret);

+        return GSW_HAL_NORMAL_FAIL;

+    }

+    return GSW_HAL_SUCCESS;

+}

 

diff --git a/mbtk/libgsw_lib/gsw_sim_interface.c b/mbtk/libgsw_lib/gsw_sim_interface.c
index d85d7df..a3f66d6 100755
--- a/mbtk/libgsw_lib/gsw_sim_interface.c
+++ b/mbtk/libgsw_lib/gsw_sim_interface.c
@@ -9,7 +9,6 @@
 #define GSW_SIM_ICCID_LENGTH 20+1 

 #define GSW_SIM_IMSI_LENGTH 20+1 

 #define GSW_SIM_MSISDN_LENGTH 20+1

-#define GSW_SIM_IMEI_LENGTH 20+1

 

 //mbtk include

 typedef unsigned int uint32;

@@ -83,7 +82,6 @@
 int (*mbtk_imsi_get)(mbtk_info_handle_t* handle, void *imsi);

 int (*mbtk_iccid_get)(mbtk_info_handle_t* handle, void *iccid);

 int (*mbtk_phone_number_get)(mbtk_info_handle_t* handle, void *phone_number);

-int (*mbtk_imei_get)(mbtk_info_handle_t* handle, void *imei);

 int (*mbtk_set_modem_fun)(mbtk_info_handle_t* handle, mbtk_modem_info_t *info);

 int (*mbtk_sim_power_set)(int power);

 static void (*mbtk_log)(int level, const char *format, ...);

@@ -238,13 +236,7 @@
         return GSW_HAL_NORMAL_FAIL;

     }

 

-    mbtk_imei_get = (int (*)(mbtk_info_handle_t* handle, void *imei))dlsym(dlHandle_mbtk, "mbtk_imei_get");

-    if (mbtk_imei_get == NULL) 

-    {

-        LOGE("mbtk_imei_get dlsym fail\n");

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

+   

     mbtk_sim_state_get = (int (*)(mbtk_info_handle_t* handle, mbtk_sim_state_enum *sim_state))dlsym(dlHandle_mbtk, "mbtk_sim_state_get");

     if (mbtk_sim_state_get == NULL) 

     {

@@ -319,9 +311,9 @@
 {

     int ret = -1;

 

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -349,12 +341,12 @@
  */

 int gsw_get_sim_status(int *sim_state)

 {

-    LOGD("gsw_get_sim_status enter\n");

+    printf("gsw_get_sim_status enter\n");

     int ret = -1;

 

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -423,9 +415,9 @@
 {

     int ret = -1;

 

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -462,9 +454,9 @@
 {

     int ret = -1;

 

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -501,7 +493,7 @@
 {

     int ret = -1;

 

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

         printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

@@ -530,46 +522,6 @@
 }

 

 /**

- * @brief get imei function

- * @param  [in] len imei length,max is 20

- * @param  [out] imei return imei from this func

- * @retval 0: success

- * @retval other: fail

- */

-int gsw_get_imei(int len, char *imei)

-{

-    int ret = -1;

-

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

-    {

-        LOGE("sim sdk has been deinit\n");

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

-    if(imei == NULL)

-    {

-        LOGE("imei is NULL.");

-        return GSW_HAL_ARG_INVALID;

-    }

-

-    if(len < GSW_SIM_MSISDN_LENGTH)

-    {

-        LOGE("imei len is too short,len = %d\n", len);

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

-    ret = mbtk_imei_get(sim_info_handle, (void *)imei);

-    if(ret != MBTK_ERR_OK)

-    {

-        LOGE("[gsw_sim] mbtk_imei_get fail [err = %d].", ret);

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

-    return GSW_HAL_SUCCESS;

-}

-

-

-/**

  * @brief set sim power down

  * @param  

  * @retval 0: success

@@ -578,9 +530,9 @@
 int gsw_set_sim_power_down(void)

 {

     int ret = -1;

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -609,9 +561,9 @@
 int gsw_set_sim_power_up(void)

 {

     int ret = -1;

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

+    if(sim_init_flag == 0 || sim_info_handle == NULL)

     {

-        LOGE("sim sdk has been deinit\n");

+        printf("sim sdk has been deinit\n");

         return GSW_HAL_NORMAL_FAIL;

     }

 

@@ -628,43 +580,3 @@
     

     return GSW_HAL_SUCCESS;

 }

-

-

-/**

- * @brief reset modem stack only, notice: after use this method, all ril sdk

- * need restart by app, means network, sim, sms, data need deinit then init!

- * @param  

- * @retval 0: success

- * @retval other: fail

- */

-int gsw_reset_modem(void)

-{

-    int ret = -1;

-    if(sim_init_flag == 0 && sim_info_handle == NULL)

-    {

-        LOGE("sim sdk has been deinit\n");

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

-    mbtk_modem_info_t info;

-    info.fun = MBTK_DEV_MODEM_MIN_FUN;

-    info.rst = 0;

-

-    ret = mbtk_set_modem_fun(sim_info_handle, &info);

-    if(ret)

-    {

-        LOGE("[gsw_sim] mbtk_set_modem_fun fail [err = %d].", ret);

-        return GSW_HAL_NORMAL_FAIL;

-    }

-

-    sleep(1);

-

-    info.fun = MBTK_DEV_MODEM_FULL_FUN;

-    ret = mbtk_set_modem_fun(sim_info_handle, &info);

-    if(ret)

-    {

-        LOGE("[gsw_sim] mbtk_set_modem_fun fail [err = %d].", ret);

-        return GSW_HAL_NORMAL_FAIL;

-    }

-    return GSW_HAL_SUCCESS;

-}
\ No newline at end of file
diff --git a/mbtk/test/libgsw_lib/gsw_nw_test.c b/mbtk/test/libgsw_lib/gsw_nw_test.c
index 9fc90b1..9cfb040 100755
--- a/mbtk/test/libgsw_lib/gsw_nw_test.c
+++ b/mbtk/test/libgsw_lib/gsw_nw_test.c
@@ -13,6 +13,8 @@
 
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 
+#define GSW_IMEI_LENGTH 20+1
+
 #ifndef FALSE
 #define FALSE   (0)
 #endif
@@ -631,7 +633,8 @@
 int (*gsw_get_cell_info)(GSW_NW_CELL_INFO *cell_info);
 int (*gsw_oos_config_get)(GSW_NW_OOS_CONFIG_INFO_T *pt_info);
 int (*gsw_oos_config_set)(GSW_NW_OOS_CONFIG_INFO_T *pt_info);
-
+int (*gsw_get_imei)(int32_t len, int8_t *imei);
+int (*gsw_reset_modem)(void);
 
 static int gsw_nw_api_import()
 {
@@ -779,6 +782,18 @@
         return -1;
     }
 
+    gsw_get_imei = (int(*)(int32_t len, int8_t *imei))dlsym(dlHandle_nw,"gsw_get_imei");
+    if (gsw_get_imei == NULL) {
+        printf("dlsym gsw_get_imei fail\n");
+        return GSW_HAL_FAIL;
+    }
+    
+    gsw_reset_modem = (int(*)(void))dlsym(dlHandle_nw,"gsw_reset_modem");
+    if (gsw_reset_modem == NULL) {
+        printf("dlsym gsw_reset_modem fail\n");
+        return GSW_HAL_FAIL;
+    }
+
     return 0;
 
 }
@@ -867,6 +882,8 @@
     printf("   21      gsw_reg_rej_cause_callback\n");
     printf("   22      gsw_oos_config_get\n");
     printf("   23      gsw_oos_config_set\n");
+    printf("   24      gsw_get_imei\n");
+    printf("   25      gsw_reset modem\n");
     printf("-------------------------------------------------------------------------\n");
 }
 
@@ -1304,7 +1321,35 @@
             break;
         }
 
-
+        
+        case 24:
+        {
+            char imei[GSW_IMEI_LENGTH] = {0};
+            ret = gsw_get_imei(GSW_IMEI_LENGTH, (int8_t *)imei);
+            if(ret == 0)
+            {
+                printf("gsw_get_imei success, imei = %s\n",imei);
+            }
+            else
+            {
+                printf("gsw_get_imei fail,ret = %d\n",ret);
+            }
+            break;
+        }
+        //reset modem
+        case 25:
+        {
+            ret = gsw_reset_modem();
+            if(ret == 0)
+            {
+                printf("gsw_reset_modem success\n");
+            }
+            else
+            {
+                printf("gsw_reset_modem fail,ret = %d\n",ret);
+            }
+            break;
+        }
         default:
         {
             continue;
diff --git a/mbtk/test/libgsw_lib/gsw_sim_test.c b/mbtk/test/libgsw_lib/gsw_sim_test.c
index 6ba8288..b7dea00 100755
--- a/mbtk/test/libgsw_lib/gsw_sim_test.c
+++ b/mbtk/test/libgsw_lib/gsw_sim_test.c
@@ -96,11 +96,8 @@
 int (*gsw_get_sim_iccid)(int32_t len, int8_t *iccid);
 int (*gsw_get_sim_imsi)(int32_t len, int8_t *imsi);
 int (*gsw_get_sim_msisdn)(int32_t len, int8_t *msisdn);
-int (*gsw_get_imei)(int32_t len, int8_t *imei);
 int (*gsw_set_sim_power_down)(void);
 int (*gsw_set_sim_power_up)(void);
-int (*gsw_reset_modem)(void);
-
 
 #define lib_gsw_sim_path "/lib/libgsw_lib.so"
 static void *dlHandle_sim = NULL;
@@ -148,13 +145,7 @@
     if (gsw_get_sim_msisdn == NULL) {
         printf("dlsym gsw_get_sim_msisdn fail\n");
         return GSW_HAL_FAIL;
-    }
-
-    gsw_get_imei = (int(*)(int32_t len, int8_t *imei))dlsym(dlHandle_sim,"gsw_get_imei");
-    if (gsw_get_imei == NULL) {
-        printf("dlsym gsw_get_imei fail\n");
-        return GSW_HAL_FAIL;
-    }
+    }  
 
     gsw_set_sim_power_down = (int(*)(void))dlsym(dlHandle_sim,"gsw_set_sim_power_down");
     if (gsw_set_sim_power_down == NULL) {
@@ -167,13 +158,7 @@
         printf("dlsym gsw_set_sim_power_up fail\n");
         return GSW_HAL_FAIL;
     }
-
-    gsw_reset_modem = (int(*)(void))dlsym(dlHandle_sim,"gsw_reset_modem");
-    if (gsw_reset_modem == NULL) {
-        printf("dlsym gsw_reset_modem fail\n");
-        return GSW_HAL_FAIL;
-    }
-
+    
     return GSW_HAL_SUCCESS;
 }
 
@@ -198,7 +183,6 @@
         printf("6.sim states\n");
         printf("7.sim power_down\n");
         printf("8.sim power_up\n");
-        printf("9.reset modem\n");
         printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Enter cmd:");
 
         char* temp = NULL;
@@ -340,23 +324,7 @@
                     printf("gsw_set_sim_power_up fail,ret = %d\n",ret);
                 }
                 break;
-            }
-
-            //reset modem
-            case 9:
-            {
-                ret = gsw_reset_modem();
-                if(ret == 0)
-                {
-                    printf("gsw_reset_modem success\n");
-                }
-                else
-                {
-                    printf("gsw_reset_modem fail,ret = %d\n",ret);
-                }
-                break;
-            }
-
+            }           
             default :
             {
                 printf("error cmd.\n");