[Feature][T108][task-view-1878]add gsw_update_gnss_start and gsw_get_gnss_version_info
Only Configure:No
Affected branch:GSW_V1453
Affected module:fw_update
Is it affected on: GNSS
Self-test: Yes
Doc Update:No
Change-Id: Ic34cbfaa307a4c875c9ae00fc01f12af7523b566
diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index a1c65a2..73b31d7 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -41,6 +41,7 @@
int (*mbtk_gnss_eph_download)(int);
int (*mbtk_gnss_eph_inject)(int);
+int (*mbtk_gnss_dl_ptr)(const char *, int);
int gnss_freq = -1;
GSW_GNSS_MODE_CONFIGURATION gnss_startmode = -1;
@@ -734,3 +735,67 @@
return GSW_HAL_ERROR_GNSS_FAIL;
}
}
+
+
+/**
+* @brief Start install gnss software
+* @param [in] char* file_path
+* @param [out] NULL
+* @retval GSW_HAL_SUCCESS\GSW_HAL_FAIL
+*/
+int gsw_update_gnss_start(const char *fw_path)
+{
+ int ret;
+ mbtk_gnss_dl_ptr = (int(*)(const char *, int))dlsym(dlHandle_gnss, "mbtk_gnss_dl");
+ if (!mbtk_gnss_dl_ptr)
+ {
+ LOGE(GSW_GNSS,"[qser_gnss] dlsym failed for mbtk_gnss_dl: %s", dlerror());
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ ret = mbtk_gnss_dl_ptr(fw_path, QSER_GNSS_TIMEOUT);
+ if(ret != 0)
+ {
+ LOGE(GSW_GNSS,"[qser_gnss] Firmware download failed. ret = [%d]", ret);
+ return GSW_HAL_NORMAL_FAIL;
+ }
+ return GSW_HAL_SUCCESS;
+}
+
+
+/**
+* @brief get gnss version info
+* @param [in] NULL
+* @param [out] char* version_info
+* @retval GSW_HAL_SUCCESS\GSW_HAL_FAIL
+*/
+int32_t gsw_get_gnss_version_info(char* version_info)
+{
+ if (!version_info)
+ {
+ LOGE(GSW_GNSS, "[GSW_gnss] version_info is NULL");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ GSW_DEVICE dev_type = get_gnss_device_version();
+ switch (dev_type)
+ {
+ case HD8122:
+ strncpy(version_info, "HD8122", 255);
+ break;
+ case HD8040D:
+ strncpy(version_info, "HD8040D", 255);
+ break;
+ case NO_DEVICE:
+ default:
+ LOGE(GSW_GNSS, "[GSW_gnss] Failed to detect GNSS device");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ version_info[255] = '\0';
+ LOGE(GSW_GNSS, "[GSW_gnss] Retrieved GNSS version: %s", version_info);
+ return GSW_HAL_SUCCESS;
+}
+
+
+