From b48ac75b89e94e3f70da5a2233e18734aa271682 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期四, 16 四月 2026 13:45:50 +0800
Subject: [PATCH] 丐版相机外触发同一流程触发一次。
---
LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 6 deletions(-)
diff --git a/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs b/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
index c46d1f1..f8db5fb 100644
--- a/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
+++ b/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
@@ -129,6 +129,54 @@
}
/// <summary>
+ /// 鑾峰彇鐩告満SN鏋氫妇鍒楄〃
+ /// </summary>
+ /// <returns>鐩告満SN鍒楄〃</returns>
+ public List<string> GetListEnumAll()
+ {
+ List<string> cameraList = new List<string>();
+
+ try
+ {
+ // 鏋氫妇鎵�鏈夎澶�
+ IMVDefine.IMV_DeviceList deviceList = new IMVDefine.IMV_DeviceList();
+ IMVDefine.IMV_EInterfaceType interfaceType = IMVDefine.IMV_EInterfaceType.interfaceTypeAll;
+
+ int result = MyCamera.IMV_EnumDevices(ref deviceList, (uint)interfaceType);
+
+ if (result == IMVDefine.IMV_OK && deviceList.nDevNum > 0)
+ {
+ for (int i = 0; i < deviceList.nDevNum; i++)
+ {
+ IMVDefine.IMV_DeviceInfo deviceInfo = (IMVDefine.IMV_DeviceInfo)
+ Marshal.PtrToStructure(
+ deviceList.pDevInfo + Marshal.SizeOf(typeof(IMVDefine.IMV_DeviceInfo)) * i,
+ typeof(IMVDefine.IMV_DeviceInfo));
+
+ string cameraInfo = $"{deviceInfo.cameraName}[{deviceInfo.serialNumber}]";
+ cameraList.Add(cameraInfo);
+ }
+ }
+ else
+ {
+ // 璁板綍鏃ュ織鎴栨姏鍑哄紓甯�
+ //throw new Exception($"鏋氫妇璁惧澶辫触锛岄敊璇爜锛歿result}");
+ AsyncLogHelper.Error("鏋氫妇璁惧澶辫触锛�");
+ System.Diagnostics.Debug.WriteLine("鏋氫妇璁惧澶辫触锛�");
+ }
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍閿欒鏃ュ織
+ System.Diagnostics.Debug.WriteLine($"鑾峰彇鐩告満鍒楄〃澶辫触锛歿ex.Message}");
+ AsyncLogHelper.Error($"鑾峰彇鐩告満鍒楄〃澶辫触锛歿ex.Message}");
+ throw;
+ }
+
+ return cameraList;
+ }
+
+ /// <summary>
/// 鍒濆鍖栫浉鏈鸿澶�
/// </summary>
/// <param name="SN">鐩告満搴忓垪鍙�</param>
@@ -154,7 +202,7 @@
}
// 鏋氫妇璁惧骞跺尮閰峉N
- List<string> cameraList = GetListEnum();
+ List<string> cameraList = GetListEnumAll();
int cameraIndex = -1;
for (int i = 0; i < cameraList.Count; i++)
@@ -1412,7 +1460,6 @@
public override bool GetImage(out Bitmap bitmap, int outtime = 3000)
{
bitmap = null;
-
try
{
// 璁剧疆瓒呮椂鏃堕棿
@@ -1425,12 +1472,12 @@
lock (CallBackImg)
{
// 淇濆瓨鏃� Bitmap 骞堕噴鏀�
- bitmap = CallBackImg.Clone() as Bitmap; // 鍒涘缓鍓湰
+ bitmap = CallBackImg; // 鍒涘缓鍓湰
}
- // 閲婃斁鏃ц祫婧�
- CallBackImg.Dispose();
- CallBackImg = null;
+ //// 閲婃斁鏃ц祫婧�
+ //CallBackImg.Dispose();
+ //CallBackImg = null;
return true;
}
}
--
Gitblit v1.9.3