训练部分数据处理
authorCaisking <3449750381@qq.com>
Thu, 11 Apr 2024 07:18:20 +0000 (15:18 +0800)
committerCaisking <3449750381@qq.com>
Thu, 11 Apr 2024 07:18:20 +0000 (15:18 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
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/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp

index aa9fa12..ec833ae 100644 (file)
@@ -37,6 +37,8 @@
 
 #include "cywee_service.h"
 #include "cywee_hal.h"
+#include "power_display_service.h"
+#include "displaybrightness/include/DisplayBrightnessModel.h"
 
 #include <string>
 
@@ -167,6 +169,11 @@ namespace OHOS
         void InitList();
         void SetQuickTraining(QuickTraining *quickTraining);
         QuickTraining *GetQuickTraining() const;
+
+        /*屏幕管理*/
+        void SetSteadyOn();
+        void SetSteadyOff();
+
         /*定时器 */
         std::string DisplayMotionDuration();
         /*设置运动项目*/
@@ -191,6 +198,9 @@ namespace OHOS
         std::string motionDuration;                         // 训练时长
         UIResourceTextId sportId_ = STR_EXTREME_SPORTS;     // 训练项目
         ExerciseState sportstate_ = ExerciseState::General; // 训练状态
+
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        uint32_t display_time;
     };
 }
 
index 4f9d0eb..1830b49 100644 (file)
@@ -252,14 +252,23 @@ namespace OHOS
             return false; // 内存分配失败,返回false
         }
         imageView->SetPosition(left, top);
-        imageView->Resize(width, height);
+        imageView->SetAutoEnable(true);
+        // imageView->Resize(width, height);
         imageView->SetViewId(viewId);
         imageView->SetSrc(imagePath);
         imageView->SetVisible(true);
         // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::InitImageView is succeed");
         return true;
     }
-
+    void TraingModel::SetSteadyOn()
+    {
+        display_api->set_screen_set_keepon_timeout(-1);
+    }
+    void TraingModel::SetSteadyOff()
+    {
+        display_api->set_screen_set_keepon_timeout(0);
+    }
+    /* -------------------------------------------------------------------------- */
     /*设置运动Id*/
     void TraingModel::SetSportEvent(UIResourceTextId id)
     {
@@ -273,10 +282,11 @@ namespace OHOS
     /*获取运动类型*/
     ExerciseClass TraingModel::GetSportType()
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " GetSportType %d", sportId_);
         switch (sportId_)
         {
             // 室外跑步
-        case UIResourceTextId::STR_EXERCISE_OUTDOORRUNNING:
+        case UIResourceTextId::STR_EXERCISE_OUTDOORWALKING:
             return ExerciseClass::OUTDOOR;
             break;
             // 室内跑步
@@ -303,15 +313,18 @@ namespace OHOS
     {
         // 不同的运动类型解析不同的数据
         ExerciseClass type = GetSportType();
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " AnalysisData %d", type);
         // 通用数据
         sportdata->calories = cyweeInfo->calories;
         sportdata->duration = cyweeInfo->duration;
+        PRINT("normal sportdata->calories[%d],sportdata->duration[%d] \r\n",sportdata->calories,sportdata->duration);
         switch (type)
         {
         case ExerciseClass::OUTDOOR:
         case ExerciseClass::INDOOR:
             sportdata->distance = cyweeInfo->distance;
             sportdata->steps = cyweeInfo->steps;
+            PRINT("indoor sportdata->distance[%d],sportdata->steps[%d] \r\n",sportdata->distance,sportdata->steps);
             break;
         case ExerciseClass::FREE_TRAINING:
             break;
@@ -383,6 +396,18 @@ namespace OHOS
             }
             TraingModel::GetInstance()->AnalysisData(cyweeInfo);
             break;
+        case TOPIC_EVENT_FREE_TRAINING_UPDATE:
+            cyweeInfo = new cywee_result_t(); // 在case块内分配内存
+            rets = memcpy_s(cyweeInfo, sizeof(cywee_result_t), (cywee_result_t *)request->data, request->len);
+            if (rets != EOK)
+            {
+                delete cyweeInfo; // 处理内存分配失败的情况
+                cyweeInfo = NULL;
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s cywee_result_t fail! ret = %d", rets);
+                return;
+            }
+            TraingModel::GetInstance()->AnalysisData(cyweeInfo);
+            break;
         default:
             // 处理未知msgId的情况
             break;
index 7253a08..aac83f9 100644 (file)
@@ -31,6 +31,7 @@
 #include "traing/training_card/include/TrainingDataView.h"\r
 #include "traing/training_card/include/TrainingDetailView.h"\r
 \r
+#include "alipay/include/AlipayModel.h"\r
 namespace OHOS\r
 {\r
     enum Control_Card\r
index 5d12e98..ef64841 100644 (file)
@@ -10,6 +10,7 @@
 #include <thread>\r
 #include "traing/training_card/include/TraingCardPresenter.h"\r
 #include "traing/include/TraingModel.h"\r
+#include "custom_utils.h"\r
 \r
 extern "C" void do_cywee_service_check_msg(int cmd);\r
 \r
@@ -44,8 +45,8 @@ namespace OHOS
 \r
     void TraingCardPresenter::OnStart()\r
     {\r
-\r
         Presenter<TraingCardView>::OnStart();\r
+        ScreenAlwaysOnCtr(1); // 长亮屏\r
     }\r
 \r
     void TraingCardPresenter::OnPause(void)\r
@@ -64,6 +65,7 @@ namespace OHOS
     {\r
 \r
         Presenter<TraingCardView>::OnStop();\r
+        ScreenAlwaysOnCtr(0); // 长亮屏\r
     }\r
 \r
     bool TraingCardPresenter::OnDrag(UIView &view, const DragEvent &event)\r
@@ -117,6 +119,7 @@ namespace OHOS
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_TREADMILL);\r
             break;\r
         case ExerciseClass::OUTDOOR:\r
+            PRINT("111\r\n");\r
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING);\r
             break;\r
         case ExerciseClass::INDOOR:\r
@@ -126,7 +129,8 @@ namespace OHOS
             do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR);\r
             break;\r
         case ExerciseClass::FREE_TRAINING:\r
-            do_cywee_service_check_msg(SPORT_ACTIVE_MODE_FREE_TRAINING);\r
+            PRINT("555\r\n");\r
+            do_cywee_service_check_msg(CYWEE_SERVICE_CMD_FREE_TRAINING_MODE);\r
             break;\r
         default:\r
             break;\r
index 6604028..4801607 100644 (file)
@@ -15,6 +15,7 @@
 #include "font/ui_font.h"\r
 \r
 #include "traing/include/TraingModel.h"\r
+#include "custom_utils.h"\r
 \r
 extern "C"\r
 {\r
@@ -37,6 +38,8 @@ namespace OHOS
         InitTimer();\r
         // 设置运动状态为开始\r
         TraingModel::GetInstance()->SetSportState(ExerciseState::Start);\r
+        // 设置常亮\r
+        ScreenAlwaysOnCtr(true);\r
     }\r
 \r
     TraingCardView::~TraingCardView()\r
@@ -47,6 +50,8 @@ namespace OHOS
         DisableTimer();\r
         // 设置运动状态为结束\r
         TraingModel::GetInstance()->SetSportState(ExerciseState::End);\r
+        // 设置为正常\r
+        ScreenAlwaysOnCtr(false);\r
     }\r
 \r
     TraingCardView *TraingCardView::GetInstance()\r
index f09677f..08fe4be 100644 (file)
@@ -71,7 +71,7 @@ namespace OHOS
         Add(calorielabel);
 
         SetTouchable(true);
-        SetIntercept(true);
+        // SetIntercept(true);
     }
     /* DeInit:删除组件 */
     void TrainingDetailView::DeInit()