Bladeren bron

修改自动测试

ltwork 1 jaar geleden
bovenliggende
commit
0202cfe9d0

+ 1 - 1
BlankApp1/BlankApp1/App.config

@@ -3,7 +3,7 @@
 	<appSettings>
 		<!--连接字符串 SQL Server-->
 		<add key="MySql" value="Data Source=localhost;Database=plc_point_db;User Id='root';Password='521125';port=3306;charset=utf8mb4;"/>
-		<add key="PLCIp" value="192.168.250.1"/>
+		<add key="PLCIp" value="192.168.0.20"/>
 		<add key="PLCPort" value="9600"/>
 
 	</appSettings>

+ 46 - 20
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -527,7 +527,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 var basicSchDtls = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.OrderBy(x => x.scheme_dtl_id);
                 foreach (var item in basicSchDtls)
                 {
-                   
+                    
                     if (cancellationToken.IsCancellationRequested)
                     {
                         return;
@@ -555,16 +555,24 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     }
                     _logger.LogInformation($"开始自动测试。方案名{ScheduleName},测试项{TestName}");
                     await ExecTest();
+                 
                     _logger.LogInformation($"自动测试完成。方案名{ScheduleName},测试项{TestName}");
-                    //listbox 的index+1
-                    SelectItemIndex++;
-                    //最后一项必须要测试
-                    if (globalSchDetailId == basicSchDtls.Max(x => x.scheme_dtl_id))
+                
+                   
+                    await Task.Delay(2000);
+                    System.Windows.Application.Current.Dispatcher.Invoke((delegate
                     {
+                        //listbox 的index+1
+                        SelectItemIndex++;
+                    }));
+                    
+                    //最后一项必须要测试
+                    //if (globalSchDetailId == basicSchDtls.Max(x => x.scheme_dtl_id))
+                    //{
                         
-                        MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
+                    //    MessageBox.Show("已是此测试方案最后一个测试项!", "确认", MessageBoxButton.OK, MessageBoxImage.Information);
 
-                    }
+                    //}
 
                 }
             }, cancellationToken);//绑定令牌到多线程
@@ -584,15 +592,14 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
             //输入项
             bool isAction = TestActionMethod();
-
-
+          
             //输出项
             bool isJudgeResult = await TestJudgementMethod();
             //增加测试记录
             AddDtltRecord(globalSchDetailId);
             //下一项
             StepIndex = 0;
-            await Task.Delay(2000);
+        
 
         }
         /// <summary>
@@ -820,8 +827,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
 
                         bool writeResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Bit, plcValue);
                         ///实时值记录
-                        item.RealValue = plcValue;
-                        item.TestTime = DateTime.Now;
+                        System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                        {
+                            ///实时值记录
+                            item.RealValue = plcValue;
+                            item.TestTime = DateTime.Now;
+                        }));
+                       
                         if (writeResult)
                         {
                             ///单个测试项通过
@@ -838,8 +850,15 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                        
                         bool writeWrordResult = PLCCom.GetInstance().WritePlcObject(plcAddress, VarType.Word, plcValue);
                         ///实时值记录
-                        item.RealValue = plcValue;
-                        item.TestTime = DateTime.Now;
+                        ///
+                        System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                        {
+                            ///实时值记录
+                            item.RealValue = plcValue;
+                            item.TestTime = DateTime.Now;
+                        }));
+                        //item.RealValue = plcValue;
+                        //item.TestTime = DateTime.Now;
                         if (writeWrordResult)
                         {
                             ///单个测试项通过
@@ -1014,12 +1033,19 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                         });
                         //可能有多个条件判定的,第二次时间到了直接跳出延时,直接读取,不用在延时20s
                         readResult = PLCCom.GetInstance().ReadPlcObject(plcAddress, VarType.Bit);
-                        ProVisibility = Visibility.Hidden;
-                      
-                      
-                        ///实时值记录
-                        item.RealValue = readResult;
-                        item.TestTime = DateTime.Now;
+                        System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                        {
+                            ProVisibility = Visibility.Hidden;
+                        }));
+
+                        System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                        {
+                            ///实时值记录
+                            item.RealValue = readResult;
+                            item.TestTime = DateTime.Now;
+                        }));
+
+                        
                         if (readResult.Trim() == plcValue?.Trim())
                         {
                             item.TestResult = "通过";