心率:优化主界面心率刷新慢 1353/1
authorCaisking <3449750381@qq.com>
Wed, 6 Nov 2024 07:13:47 +0000 (15:13 +0800)
committerCaisking <3449750381@qq.com>
Wed, 6 Nov 2024 07:13:47 +0000 (15:13 +0800)
code/sdk/application/wearable/fd230app/nativeui/heart_blood/health_service/health_service.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp

index 93168bb..62e88de 100644 (file)
@@ -449,9 +449,6 @@ bool HealthService::UpdateHealthData(const HeartRateData &data) {
   outFile.close();
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateHealthData Heart JSON is ok");
 
-  // 写入文件到当天历史数据
-  UpdateHourlyHeartRate(data.timestamp, data.Heart);
-
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateHourlyHeartRate is ok");
 
   if (!SaveDailyHeartRate()) // 进行心率历史数据文件存储
index 97ef649..4438ac4 100644 (file)
@@ -263,32 +263,41 @@ void HeartChartView::UpdateShowHeart() {
 }
 void HeartChartView::Update_data_Chart(int serialIndex) {
   if (heartchart == nullptr) {
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d",
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d",
                   serialIndex);
     return;
   }
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始更新曲线");
   /*清除原数据*/
   heartSerial->ClearData();
 
-  /*设置单个项*/
-  heartdata[serialIndex].x = serialIndex;
-  heartdata[serialIndex].y =
-      HealthService::GetInstance()->GetHourlyHeartRate(serialIndex);
-
+  /*更新所有项*/
+  for (int serialIndex = 0; serialIndex < 24; serialIndex++) {
+    heartdata[serialIndex].x = serialIndex;
+    heartdata[serialIndex].y =
+        HealthService::GetInstance()->GetHourlyHeartRate(serialIndex);
+     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"x:%d,y:%d\n", heartdata[serialIndex].x,heartdata[serialIndex].y);
+  }
   /*重新添加*/
   heartSerial->AddPoints(heartdata, 24);
   heartSerial->SetLineColor(Color::Red());
   heartSerial->SetFillColor(Color::Red());
   heartSerial->EnableGradient(true);
 
+  // heartSerial->Refresh();
+
   heartchart->AddDataSerial(heartSerial);
-  heartchart->Invalidate();
+
+  // heartchart->RefreshChart();
+
+  RootView::GetInstance()->Invalidate();
 
   //更新为刚刚检测
   SetLastHeart();
 
   //更新最大最小值
   SetDataTopAndBottom();
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"更新更新曲线完成");
 }
 void HeartChartView::CleanAllDataView() {
   if (heartchart == nullptr || maxheart_ == nullptr || minheart_ == nullptr) {
index 603e8b8..4c6ba59 100644 (file)
@@ -513,6 +513,8 @@ void HeartModel::Heart_Save() {
   HealthService::GetInstance()->UpdateHealthData(data);\r
 #else\r
   HealthService::GetInstance()->send_heart_save();\r
+  // 将更新曲线写到这里提前更新\r
+  HealthService::GetInstance()->UpdateHourlyHeartRate(timestamp_ms, currentheart);\r
 #endif\r
   // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "保存的心率数据:%d%ld",\r
   // currentheart,data.timestamp);\r
@@ -557,8 +559,10 @@ void HeartModel::handleHeartResult() {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "检测结果:成功");\r
     Heart_Save();\r
     // 更新曲线\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "准备更新UI");\r
     GraphicService::GetInstance()->PostGraphicEvent(\r
         std::bind(&HeartModel::Heart_Update_View, HeartModel::GetInstance()));\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "更新UI完成");\r
     break;\r
 \r
   case HeartResult::NOT_WORN:\r
index 6c7c5d8..0c8d3fc 100644 (file)
@@ -501,6 +501,8 @@ static ImageAnimatorInfo g_heartBeatImageInfo[HEARTBEAT_IMAGE_NUM] = {
             return;\r
         }\r
 \r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始更新曲线");\r
+\r
         /*清空原数据*/\r
         heartSerial->ClearData();\r
 \r
@@ -514,6 +516,8 @@ static ImageAnimatorInfo g_heartBeatImageInfo[HEARTBEAT_IMAGE_NUM] = {
 \r
         heartchart->AddDataSerial(heartSerial);\r
         heartchart->Invalidate();\r
+\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"更新曲线完成");\r
         // heartchart->RefreshChart();\r
     }\r
     void HeartRateView::CleanAllDataView()\r