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 | 198 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 140 insertions(+), 58 deletions(-)
diff --git a/LB_SmartVision/VisionForm.cs b/LB_SmartVision/VisionForm.cs
index 77e0d8f..560ad7b 100644
--- a/LB_SmartVision/VisionForm.cs
+++ b/LB_SmartVision/VisionForm.cs
@@ -14,6 +14,7 @@
using LB_SmartVision.ProcessRun;
using LB_SmartVision.SQL;
using LB_SmartVision.Tool;
+using LB_SmartVisionCameraDevice.PHM6000;
using LB_SmartVisionCommon;
using LB_SmartVisionLoginUI;
using LB_VisionProcesses;
@@ -755,6 +756,15 @@
LB_SmartVision.Tool.Tool.ReadStringConfig("User ID", out string User_ID);
LB_SmartVision.Tool.Tool.ReadStringConfig("Password", out string Password);
GlobalVar.strProductName = DateBaseName;
+ //鍔犺浇LB鐩告満鍙傛暟
+ if (LoadAllLBCameras(GlobalVar.allCamerasLBPath))
+ {
+ LogInfo("LB3D鐩告満閰嶇疆鏂囦欢鍔犺浇鎴愬姛锛�", LogInfoType.PASS);
+ }
+ else
+ {
+ LogInfo("LB3D鐩告満閰嶇疆鏂囦欢鍔犺浇澶辫触", LogInfoType.ERROR);
+ }
//鍔犺浇閫氳
foreach (BaseCommunicator com in GlobalVar.dicCommunicators.Values)
{
@@ -1218,7 +1228,13 @@
camera.isGrabbing = false;
}
}
-
+ if (camera is LBCamera phmCamera)
+ {
+ if (GlobalVar.allLBCameras.ContainsKey(camera.SN) && phmCamera._isConnected)
+ {
+ phmCamera.UpdateSensorConfig(GlobalVar.allLBCameras[camera.SN]);
+ }
+ }
GlobalVar.dicCameras.TryAdd(CameraConnectionString.Key, camera);
}
@@ -1555,6 +1571,47 @@
return true;
}
catch { return false; }
+ }
+
+ public bool LoadAllLBCameras(string allLBCamerasPath)
+ {
+ try
+ {
+ if (!File.Exists(allLBCamerasPath))
+ {
+ Debug.WriteLine("鏂囦欢涓嶅瓨鍦ㄥ垱寤虹┖鏂囦欢");
+ // 鑾峰彇涓嶅甫鏂囦欢鍚嶇殑鐩綍璺緞
+ string directoryPath = Path.GetDirectoryName(allLBCamerasPath);
+ SaveAllLBCameras();
+ return true;
+ }
+ GlobalVar.allLBCameras = ConfigManager<ConcurrentDictionary<string, PHM6000SensorConfig>>.LoadConfig<ConcurrentDictionary<string, PHM6000SensorConfig>>(GlobalVar.allCamerasLBPath);
+ }
+ catch
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public bool SaveAllLBCameras()
+ {
+ try
+ {
+ if (GlobalVar.allLBCameras.Count >= 0)
+ {
+ ConfigManager<ConcurrentDictionary<string, PHM6000SensorConfig>>.SaveConfig<ConcurrentDictionary<string, PHM6000SensorConfig>>(GlobalVar.allLBCameras, GlobalVar.allCamerasLBPath);
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch
+ {
+ return false;
+ }
+ return true;
}
public bool LoadAllProcess(string allProcessConnectionStringPath)
@@ -2365,76 +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;
- //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;
+ GlobalVar.dicCameras[item].StartSingleGrab();
}
- TriggerRunMessageReceived(matchedItems[0].Value["瑙﹀彂閫氳"], matchedItems[0].Value["瑙﹀彂瀛楃"]);
}
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;
- //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)
{
-
- 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