训练:优化安卓运动过程中修改心率的同步更新
authorCaisking <3449750381@qq.com>
Tue, 29 Oct 2024 09:26:03 +0000 (17:26 +0800)
committerCaisking <3449750381@qq.com>
Tue, 29 Oct 2024 09:26:03 +0000 (17:26 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardView.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index 33aeae5..9254f4c 100644 (file)
@@ -456,6 +456,11 @@ void TraingModel::AnalysisData(cywee_activity_result_t *cyweeInfo) {
       GraphicService::GetInstance()->PostGraphicEvent(
           std::bind(&TraingCardView::SetPopupViewStatus,
                     TraingCardView::GetInstance(), HeartPopup, true));
+      if (TraingCardView::GetInstance()->GetHeartMaxLabel()) {
+        GraphicService::GetInstance()->PostGraphicEvent(
+            std::bind(&TraingCardView::SetHeartMaxLabel,
+                      TraingCardView::GetInstance(), user_maxHeart));
+      }
     }
   }
 }
@@ -587,11 +592,13 @@ void TraingModel::SetTimestamp() {
 
     printf("SetTimestamp::time:%u  \r\n", time);
     sportdata->starttime = time;
-    
+
     sportdata->sportType = sportType_; // 训练类型
     sportdata->sportId = sportId_;
     IsSpecialSport(sportdata->sportId); // 配置运动特殊性状态
 
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "训练目标:类型: %d  值: %d",
+                  sportTagType_, sportTag_);
     if (sportTag_) // 有值才设置[训练目标]
     {
       sportdata->sportTagType = sportTagType_;
@@ -921,8 +928,10 @@ UIResourceTextId TraingModel::GetIntensity() {
 
 /* 获取当前的目标值 */
 int TraingModel::GetSportTagData() {
-  if (sportdata->tag == 0)
+  if (sportdata->tag == 0) {
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sportdata->tag is 0");
     return 0;
+  }
 
   float goaldegree = 0.0f; // 初始化目标完成度
 
@@ -958,12 +967,20 @@ int TraingModel::GetSportTagData() {
     break;
   }
 
+  WEARABLE_LOGD(
+      WEARABLE_LOG_MODULE_APP,
+      " [goaldegree %d, sportdata->tag %d, sportdata->duration %d, "
+      "sportdata->calories %d,sportdata->distance %d, sportdata->steps %d]",
+      goaldegree, sportdata->tag, sportdata->duration, sportdata->calories,
+      sportdata->distance, sportdata->steps);
+
   return static_cast<int>(round(goaldegree)); // 返回目标完成度
 }
 
 /* 获取训练目标完成百分比 */
 int TraingModel::GetGoaldegree() {
   if (sportdata->tag == 0) {
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sportdata->tag is 0");
     return 0; // 如果目标值为 0,返回 0%
   }
 
@@ -975,7 +992,7 @@ int TraingModel::GetGoaldegree() {
 /* 训练目标校验 */
 void TraingModel::CheckSportTag() {
   // 运动开始才计算
-  if (sportdata->tag && sportState_ != ExerciseState::General) {
+  if (sportdata->tag) {
     sportdata->goaldegree = GetGoaldegree();
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sportdata->goaldegree %d",
                   sportdata->goaldegree);
index 3812646..8c8d773 100644 (file)
@@ -98,6 +98,8 @@ namespace OHOS
         int GetCurrentPage();\r
         void SetPopupViewStatus(PopupType type, bool status);\r
         UIImageAnimatorView *GetAnimator();\r
+        UILabelExt *GetHeartMaxLabel();\r
+        void SetHeartMaxLabel(int maxheart);\r
 \r
     private:\r
         UIView::OnDragListener *draglistener{nullptr};\r
index f7ed381..e921377 100644 (file)
@@ -4566,7 +4566,7 @@ static void SetMaxHrRemindCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *t
         else if(maxHr <= 0) maxHr = 0;\r
         set_traning_heart_max(maxHr);\r
         //设置255  表示心率提醒关闭\r
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"设置最高心率提醒 %d\r\n",maxHr);\r
+          WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"设置最高心率提醒 %d\r\n",maxHr);\r
         value[17] = 1;\r
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r