[Feature][T108][system][task-view-1692]Merged gsw hal code

Only Configure: No
Affected branch: GSW_V1453
Affected module: libgsw
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no

Change-Id: I7fb669b6afc6e2f92a1e86ec8543498eb73120b4
diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index 8448a3b..e63576d 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -109,11 +109,6 @@
         } \

         fun_ptr_log(LOG_ERR_LEVEL, "%s#%s: "GSW_GNSS"" fmt, ptr_1001 + 1, line_1001, ##args); \

     } while(0)

-    

-

-// #define GSW_HAL_SUCCESS 0

-#define GSW_HAL_FAIL -1	//表示失败(通用性)

-#define GSW_HAL_MEM_INVAILD -2 //表示入参地址为NULL

 

 #define MOPEN_GNSS_NMEA_MAX_LENGTH  255                 /**  NMEA string maximum length. */

 static gsw_gnss_cb *gsw_cb = NULL;

@@ -187,7 +182,6 @@
     gsw_gnss_cb callback;

 }gsw_gnss_init_configure_t;

 

-

 typedef enum{

     MODE_GPS = 1,                               /**< GPS only */

     MODE_BEIDOU,                                /**< BEIDOU only*/

@@ -250,7 +244,7 @@
     if(ret != 0)

     {

         LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     return GSW_HAL_SUCCESS;

 }

@@ -264,7 +258,7 @@
 int gsw_gnss_set_freq(int freq)

 {

     if(!inited)

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

 

     int ret;

     if (!strated)

@@ -279,7 +273,7 @@
     if(ret != 0)

     {

         LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     return GSW_HAL_SUCCESS;

 }

@@ -290,11 +284,10 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_set_start_mode(GSW_GNSS_MODE_CONFIGURATION start_mode)

+int32_t gsw_gnss_set_start_mode(GSW_GNSS_MODE_CONFIGURATION start_mode)

 {

     if(!inited)

-        return GSW_HAL_FAIL;

-

+        return GSW_HAL_NORMAL_FAIL;

     int ret;

     if (!strated)

     {

@@ -306,14 +299,14 @@
     if(map_gnss_mode(start_mode) == -1)

     {

         LOGE("[qser_gnss] mbtk_gnss_start_mode con't support");

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     mbtk_gnss_setting=(int(*)(const char *setting_cmd, int))dlsym(dlHandle_gnss, "mbtk_gnss_setting");

     ret = mbtk_gnss_setting(param_buf, QSER_GNSS_TIMEOUT);

     if(ret != 0)

     {

         LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     return GSW_HAL_SUCCESS;

 }

@@ -324,11 +317,10 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_epo_switch(GSW_CONF_SWITCH switch_op)

+int32_t gsw_gnss_epo_switch(GSW_CONF_SWITCH switch_op)

 {

     if(!inited)

-        return GSW_HAL_FAIL;

-

+        return GSW_HAL_NORMAL_FAIL;

     int ret;

     if (!strated)

     {

@@ -343,14 +335,14 @@
         if(ret != 0)

         {

             LOGE("[qser_gnss] mbtk_gnss_eph_download fail.ret = [%d]", ret);

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

         mbtk_gnss_eph_inject=(int(*)(int))dlsym(dlHandle_gnss, "mbtk_gnss_eph_inject");

         ret = mbtk_gnss_eph_inject(QSER_GNSS_TIMEOUT);

         if(ret != 0)

         {

             LOGE("[qser_gnss] mbtk_gnss_eph_inject fail.ret = [%d]", ret);

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

     }

     return GSW_HAL_SUCCESS;

@@ -377,7 +369,7 @@
 			return;

 		}

 		GSW_GNSS_LOCATION_EXT_T gsw_location;

-        GSW_GNSS_LOCATION_T gsw_location_t;

+        GSW_GNSS_LOCATION_T gsw_location_t = {0};

         mbtk_gnss_location_info_t *locl_info = (mbtk_gnss_location_info_t *)data;

         gsw_location_t.altitude = locl_info->altitude;

         gsw_location_t.latitude = locl_info->latitude;

@@ -400,7 +392,7 @@
     }

 }

 

-int gsw_gnss_init(void)

+int32_t gsw_gnss_init(void)

 {

     int ret;

     if(!inited)

@@ -409,7 +401,7 @@
         fun_ptr_log = (mbtk_log)dlsym(dlHandle_gnss, "mbtk_log");

         if(fun_ptr_log == NULL || dlHandle_gnss == NULL)

         {

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

         mbtk_gnss_init=(int(*)(mbtk_gnss_callback_func))dlsym(dlHandle_gnss, "mbtk_gnss_init");

         ret = mbtk_gnss_init(gnss_callback);

@@ -424,13 +416,13 @@
             else

             {

                 LOGE("[GSW_gnss] init mbtk_gnss_ind_set() fail.ret = [%d]", ret);

-                return GSW_HAL_FAIL;

+                return GSW_HAL_NORMAL_FAIL;

             }

         }

         else

         {

             LOGE("[GSW_gnss] mbtk_gnss_init() fail.ret = [%d]", ret);

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

     }

 

@@ -443,15 +435,14 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_reg_cb_group(gsw_gnss_cb callback)

+int32_t gsw_gnss_reg_cb_group(gsw_gnss_cb callback)

 {

     if(!inited)

-        return GSW_HAL_FAIL;

-

+        return GSW_HAL_NORMAL_FAIL;

     if(callback.gsw_location_cb == NULL && callback.gsw_nmea_cb == NULL)

     {

         LOGE("[GSW_gnss] handler_ptr is NULL.");

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     if (gsw_cb == NULL)

     {

@@ -459,7 +450,7 @@
         if (gsw_cb == NULL)

         {

             LOGE("[GSW_gnss] Memory allocation failed.");

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

     }

     gsw_cb->gsw_location_cb = callback.gsw_location_cb;

@@ -472,23 +463,23 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_start(void)

+int32_t gsw_gnss_start(void)

 {

     int ret;

     if(!inited)

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     ret = system("/usr/sbin/gnss_gpio.sh on > /dev/null 2>&1");

     if(ret != 0)

     {

         LOGE("[GSW_gnss] gnss_gpio.sh on fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     mbtk_gnss_open=(int(*)(int,int))dlsym(dlHandle_gnss, "mbtk_gnss_open");

     ret = mbtk_gnss_open(255, QSER_GNSS_TIMEOUT);

     if(ret != 0)

     {

         LOGE("[GSW_gnss] mbtk_gnss_open is error.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

 

     strated = true;

@@ -511,23 +502,23 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_stop(void)

+int32_t gsw_gnss_stop(void)

 {

     int ret;

     if(!inited)

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     mbtk_gnss_close=(int(*)(int))dlsym(dlHandle_gnss, "mbtk_gnss_close");

     ret = mbtk_gnss_close(QSER_GNSS_TIMEOUT);

     if(ret != 0)

     {

         LOGE("[GSW_gnss] mbtk_gnss_close is error.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     ret = system("/usr/sbin/gnss_gpio.sh off > /dev/null 2>&1");

     if(ret != 0)

     {

         LOGE("[GSW_gnss] gnss_gpio.sh off fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     strated = false;

     return GSW_HAL_SUCCESS;

@@ -539,11 +530,11 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_deinit(void)

+int32_t gsw_gnss_deinit(void)

 {

     int ret;

     if(!inited)

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     if(inited)

     {

         mbtk_gnss_deinit=(int(*)())dlsym(dlHandle_gnss, "mbtk_gnss_deinit");

@@ -557,7 +548,7 @@
             LOGE("[GSW_gnss] mbtk_gnss_init() fail.ret = [%d]", ret);

             dlclose(dlHandle_gnss);

             dlHandle_gnss = NULL;

-            return GSW_HAL_FAIL;

+            return GSW_HAL_NORMAL_FAIL;

         }

     }

 

@@ -580,7 +571,7 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_xtra_is_enable(gsw_xtra_state_e state)

+int32_t gsw_gnss_xtra_is_enable(gsw_xtra_state_e state)

 {

     return GSW_HAL_SUCCESS;

 }

@@ -591,11 +582,10 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_delete_aiding_data(unsigned int flags) /*1-don`t delete == hot_start ; 2-delete EPH == warm start ; 3-delete all == cold start*/

+int32_t gsw_gnss_delete_aiding_data(unsigned int flags) /*1-don`t delete == hot_start ; 2-delete EPH == warm start ; 3-delete all == cold start*/

 {

     if(!inited)

-        return GSW_HAL_FAIL;

-

+        return GSW_HAL_NORMAL_FAIL;

     int ret;

     char param_buf[32] = {0};

     snprintf(param_buf, 32, "$RESET,%u", flags);

@@ -604,7 +594,7 @@
     if(ret != 0)

     {

         LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);

-        return GSW_HAL_FAIL;

+        return GSW_HAL_NORMAL_FAIL;

     }

     return GSW_HAL_SUCCESS;

 }

@@ -615,7 +605,23 @@
  * @retval 0: success

  * @retval other: fail

  */

-int gsw_gnss_init_configure_gps(gsw_gnss_init_configure_t init_configure)

+int32_t gsw_gnss_init_configure_gps(gsw_gnss_init_configure_t init_configure)

 {

     return GSW_HAL_SUCCESS;

 }

+

+int gsw_gnss_get_tail_nmea_type(char *tail_type, int len)

+{

+    if(NULL == tail_type){

+        LOGE("get_tail_nmea_type fail, tail_type is NULL");

+        return GSW_HAL_ERROR_GNSS_FAIL;

+    }

+

+    if(len >= 3){

+        strcpy(tail_type, "RMC");

+        return GSW_HAL_GNSS_SUCCESS;

+    }else{

+        LOGE("get_tail_nmea_type fail, len[%d] is too short", len);

+        return GSW_HAL_ERROR_GNSS_FAIL;

+    }

+}