예제 #1
0
        /// <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);
        }
예제 #2
0
        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.
        }