From 7c2a646ce89a06d0bfbb16f993d4ae3734f1de9c Mon Sep 17 00:00:00 2001
From: C3032 <C3032@BC3032>
Date: 星期二, 23 十二月 2025 13:48:37 +0800
Subject: [PATCH] 更新相机功能和界面布局

---
 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