From 67fd626e321eb93bcc6427e017e536e696b0270a Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期二, 13 一月 2026 10:22:28 +0800
Subject: [PATCH] 添加3D硬触发取图触发检测流程。
---
LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs | 23 ++++++++++++++++++-----
LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs | 24 +++++++++++++-----------
2 files changed, 31 insertions(+), 16 deletions(-)
diff --git a/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs b/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
index 2d4067b..ea8b86d 100644
--- a/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
+++ b/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
@@ -218,21 +218,23 @@
try
{
Bitmap bitmap = ConvertFrameToBitmap(frame);
-
// 閲婃斁甯ф暟鎹�
// release frame
_camera.IMV_ReleaseFrame(ref frame);
- CallBackImg = (Bitmap)bitmap.Clone();
- if (CallBackImg == null)
+ Task.Factory.StartNew(() =>
{
- return;
- }
- if (GetTriggerMode(out TriggerMode mode, out TriggerSource source))
- {
- if (mode == TriggerMode.On && source != TriggerSource.Software)
- TriggerRunMessageReceived?.Invoke(SN, source.ToString()); // 瑙﹀彂杩愯浜嬩欢
- }
- bitmap.Dispose();
+ CallBackImg = (Bitmap)bitmap.Clone();
+ if (CallBackImg == null)
+ {
+ return;
+ }
+ if (GetTriggerMode(out TriggerMode mode, out TriggerSource source))
+ {
+ if (mode == TriggerMode.On && source != TriggerSource.Software)
+ TriggerRunMessageReceived?.Invoke(SN, source.ToString()); // 瑙﹀彂杩愯浜嬩欢
+ }
+ bitmap.Dispose();
+ });
}
catch { }
AsyncLogHelper.Info(SN + "Get frame blockId = {0}" + frame.frameInfo.blockId);
diff --git a/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs b/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
index 6e27e23..c03ddab 100644
--- a/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
+++ b/LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
@@ -1,3 +1,8 @@
+using LB_SmartVisionCameraDevice.PHM6000;
+using LB_SmartVisionCameraSDK.PHM6000;
+using LB_SmartVisionCommon;
+using LB_VisionProcesses.Cameras;
+using Sunny.UI.Win32;
using System;
using System.Collections.Generic;
using System.Drawing;
@@ -7,10 +12,6 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
-using LB_SmartVisionCameraSDK.PHM6000;
-using LB_VisionProcesses.Cameras;
-using LB_SmartVisionCommon;
-using LB_SmartVisionCameraDevice.PHM6000;
namespace LB_VisionProcesses.Cameras.LBCameras
{
@@ -520,6 +521,7 @@
{
AsyncLogHelper.Info($"LBCamera[{SN}]: Flushing partial buffer ({_currentLineCount} lines) on completion");
CreateAndFireBitmap();
+
_currentLineCount = 0;
}
}
@@ -568,11 +570,22 @@
AsyncLogHelper.Info($"LBCamera[{SN}]: Frame {_frameCount} generated ({width}x{height})");
// 寮傛瑙﹀彂浜嬩欢锛岄伩鍏嶉樆濉濻DK鍥炶皟绾跨▼
- Task.Run(() =>
+ Task.Factory.StartNew(() =>
{
try
{
ImageGrabbed?.Invoke(this, new LBCameraEventArgs(SN, bmp, true));
+ CallBackImg = (Bitmap)bmp.Clone();
+ if (CallBackImg == null)
+ {
+ return;
+ }
+ if (GetTriggerMode(out TriggerMode mode, out TriggerSource source))
+ {
+ if (mode == TriggerMode.On && source != TriggerSource.Software)
+ TriggerRunMessageReceived?.Invoke(SN, source.ToString()); // 瑙﹀彂杩愯浜嬩欢
+ }
+ bmp.Dispose();
}
catch (Exception ex)
{
--
Gitblit v1.9.3