[Feature][T108][system][task-view-1640]optimize sdk ready
Only Configure: No
Affected branch: GSW_V1453
Affected module: SDK_READY
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: Id066fd83b37cda93a0c3534a381d809c8fe316de
diff --git a/mbtk/mbtk_sdk_ready/src/main.c b/mbtk/mbtk_sdk_ready/src/main.c
index d571f15..c1ab041 100755
--- a/mbtk/mbtk_sdk_ready/src/main.c
+++ b/mbtk/mbtk_sdk_ready/src/main.c
@@ -15,7 +15,10 @@
#define MBTK_RESULT_FAIL -1
#define MBTK_RESULT_SUCCESS 0
-
+#define BOOT_CHECK_TIME 200 //200ms
+#define NORMAL_CHECK_TIME 30000 //30s
+#define PERIOD_LEN 10
+int in_period[PERIOD_LEN] = {100,100,200,200,500,500,500,500,2000,5000};//ms
typedef enum{
MBTK_READY_INIT = -1,
MBTK_READY_SUCCESS,
@@ -61,15 +64,23 @@
return MBTK_READY_SUCCESS;
}
#endif
-
+long get_uptime()
+{
+ struct timespec start_time;
+ clock_gettime(CLOCK_MONOTONIC, &start_time);
+ return start_time.tv_sec;
+}
static void* sdk_ready_check_pthread(void *arg)
{
UNUSED(arg);
LOGE("[SDK_READY] sdk_ready_check_pthread entry.");
-
mbtk_ready_status_type now_ready_status = MBTK_READY_INIT;
char buf[2] = {0};
+ buf[0] = '0' + now_ready_status;
+ property_set("persist.mbtk.sdk.state", buf);// init state value
int sleep_time = 30;
+ long uptime = 0;
+ int count = 0;
while(1)
{
now_ready_status = modem_check();
@@ -79,17 +90,41 @@
property_set("persist.mbtk.sdk.state", buf);
mbtk_ready_status = now_ready_status;
}
-
- if(now_ready_status != MBTK_READY_SUCCESS)
+ uptime = get_uptime();
+ if(uptime < 50)//in 50s
{
- sleep_time += 2;
+ if(now_ready_status != MBTK_READY_SUCCESS)
+ {
+ sleep_time = BOOT_CHECK_TIME;
+ }
+ else
+ {
+ sleep_time = NORMAL_CHECK_TIME;
+ }
}
else
{
- sleep_time = 30;
- }
+ if(now_ready_status != MBTK_READY_SUCCESS)
+ {
+ if(count < PERIOD_LEN)
+ {
+ sleep_time = in_period[count];
+ }
+ else
+ {
+ count = 0;
+ sleep_time = in_period[count];
+ }
+ count++;
+ }
+ else
+ {
+ sleep_time = NORMAL_CHECK_TIME;
+ count = 0;
+ }
- sleep(sleep_time);
+ }
+ usleep(sleep_time*1000);
}
LOGE("[SDK_READY] sdk_ready_check_pthread exit.");
return NULL;
@@ -137,4 +172,4 @@
LOGE("[SDK_READY]!!!mbtk_sdk_ready exit!!!");
return MBTK_RESULT_SUCCESS;
}
-#endif
\ No newline at end of file
+#endif