From 45b3ac86565d0104812161e1a8131a6d6849b6df Mon Sep 17 00:00:00 2001
From: C3032 <C3032@BC3032>
Date: 星期二, 23 十二月 2025 16:15:33 +0800
Subject: [PATCH] Merge branch 'feature/HR_Camera'
---
LB_VisionProcesses/Cameras/HRCamera.cs | 31 +++++++++++++++++++++----------
1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/LB_VisionProcesses/Cameras/HRCamera.cs b/LB_VisionProcesses/Cameras/HRCamera.cs
index 8c12123..f707aca 100644
--- a/LB_VisionProcesses/Cameras/HRCamera.cs
+++ b/LB_VisionProcesses/Cameras/HRCamera.cs
@@ -858,29 +858,38 @@
/// </summary>
private void GrabThreadProc()
{
- IMVDefine.IMV_Frame frame = new IMVDefine.IMV_Frame();
-
while (_threadRunning)
{
+ IMVDefine.IMV_Frame frame = new IMVDefine.IMV_Frame();
try
{
// 鑾峰彇鍥惧儚甯�
- int result = _camera.IMV_GetFrame(ref frame, 100);
+ int result = _camera.IMV_GetFrame(ref frame, 1000);
if (result == IMVDefine.IMV_OK)
{
// 澶勭悊鍥惧儚甯�
ProcessFrame(frame);
}
- else if (result != 0x80000001) // 瓒呮椂閿欒浠g爜
+ else
{
- // 闈炶秴鏃堕敊璇�
- System.Diagnostics.Debug.WriteLine($"鑾峰彇鍥惧儚甯уけ璐ワ紝閿欒鐮侊細{result}");
+ // 鍗充娇鑾峰彇澶辫触锛屼篃灏濊瘯閲婃斁甯э紝闃叉SDK鍐呴儴缂撳瓨娉勯湶
+ // 娉ㄦ剰锛歠rame鏄瘡娆℃柊寤虹殑锛屽鏋淕etFrame娌″~鍏咃紝杩欓噷閲婃斁搴旇鏄畨鍏ㄧ殑锛堣SDK瀹炵幇鑰屽畾锛�
+ var tempFrame = frame;
+ _camera.IMV_ReleaseFrame(ref tempFrame);
+
+ if ((uint)result != 0x80000001 && result != -119 && result != -102) // 瓒呮椂閿欒浠g爜
+ {
+ // 闈炶秴鏃堕敊璇�
+ System.Diagnostics.Debug.WriteLine($"鑾峰彇鍥惧儚甯уけ璐ワ紝閿欒鐮侊細{result}");
+ Thread.Sleep(10); // 鍑洪敊鏃剁◢浣滅瓑寰�
+ }
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"閲囬泦绾跨▼寮傚父锛歿ex.Message}");
+ Thread.Sleep(10);
}
Thread.Sleep(1);
@@ -907,15 +916,17 @@
// 鏇存柊鍥炶皟鍥惧儚
CallBackImg = bitmap;
}
-
- // 閲婃斁甯�
- var tempFrame = frame;
- _camera.IMV_ReleaseFrame(ref tempFrame);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"澶勭悊鍥惧儚甯уけ璐ワ細{ex.Message}");
}
+ finally
+ {
+ // 纭繚鏃犺濡備綍閮介噴鏀惧抚锛岄槻姝㈢紦瀛樺崰婊�
+ var tempFrame = frame;
+ _camera.IMV_ReleaseFrame(ref tempFrame);
+ }
}
/// <summary>
--
Gitblit v1.9.3