소스 검색

优化一些提升ct时候的bug

KWD 3 달 전
부모
커밋
7130c89e3a
1개의 변경된 파일32개의 추가작업 그리고 3개의 파일을 삭제
  1. 32 3
      TeamAAS-VM/Core/Management.cs

+ 32 - 3
TeamAAS-VM/Core/Management.cs

@@ -2417,6 +2417,8 @@ namespace TeamAAS_VP.Core
                                         else
                                         {
                                             SendTaskMessage($"图像采集失败!{item.cameraIndex}: {item.procedureId}", MessageLevel.Alarm);
+                                            AllResult.Add(false);
+                                            ClearCountdown();
                                         }
                                     }
                                 });
@@ -2447,7 +2449,7 @@ namespace TeamAAS_VP.Core
 
                                     foreach (var item in AllResult)
                                     {
-                                        if (item)
+                                        if (!item)
                                         {
                                             resultFlog = false;
                                             break;
@@ -3695,8 +3697,6 @@ namespace TeamAAS_VP.Core
                     SendTaskMessage($"执行 AOI 视觉流程异常: {ex.Message}", MessageLevel.Alarm);
                 }
 
-                countdown.Signal(); // -1
-
                 //return (true, results.ToArray(), $"成功");
             }
             catch (Exception ex)
@@ -3704,6 +3704,35 @@ namespace TeamAAS_VP.Core
                 LogHelper.WriteLogError("处理固定相机检测拍照时出错", ex);
                 //return (false, null, $"处理固定相机检测拍照时出错");
             }
+            finally
+            {
+                try
+                {
+                    countdown?.Signal(); // -1
+                }
+                catch (InvalidOperationException ex)
+                {
+                    LogHelper.WriteLogError("AOI流程完成计数Signal失败", ex);
+                }
+            }
+        }
+
+        private void ClearCountdown()
+        {
+            try
+            {
+                var currentCountdown = countdown;
+                if (currentCountdown == null || currentCountdown.IsSet)
+                {
+                    return;
+                }
+
+                currentCountdown.Signal(currentCountdown.CurrentCount);
+            }
+            catch (InvalidOperationException ex)
+            {
+                LogHelper.WriteLogError("AOI流程计数清零失败", ex);
+            }
         }
 
         /// <summary>