From 406282a324817a66024c84b390da4fab9231c0c0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=A2=81=E6=B8=85=E6=A2=A6?= <3449750381@qq.com> Date: Sat, 21 Sep 2024 11:21:56 +0000 Subject: [PATCH] Merge #999 into sdk602patch0626 from refs/changes/999/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/999 --- .../nativeui/heartrate/include/HeartModel.h | 1 + .../nativeui/heartrate/src/HeartChartView.cpp | 4 +-- .../nativeui/heartrate/src/HeartModel.cpp | 27 +++++++++++++++---- .../nativeui/traing/src/TraingModel.cpp | 12 ++++----- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h b/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h index c67d3600b..840448728 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h @@ -180,6 +180,7 @@ private: uint16_t valid_counter_ = 0; // 有效数计数器 uint16_t disvalid_counter_ = 0; // 无效数计数器 uint16_t unwear_counter_ = 0; // 佩戴错误计数器 + uint16_t display_counter_ = 0; //显示计数器 HeartResult heartresult_ = HeartResult::NOT_TESTED; // 检测结果 HeartCheck checkstate = HeartCheck::RESTSTSTE; // 目前检测状态 diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp index 40656f0e2..2f40a0180 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp @@ -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)); diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp index c6287fb5b..549a540b8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp @@ -29,9 +29,10 @@ extern "C" { #endif #define MAX_UNWEAR_COUNT 30 -#define MAX_VALID_HRS_COUNT 40 +#define MAX_VALID_HRS_COUNT 60 #define MAX_DISVALID_HRS_COUNT 70 #define MIN_DISPLAY_HEART 60 +#define DISPLAY_COUNT 20 #define HEARTTEST 1 //[0 开启测试 1 关闭] /*佩戴检测结果*/ @@ -378,13 +379,21 @@ void HeartModel::SetResult(HeartResult result) { heartresult_ = result; } HeartResult HeartModel::GetResult() { return heartresult_; } // 控制心率检测 void HeartModel::Heart_Control(HeartState state, HeartCheck check) { + //优先级低不对高优先级处理 if (check < checkstate) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Higher execution instruction exists"); return; } + if (state == HeartState::End && heartstate == true) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState End"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState End"); + //状态数全部清空 + valid_counter_ = 0; + disvalid_counter_ = 0; + unwear_counter_ = 0; + display_counter_ = 0; + displayheart = 0; uint8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST; send_ppg_cmd_msg(md); heartstate = false; @@ -397,8 +406,7 @@ void HeartModel::Heart_Control(HeartState state, HeartCheck check) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "充电不能检测"); return; } - - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState Start"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState Start"); uint8_t md = PPG_SERVICE_CMD_TYPE_DO_PPG_TEST; send_ppg_cmd_msg(md); heartstate = true; @@ -424,6 +432,8 @@ void HeartModel::Heart_Stop() { valid_counter_ = 0; disvalid_counter_ = 0; unwear_counter_ = 0; + display_counter_ = 0; + displayheart = 0; /*主界面卡片检测 或者 被动检测*/ if (checkstate == HeartCheck::CARDCHECK || @@ -560,7 +570,14 @@ void HeartModel::UpHeartdata(uint16_t heart) { if (uapi_dev_runtime_get_train_status() == 1) return; - displayheart = heart; + if (heart != 0) { + if (display_counter_ >= DISPLAY_COUNT) { + displayheart = heart; + } else { + displayheart = 0; + } + display_counter_++; + } // 更新心率和计数器 if (displayheart != 0) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 9725a9bfe..8a819753c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -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; } -- 2.17.1