修改训练卡片的步数为配速 3186/1 3186/head 3187/target/1
authorCaisking <Casiking@zhihuishixun.com>
Wed, 4 Feb 2026 06:23:19 +0000 (14:23 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Wed, 4 Feb 2026 06:23:19 +0000 (14:23 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDetailView.cpp

index 8e82f62..730a946 100644 (file)
@@ -301,17 +301,26 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) {
  \r
    std::string heartStr =\r
        (sportdata->heart != 0) ? std::to_string(sportdata->heart) : DEFAULT_DASH;\r
-   std::string stepsStr =\r
-       (sportdata->steps != 0) ? std::to_string(sportdata->steps) : DEFAULT_DASH;\r
+   // 配速 pc 单位为秒/公里,显示为 分钟'秒"(如 5'30");慢于 60 分钟/公里时显示 --,避免异常递增\r
+   const int PACE_MAX_SEC_PER_KM = 60 * 60;  // 60 分钟/公里 = 3600 秒/公里\r
+   std::string paceStr;\r
+   if (sportdata->pc > 0 && sportdata->pc <= PACE_MAX_SEC_PER_KM) {\r
+     int min = sportdata->pc / 60;\r
+     int sec = sportdata->pc % 60;\r
+     std::stringstream ss;\r
+     ss << min << "'" << std::setfill('0') << std::setw(2) << sec << "\"";\r
+     paceStr = ss.str();\r
+   } else {\r
+     paceStr = DEFAULT_DASH;\r
+   }\r
    std::string calorieStr = (sportdata->calories != 0)\r
                                 ? std::to_string(sportdata->calories)\r
                                 : DEFAULT_DASH;\r
    // 训练强度刷新\r
    UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity();\r
-   // printf("intensityid %d \r\n", intensityid);\r
    TrainingDetailView::GetInstance()->Get_Intensity_Button()->SetTextId(\r
        intensityid);\r
- \r
+\r
    TrainingDataView::GetInstance()->GetProgress()->SetValue(\r
        sportdata->goaldegree); // 目标完成度\r
    TrainingDataView::GetInstance()->GetHeartLabel()->SetText(\r
@@ -321,11 +330,11 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) {
    TrainingDetailView::GetInstance()->GetMileLabel()->SetText(\r
        distanceStr.c_str()); // 距离\r
    TrainingDetailView::GetInstance()->GetStepLabel()->SetText(\r
-       stepsStr.c_str()); // 步数\r
- \r
+       paceStr.c_str()); // 配速(原步数位置)\r
+\r
    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
-                 "[Calories: %s, Distance: %s, Steps: %s Intensityid: %d]",\r
-                 calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str(),\r
+                 "[Calories: %s, Distance: %s, Pace: %s Intensityid: %d]",\r
+                 calorieStr.c_str(), distanceStr.c_str(), paceStr.c_str(),\r
                  intensityid);\r
    // 释放sportdata内存\r
  }\r
@@ -396,7 +405,7 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) {
  \r
    TraingModel::GetInstance()->updata_goal();\r
  \r
-   // 刷新训练数据:心率、卡路里、距离、步数、训练强度、目标完成度\r
+   // 刷新训练数据:心率、卡路里、距离、配速、训练强度、目标完成度\r
    SportData *sportdata = TraingModel::GetInstance()->GetSportdata();\r
    RefreshData(sportdata);\r
  }\r
index 1fce82c..df48652 100644 (file)
@@ -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);