From e10ccb7788a93c4ae4d5d4f1ac6d239004d0e65e Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期五, 16 一月 2026 09:28:46 +0800
Subject: [PATCH] 西门子S7通讯:支持多数据类型、UI布局调整及配置持久化修复        * 多类型支持:完善 SendMessage 和 ReceiveMsg,支持 Bool, Byte, Int, DInt, Real, Double, Word, DWord, String的读写。

---
 LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs b/LB_VisionProcesses/Cameras/HRCameras/HRCamera.cs
index 31c56ed..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);
@@ -1412,6 +1414,11 @@
             config.Params.Inputs.Add("澧炵泭", gain);
         }
 
+        public override bool StartContinuousGrab()
+        {
+            return true;
+        }
+
         #endregion
     }
 }

--
Gitblit v1.9.3