/// <summary> /// 初始化相机 /// </summary> /// <param name="deviceStateFile">相机参数储存文件路径</param> /// <returns>是否成功打开相机</returns> public bool InitCam(string deviceStateFile) { try { LoadDeviceStateFromFile(deviceStateFile, true); } catch { ShowDeviceSettingsDialog(); } if (!this.DeviceValid) { return(this.DeviceValid); } this._vcdProp = VCDSimpleModule.GetSimplePropertyContainer(this.VCDPropertyItems); //软触发 this._softTrigger = (VCDButtonProperty)this.VCDPropertyItems.FindInterface(VCDIDs.VCDID_TriggerMode, VCDIDs.VCDElement_SoftwareTrigger, VCDIDs.VCDInterface_Button); this.GainAuto = false; this.ExposureAuto = false; SaveDeviceStateToFile(deviceStateFile); return(this.DeviceValid); }
public SoftwareTrigger() { ic.LiveCaptureContinuous = true; //Call ImageAvailable event for new images. ic.LiveCaptureLastImage = false; // Do not save an image on live stop. // Add the ImageAvailable handler to the IC Imaging Control object. ic.ImageAvailable += new EventHandler <ICImagingControl.ImageAvailableEventArgs>(ic_ImageAvailable); ic.ShowDeviceSettingsDialog(); // Select a video capture device if (!ic.DeviceValid) { return; } // Query the trigger mode property for enabling the trigger mode VCDSwitchProperty TriggerMode = (VCDSwitchProperty)ic.VCDPropertyItems.FindInterface(VCDIDs.VCDID_TriggerMode, VCDIDs.VCDElement_Value, VCDIDs.VCDInterface_Switch); if (TriggerMode == null) { return; } // If trigger mode is available, query the software trigger property VCDButtonProperty SoftwareTrigger = (VCDButtonProperty)ic.VCDPropertyItems.FindInterface(VCDIDs.VCDID_TriggerMode, VCDIDs.VCDElement_SoftwareTrigger, VCDIDs.VCDInterface_Button); if (SoftwareTrigger == null) { return; } TriggerMode.Switch = true; // Enable trigger mode, ic.LiveStart(); // start the camera. No images are streamed, because trigger mode is enabled System.Threading.Thread.Sleep(1000); SoftwareTrigger.Push(); // Do a software trigger. System.Threading.Thread.Sleep(1000); SoftwareTrigger.Push(); // Do another software trigger. System.Threading.Thread.Sleep(1000); ic.LiveStop(); // Stop live video. TriggerMode.Switch = false; // Disable trigger mode again. }