From 116ed6b584bbdb40c5b65e7cb57e039b6ae57800 Mon Sep 17 00:00:00 2001
From: C3032 <C3032@BC3032>
Date: 星期四, 08 一月 2026 11:12:25 +0800
Subject: [PATCH] 优化相机配置和图像获取逻辑

---
 LB_VisionProcesses/Cameras/2DCameraForm.cs |   48 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/LB_VisionProcesses/Cameras/2DCameraForm.cs b/LB_VisionProcesses/Cameras/2DCameraForm.cs
index 6dc7029..107eba5 100644
--- a/LB_VisionProcesses/Cameras/2DCameraForm.cs
+++ b/LB_VisionProcesses/Cameras/2DCameraForm.cs
@@ -1,6 +1,8 @@
 锘縰sing HalconDotNet;
+using LB_SmartVisionCameraDevice.PHM6000;
 using LB_VisionControl;
 using LB_VisionProcesses.Cameras.HRCameras;
+using LB_VisionProcesses.Cameras.LBCameras;
 using MVSDK_Net;
 using Newtonsoft.Json.Linq;
 using OpenCvSharp;
@@ -164,7 +166,7 @@
                         camera = new HRCamera();
                         break;
                     case CameraBrand.LBCamera:
-                        //camera = new LBCamera();
+                        camera = new LBCamera();
                         break;
                     default:
                         Debug.WriteLine("鏈煡鍝佺墝");
@@ -240,7 +242,7 @@
                 switch (brand)
                 {
                     case CameraBrand.LBCamera:
-                        //camera = new LBCamera();
+                        camera = new LBCamera();
                         break;
                     case CameraBrand.HRCamera:
                         camera = new HRCamera();
@@ -313,7 +315,19 @@
 
                 PropertyGrid pg = new PropertyGrid();
                 pg.Dock = DockStyle.Fill;
-                pg.SelectedObject = new CameraAdvancedSettings(camera);
+
+                if (camera is LBCamera phmCamera)
+                {
+                    pg.SelectedObject = phmCamera.GetSensorConfig();
+                    pg.PropertyValueChanged += (s, ev) =>
+                    {
+                        phmCamera.UpdateSensorConfig((PHM6000SensorConfig)pg.SelectedObject);
+                    };
+                }
+                else
+                {
+                    pg.SelectedObject = new CameraAdvancedSettings(camera);
+                }
 
                 editForm.Controls.Add(pg);
                 editForm.ShowDialog();
@@ -376,21 +390,20 @@
             if (e.Bitmap == null)
                 return;
 
-            lock (e.Bitmap)
-            {
-                if (this.InvokeRequired) // 妫�鏌ユ槸鍚﹂渶瑕佸湪UI绾跨▼涓婅皟鐢�
+                lock (e.Bitmap)
                 {
-                    this.Invoke(new Action(() =>
+                    if (this.InvokeRequired) // 妫�鏌ユ槸鍚﹂渶瑕佸湪UI绾跨▼涓婅皟鐢�
+                    {
+                        this.Invoke(new Action(() =>
+                        {
+                            onlinePictureBox.Image = e.Bitmap;
+                        })); // 閫掑綊璋冪敤鑷韩锛屼絾杩欐鍦║I绾跨▼涓�
+                    }
+                    else
                     {
                         onlinePictureBox.Image = e.Bitmap;
-                    })); // 閫掑綊璋冪敤鑷韩锛屼絾杩欐鍦║I绾跨▼涓�
+                    }
                 }
-                else
-                {
-                    onlinePictureBox.Image = e.Bitmap;
-                }
-            }
-
             total.iImageCount++;
             try
             {
@@ -489,8 +502,11 @@
                     Task.Factory.StartNew(() =>
                     {
                         camera.StopGrabbing();
-                        camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software);
-                        camera.StartGrabbing();
+                        if (brand != CameraBrand.LBCamera)
+                        {
+                            camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software);
+                            camera.StartGrabbing();
+                        }
                     });
                 }
 

--
Gitblit v1.9.3