コード例 #1
0
ファイル: DaHengCamera.cs プロジェクト: jume2003/SK800
        public bool Open()
        {
            if (m_bIsOpen)
            {
                return(m_bIsOpen);
            }
            bool result = false;

            try
            {
                List <IGXDeviceInfo> listGXDeviceInfo = new List <IGXDeviceInfo>();

                //关闭流
                __CloseStream();
                // 如果设备已经打开则关闭,保证相机在初始化出错情况下能再次打开
                __CloseDevice();

                m_objIGXFactory.UpdateDeviceList(200, listGXDeviceInfo);

                // 判断当前连接设备个数
                if (listGXDeviceInfo.Count <= 0)
                {
                    throw new Exception("没有发现设备");
                }

                //打开列表第一个设备

                m_objIGXDevice         = m_objIGXFactory.OpenDeviceBySN(listGXDeviceInfo[0].GetSN(), GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE);
                m_objIGXFeatureControl = m_objIGXDevice.GetRemoteFeatureControl();


                //打开流
                if (null != m_objIGXDevice)
                {
                    m_objIGXStream = m_objIGXDevice.OpenStream(0);
                }

                __InitDevice();

                m_objGxBitmap = new GxBitmap(m_objIGXDevice);

                // 更新设备打开标识
                m_bIsOpen = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                result = m_bIsOpen;
            }
            return(result);
        }