/// <summary> /// 关闭设备 /// </summary> private void __CloseDevice() { try { __CloseStream(); //关闭设备 if (null != m_objIGXDevice) { if (m_hCB != null) { m_objIGXDevice.UnregisterDeviceOfflineCallback(m_hCB); m_hCB = null; } m_objIGXDevice.Close(); m_objIGXDevice = null; } } catch (Exception) { } }
/// <summary> /// 方法:注册异常回调函数 /// </summary> /// <returns></returns> public override bool DoRegisterExceptionCallBack() { bool rt = false; string err = null; if (m_objIGXDevice != null) { if (m_hCB != null) { m_objIGXDevice.UnregisterDeviceOfflineCallback(m_hCB); m_hCB = null; } m_hCB = m_objIGXDevice.RegisterDeviceOfflineCallback(this, _deviceRef_ConnectionLost); rt = true; } else { err = "大恒相机注册异常事件失败,设备为空"; ////ErrorMessage.Clear();//ErrorMessage.Append(err); } return(rt); }
public int OpenCamera() { //关闭流 if (null != m_objIGXStream) { m_objIGXStream.Close(); m_objIGXStream = null; } //关闭设备 if (null != m_objIGXDevice) { m_objIGXDevice.Close(); m_objIGXDevice = null; } IGXFactory m_objIGXFactory = null; m_objIGXFactory = IGXFactory.GetInstance(); m_objIGXFactory.Init(); List <IGXDeviceInfo> listGXDeviceInfo = new List <IGXDeviceInfo>(); m_objIGXFactory.UpdateDeviceList(200, listGXDeviceInfo); foreach (IGXDeviceInfo tempinfo in listGXDeviceInfo) { if (tempinfo.GetUserID() == this.name) { m_objIGXDevice = ObjIGXFactory.OpenDeviceByUserID(this.Name, GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE); m_objIGXFeatureControl = m_objIGXDevice.GetRemoteFeatureControl(); m_DeviceOffLine = m_objIGXDevice.RegisterDeviceOfflineCallback(null, CallOffLineFunction); } } TriggerConfiguration(); SetExposureTime(); return(0); }