|
|
@@ -33,6 +33,7 @@ using TeamAAS_VP.Core.Cameras;
|
|
|
using TeamAAS_VP.Data;
|
|
|
using TeamAAS_VP.Enums;
|
|
|
using TeamAAS_VP.Events;
|
|
|
+using TeamAAS_VP.Helpers;
|
|
|
using TeamAAS_VP.Interfaces;
|
|
|
using TeamAAS_VP.Models;
|
|
|
using TeamAAS_VP.Models.Calibration;
|
|
|
@@ -1222,7 +1223,7 @@ namespace TeamAAS_VP.Services
|
|
|
SendTaskMessage(Lang.开始执行视觉流程.Replace("{0}", $"{i + 1}").Replace("{1}", procedure.Name), MessageLevel.Info);
|
|
|
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhoto(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhotoAsync(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -1411,7 +1412,7 @@ namespace TeamAAS_VP.Services
|
|
|
}
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
LogHelper.WriteLogInfo("开始执行相机拍照并运行视觉工具");
|
|
|
- bool visionSucceed = ExecutePhoto(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhotoAsync(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -1489,9 +1490,8 @@ namespace TeamAAS_VP.Services
|
|
|
/// 执行翻转相机拍照流程运行
|
|
|
/// </summary>
|
|
|
/// <param name="procedure"></param>
|
|
|
- /// <param name="outputCollection"></param>
|
|
|
/// <returns></returns>
|
|
|
- public bool ExecutePhoto(ProcedureModel procedure, out CogToolBlockTerminalCollection outputCollection)
|
|
|
+ public async Task<(bool Success, CogToolBlockTerminalCollection OutputCollection)> ExecutePhotoAsync(ProcedureModel procedure)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
@@ -1515,20 +1515,19 @@ namespace TeamAAS_VP.Services
|
|
|
{
|
|
|
|
|
|
SendTaskMessage(Lang.图像采集失败, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
procedure.ToolBlock.Inputs["InputImage"].Value = image;
|
|
|
LogHelper.WriteLogInfo(string.Format("采集图像完成用时0ms", (DateTime.Now - nowtime).Milliseconds));
|
|
|
|
|
|
- // 3. 运行视觉工具
|
|
|
+ // 3. 运行视觉工具(在独立 STA 线程中异步执行,避免阻塞 UI 线程)
|
|
|
LogHelper.WriteLogInfo("开始运行视觉工具");
|
|
|
- procedure.ToolBlock.Run(); //运行ToolBlock
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
if (procedure.ToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Info);
|
|
|
- outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
DatabaseHelper.AddCameraRecords(_productService.GetCurrentProduct().Name, procedure.Name, outputCollection);
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -1576,13 +1575,12 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = true
|
|
|
});
|
|
|
- return true;
|
|
|
+ return (true, outputCollection);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行出错耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Error);
|
|
|
SendTaskMessage(procedure.ToolBlock.RunStatus.Message, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
|
|
|
//获取图片存储的图片文件名
|
|
|
string imgName = string.Empty;
|
|
|
@@ -1619,15 +1617,14 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = true
|
|
|
});
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
SendTaskMessage(ex.Message, MessageLevel.Error);
|
|
|
LogHelper.WriteLogError("执行相机取图并执行视觉工具组时出错", ex);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1635,7 +1632,7 @@ namespace TeamAAS_VP.Services
|
|
|
/// 执行相机拍照并运行 ToolBlock,返回是否成功并通过 out 参数返回 Outputs。
|
|
|
/// 该方法会发布 RenderUpdateNotification 以更新 UI。
|
|
|
/// </summary>
|
|
|
- public bool ExecutePhoto(ProcedureModel procedure, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection)
|
|
|
+ public async Task<(bool Success, CogToolBlockTerminalCollection OutputCollection)> ExecutePhotoAsync(ProcedureModel procedure, Dictionary<string, string> InputTerminal)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
@@ -1660,8 +1657,7 @@ namespace TeamAAS_VP.Services
|
|
|
{
|
|
|
|
|
|
SendTaskMessage(Lang.图像采集失败, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
procedure.ToolBlock.Inputs["InputImage"].Value = image;
|
|
|
LogHelper.WriteLogInfo($"采集图像完成;用时:{(DateTime.Now - nowtime).Milliseconds}ms");
|
|
|
@@ -1685,14 +1681,14 @@ namespace TeamAAS_VP.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 3. 运行视觉工具
|
|
|
+ // 3. 运行视觉工具(在独立 STA 线程中异步执行,避免阻塞 UI 线程)
|
|
|
LogHelper.WriteLogInfo("开始运行视觉工具");
|
|
|
- procedure.ToolBlock.Run(); //运行ToolBlock
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
if (procedure.ToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Info);
|
|
|
- outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
DatabaseHelper.AddCameraRecords(_productService.GetCurrentProduct().Name, procedure.Name, outputCollection);
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -1740,13 +1736,12 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = true
|
|
|
});
|
|
|
- return true;
|
|
|
+ return (true, outputCollection);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行出错耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Error);
|
|
|
SendTaskMessage(procedure.ToolBlock.RunStatus.Message, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
|
|
|
//获取图片存储的图片文件名
|
|
|
string imgName = string.Empty;
|
|
|
@@ -1783,15 +1778,14 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = true
|
|
|
});
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
SendTaskMessage(ex.Message, MessageLevel.Error);
|
|
|
LogHelper.WriteLogError("执行相机取图并执行视觉工具组时出错!", ex);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1800,7 +1794,7 @@ namespace TeamAAS_VP.Services
|
|
|
/// 执行相机拍照并运行 ToolBlock,返回是否成功并通过 out 参数返回 Outputs。
|
|
|
/// 该方法会发布 RenderUpdateNotification 以更新 UI。
|
|
|
/// </summary>
|
|
|
- public bool ExecutePhoto2(ProcedureModel procedure, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection)
|
|
|
+ public async Task<(bool Success, CogToolBlockTerminalCollection OutputCollection)> ExecutePhoto2Async(ProcedureModel procedure, Dictionary<string, string> InputTerminal)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
@@ -1825,8 +1819,7 @@ namespace TeamAAS_VP.Services
|
|
|
{
|
|
|
|
|
|
SendTaskMessage(Lang.图像采集失败, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
procedure.ToolBlock.Inputs["InputImage"].Value = image;
|
|
|
LogHelper.WriteLogInfo($"采集图像完成;用时:{(DateTime.Now - nowtime).Milliseconds}ms");
|
|
|
@@ -1851,14 +1844,14 @@ namespace TeamAAS_VP.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 3. 运行视觉工具
|
|
|
+ // 3. 运行视觉工具(在独立 STA 线程中异步执行,避免阻塞 UI 线程)
|
|
|
LogHelper.WriteLogInfo("开始运行视觉工具");
|
|
|
- procedure.ToolBlock.Run(); //运行ToolBlock
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
if (procedure.ToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Info);
|
|
|
- outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
DatabaseHelper.AddCameraRecords(_productService.GetCurrentProduct().Name, procedure.Name, outputCollection);
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -1905,13 +1898,12 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = false
|
|
|
});
|
|
|
- return true;
|
|
|
+ return (true, outputCollection);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行出错耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Error);
|
|
|
SendTaskMessage(procedure.ToolBlock.RunStatus.Message, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
|
|
|
//获取图片存储的图片文件名
|
|
|
string imgName = string.Empty;
|
|
|
@@ -1947,22 +1939,21 @@ namespace TeamAAS_VP.Services
|
|
|
ImageFileName = imgName,
|
|
|
Is3DModel = false
|
|
|
});
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
SendTaskMessage(ex.Message, MessageLevel.Error);
|
|
|
LogHelper.WriteLogError("执行相机取图并执行视觉工具组时出错!", ex);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 执行相机拍照并运行 ToolBlock,返回是否成功并通过 out 参数返回 Outputs。
|
|
|
/// 该方法会发布 RenderUpdateNotification 以更新 UI。
|
|
|
/// </summary>
|
|
|
- public bool ExecutePhoto(ProcedureModel procedure, ICogImage[] imges, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection, bool is3dmodel, float confThreshold = 0.25f, float iouThreshold = 0.45f)
|
|
|
+ public async Task<(bool Success, CogToolBlockTerminalCollection OutputCollection)> ExecutePhotoAsync(ProcedureModel procedure, ICogImage[] imges, Dictionary<string, string> InputTerminal, bool is3dmodel, float confThreshold = 0.25f, float iouThreshold = 0.45f)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
@@ -2117,9 +2108,10 @@ namespace TeamAAS_VP.Services
|
|
|
// 如果你希望模板也拿 YOLO 画框图,就用 yoloColorCogImage
|
|
|
procedure.ToolBlock.Inputs["InputImage"].Value = yoloColorCogImage;
|
|
|
|
|
|
- procedure.ToolBlock.Run();
|
|
|
+ // 在独立 STA 线程中异步执行 ToolBlock(AI 推理路径)
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
- outputCollection = procedure.ToolBlock.Outputs;
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs;
|
|
|
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -2197,18 +2189,18 @@ namespace TeamAAS_VP.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return true;
|
|
|
+ return (true, null);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- // 3. 运行视觉工具
|
|
|
+ // 3. 运行视觉工具(在独立 STA 线程中异步执行,避免阻塞 UI 线程)
|
|
|
LogHelper.WriteLogInfo("开始运行视觉工具");
|
|
|
- procedure.ToolBlock.Run(); //运行ToolBlock
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
if (procedure.ToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Info);
|
|
|
- outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
DatabaseHelper.AddCameraRecords(_productService.GetCurrentProduct().Name, procedure.Name, outputCollection);
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -2375,13 +2367,13 @@ namespace TeamAAS_VP.Services
|
|
|
|
|
|
});
|
|
|
}
|
|
|
- return true;
|
|
|
+ return (true, outputCollection);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行出错耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Error);
|
|
|
SendTaskMessage(procedure.ToolBlock.RunStatus.Message, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs;
|
|
|
|
|
|
//获取图片存储的图片文件名
|
|
|
string imgName = string.Empty;
|
|
|
@@ -2484,7 +2476,7 @@ namespace TeamAAS_VP.Services
|
|
|
Is3DModel = is3dmodel
|
|
|
});
|
|
|
}
|
|
|
- return false;
|
|
|
+ return (false, outputCollection);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2493,8 +2485,7 @@ namespace TeamAAS_VP.Services
|
|
|
{
|
|
|
SendTaskMessage(ex.Message, MessageLevel.Error);
|
|
|
LogHelper.WriteLogError("执行相机取图并执行视觉工具组时出错!", ex);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2776,7 +2767,7 @@ namespace TeamAAS_VP.Services
|
|
|
SendTaskMessage(Lang.开始执行视觉流程.Replace("{0}", $"{i + 1}").Replace("{1}", procedure.Name), MessageLevel.Info);
|
|
|
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhoto(procedure, imges, InputTerminal, out CogToolBlockTerminalCollection outputCollection, is3dmodel, confThreshold, iouThreshold);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhotoAsync(procedure, imges, InputTerminal, is3dmodel, confThreshold, iouThreshold);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -2856,7 +2847,7 @@ namespace TeamAAS_VP.Services
|
|
|
SendTaskMessage(Lang.开始执行视觉流程.Replace("{0}", $"{i + 1}").Replace("{1}", procedure.Name), MessageLevel.Info);
|
|
|
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhoto2(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhoto2Async(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -2928,10 +2919,8 @@ namespace TeamAAS_VP.Services
|
|
|
/// <param name="outImage"></param>
|
|
|
/// <param name="outGraphicCollection"></param>
|
|
|
/// <returns></returns>
|
|
|
- public bool ExecutePhotoEx(ProcedureModel procedure, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection, out ICogImage outImage, out CogGraphicCollection outGraphicCollection)
|
|
|
+ public async Task<(bool Success, CogToolBlockTerminalCollection OutputCollection, ICogImage OutImage, CogGraphicCollection OutGraphicCollection)> ExecutePhotoExAsync(ProcedureModel procedure, Dictionary<string, string> InputTerminal)
|
|
|
{
|
|
|
- outImage = null;
|
|
|
- outGraphicCollection = null;
|
|
|
try
|
|
|
{
|
|
|
|
|
|
@@ -2954,10 +2943,8 @@ namespace TeamAAS_VP.Services
|
|
|
{
|
|
|
|
|
|
SendTaskMessage(Lang.图像采集失败, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null, null, null);
|
|
|
}
|
|
|
- outImage = image;
|
|
|
procedure.ToolBlock.Inputs["InputImage"].Value = image;
|
|
|
LogHelper.WriteLogInfo($"采集图像完成;用时:{(DateTime.Now - nowtime).Milliseconds}ms");
|
|
|
|
|
|
@@ -2980,14 +2967,14 @@ namespace TeamAAS_VP.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 3. 运行视觉工具
|
|
|
+ // 3. 运行视觉工具(在独立 STA 线程中异步执行,避免阻塞 UI 线程)
|
|
|
LogHelper.WriteLogInfo("开始运行视觉工具");
|
|
|
- procedure.ToolBlock.Run(); //运行ToolBlock
|
|
|
+ await VisionProHelper.RunToolBlockAsync(procedure.ToolBlock);
|
|
|
|
|
|
if (procedure.ToolBlock.RunStatus.Result == CogToolResultConstants.Accept)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Info);
|
|
|
- outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs; //获取输出终端集合
|
|
|
DatabaseHelper.AddCameraRecords(_productService.GetCurrentProduct().Name, procedure.Name, outputCollection);
|
|
|
ICogRecord record = null;
|
|
|
foreach (CogToolBlockTerminal item in outputCollection)
|
|
|
@@ -2995,24 +2982,23 @@ namespace TeamAAS_VP.Services
|
|
|
if (item.Value is ICogRecord)
|
|
|
record = item.Value as ICogRecord;
|
|
|
}
|
|
|
- outGraphicCollection = outputCollection["Graphic"].Value as CogGraphicCollection;
|
|
|
- return true;
|
|
|
+ var outGraphicCollection = outputCollection["Graphic"].Value as CogGraphicCollection;
|
|
|
+ return (true, outputCollection, image, outGraphicCollection);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉流程执行出错耗时.Replace("{0}", procedure.Name).Replace("{1}", $"{procedure.ToolBlock.RunStatus.ProcessingTime:F1}"), MessageLevel.Error);
|
|
|
SendTaskMessage(procedure.ToolBlock.RunStatus.Message, MessageLevel.Error);
|
|
|
- outputCollection = null;
|
|
|
- outGraphicCollection = outputCollection["Graphic"].Value as CogGraphicCollection;
|
|
|
- return false;
|
|
|
+ var outputCollection = procedure.ToolBlock.Outputs;
|
|
|
+ var outGraphicCollection = outputCollection["Graphic"].Value as CogGraphicCollection;
|
|
|
+ return (false, outputCollection, image, outGraphicCollection);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
SendTaskMessage(ex.Message, MessageLevel.Error);
|
|
|
LogHelper.WriteLogError("执行相机取图并执行视觉工具组时出错!", ex);
|
|
|
- outputCollection = null;
|
|
|
- return false;
|
|
|
+ return (false, null, null, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -3037,7 +3023,7 @@ namespace TeamAAS_VP.Services
|
|
|
SendTaskMessage(Lang.开始执行视觉流程.Replace("{0}", $"{i + 1}").Replace("{1}", procedure.Name), MessageLevel.Info);
|
|
|
|
|
|
//1.执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhoto(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhotoAsync(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -3120,7 +3106,7 @@ namespace TeamAAS_VP.Services
|
|
|
SendTaskMessage(Lang.开始执行视觉流程.Replace("{0}", $"{i + 1}").Replace("{1}", procedure.Name), MessageLevel.Info);
|
|
|
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhoto(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection);
|
|
|
+ var (visionSucceed, outputCollection) = await ExecutePhotoAsync(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|
|
|
@@ -3213,7 +3199,9 @@ namespace TeamAAS_VP.Services
|
|
|
|
|
|
|
|
|
// 1. 执行相机拍照并运行视觉工具
|
|
|
- bool visionSucceed = ExecutePhotoEx(procedure, InputTerminal, out CogToolBlockTerminalCollection outputCollection, out outImage, out outGraphicCollection);
|
|
|
+ bool visionSucceed;
|
|
|
+ CogToolBlockTerminalCollection outputCollection;
|
|
|
+ (visionSucceed, outputCollection, outImage, outGraphicCollection) = await ExecutePhotoExAsync(procedure, InputTerminal);
|
|
|
if (!visionSucceed)
|
|
|
{
|
|
|
SendTaskMessage(Lang.视觉任务执行失败, MessageLevel.Error);
|