From 848ae3a7841a16322c23f9c0d10b2fab83a97c2c Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期三, 15 四月 2026 14:25:36 +0800
Subject: [PATCH] 修改LB&HR相机外触发获取图像原。

---
 LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs |   65 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs b/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
index 0ed792b..a459879 100644
--- a/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
+++ b/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
@@ -324,16 +324,16 @@
         {
             if (!_isConnected) return false;
 
-            if (triggerEnum == TriggerSource.Software)
-            {
-                _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.鍥哄畾棰戠巼;
-                _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.杞Е鍙�;
-            }
-            else
-            {
-                _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.缂栫爜鍣�;
-                _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.澶栭儴瑙﹀彂;
-            }
+            //if (triggerEnum == TriggerSource.Software)
+            //{
+            //    _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.鍥哄畾棰戠巼;
+            //    _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.杞Е鍙�;
+            //}
+            //else
+            //{
+            //    _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.缂栫爜鍣�;
+            //    _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.澶栭儴瑙﹀彂;
+            //}
             UpdateSensorConfig(_sensorConfig);
             return true;
         }
@@ -355,8 +355,40 @@
         public override bool GetLineStatus(IOLines line, out LineStatus lineStatus) { lineStatus = LineStatus.Low; return true; }
         public override bool AutoBalanceWhite() => true;
         public override void SetCamConfig(CameraConfig config) { }
-        public override void GetCamConfig(out CameraConfig config) { config = new CameraConfig(null); }
-        public override bool GetImage(out Bitmap bitmap, int outtime = 3000) { bitmap = null; return false; }
+        public override void GetCamConfig(out CameraConfig config)
+        {
+            config = new CameraConfig(null);
+            //UpdateSensorConfig(config);
+        }
+        public override bool GetImage(out Bitmap bitmap, int outtime = 14500) 
+        {
+            bitmap = null;
+            try
+            {
+                // 璁剧疆瓒呮椂鏃堕棿
+                DateTime lastTime = DateTime.Now.AddMilliseconds(outtime);
+                // 鍒ゆ柇鏄惁瓒呮椂
+                while (lastTime > DateTime.Now)// 璁剧疆瓒呮椂鏃堕棿涓� 3 绉�
+                {
+                    if (CallBackImg != null)
+                    {
+                        lock (CallBackImg)
+                        {
+                            // 淇濆瓨鏃� Bitmap 骞堕噴鏀�
+                            bitmap = CallBackImg; // 鍒涘缓鍓湰
+                        }
+
+                        //// 閲婃斁鏃ц祫婧�
+                        //CallBackImg.Dispose();
+                        //CallBackImg = null;
+                        return true;
+                    }
+                }
+
+                return false;
+            }
+            catch { return bitmap == null ? false : true; }
+        }
         public override bool GetImageWithSoftTrigger(out Bitmap bitmap, int outtime = 3000)
         {
             // 绠�鍗曞疄鐜帮細杞Е鍙戠瓑寰�
@@ -593,6 +625,10 @@
                     }
                 }
             }
+            else if (nOption == 2)
+            {
+
+            }
         }
 
         private void CreateAndFireBitmap()
@@ -739,6 +775,11 @@
                                     TriggerRunMessageReceived?.Invoke(SN, source.ToString());
                                     AsyncLogHelper.Info($"LBCamera[{SN}]: 纭Е鍙戜簨浠� - {source}");
                                 }
+                                else
+                                {
+                                    TriggerRunMessageReceived?.Invoke(SN, source.ToString());
+                                    AsyncLogHelper.Info($"LBCamera[{SN}]: 纭Е鍙戜簨浠� - {source}");
+                                }
                             }
                         }
                         catch (Exception ex)

--
Gitblit v1.9.3