Merge #370 into sdk602patch0521 from refs/changes/370/head 371/target/1
authorsnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sun, 23 Jun 2024 14:45:19 +0000 (14:45 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sun, 23 Jun 2024 14:45:19 +0000 (14:45 +0000)
修复ble协议 时间同步计算错误

* refs/changes/370/head: (1 commits squashed)

  - 修复ble协议 时间同步计算错误

Signed-off-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/370
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;
 }