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); }