cat1时间同步,尝试5次即停止(减少耗电)
authorSnickerSun <snickersun@163.com>
Tue, 19 Mar 2024 01:53:45 +0000 (09:53 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 19 Mar 2024 01:53:45 +0000 (09:53 +0800)
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp

index c7c232f..55e29b5 100644 (file)
@@ -104,6 +104,8 @@ struct sockaddr_in sourceAddr = {0};
 osTimerId_t g_timer_time_sync = NULL;
 osTimerId_t g_timer_cat1_sleep = NULL;
 static uint8_t g_time_synced = 0;
+#define MAX_TIME_SYNC_RETRY_TIME 5
+static uint8_t g_time_sync_retry_time = 0;
 
 static struct tcp_msg_t *unpack_tlv_format(char *rx_buffer, int length)
 {
@@ -334,14 +336,22 @@ static void time_sync_func(void)
     {
         osTimerStop(g_timer_time_sync);
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_synced == 1 stop timer \n");
+    }else{
+        g_time_sync_retry_time ++;
+    }
+    if( g_time_sync_retry_time >= MAX_TIME_SYNC_RETRY_TIME)
+    {
+         osTimerStop(g_timer_time_sync);
+         WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 g_time_sync_retry_time >= %d stop timer \n",MAX_TIME_SYNC_RETRY_TIME);
+
     }
-    
 }
 
 void restart_time_sync(void)
 {
 
     g_time_synced = 0;
+    g_time_sync_retry_time = 0;
     if(osTimerIsRunning(g_timer_time_sync)==0  )
     {
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_MAIN_SERVICE,"cat1 restart_time_sync timer \n");
@@ -538,10 +548,10 @@ errcode_t cat1_server_init(void)
     
     g_timer_time_sync = osTimerNew((osTimerFunc_t)time_sync_func, osTimerPeriodic, NULL, NULL);
 
-    // if (g_timer_time_sync != NULL)
-    //     restart_time_sync();
-    // else
-    //     printf("g_timer_time_sync create failed\n");
+    if (g_timer_time_sync != NULL)
+        restart_time_sync();
+    else
+        printf("g_timer_time_sync create failed\n");
 
     g_timer_cat1_sleep = osTimerNew((osTimerFunc_t)timeout_handler_sleep_cat1, osTimerPeriodic, NULL, NULL);