修复折线图越界bug
authorxue <2144439972@qq.com>
Thu, 17 Jul 2025 07:16:51 +0000 (15:16 +0800)
committerxue <2144439972@qq.com>
Thu, 17 Jul 2025 07:16:51 +0000 (15:16 +0800)
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPCalibrationErrorView.cpp
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPSecUnderCalibrationView.cpp
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPUnderCalibrationView.cpp
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectBeginView.cpp

index 0e0ee70..9d1b935 100644 (file)
@@ -86,13 +86,12 @@ namespace OHOS
     {
         
         InitLabelExt(titleLable, 145, 38, 165, 45, "titleLable", STR_CALIBRATION_FAILED, DEFAULT_VECTOR_FONT_FILENAME, 36);
-        InitLabel(resultremindLable, 64, 113, 337, 70, "resultremindLable", "校准失败,请重新校准", DEFAULT_VECTOR_FONT_FILENAME, 32);
+        InitLabelExt(resultremindLable, 64, 113, 337, 70, "resultremindLable", STR_CALIBRATION_ERROR_REMIND, DEFAULT_VECTOR_FONT_FILENAME, 32);
         resultremindLable->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
         resultremindLable->SetTextColor(Color::Red());
         /*初始化检测时间*/
         group->Add(titleLable);
         group->Add(resultremindLable);
-
         return true;
     }
     /***
index d6ee991..9b00cd2 100644 (file)
@@ -102,11 +102,18 @@ namespace OHOS
         if (bp_check_value_vectorSize == 0)
             return;
 
+#if 0  //正常数据
         for (int i = 0; i < bp_check_value_vectorSize; ++i)
-        {
-            // 获取数据
+        { // 获取数据
             testData[i].y = bp_check_value_vector[i];
         }
+#else     //测试数据
+        for (int i = 0; i < 100; ++i)
+        {
+            testData[i].y = rand() % (210 - 60) + 60;
+        }
+
+#endif
 
         // 更新图表数据
         dataSerial->ClearData();
@@ -139,8 +146,8 @@ namespace OHOS
         // 设置坐标轴为透明
         UIXAxis &uiChartXAxis = datachart->GetXAxis();
         UIYAxis &uiChartYAxis = datachart->GetYAxis();
-        uiChartXAxis.SetMarkNum(60);
-        uiChartXAxis.SetDataRange(0, 60);
+        uiChartXAxis.SetMarkNum(100);
+        uiChartXAxis.SetDataRange(0, 100);
         uiChartXAxis.SetLineColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0x00));
         uiChartYAxis.SetMarkNum(5);
         uiChartYAxis.SetDataRange(60, 210);
@@ -148,8 +155,8 @@ namespace OHOS
 
         // 设置数据曲线
         dataSerial = new UIChartDataSerial();
-        dataSerial->SetMaxDataCount(60);
-        dataSerial->AddPoints(testData, 60);
+        dataSerial->SetMaxDataCount(100);
+        dataSerial->AddPoints(testData, 100);
         dataSerial->SetFillColor(Color::GetColorFromRGBA(0x0b, 0xe4, 0x43, 0xff));
         dataSerial->SetLineColor(Color::GetColorFromRGBA(0xf1, 0x0a, 0x0a, 0xff));
         dataSerial->EnableGradient(false);
@@ -169,7 +176,7 @@ namespace OHOS
         remindLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
         remindLabel->SetTextColor(Color::Red());
         InitLabelExt(timeLabel, 165, 400, 300, 35, "timeLabel",STR_S, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", "90", DEFAULT_VECTOR_FONT_FILENAME, 100);
+        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", std::to_string(BP_CHECK_TIME_MAX).c_str(), DEFAULT_VECTOR_FONT_FILENAME, 100);
 
          InitChartView();
 
index 3aeb045..8dfdba8 100644 (file)
@@ -71,17 +71,17 @@ namespace OHOS
             delete timenumLabel;
             timenumLabel = nullptr;
         }
-         if(dataSerial != nullptr)
-            {
-                datachart->ClearDataSerial();
-                delete dataSerial;
-                dataSerial = nullptr;
-            }
-            if(datachart != nullptr)
-            {
-                delete datachart;
-                datachart = nullptr;
-            }
+        if (dataSerial != nullptr)
+        {
+            datachart->ClearDataSerial();
+            delete dataSerial;
+            dataSerial = nullptr;
+        }
+        if (datachart != nullptr)
+        {
+            delete datachart;
+            datachart = nullptr;
+        }
     }
     /* -------------------------------------------------------------------------- */
     void BPUnderCalibrationView::UpdateTimeText(int data)
@@ -91,22 +91,29 @@ namespace OHOS
             timenumLabel->SetText(std::to_string(data).c_str());
         }
     }
-        //更新曲线图
+    // 更新曲线图
     void BPUnderCalibrationView::UpdateChartData()
     {
         if (dataSerial == nullptr || datachart == nullptr)
             return;
-        
+
         std ::vector<uint8> bp_check_value_vector = BPModel::GetInstance()->GetBPCheckDataArray();
         size_t bp_check_value_vectorSize = bp_check_value_vector.size();
         if (bp_check_value_vectorSize == 0)
             return;
 
+#if 0  //正常数据
         for (int i = 0; i < bp_check_value_vectorSize; ++i)
-        {
-            // 获取数据
+        { // 获取数据
             testData[i].y = bp_check_value_vector[i];
         }
+#else     //测试数据
+        for (int i = 0; i < 100; ++i)
+        {
+            testData[i].y = rand() % (210 - 60) + 60;
+        }
+
+#endif
 
         // 更新图表数据
         dataSerial->ClearData();
@@ -139,8 +146,8 @@ namespace OHOS
         // 设置坐标轴为透明
         UIXAxis &uiChartXAxis = datachart->GetXAxis();
         UIYAxis &uiChartYAxis = datachart->GetYAxis();
-        uiChartXAxis.SetMarkNum(60);
-        uiChartXAxis.SetDataRange(0, 60);
+        uiChartXAxis.SetMarkNum(100);
+        uiChartXAxis.SetDataRange(0, 100);
         uiChartXAxis.SetLineColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0x00));
         uiChartYAxis.SetMarkNum(5);
         uiChartYAxis.SetDataRange(60, 210);
@@ -148,8 +155,8 @@ namespace OHOS
 
         // 设置数据曲线
         dataSerial = new UIChartDataSerial();
-        dataSerial->SetMaxDataCount(60);
-        dataSerial->AddPoints(testData, 60);
+        dataSerial->SetMaxDataCount(100);
+        dataSerial->AddPoints(testData, 100);
         dataSerial->SetFillColor(Color::GetColorFromRGBA(0x0b, 0xe4, 0x43, 0xff));
         dataSerial->SetLineColor(Color::GetColorFromRGBA(0xf1, 0x0a, 0x0a, 0xff));
         dataSerial->EnableGradient(false);
@@ -170,7 +177,7 @@ namespace OHOS
         remindLabel->SetTextColor(Color::Red());
         InitLabelExt(timeLabel, 165, 400, 300, 35, "timeLabel", STR_S, DEFAULT_VECTOR_FONT_FILENAME, 30);
 
-        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", "90", DEFAULT_VECTOR_FONT_FILENAME, 100);
+        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", std::to_string(BP_CHECK_TIME_MAX).c_str(), DEFAULT_VECTOR_FONT_FILENAME, 100);
 
         InitChartView();
 
@@ -213,20 +220,20 @@ namespace OHOS
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
             return nullptr;
         }
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BPUnderCalibrationView::InitView(1)");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BPUnderCalibrationView::InitView(1)");
         group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         if (!Initbackground())
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
             return nullptr;
         };
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BPUnderCalibrationView::InitView(2)");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BPUnderCalibrationView::InitView(2)");
         if (!InitLable())
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitLable error!");
             return nullptr;
         };
-        
+
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool BPUnderCalibrationView::InitView()");
 
         return group;
index 5822621..ddbaa61 100644 (file)
@@ -99,17 +99,24 @@ namespace OHOS
     {
         if (dataSerial == nullptr || datachart == nullptr)
             return;
-        
+
         std ::vector<uint8> bp_check_value_vector = BPModel::GetInstance()->GetBPCheckDataArray();
         size_t bp_check_value_vectorSize = bp_check_value_vector.size();
         if (bp_check_value_vectorSize == 0)
             return;
 
+#if 0  //正常数据
         for (int i = 0; i < bp_check_value_vectorSize; ++i)
-        {
-            // 获取数据
+        { // 获取数据
             testData[i].y = bp_check_value_vector[i];
         }
+#else     //测试数据
+        for (int i = 0; i < 100; ++i)
+        {
+            testData[i].y = rand() % (210 - 60) + 60;
+        }
+
+#endif
 
         // 更新图表数据
         dataSerial->ClearData();
@@ -123,7 +130,7 @@ namespace OHOS
         /*
            测试数据 100条
        */
-        for (int i = 0; i < 60; i++)
+        for (int i = 0; i < 100; i++)
         {
             testData[i].x = i;
             testData[i].y = 100;
@@ -142,8 +149,8 @@ namespace OHOS
         // 设置坐标轴为透明
         UIXAxis &uiChartXAxis = datachart->GetXAxis();
         UIYAxis &uiChartYAxis = datachart->GetYAxis();
-        uiChartXAxis.SetMarkNum(60);
-        uiChartXAxis.SetDataRange(0, 60);
+        uiChartXAxis.SetMarkNum(100);
+        uiChartXAxis.SetDataRange(0, 100);
         uiChartXAxis.SetLineColor(Color::GetColorFromRGBA(0x00, 0x00, 0x00, 0x00));
         uiChartYAxis.SetMarkNum(5);
         uiChartYAxis.SetDataRange(60, 210);
@@ -151,8 +158,8 @@ namespace OHOS
 
         // 设置数据曲线
         dataSerial = new UIChartDataSerial();
-        dataSerial->SetMaxDataCount(60);
-        dataSerial->AddPoints(testData, 60);
+        dataSerial->SetMaxDataCount(100);
+        dataSerial->AddPoints(testData, 100);
         dataSerial->SetFillColor(Color::GetColorFromRGBA(0x0b, 0xe4, 0x43, 0xff));
         dataSerial->SetLineColor(Color::GetColorFromRGBA(0xf1, 0x0a, 0x0a, 0xff));
         dataSerial->EnableGradient(false);
@@ -173,7 +180,7 @@ namespace OHOS
         remindLabel->SetTextColor(Color::Red());
         InitLabelExt(timeLabel, 165, 400, 300, 35, "timeLabel", STR_S, DEFAULT_VECTOR_FONT_FILENAME, 30);
 
-        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", "90", DEFAULT_VECTOR_FONT_FILENAME, 100);
+        InitUILabel(timenumLabel, 133, 300, 200, 200, "timenumLabel", std::to_string(BP_CHECK_TIME_MAX).c_str(), DEFAULT_VECTOR_FONT_FILENAME, 100);
         
         InitChartView();