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