/// <summary> /// 设置相机软触发模式 /// </summary> public void SetSoftwareTrigger() { if (TriggerModel == TriggerModelEnum.Software) { return; } TriggerModel = TriggerModelEnum.Software; // Set an enum parameter. if (camera.GetSfncVersion() < Sfnc2_0_0) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart)) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart)) { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.Off); camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Software); } else { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Software); } } } else // For SFNC 2.0 cameras, e.g. USB3 Vision cameras { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart)) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart)) { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.Off); camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Software); } else { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Software); } } } //stopWatch.Reset(); //stopWatch.Start();// **** 重启采集时间计时器 **** }
/// <summary> /// 设置相机外触发模式 /// </summary> public void SetExternTrigger() { if (TriggerModel == TriggerModelEnum.ExternTrigger) { return; } TriggerModel = TriggerModelEnum.ExternTrigger; if (camera.GetSfncVersion() < Sfnc2_0_0) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart)) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart)) { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.Off); camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Line1); } else { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.AcquisitionStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Line1); } } //Sets the trigger delay time in microseconds. camera.Parameters[PLCamera.TriggerDelayAbs].SetValue(5); // 设置触发延时 //Sets the absolute value of the selected line debouncer time in microseconds camera.Parameters[PLCamera.LineSelector].TrySetValue(PLCamera.LineSelector.Line1); camera.Parameters[PLCamera.LineMode].TrySetValue(PLCamera.LineMode.Input); camera.Parameters[PLCamera.LineDebouncerTimeAbs].SetValue(5); // 设置去抖延时,过滤触发信号干扰 } else // For SFNC 2.0 cameras, e.g. USB3 Vision cameras { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart)) { if (camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart)) { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.Off); camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Line1); } else { camera.Parameters[PLCamera.TriggerSelector].TrySetValue(PLCamera.TriggerSelector.FrameBurstStart); camera.Parameters[PLCamera.TriggerMode].TrySetValue(PLCamera.TriggerMode.On); camera.Parameters[PLCamera.TriggerSource].TrySetValue(PLCamera.TriggerSource.Line1); } } //Sets the trigger delay time in microseconds.//float camera.Parameters[PLCamera.TriggerDelay].SetValue(5); // 设置触发延时 //Sets the absolute value of the selected line debouncer time in microseconds camera.Parameters[PLCamera.LineSelector].TrySetValue(PLCamera.LineSelector.Line1); camera.Parameters[PLCamera.LineMode].TrySetValue(PLCamera.LineMode.Input); camera.Parameters[PLCamera.LineDebouncerTime].SetValue(5); // 设置去抖延时,过滤触发信号干扰 } //stopWatch.Reset(); //stopWatch.Start();// **** 重启采集时间计时器 **** }