Переглянути джерело

曲线加入阶段分割点, 及其它细节

guoqiang 2 роки тому
батько
коміт
d23de93d90
9 змінених файлів з 99 додано та 34 видалено
  1. 24 0
      CurveDisplay.qml
  2. 3 3
      PageMain.qml
  3. 17 1
      PageSelfTest.qml
  4. 2 2
      PageSetting.qml
  5. 6 0
      PageTest.qml
  6. 27 17
      RecoveryValve.qml
  7. 13 3
      ReportPicture.qml
  8. 6 6
      TestService.cpp
  9. 1 2
      ValveTest.pro.user

+ 24 - 0
CurveDisplay.qml

@@ -20,6 +20,14 @@ Item {
         axisyMax=max
     }
 
+    function scatter_add(x,y){
+        scatter.append(x, y)
+    }
+
+    function scatter_clear(){
+        scatter.clear()
+    }
+
     ChartView{
         id:charView
         anchors.fill: parent
@@ -47,6 +55,22 @@ Item {
             useOpenGL: false
         }
 
+        ScatterSeries {
+               id: scatter
+               name: "阶段分割点"
+               axisX: axisx
+               axisY: axisy
+
+               color: Qt.rgba(0,0,255,1)
+               borderColor: Qt.rgba(0,0,255,1)
+               borderWidth: 0
+               markerSize: 3
+
+               //pointLabelsVisible:true
+               //pointLabelsFormat:"@yPoint"
+
+           }
+
     }
 
 }

+ 3 - 3
PageMain.qml

@@ -434,7 +434,7 @@ Rectangle{
             var page_var = getTestPage(id)
             page_var.update_runstate(str1, str2)
         }else if(id === 0){
-            pagetest.show_selftestState(str1)
+            //pagetest.show_selftestState(str1)
             console.log("qmlProcessState pagetest ",id, str1 )
         }
 
@@ -467,7 +467,7 @@ Rectangle{
                 //pagetest.show_selftestResult(str)
             }
 
-            pagetest.show_selftestDetail(str)
+            //pagetest.show_selftestDetail(str)
         }
 
     }
@@ -485,7 +485,7 @@ Rectangle{
             }
 
         }else if(id === 0){
-            pagetest.selftestStop()
+            //pagetest.selftestStop()
             console.log("qmlProcessStop pagetest ",id )
         }
     }

+ 17 - 1
PageSelfTest.qml

@@ -24,6 +24,7 @@ Item {
     //property  string state
     property  string pressure:"0.00"
     property int  pressureCnt:0
+    property  int current_step:0
     property  int test_direction:0
     property  bool bStart: false
     property  real m_maxY: 0.0
@@ -117,7 +118,9 @@ Item {
 
     function curveDisplay_refresh(date){
         curveDisplay.spline.clear()
+        curveDisplay.scatter_clear()
         pressureCnt =0
+        current_step = 0;
 
         let table_name = 'data_'+date
         var records = SelfDB.readData(table_name)
@@ -177,7 +180,8 @@ Item {
                                              "threshold":item.threshold,
                                              "start":item.begin,
                                              "end":item.end,
-                                             "delta":item.delta,
+                                             "delta":item.delta.toFixed(2),
+                                             //"delta":item.delta,
                                              "result":item.passed === 1? "合格":"超标" })
                    index--
                    tmp_id++
@@ -246,6 +250,15 @@ Item {
             curveDisplay.spline.append(pressureCnt-1,number)
         }
 
+        if(current_step !== value.step){
+            current_step = value.step
+
+            if(current_step < 5 & current_step > 0){
+                curveDisplay.scatter_add(pressureCnt-1,number)
+            }
+
+        }
+
     }
 
 
@@ -254,6 +267,9 @@ Item {
         allArray = []
         curveDisplay.spline.clear()
         pressureCnt =0
+        current_step=0
+        curveDisplay.scatter_clear()
+
 
         pressure = "0.00"
 

+ 2 - 2
PageSetting.qml

@@ -633,7 +633,7 @@ Item{
                         width: 160
                         font.pixelSize: 24
                         anchors.left: prev_step.right;
-                        anchors.leftMargin: 40;
+                        anchors.leftMargin: 540;
                         anchors.bottom: parent.bottom;
                         anchors.bottomMargin: 10;
 
@@ -654,7 +654,7 @@ Item{
                     UserButton {
 
                         id: next_step;
-                        text: "开始检测";
+                        text: "进入检测";
                         //visible: false
                         font.pixelSize: 24
                         anchors.right: parent.right;

+ 6 - 0
PageTest.qml

@@ -23,6 +23,7 @@ Item{
         lcd_pressure.text = pressure_str;
     }
 
+    /*
     function show_selftestState(str){
         selfTest_State_str = str
     }
@@ -48,6 +49,8 @@ Item{
         }
     }
 
+    */
+
 
    // Component{
     //    id:componet
@@ -383,6 +386,7 @@ Item{
 
             }
 
+            /*
             DynamicGroupBox{
                 id:selftest
                 title: "系统自测"
@@ -483,6 +487,8 @@ Item{
 
             }
 
+            */
+
             }
 
 

+ 27 - 17
RecoveryValve.qml

@@ -33,6 +33,8 @@ Item{
     property  string pressure:"0.00"
 
     property int  pressureCnt:0
+    property int  current_step:0
+
     property  var  syskpArray: []
     property  var  valvekpArray: []
     property  var  allArray: []
@@ -77,19 +79,25 @@ Item{
 
         pressure = pressure_map.pressure
         add_record(pressure_map.pressure)
-        pressureDisplayInput(Number(pressure_map.pressure))
 
-        if(pressure_map.step === 3){  // keep pressure
+        var data = new Object
+        data.step = pressure_map.step
+        data.pressure = Number(pressure_map.pressure)
+
+        pressureDisplayInput(data)
+
+        //if(pressure_map.step === 3){  // keep pressure
             if(pressure_map.stage === 0){  //sys test
-                syskpArray.push(Number(pressure_map.pressure))
-                //console.debug("avans 1111 sys keep pressure: ", pressure_map.pressure)
+                //syskpArray.push(Number(pressure_map.pressure))
+                syskpArray.push(data)
 
             }else if(pressure_map.stage === 1){  //valve test
-                valvekpArray.push(Number(pressure_map.pressure))
+                //valvekpArray.push(Number(pressure_map.pressure))
+                valvekpArray.push(data)
             }
-        }
+        //}
 
-        allArray.push(Number(pressure_map.pressure))
+        allArray.push(data)
     }
 
     function add_record(str){
@@ -106,6 +114,8 @@ Item{
 
         curveDisplay.spline.clear()
         pressureCnt =0
+        current_step=0
+        curveDisplay.scatter_clear()
 
 
         resulttable.systemPressure_delta = "  ";
@@ -120,8 +130,9 @@ Item{
         statetable.state_str2 = "  ";
     }
 
-    function pressureDisplayInput(number){
+    function pressureDisplayInput(value){
         pressureCnt++
+        var number = value.pressure
 
         m_maxY = (m_maxY < number)? number:m_maxY
         m_minY = (m_minY > number)? number:m_minY
@@ -129,24 +140,23 @@ Item{
         curveDisplay.setRange_Y(m_minY-2.0, m_maxY+2.0)
 
         if(pressureCnt <= 180){
-            //dataArray.push(number)
             curveDisplay.spline.append(pressureCnt-1,number)
         }
         else{
 
             curveDisplay.setRange_X(0, pressureCnt-1)
             curveDisplay.spline.append(pressureCnt-1,number)
+        }
+
+        if(current_step !== value.step){
+            current_step = value.step
 
-            /*
-            dataArray.push(number)
-            dataArray.shift()
-            curveDisplay.spline.clear()
-            for(var i=0; i<61; i++){
-                curveDisplay.spline.append(i,dataArray[i])
+            if(current_step < 5 & current_step > 0){
+                curveDisplay.scatter_add(pressureCnt-1,number)
             }
-            */
+
         }
-        //gauge.value = number
+
     }
 
 

+ 13 - 3
ReportPicture.qml

@@ -19,10 +19,11 @@ Rectangle {
 
 
     function generatePicture(filename, dataArray){
+        var current_step = 0
 
         for(var i=0; i<dataArray.length;i++){
-            m_maxY = (m_maxY < dataArray[i])? dataArray[i]:m_maxY
-            m_minY = (m_minY > dataArray[i])? dataArray[i]:m_minY
+            m_maxY = (m_maxY < dataArray[i].pressure)? dataArray[i].pressure:m_maxY
+            m_minY = (m_minY > dataArray[i].pressure)? dataArray[i].pressure:m_minY
             //console.log("dataArray  ",i,dataArray[i])
         }
 
@@ -36,7 +37,16 @@ Rectangle {
 
         for(var j=0; j<dataArray.length; j++){
             //curveDisplay.charView.series(j).replace(j,dataArray[j])
-            curveDisplay_pic.spline.append(j,dataArray[j])
+            curveDisplay_pic.spline.append(j,dataArray[j].pressure)
+
+            if(current_step !== dataArray[j].step){
+                current_step = dataArray[j].step
+
+                if(current_step < 5 & current_step > 0){
+                    curveDisplay_pic.scatter_add(j, dataArray[j].pressure)
+                }
+
+            }
         }
 
         //dataSource.update(curveDisplay.charView.series(0),root.pointList)

+ 6 - 6
TestService.cpp

@@ -745,7 +745,7 @@ Ret_Value  TestService::PositivePressure_Add(const TestExpect& expect, bool bSav
                 if((BALLVALVE_STATUS_OPENEND == bvstatus) || (BALLVALVE_STATUS_CLOSEEND == bvstatus) ){
                     int ps_offset = bvoffset;
                     int cu_position = bvposition;
-                    if(abs(cu_position-ps_offset) <= 10){
+                    if(abs(cu_position-ps_offset) <= 12){
                         bv_ready=true;
                     }
                 }else{
@@ -1494,7 +1494,7 @@ void TestService::run()
                         //bool bPassed = true;
 
                         // 检测 5分钟都没超限,就是通过了
-                        double delta = 0;
+                        double delta = 0.0;
                         double start_value = 0.0;
                         double end_value = 0.0;
                         bool bPassed = true;
@@ -1771,7 +1771,7 @@ void TestService::run()
                              emit sigState(m_compartmentid+1, "保压", "");
 
                              // 检测 5分钟都没超限,就是通过了
-                             double delta = 0;
+                             double delta = 0.0;
                              double start_value = 0.0;
                              double end_value = 0.0;
                              bool bPassed = true;
@@ -1794,9 +1794,9 @@ void TestService::run()
                                  }
 
                                 // m_devinfo.m_testinfo.m_delta = delta;
-                                 int i_delta = delta*1000;
-                                 i_delta = (i_delta/PRESSURE_DIVISION_VALUE)*PRESSURE_DIVISION_VALUE;
-                                 m_devinfo.m_testinfo.m_delta  = i_delta/1000.0;
+                                 //int i_delta = delta*1000;
+                                 //i_delta = (i_delta/PRESSURE_DIVISION_VALUE)*PRESSURE_DIVISION_VALUE;
+                                 m_devinfo.m_testinfo.m_delta  = delta;
                                  m_devinfo.m_testinfo.m_passed = (bPassed == true?1:0);
 
                                  //QString delta_str = QString("%1").arg(delta, 4,'f',2,QLatin1Char('0'));

+ 1 - 2
ValveTest.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 8.0.0, 2023-07-03T18:13:46. -->
+<!-- Written by QtCreator 8.0.0, 2023-07-04T09:24:33. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -246,7 +246,6 @@
     <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
     <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
     <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
-    <value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/Code/QTapps/build-ValveTest-Desktop_Qt_5_15_2_MinGW_32_bit-Release</value>
    </valuemap>
    <value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
   </valuemap>