From ebcc1d53f14112363bbf539bcaf0202aadcdc9d7 Mon Sep 17 00:00:00 2001
From: C3032 <1057644574@qq.com>
Date: 星期一, 13 四月 2026 12:58:58 +0800
Subject: [PATCH] 2D取图计数功能完成

---
 LB_VisionProcesses/Cameras/ICamera.cs |   99 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 97 insertions(+), 2 deletions(-)

diff --git a/LB_VisionProcesses/Cameras/ICamera.cs b/LB_VisionProcesses/Cameras/ICamera.cs
index 055a5e5..ef64a79 100644
--- a/LB_VisionProcesses/Cameras/ICamera.cs
+++ b/LB_VisionProcesses/Cameras/ICamera.cs
@@ -8,8 +8,45 @@
 {
     public class Total
     {
+        /// <summary>
+        /// 鍥惧儚璁℃暟
+        /// </summary>
         public int iImageCount { get; set; } = 0;
+
+        /// <summary>
+        /// 鎵弿璁℃暟
+        /// </summary>
         public int iScanCount { get; set; } = 0;
+
+        /// <summary>
+        /// 瀹屾暣杞儙璁℃暟
+        /// </summary>
+        public int TyreCount { get; set; } = 0;
+
+        /// <summary>
+        /// 姣忓紶杞儙鎵�闇�鍥惧儚鏁帮紙2D鐩告満浣跨敤锛岄粯璁�1琛ㄧず3D鐩告満锛�
+        /// </summary>
+        public int ImagesPerTyre { get; set; } = 1;
+
+        /// <summary>
+        /// 褰撳墠杞儙鐨勫浘鍍忓簭鍙凤紙0~ImagesPerTyre-1锛�
+        /// </summary>
+        public int CurrentImageIndex { get; set; } = 0;
+
+        /// <summary>
+        /// 杞儙OK璁℃暟
+        /// </summary>
+        public int TyreOK { get; set; } = 0;
+
+        /// <summary>
+        /// 杞儙NG璁℃暟
+        /// </summary>
+        public int TyreNG { get; set; } = 0;
+
+        /// <summary>
+        /// 褰撳墠杞儙ID
+        /// </summary>
+        public int CurrentTyreID { get; set; } = 1;
 
         public Total() { }
 
@@ -19,10 +56,61 @@
             this.iScanCount = iScanCount;
         }
 
+        /// <summary>
+        /// 娣诲姞鍥惧儚骞舵洿鏂拌疆鑳庤鏁�
+        /// </summary>
+        /// <param name="imageResult">鍥惧儚妫�娴嬬粨鏋�</param>
+        /// <returns>鏄惁瀹屾垚涓�涓疆鑳�</returns>
+        public bool AddImageResult(bool imageResult)
+        {
+            iImageCount++;
+            CurrentImageIndex++;
+
+            // 妫�鏌ユ槸鍚﹀畬鎴愪竴涓疆鑳�
+            if (CurrentImageIndex >= ImagesPerTyre)
+            {
+                TyreCount++;
+                CurrentImageIndex = 0;
+
+                // 鏇存柊杞儙OK/NG璁℃暟锛坣寮犱腑浠讳竴NG鍒欐暣鑳嶯G锛�
+                if (imageResult)
+                    TyreOK++;
+                else
+                    TyreNG++;
+
+                CurrentTyreID++;
+                return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// 鑾峰彇杞儙鑹搧鐜�
+        /// </summary>
+        public double TyreRateOK => TyreCount > 0 ? (TyreOK / (double)TyreCount) * 100 : 0;
+
         public void Clear()
         {
             iImageCount = 0;
             iScanCount = 0;
+            TyreCount = 0;
+            CurrentImageIndex = 0;
+            TyreOK = 0;
+            TyreNG = 0;
+            CurrentTyreID = 1;
+        }
+
+        /// <summary>
+        /// 閲嶇疆杞儙璁℃暟锛堜繚鐣橧magesPerTyre閰嶇疆锛�
+        /// </summary>
+        public void ResetTyreCount()
+        {
+            TyreCount = 0;
+            CurrentImageIndex = 0;
+            TyreOK = 0;
+            TyreNG = 0;
+            CurrentTyreID = 1;
         }
     }
     public interface ICamera : IDisposable
@@ -63,7 +151,7 @@
         bool StartWith_HardTriggerModel(TriggerSource hardtriggeritem = TriggerSource.Line0);
 
         /// <summary>
-        /// 绛夊緟纭Е鍙戣幏鍙栧浘鍍�
+        /// 绛夊緟杞�/纭Е鍙戣幏鍙栧浘鍍�
         /// </summary>
         /// <param name="bitmap"></param>
         /// <param name="outtime"></param>
@@ -79,11 +167,18 @@
         bool GetImageWithSoftTrigger(out Bitmap bitmap, int outtime = 3000);
 
         /// <summary>
-        /// 杞Е鍙�
+        /// 杞Е鍙戝崟娆�
         /// </summary>
         /// <returns></returns>
         bool SoftTrigger();
 
+        /// <summary>
+        /// 杩炵画閲囬泦妯″紡
+        /// </summary>
+        /// <returns></returns>
+        bool StartContinuousGrab();
+
+
         #endregion
 
         #region SettingConfig

--
Gitblit v1.9.3