修复时间戳错误更改为uint32;增加获取秒级时间戳函数
authorCaisking <3449750381@qq.com>
Fri, 26 Apr 2024 10:38:30 +0000 (18:38 +0800)
committerCaisking <3449750381@qq.com>
Fri, 26 Apr 2024 10:38:30 +0000 (18:38 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index b640594..853c1e3 100644 (file)
@@ -153,8 +153,8 @@ namespace OHOS
 
     struct SportData
     {
-        uint64 starttime;         // 开始时间时间戳
-        uint64 endtime;           // 结束时间时间戳
+        uint32 starttime;         // 开始时间时间戳
+        uint32 endtime;           // 结束时间时间戳
         int duration;             // 训练时长
         int goaldegree;           // 目标完成度
         int calories;             // 训练卡路里
@@ -180,7 +180,7 @@ namespace OHOS
             calories = 0;
             steps = 0;
             distance = 0;
-            intensity = 1;
+            intensity = 0;
             heart = 0;
             avgheart = 0;
             tag = 0;
index cc6f2f8..70917ef 100644 (file)
@@ -326,8 +326,8 @@ namespace OHOS
     /*设置时间*/
     void TraingModel::SetTimestamp()
     {
-        uint64_t time;
-        if (uapi_get_timestampe_ms(&time) != ERRCODE_SUCC)
+        uint32_t time;
+        if (uapi_get_timestampe_ss(&time) != ERRCODE_SUCC)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get timestamp");
             return;
@@ -339,7 +339,7 @@ namespace OHOS
             sportdata->Reset(); // 重置结构体
 
             /*将Model的成员变量赋值到结构体里面*/
-            printf("SetTimestamp::time:%u \r\n", time);
+            printf("SetTimestamp::time:%u  \r\n", time);
             sportdata->starttime = time;
             sportdata->sportType = sportType_; // 训练类型
             Gettagstuats = false;              // 重置训练达标标志位
@@ -606,8 +606,8 @@ namespace OHOS
         data.src = Openingway;
         data.bt = static_cast<uint32_t>(sportdata->sportType);
         data.ty = static_cast<uint32_t>(sportdata->sportId);
-        data.st = static_cast<uint32_t>((sportdata->starttime) / 1000);
-        data.sp = static_cast<uint32_t>((sportdata->endtime) / 1000);
+        data.st = static_cast<uint32_t>(sportdata->starttime);
+        data.sp = static_cast<uint32_t>(sportdata->endtime);
         data.tgt = static_cast<uint32_t>(sportdata->sportTagType);
         data.tg = static_cast<uint32_t>(sportdata->tag);
         data.pg = static_cast<uint32_t>(sportdata->goaldegree);
@@ -682,7 +682,7 @@ namespace OHOS
         msg_get_train_data_info_t data;
         memset(&data, 0, sizeof(msg_get_train_data_info_t));
         PRINT("sportdata->starttime %d \r\n", sportdata->starttime);
-        data.st = (uint32)(sportdata->starttime / 1000);
+        data.st = sportdata->starttime;
         data.hr = sportdata->heart;
         data.ca = sportdata->calories;
         data.stp = sportdata->steps;
index 4eaa271..2adffb2 100644 (file)
@@ -316,6 +316,22 @@ errcode_t uapi_get_timestampe_ms(uint64_t *tm)
     return ERRCODE_SUCC;
 }
 
+/*获取秒级时间戳*/
+errcode_t uapi_get_timestampe_ss(uint32_t *tm)
+{
+    if (tm == NULL) {
+        return ERRCODE_FAIL;
+    }
+    struct timeval tv = { 0 };
+
+    if (gettimeofday(&tv, NULL)) {
+        return ERRCODE_FAIL;
+    }
+    *tm = (uint32_t)(tv.tv_sec);
+    printf("[timestamp:%u]\n", (uint32_t)(tv.tv_sec));
+    return ERRCODE_SUCC;
+}
+
 #define BITS_PER_BYTE               8
 #define HEXADECIMAL                 16
 #define DECIMAL                     10
index 18449d2..9333748 100644 (file)
@@ -34,6 +34,8 @@ errcode_t uaip_cmd_update_request(void);
 
 /**获取单位ms的时间戳*/
 errcode_t uapi_get_timestampe_ms(uint64_t *tm);
+/*获取单位秒的时间戳*/
+errcode_t uapi_get_timestampe_ss(uint32_t *tm);
 /**根据cat1获取的时间字串设置时间*/
 errcode_t uapi_set_time_from_cat1(char* cat1time);