修复ble协议 时间同步计算错误 370/1 370/head
authorSnickerSun <snickersun@163.com>
Sun, 23 Jun 2024 14:43:31 +0000 (22:43 +0800)
committerSnickerSun <snickersun@163.com>
Sun, 23 Jun 2024 14:43:31 +0000 (22:43 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/drivers/peripheral/utils/custom_utils.c

index ee6d368..7e0f337 100644 (file)
@@ -1308,9 +1308,15 @@ static uint8_t jsonCheck_time(uint8_t *buf)//json 格式解析
     \r
 \r
     /***计算timezone*/\r
-    struct tm *tmp = gmtime(&timestamp);\r
-    time_t timestamp2 = mktime(tmp);\r
-    uint32_t timezone = (timestamp-timestamp2)/60/15;   \r
+    struct tm tmp={0};\r
+    tmp.tm_year = year+2000 - 1900;\r
+    tmp.tm_mon = month -1;\r
+    tmp.tm_mday = day;\r
+    tmp.tm_hour = hour;\r
+    tmp.tm_min = minute;\r
+    tmp.tm_sec = second;\r
+    time_t timestamp2 = __tm_to_secs(&tmp);\r
+    uint32_t timezone = (timestamp2-timestamp)/60/15;   \r
     printf("timezone in quarters %d\n",timezone);\r
     uapi_set_timezone(timezone); //要在uaip_sntp_set_time_utc 之前执行才有效\r
     /********/\r
index 4f683e2..3b9ae3f 100644 (file)
@@ -444,7 +444,7 @@ errcode_t uaip_sntp_set_time_utc(uint32_t seconds)
     timeinfo.tm_hour,
     timeinfo.tm_min,
     timeinfo.tm_sec,zone_quarters,ret);
-    printf("utc timestamp %d , local timestamp %d\n",get_current_timestamp(),get_local_timestamp());
+    printf("utc timestamp %d , local timestamp %d, timezone %ld\n",get_current_timestamp(),get_local_timestamp(),timezone);
     
      return ERRCODE_SUCC;
 }