public event Action Trigger_event;//触发模式事件 #endregion 定义 #region 打开相机 /// <summary> /// 打开相机,并传入相机参数 /// </summary> public override bool OpenCamera(BaseParCamera baseParCamera) { try { g_BaseParCamera = baseParCamera; //连接相机 if (!ConnectCamera(baseParCamera.Serial_Camera)) { BlOpen = false; return(false); } //彩色相机格式判断 if (!ColorCamera()) { BlOpen = false; return(false); } //抓取图像 if (!StartCapture()) { BlOpen = false; return(false); } BlOpen = true; } catch (Exception ex) { BlOpen = false; Log.L_I.WriteError(NameClass, ex); } return(BlOpen); }
public void Init(BaseParCamera varCamera) { try { //图像处理 g_ParCamera = varCamera; ShowPar_Invoke(); } catch (Exception ex) { Log.L_I.WriteError(NameClass, ex); } }
/// <summary> /// 打开相机,并传入相机参数 /// </summary> public override bool OpenCamera(BaseParCamera baseParCamera) { try { g_BaseParCamera = baseParCamera; //连接相机 if (!ConnectCamera( baseParCamera.Serial_Camera)) { BlOpen = false; return false; } BlOpen = true; return true; } catch (Exception ex) { BlOpen = false; Log.L_I.WriteError(NameClass + NameClass, ex); return false; } }
/// <summary> /// 初始化 /// </summary> /// <param name="baseParCamera"></param> public void Init(BaseParCamera baseParCamera) { try { g_ParCamera = baseParCamera; //选择是何型号的相机,以及采用的打开方式 //switch (baseParCamera.TypeCamera_e) //{ // case TypeCamera_enum.PGSDK: // g_CameraAbstract = new Camera_PGSDK(); // break; // case TypeCamera_enum.BSLSDK: // g_CameraAbstract = new Camera_BSLSDK(); // break; // case TypeCamera_enum.HIKSDK: // g_CameraAbstract = new Camera_HIKSDK(); // break; // default: // g_CameraAbstract = new Camera_HIKSDK(); // break; //} //使用反射来进行处理 string nameClass = "Camera_" + baseParCamera.TypeCamera_e.ToString(); //类名称 g_CameraAbstract = Activator.CreateInstance(null, "Camera." + nameClass).Unwrap() as CameraAbstract; //null表示当前程序集 g_CameraAbstract.NameClass = NameClass; //事件注册 LoginEvent(); } catch (Exception ex) { Log.L_I.WriteError(NameClass, ex); } }
public event Action Trigger_event;//触发模式事件 #endregion 定义 /// <summary> /// 打开相机,并传入相机设置参数 //public abstract bool OpenCamera(string SerialNumber, ParCameraSetting parCameraSetting); public abstract bool OpenCamera(BaseParCamera baseParCamera);
/// <summary> /// 打开相机,并传入相机参数 /// </summary> public override bool OpenCamera(BaseParCamera baseParCamera) { try { g_BaseParCamera = baseParCamera; g_SerialNumber = baseParCamera.Serial_Camera;//序列号 #if (SDK) g_Camera = new Basler.Pylon.Camera(g_SerialNumber); g_Camera.Open(); // 设置触发模式 if (g_BaseParCamera.BlUsingTrigger) { g_Camera.Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous); g_Camera.StreamGrabber.Start(GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber); SetTrigger(); } else { g_Camera.Parameters[PLCamera.TriggerMode].TrySetValue("Off"); g_Camera.Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.SingleFrame); SetContinue(); } //通过像素格式来判断是否彩色相机 g_PixelFormat = g_Camera.Parameters[PLCamera.PixelFormat].GetValue(); if (g_PixelFormat.Contains("Mono")) { BlColor = false; } else { BlColor = true; } //触发模式 if (g_BaseParCamera.BlUsingTrigger) { g_Camera.StreamGrabber.ImageGrabbed += StreamGrabber_ImageGrabbed; } string path = new DirectoryInfo("../").FullName; if (path.Contains("bin"))//调试状态 { //设置60000ms检测不到心跳,那么相机自动断开,防止相机需要断电处理 g_Camera.Parameters[PLTransportLayer.HeartbeatTimeout].TrySetToMaximum(); double heartbeatValue = g_Camera.Parameters[PLTransportLayer.HeartbeatTimeout].GetValue(); } else { //设置4000ms检测不到心跳,那么相机自动断开,防止相机需要断电处理 g_Camera.Parameters[PLTransportLayer.HeartbeatTimeout].TrySetValue(4000, IntegerValueCorrection.Nearest); } try { if (g_Camera.Parameters[PLCamera.PixelFormat].TrySetValue(PLCamera.PixelFormat.BayerBG8)) { } } catch (Exception ex) { } #endif //相机打开成功的标志位 BlOpen = true; } catch (Exception ex) { BlOpen = false; Log.L_I.WriteError(NameClass, ex); } return(BlOpen); }