From 8dd594b6ad6908e0d57f97e443ac67749d328711 Mon Sep 17 00:00:00 2001 From: Caisking Date: Wed, 4 Feb 2026 14:23:19 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E8=AE=AD=E7=BB=83=E5=8D=A1?= =?utf8?q?=E7=89=87=E7=9A=84=E6=AD=A5=E6=95=B0=E4=B8=BA=E9=85=8D=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../training_card/src/TraingCardPresenter.cpp | 27 ++++++++++++------- .../training_card/src/TrainingDetailView.cpp | 10 +++---- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp index 8e82f62e0..730a94684 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -301,17 +301,26 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) { std::string heartStr = (sportdata->heart != 0) ? std::to_string(sportdata->heart) : DEFAULT_DASH; - std::string stepsStr = - (sportdata->steps != 0) ? std::to_string(sportdata->steps) : DEFAULT_DASH; + // 配速 pc 单位为秒/公里,显示为 分钟'秒"(如 5'30");慢于 60 分钟/公里时显示 --,避免异常递增 + const int PACE_MAX_SEC_PER_KM = 60 * 60; // 60 分钟/公里 = 3600 秒/公里 + std::string paceStr; + if (sportdata->pc > 0 && sportdata->pc <= PACE_MAX_SEC_PER_KM) { + int min = sportdata->pc / 60; + int sec = sportdata->pc % 60; + std::stringstream ss; + ss << min << "'" << std::setfill('0') << std::setw(2) << sec << "\""; + paceStr = ss.str(); + } else { + paceStr = DEFAULT_DASH; + } std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : DEFAULT_DASH; // 训练强度刷新 UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity(); - // printf("intensityid %d \r\n", intensityid); TrainingDetailView::GetInstance()->Get_Intensity_Button()->SetTextId( intensityid); - + TrainingDataView::GetInstance()->GetProgress()->SetValue( sportdata->goaldegree); // 目标完成度 TrainingDataView::GetInstance()->GetHeartLabel()->SetText( @@ -321,11 +330,11 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) { TrainingDetailView::GetInstance()->GetMileLabel()->SetText( distanceStr.c_str()); // 距离 TrainingDetailView::GetInstance()->GetStepLabel()->SetText( - stepsStr.c_str()); // 步数 - + paceStr.c_str()); // 配速(原步数位置) + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, - "[Calories: %s, Distance: %s, Steps: %s Intensityid: %d]", - calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str(), + "[Calories: %s, Distance: %s, Pace: %s Intensityid: %d]", + calorieStr.c_str(), distanceStr.c_str(), paceStr.c_str(), intensityid); // 释放sportdata内存 } @@ -396,7 +405,7 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) { TraingModel::GetInstance()->updata_goal(); - // 刷新训练数据:心率、卡路里、距离、步数、训练强度、目标完成度 + // 刷新训练数据:心率、卡路里、距离、配速、训练强度、目标完成度 SportData *sportdata = TraingModel::GetInstance()->GetSportdata(); RefreshData(sportdata); } diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDetailView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDetailView.cpp index 1fce82c6c..df48652ab 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDetailView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDetailView.cpp @@ -56,16 +56,16 @@ bool TrainingDetailView ::InitPage() { DEFAULT_VECTOR_FONT_FILENAME, 30); InitRollLabel(u_calorielabel, 225, 235, 230, 35, "label4", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(u_stepslabel, 73, 362, 320, 35, "label3", STR_STEP_SETTING, + InitRollLabel(u_stepslabel, 73, 362, 320, 35, "label3", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, 30); - //多国语言 + //多国语言:该位置显示配速(原步数) if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN) { u_milelabel->SetText("距离(公里"); - u_stepslabel->SetText("步数(步)"); + u_stepslabel->SetText("配速(分钟/公里)"); u_calorielabel->SetText("卡路里(千卡)"); } else { u_milelabel->SetText("Distance (km)"); - u_stepslabel->SetText("Steps"); + u_stepslabel->SetText("Pace (min/km)"); u_calorielabel->SetText("Calorie (kcal)"); } u_milelabel->SetTextColor(Color::Gray()); @@ -77,7 +77,7 @@ bool TrainingDetailView ::InitPage() { DEFAULT_VECTOR_FONT_FILENAME_EN, 65); InitLabel(calorielabel, 230, 160, 200, 80, "label7", "28312", DEFAULT_VECTOR_FONT_FILENAME_EN, 65); - InitLabel(steplabel, 133, 285, 200, 80, "label8", "210.03", + InitLabel(steplabel, 133, 285, 200, 80, "label8", "--", DEFAULT_VECTOR_FONT_FILENAME_EN, 65); Add(u_milelabel); -- 2.17.1