| | |
| | | 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; |
| | |
| | | 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 |
| | | { |
| | |
| | | { |
| | | AsyncLogHelper.Info($"LBCamera[{SN}]: Flushing partial buffer ({_currentLineCount} lines) on completion"); |
| | | CreateAndFireBitmap(); |
| | | |
| | | _currentLineCount = 0; |
| | | } |
| | | } |
| | |
| | | AsyncLogHelper.Info($"LBCamera[{SN}]: Frame {_frameCount} generated ({width}x{height})"); |
| | | |
| | | // 异步触发事件,避免阻塞SDK回调线程 |
| | | 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) |
| | | { |