Merge #999 into sdk602patch0626 from refs/changes/999/head 1003/target/1
author袁清梦 <3449750381@qq.com>
Sat, 21 Sep 2024 11:21:56 +0000 (11:21 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Sat, 21 Sep 2024 11:21:56 +0000 (11:21 +0000)
Code review from 袁清梦

* refs/changes/999/head: (4 commits squashed)

  - 修改心率曲线图Y轴数字

  - #144 手表,心率测量开始测量的时候显示的心率值太大,需要优化开始显示的心率值

  - #678 心率初始出值不稳定,偏差太大。

  - #560 运动,徒步运动设置目标1KM,实际放桌子上未动,提示我目标达成

Signed-off-by: Caisking <3449750381@qq.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/999
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp

index c67d360..8404487 100644 (file)
@@ -180,6 +180,7 @@ private:
   uint16_t valid_counter_ = 0;    // 有效数计数器\r
   uint16_t disvalid_counter_ = 0; // 无效数计数器\r
   uint16_t unwear_counter_ = 0;   // 佩戴错误计数器\r
+  uint16_t display_counter_ = 0;  //显示计数器\r
 \r
   HeartResult heartresult_ = HeartResult::NOT_TESTED; // 检测结果\r
   HeartCheck checkstate = HeartCheck::RESTSTSTE;      // 目前检测状态\r
index 40656f0..2f40a01 100644 (file)
@@ -414,12 +414,12 @@ void HeartChartView::InitChartLabel() {
   maxheart_dynamic_3_->SetTextColor(
       Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
   //动态心率2/4
-  InitLabel(maxheart_dynamic_2_, 30, 247, 50, 20, "label", "100",
+  InitLabel(maxheart_dynamic_2_, 30, 247, 50, 20, "label", "110",
             DEFAULT_VECTOR_FONT_FILENAME, 20);
   maxheart_dynamic_2_->SetTextColor(
       Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
   //动态心率1/4
-  InitLabel(maxheart_dynamic_1_, 30, 277, 50, 20, "label", "40",
+  InitLabel(maxheart_dynamic_1_, 30, 277, 50, 20, "label", "50",
             DEFAULT_VECTOR_FONT_FILENAME, 20);
   maxheart_dynamic_1_->SetTextColor(
       Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
index c6287fb..549a540 100644 (file)
@@ -29,9 +29,10 @@ extern "C" {
 #endif\r
 \r
 #define MAX_UNWEAR_COUNT 30\r
-#define MAX_VALID_HRS_COUNT 40\r
+#define MAX_VALID_HRS_COUNT 60\r
 #define MAX_DISVALID_HRS_COUNT 70\r
 #define MIN_DISPLAY_HEART 60\r
+#define DISPLAY_COUNT 20\r
 #define HEARTTEST 1 //[0 开启测试 1 关闭]\r
 \r
 /*佩戴检测结果*/\r
@@ -378,13 +379,21 @@ void HeartModel::SetResult(HeartResult result) { heartresult_ = result; }
 HeartResult HeartModel::GetResult() { return heartresult_; }\r
 // 控制心率检测\r
 void HeartModel::Heart_Control(HeartState state, HeartCheck check) {\r
+  //优先级低不对高优先级处理\r
   if (check < checkstate) {\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
                   "Higher execution instruction exists");\r
     return;\r
   }\r
+\r
   if (state == HeartState::End && heartstate == true) {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState End");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState End");\r
+    //状态数全部清空\r
+    valid_counter_ = 0;\r
+    disvalid_counter_ = 0;\r
+    unwear_counter_ = 0;\r
+    display_counter_ = 0;\r
+    displayheart = 0;\r
     uint8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;\r
     send_ppg_cmd_msg(md);\r
     heartstate = false;\r
@@ -397,8 +406,7 @@ void HeartModel::Heart_Control(HeartState state, HeartCheck check) {
       WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "充电不能检测");\r
       return;\r
     }\r
-\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState Start");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState Start");\r
     uint8_t md = PPG_SERVICE_CMD_TYPE_DO_PPG_TEST;\r
     send_ppg_cmd_msg(md);\r
     heartstate = true;\r
@@ -424,6 +432,8 @@ void HeartModel::Heart_Stop() {
   valid_counter_ = 0;\r
   disvalid_counter_ = 0;\r
   unwear_counter_ = 0;\r
+  display_counter_ = 0;\r
+  displayheart = 0;\r
 \r
   /*主界面卡片检测 或者 被动检测*/\r
   if (checkstate == HeartCheck::CARDCHECK ||\r
@@ -560,7 +570,14 @@ void HeartModel::UpHeartdata(uint16_t heart) {
   if (uapi_dev_runtime_get_train_status() == 1)\r
     return;\r
 \r
-  displayheart = heart;\r
+  if (heart != 0) {\r
+    if (display_counter_ >= DISPLAY_COUNT) {\r
+      displayheart = heart;\r
+    } else {\r
+      displayheart = 0;\r
+    }\r
+    display_counter_++;\r
+  }\r
 \r
   // 更新心率和计数器\r
   if (displayheart != 0) {\r
index 9725a9b..8a81975 100644 (file)
@@ -1014,14 +1014,14 @@ namespace OHOS
                 return int(sportdata->duration / 60); // 时间是秒需要转换为目标的分钟
                 break;
             case ExerciseTag::Calories:
-                return sportdata->calories;
-                break;
+              return sportdata->calories; //卡路里是kcal
+              break;
             case ExerciseTag::Distance:
-                return sportdata->distance;
-                break;
+              return int(sportdata->distance / 1000); //距离是米需要转换为km
+              break;
             case ExerciseTag::Steps:
-                return sportdata->steps;
-                break;
+              return sportdata->steps; //步数是步
+              break;
             default:
                 break;
             }