From 7a9de31ab33f9c38cb8b6124a18307dbf4cb6ae7 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期三, 15 四月 2026 10:34:04 +0800
Subject: [PATCH] 新增相机主界面单次以及连续触发模式,检索区分2D/3D相机修复LB3D相机参数设置问题以及新增兰宝3D相机参数存储在本地以及初始化给相机参数。

---
 LB_SmartVision/VisionForm.cs |  153 +++++++++++++++++++++++++++-----------------------
 1 files changed, 83 insertions(+), 70 deletions(-)

diff --git a/LB_SmartVision/VisionForm.cs b/LB_SmartVision/VisionForm.cs
index a68e3f2..560ad7b 100644
--- a/LB_SmartVision/VisionForm.cs
+++ b/LB_SmartVision/VisionForm.cs
@@ -1230,7 +1230,7 @@
                 }
                 if (camera is LBCamera phmCamera)
                 {
-                    if (GlobalVar.allLBCameras.ContainsKey(camera.SN))
+                    if (GlobalVar.allLBCameras.ContainsKey(camera.SN) && phmCamera._isConnected)
                     {
                         phmCamera.UpdateSensorConfig(GlobalVar.allLBCameras[camera.SN]);
                     }
@@ -2422,88 +2422,101 @@
 
         private void btn_Run_Click(object sender, EventArgs e)
         {
-            var matchedItems = GlobalVar.dicProcessSetting
-                                        .Where(item =>
-                                        {
-                                            var value = item.Value;
-                                            var triggerComm = value["瑙﹀彂閫氳"];
-                                            var triggerChar = value["瑙﹀彂瀛楃"];
-                                            return triggerComm != null && !triggerComm.Equals("鏃�");
-                                            //return triggerComm != null && triggerComm.Equals(name) &&
-                                            //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
-                                            //        msg.StartsWith(triggerChar.ToString()));
-                                        })
-                                        .ToList(); // 閬垮厤閲嶅瀛楀吀璁块棶鍜岃绠辨搷浣�
-            if (matchedItems.Count <= 0)
+            //var matchedItems = GlobalVar.dicProcessSetting
+            //                            .Where(item =>
+            //                            {
+            //                                var value = item.Value;
+            //                                var triggerComm = value["瑙﹀彂閫氳"];
+            //                                var triggerChar = value["瑙﹀彂瀛楃"];
+            //                                return triggerComm != null && !triggerComm.Equals("鏃�");
+            //                                //return triggerComm != null && triggerComm.Equals(name) &&
+            //                                //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
+            //                                //        msg.StartsWith(triggerChar.ToString()));
+            //                            })
+            //                            .ToList(); // 閬垮厤閲嶅瀛楀吀璁块棶鍜岃绠辨搷浣�
+            //if (matchedItems.Count <= 0)
+            //{
+            //    return;
+            //}
+            //foreach (var item in matchedItems)
+            //{
+            //    Task.Factory.StartNew(() =>
+            //    {
+            //        TriggerRunMessageReceived(item.Value["瑙﹀彂閫氳"], item.Value["瑙﹀彂瀛楃"]);
+            //    });
+            //}
+            foreach (var item in GlobalVar.dicCameras.Keys)
             {
-                return;
-            }
-            foreach (var item in matchedItems)
-            {
-                Task.Factory.StartNew(() =>
-                {
-                    TriggerRunMessageReceived(item.Value["瑙﹀彂閫氳"], item.Value["瑙﹀彂瀛楃"]);
-                });
+                GlobalVar.dicCameras[item].StartSingleGrab();
             }
         }
 
         private void btn_RunContinuously_Click(object sender, EventArgs e)
         {
-            if (btn_RunContinuously.Text.Equals("杩炵画杩愯"))
+            if (this.ckbAllowRun.Checked)
             {
-                _isTabSwitchAllowed = false;
-                btn_RunContinuously.Text = "鏆傚仠杩愯";
-                // 鍏抽棴浣胯兘
-                SelectMainPage();
-                btn_GlobalVar.Enabled = false;
-                btn_Login.Enabled = false;
-                btn_SingleRun.Enabled = false;
-                ckbAllowRun.Enabled = false;
-                Task.Factory.StartNew(() =>
+                if (btn_RunContinuously.Text.Equals("杩炵画杩愯"))
                 {
-                    var matchedItems = GlobalVar.dicProcessSetting
-                                                .Where(item =>
-                                                {
-                                                    var value = item.Value;
-                                                    var triggerComm = value["瑙﹀彂閫氳"];
-                                                    var triggerChar = value["瑙﹀彂瀛楃"];
-                                                    return triggerComm != null && !triggerComm.Equals("鏃�");
-                                                    //return triggerComm != null && triggerComm.Equals(name) &&
-                                                    //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
-                                                    //        msg.StartsWith(triggerChar.ToString()));
-                                                })
-                                                .ToList(); // 閬垮厤閲嶅瀛楀吀璁块棶鍜岃绠辨搷浣�
-                    while (btn_RunContinuously.Text.Equals("鏆傚仠杩愯"))
+                    _isTabSwitchAllowed = false;
+                    btn_RunContinuously.Text = "鏆傚仠杩愯";
+                    // 鍏抽棴浣胯兘
+                    SelectMainPage();
+                    btn_GlobalVar.Enabled = false;
+                    btn_Login.Enabled = false;
+                    btn_SingleRun.Enabled = false;
+                    ckbAllowRun.Enabled = false;
+                    foreach (var item in GlobalVar.dicCameras.Keys)
                     {
-                        foreach (var item in matchedItems)
-                        {
-                            Task.Factory.StartNew(() =>
-                            {
-                                TriggerRunMessageReceived(item.Value["瑙﹀彂閫氳"], item.Value["瑙﹀彂瀛楃"]);
-                            });
-                        }
-                        //TriggerRunMessageReceived(matchedItems[0].Value["瑙﹀彂閫氳"], matchedItems[0].Value["瑙﹀彂瀛楃"]);
-                        Thread.Sleep(3500);
+                        GlobalVar.dicCameras[item].StartContinuousGrab();
                     }
-                    //this.Invoke(() =>
+                    //Task.Factory.StartNew(() =>
                     //{
+                    //    var matchedItems = GlobalVar.dicProcessSetting
+                    //                                .Where(item =>
+                    //                                {
+                    //                                    var value = item.Value;
+                    //                                    var triggerComm = value["瑙﹀彂閫氳"];
+                    //                                    var triggerChar = value["瑙﹀彂瀛楃"];
+                    //                                    return triggerComm != null && !triggerComm.Equals("鏃�");
+                    //                                    //return triggerComm != null && triggerComm.Equals(name) &&
+                    //                                    //       (string.IsNullOrEmpty(triggerChar?.ToString()) ||
+                    //                                    //        msg.StartsWith(triggerChar.ToString()));
+                    //                                })
+                    //                                .ToList(); // 閬垮厤閲嶅瀛楀吀璁块棶鍜岃绠辨搷浣�
+                    //    while (btn_RunContinuously.Text.Equals("鏆傚仠杩愯"))
+                    //    {
+                    //        foreach (var item in matchedItems)
+                    //        {
+                    //            Task.Factory.StartNew(() =>
+                    //            {
+                    //                TriggerRunMessageReceived(item.Value["瑙﹀彂閫氳"], item.Value["瑙﹀彂瀛楃"]);
+                    //            });
+                    //        }
+                    //        //TriggerRunMessageReceived(matchedItems[0].Value["瑙﹀彂閫氳"], matchedItems[0].Value["瑙﹀彂瀛楃"]);
+                    //        Thread.Sleep(3500);
+                    //    }
+                    //    //this.Invoke(() =>
+                    //    //{
+                    //    //});
                     //});
-                });
+                }
+                else if (btn_RunContinuously.Text.Equals("鏆傚仠杩愯"))
+                {
+                    btn_RunContinuously.Text = "杩炵画杩愯";
+                    foreach (var item in GlobalVar.dicCameras.Keys)
+                    {
+                        GlobalVar.dicCameras[item].StopGrabbing();
+                    }
+                    // 鍚姩浣胯兘
+                    UnSelectMainPage();
+                    btn_GlobalVar.Enabled = true;
+                    btn_Login.Enabled = true;
+                    btn_SingleRun.Enabled = true;
+                    ckbAllowRun.Enabled = true;
+                    Thread.Sleep(100);
+                    _isTabSwitchAllowed = true;
+                }
             }
-            else if (btn_RunContinuously.Text.Equals("鏆傚仠杩愯"))
-            {
-                btn_RunContinuously.Text = "杩炵画杩愯";
-
-                // 鍚姩浣胯兘
-                UnSelectMainPage();
-                btn_GlobalVar.Enabled = true;
-                btn_Login.Enabled = true;
-                btn_SingleRun.Enabled = true;
-                ckbAllowRun.Enabled = true;
-                Thread.Sleep(100);
-                _isTabSwitchAllowed = true;
-            }
-
         }
 
         private void cmbProduct_SelectedValueChanged(object sender, EventArgs e)

--
Gitblit v1.9.3