/// <summary>
        /// 打开相机
        /// </summary>
        /// <param name="strSN">相机ID号</param>
        /// <returns>成功返回true,失败返回false</returns>
        ///
        public bool  Open(string strSN)
        {
            try
            {
                string tempSN = string.Empty;
                m_ImageControl = new ICImagingControl();
                foreach (Device dev in m_ImageControl.Devices)
                {
                    if (dev.GetSerialNumber(out tempSN))
                    {
                        if (strSN == tempSN)//判断是否等于指定相机序号
                        {
                            m_ImageControl.Device = dev.Name;
                            break;
                        }
                    }
                }
                if (!m_ImageControl.DeviceValid)
                {
                    throw new Exception("没有找到相机,是否SN号有误!");
                }
                if (m_ImageControl.LiveVideoRunning)
                {
                    m_ImageControl.LiveStop();
                }
                m_ImageControl.MemoryCurrentGrabberColorformat = TIS.Imaging.ICImagingControlColorformats.ICY8;
                float[] Frame = m_ImageControl.DeviceFrameRates;
                m_ImageControl.DeviceFrameRate = Frame[0];
                VCDProp = TIS.Imaging.VCDHelpers.VCDSimpleModule.GetSimplePropertyContainer(m_ImageControl.VCDPropertyItems);

                //m_ImageControl.DeviceListChangedExecutionMode = TIS.Imaging.EventExecutionMode.Invoke;
                //m_ImageControl.DeviceLostExecutionMode = TIS.Imaging.EventExecutionMode.AsyncInvoke;
                //m_ImageControl.ImageAvailableExecutionMode = TIS.Imaging.EventExecutionMode.Invoke;

                m_ImageControl.LiveCaptureContinuous = true;
                m_ImageControl.LiveDisplayDefault    = false;
                m_ImageControl.ImageAvailable       += ImageCallBack;
                m_byMonoBuffer = new byte[m_nWidth * m_nHeight];
                m_ImageControl.LiveStart();
                TrigEnableSwitch = (TIS.Imaging.VCDSwitchProperty)m_ImageControl.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
                                                                                                                TIS.Imaging.VCDIDs.VCDElement_Value + ":" + TIS.Imaging.VCDIDs.VCDInterface_Switch);

                TrigEnableSwitch.Switch = true;


                m_ImageControl.LiveStop();

                //TrigEnableSwitch.Switch = false;
                //  m_ImageControl.DeviceTrigger = false;  Imagecamera cannot set trigger while openning
                bIsConnected = true;
                //IsConnected = true;
                return(true);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("YMJ Init fail " + ex.Message);
                return(false);
            }
        }
Beispiel #2
0
        private void Set_appropriate_params()
        {
            var local_vcdprop   = new TIS.Imaging.VCDHelpers.VCDSimpleProperty(IC_Control.VCDPropertyItems);
            var local_AbsValExp = (VCDAbsoluteValueProperty)IC_Control.VCDPropertyItems.FindInterface(VCDIDs.VCDID_Exposure +
                                                                                                      ":" + VCDIDs.VCDElement_Value + ":" + VCDIDs.VCDInterface_AbsoluteValue);

            LoadExposure_ToCam(ref local_AbsValExp, 0.016f);
            local_vcdprop.RangeValue[VCDIDs.VCDID_Gain] = (local_vcdprop.RangeMin(VCDIDs.VCDID_Gain) + local_vcdprop.RangeMax(VCDIDs.VCDID_Gain)) / 2;
        }
Beispiel #3
0
        private void Init_Properties(ICImagingControl ic)
        {
            vcdProp = new TIS.Imaging.VCDHelpers.VCDSimpleProperty(ic.VCDPropertyItems);
            var a = ic.VCDPropertyItems.CategoryMap;
            var b = ic.VCDPropertyItems.Count;
            var c = ic.VCDPropertyItems.get_Item(0);

            AbsValExp = (VCDAbsoluteValueProperty)ic.VCDPropertyItems.FindInterface(VCDIDs.VCDID_Exposure +
                                                                                    ":" + VCDIDs.VCDElement_Value + ":" + VCDIDs.VCDInterface_AbsoluteValue);
        }
Beispiel #4
0
        private void Update_Sliders()
        {
            if (icImagingControl1.DeviceValid)
            {
                vCDProp = TIS.Imaging.VCDHelpers.VCDSimpleModule.GetSimplePropertyContainer(icImagingControl1.VCDPropertyItems);
                //Loading Values into sliders
                camView.Slider_Set(CamView2.ControlsE.GainS, SliderControls.Minimum, vCDProp.RangeMin(VCDIDs.VCDID_Gain));
                camView.Slider_Set(CamView2.ControlsE.GainS, SliderControls.Maximum, vCDProp.RangeMax(VCDIDs.VCDID_Gain));
                camView.Slider_Set(CamView2.ControlsE.GainS, SliderControls.Value, vCDProp.RangeValue[VCDIDs.VCDID_Gain]);
                camView.Slider_Set(CamView2.ControlsE.GainS, SliderControls.TickFrequency, (camView.Slider_Get(CamView2.ControlsE.GainS, SliderControls.Maximum) - camView.Slider_Get(CamView2.ControlsE.GainS, SliderControls.Minimum) / 10));
                camView.Add_event(CamView2.ControlsE.GainS, GainSlider_ValueChanged);

                camView.Slider_Set(CamView2.ControlsE.ExposureS, SliderControls.Minimum, vCDProp.RangeMin(VCDIDs.VCDID_Exposure));                //on our cam is 0.1ms
                //this.ExposureSlider.Maximum = VCDProp.RangeMax(TIS.Imaging.VCDIDs.VCDID_Exposure);
                //max value on cam is 300s which is bad
                camView.Slider_Set(CamView2.ControlsE.ExposureS, SliderControls.Maximum, 1000);;                 //max at 0.1s
                camView.Slider_Set(CamView2.ControlsE.ExposureS, SliderControls.Value, vCDProp.RangeValue[VCDIDs.VCDID_Exposure]);
                camView.Slider_Set(CamView2.ControlsE.ExposureS, SliderControls.TickFrequency, (camView.Slider_Get(CamView2.ControlsE.ExposureS, SliderControls.Maximum) - camView.Slider_Get(CamView2.ControlsE.ExposureS, SliderControls.Minimum)) / 10);
                camView.Add_event(CamView2.ControlsE.ExposureS, ExposureSlider_ValueChanged);
                if (vCDProp.AutoAvailable(VCDIDs.VCDID_Gain))
                {
                    vCDProp.Automation[VCDIDs.VCDID_Gain] = false;
                }
                if (vCDProp.AutoAvailable(VCDIDs.VCDID_Exposure))
                {
                    vCDProp.Automation[VCDIDs.VCDID_Exposure] = false;
                }
            }
            else
            {
                camView.Set_Enabled(CamView2.ControlsE.GainS, false);
                camView.Remove_Event(CamView2.ControlsE.GainS, GainSlider_ValueChanged);
                camView.Set_Enabled(CamView2.ControlsE.ExposureS, false);
                camView.Remove_Event(CamView2.ControlsE.ExposureS, ExposureSlider_ValueChanged);
            }
        }