/// <summary> /// 方法:设置采集模式 /// </summary> /// <param name="acqmode"></param> /// <param name="lineIdx"></param> /// <returns></returns> public override bool DoSetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint lineIdx) { ////ErrorMessage.Clear(); try { if (m_objIGXDevice == null) { ////ErrorMessage.Append("还没有打开设备。"); return(false); } IGXFeatureControl fc = m_objIGXDevice.GetRemoteFeatureControl(); if (fc == null) { ////ErrorMessage.Append("设置设备异常。"); return(false); } switch (acqmode) { case ProCommon.Communal.AcquisitionMode.Continue: //设置采集模式连续采集 fc.GetEnumFeature("AcquisitionMode").SetValue("Continuous"); //设置触发模式为关 fc.GetEnumFeature("TriggerMode").SetValue("Off"); break; case ProCommon.Communal.AcquisitionMode.ExternalTrigger: //设置采集模式连续采集 fc.GetEnumFeature("AcquisitionMode").SetValue("Continuous"); //设置触发模式为开 fc.GetEnumFeature("TriggerMode").SetValue("On"); //选择触发源为软触发 string strLine = string.Format("Line{0}", 0); fc.GetEnumFeature("TriggerSource").SetValue(strLine); break; case ProCommon.Communal.AcquisitionMode.SoftTrigger: //设置采集模式连续采集 fc.GetEnumFeature("AcquisitionMode").SetValue("Continuous"); //设置触发模式为开 fc.GetEnumFeature("TriggerMode").SetValue("On"); //选择触发源为软触发 fc.GetEnumFeature("TriggerSource").SetValue("Software"); break; default: { return(false); } } return(true); } catch (Exception ex) { return(false); } }
public bool SetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum) { bool rt = false; if (ICameraDriverable != null) { rt = ICameraDriverable.SetAcquisitionMode(acqmode, frameNum); } return(rt); }
/// <summary> /// 方法:设置采集模式 /// </summary> /// <param name="acqmode"></param> /// <param name="frameNum"></param> /// <returns></returns> protected override bool DoSetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum) { bool rt = false; int nRet = MvCamCtrl.NET.MyCamera.MV_E_UNKNOW; try { if (_deviceRef != null) { switch (acqmode) { case ProCommon.Communal.AcquisitionMode.Continue: if (SetFreeRun()) { rt = SetContinueRun(); } break; case ProCommon.Communal.AcquisitionMode.ExternalTrigger: if (SetExternalTrigger(1, 1, 50)) { rt = SetFrameNumber(frameNum); } break; case ProCommon.Communal.AcquisitionMode.SoftTrigger: if (SetInternalTrigger()) { rt = SetFrameNumber(frameNum); } break; default: break; } if (!rt) { if (DriverExceptionDel != null) { DriverExceptionDel(string.Format("错误:大华相机采集模式设置失败!\n错误代码:{0:X8}", nRet)); } } } } catch { } finally { } return(rt); }
/// <summary> /// 方法:设置采集模式 /// </summary> /// <param name="acqmode"></param> /// 0-连续模式,触发采集[1-单帧模式,2-多帧模式] /// <param name="frameNum"> /// 多帧模式下的帧数</param> /// <returns></returns> protected override bool DoSetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum) { bool rt = false; try { if (!AcqHandle.TupleEqual(new HalconDotNet.HTuple())) { string v = "false"; switch (acqmode) { case ProCommon.Communal.AcquisitionMode.Continue: v = "true"; break; case ProCommon.Communal.AcquisitionMode.SoftTrigger: case ProCommon.Communal.AcquisitionMode.ExternalTrigger: v = "false"; break; default: break; } HalconDotNet.HOperatorSet.SetFramegrabberParam(AcqHandle, new HalconDotNet.HTuple("continuous_grabbing"), new HalconDotNet.HTuple(v)); rt = true; } } catch (HalconDotNet.HalconException hex) { if (DriverExceptionDel != null) { DriverExceptionDel(string.Format("错误:Halcon模拟相机设置采集模式失败!\n错误代码:{0}", hex.GetErrorCode())); } } finally { } return(rt); }
/// <summary> /// 方法:设置采集模式 /// </summary> /// <param name="acqmode"></param> /// <param name="frameNum"></param> /// <returns></returns> public override bool DoSetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum) { bool rt = false; MVSDK.CameraSdkStatus status = MVSDK.CameraSdkStatus.CAMERA_STATUS_FAILED; try { if (_deviceRef > 0) { switch (acqmode) { case ProCommon.Communal.AcquisitionMode.Continue: status = MVSDK.MvApi.CameraSetTriggerMode(_deviceRef, 0); //官方驱动:0表示连续模式,1是软触发,2是硬触发 break; case ProCommon.Communal.AcquisitionMode.SoftTrigger: status = MVSDK.MvApi.CameraSetTriggerMode(_deviceRef, 1); //官方驱动:0表示连续模式,1是软触发,2是硬触发 rt = (MVSDK.CameraSdkStatus.CAMERA_STATUS_SUCCESS == status) ? true : false; if (rt) { status = MVSDK.MvApi.CameraSetTriggerCount(_deviceRef, (int)frameNum); } break; case ProCommon.Communal.AcquisitionMode.ExternalTrigger: status = MVSDK.MvApi.CameraSetTriggerMode(_deviceRef, 2); //官方驱动:0表示连续模式,1是软触发,2是硬触发 rt = (MVSDK.CameraSdkStatus.CAMERA_STATUS_SUCCESS == status) ? true : false; if (rt) { status = MVSDK.MvApi.CameraSetTriggerCount(_deviceRef, (int)frameNum); } break; default: break; } rt = (MVSDK.CameraSdkStatus.CAMERA_STATUS_SUCCESS == status) ? true : false; if (!rt) { if (DriverExceptionDel != null) { DriverExceptionDel(string.Format("错误:迈德威视相机设置采集模式失败!\n错误代码:{0:X8}", System.Convert.ToInt32(status))); } } } else { if (DriverExceptionDel != null) { DriverExceptionDel(string.Format("错误:迈德威视相机设置设备采集模式失败!\n错误描述:{0}", "设备未连接")); } } } catch { } finally { } return(rt); }
public abstract bool DoSetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum);
public bool SetAcquisitionMode(ProCommon.Communal.AcquisitionMode acqmode, uint frameNum) { return(DoSetAcquisitionMode(acqmode, frameNum)); }