[Bugfix][API-1395]fix unable to retry whitin the progression
Only Configure:No
Affected branch:GSW3.0-No-Connman
Affected module:GNSS
Is it affected on both ZXIC and MTK:only MTK,
Self-test:Yes,
Doc Update:NO.
Change-Id: Ia3003a47332425f43a2a10fcd9ba18feece9bd22
diff --git a/lib/liblynq-gnss/src/lynq_gnss.c b/lib/liblynq-gnss/src/lynq_gnss.c
index 4d79d0f..a812738 100755
--- a/lib/liblynq-gnss/src/lynq_gnss.c
+++ b/lib/liblynq-gnss/src/lynq_gnss.c
@@ -72,6 +72,7 @@
int lynq_gnss_callback_reg(lynq_gnss_cb* callbacks)
{
+ int i=0;
if (NULL == callbacks)
{
RLOGD("illegal callbacks!!!");
@@ -85,9 +86,23 @@
RLOGD("callbacks error");
return -1;
}
- if(gpshal_gpscbs_save(turn_cbs) != 0)
+ for(i=0;i<5;i++)
{
- RLOGD("For cbs save error\r\n");
+ RLOGD("The callback_gps_state:%s",gpshal_state_to_string(g_gpshal_ctx.gps_state));
+ if(gpshal_gpscbs_save(turn_cbs) != 0)
+ {
+ RLOGD("For cbs save error\r\n");
+ }
+ RLOGD("The callback_gps_state:%s",gpshal_state_to_string(g_gpshal_ctx.gps_state));
+ if(g_gpshal_ctx.gps_state != GPSHAL_STATE_UNKNOWN)
+ {
+ break;
+ }
+ sleep(1);
+ }
+ if(i>=5)
+ {
+ RLOGD("For cbs save error2\r\n");
return -1;
}
g_lynq_gnss_calback_flag = 1;
@@ -122,6 +137,11 @@
int lynq_gnss_start(void)
{
+ if (g_lynq_gnss_init_flag == 0)
+ {
+ RLOGD("start is not allowed");
+ return -1;
+ }
//memset(&lynq_debug_data, 0, sizeof(DebugData));
gpshal_set_gps_state_intent(GPSHAL_STATE_START);
gpshal2mnl_gps_start();
@@ -130,6 +150,11 @@
int lynq_gnss_stop(void)
{
+ if (g_lynq_gnss_init_flag == 0)
+ {
+ RLOGD("stop is not allowed");
+ return -1;
+ }
gpshal_set_gps_state_intent(GPSHAL_STATE_STOP);
gpshal2mnl_gps_stop();
return 0;