轮胎外观检测添加思谋语义分割模型检测工具
C3204
13 小时以前 848ae3a7841a16322c23f9c0d10b2fab83a97c2c
LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
@@ -324,16 +324,16 @@
        {
            if (!_isConnected) return false;
            if (triggerEnum == TriggerSource.Software)
            {
                _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.固定频率;
                _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.软触发;
            }
            else
            {
                _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.编码器;
                _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.外部触发;
            }
            //if (triggerEnum == TriggerSource.Software)
            //{
            //    _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.固定频率;
            //    _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.软触发;
            //}
            //else
            //{
            //    _sensorConfig.LineScanTriggerSource = EnumLineScanTriggerSource.编码器;
            //    _sensorConfig.DataAcquisitionTriggerSource = EnumDataAcquisitionTriggerSource.外部触发;
            //}
            UpdateSensorConfig(_sensorConfig);
            return true;
        }
@@ -355,8 +355,40 @@
        public override bool GetLineStatus(IOLines line, out LineStatus lineStatus) { lineStatus = LineStatus.Low; return true; }
        public override bool AutoBalanceWhite() => true;
        public override void SetCamConfig(CameraConfig config) { }
        public override void GetCamConfig(out CameraConfig config) { config = new CameraConfig(null); }
        public override bool GetImage(out Bitmap bitmap, int outtime = 3000) { bitmap = null; return false; }
        public override void GetCamConfig(out CameraConfig config)
        {
            config = new CameraConfig(null);
            //UpdateSensorConfig(config);
        }
        public override bool GetImage(out Bitmap bitmap, int outtime = 14500)
        {
            bitmap = null;
            try
            {
                // 设置超时时间
                DateTime lastTime = DateTime.Now.AddMilliseconds(outtime);
                // 判断是否超时
                while (lastTime > DateTime.Now)// 设置超时时间为 3 秒
                {
                    if (CallBackImg != null)
                    {
                        lock (CallBackImg)
                        {
                            // 保存旧 Bitmap 并释放
                            bitmap = CallBackImg; // 创建副本
                        }
                        //// 释放旧资源
                        //CallBackImg.Dispose();
                        //CallBackImg = null;
                        return true;
                    }
                }
                return false;
            }
            catch { return bitmap == null ? false : true; }
        }
        public override bool GetImageWithSoftTrigger(out Bitmap bitmap, int outtime = 3000)
        {
            // 简单实现:软触发等待
@@ -593,6 +625,10 @@
                    }
                }
            }
            else if (nOption == 2)
            {
            }
        }
        private void CreateAndFireBitmap()
@@ -739,6 +775,11 @@
                                    TriggerRunMessageReceived?.Invoke(SN, source.ToString());
                                    AsyncLogHelper.Info($"LBCamera[{SN}]: 硬触发事件 - {source}");
                                }
                                else
                                {
                                    TriggerRunMessageReceived?.Invoke(SN, source.ToString());
                                    AsyncLogHelper.Info($"LBCamera[{SN}]: 硬触发事件 - {source}");
                                }
                            }
                        }
                        catch (Exception ex)