|
@@ -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 = "通过";
|