/// <summary> /// Initializes the Agilent instrument /// </summary> /// <param name="resourceName"></param> /// <returns></returns> public bool Init(string resourceName) { lock (initLock) { _ResourceName = resourceName; if (IsInistialized) { return(true); } try { if (_Driver == null) { _Driver = new AgilentU254x(); } else { Close(); Marshal.ReleaseComObject(_Driver); _Driver = new AgilentU254x(); } _Driver.Initialize(resourceName, false, true, Options); _Driver.DriverOperation.QueryInstrumentStatus = false; _Driver.DriverOperation.Cache = false; _Driver.DriverOperation.RecordCoercions = false; _Driver.DriverOperation.InterchangeCheck = false; _Driver.System.TimeoutMilliseconds = 5000; _ChannelArray = new AgilentU254xDigitalChannel[] { _Driver.Digital.Channels.get_Item("DIOA"), _Driver.Digital.Channels.get_Item("DIOB"), _Driver.Digital.Channels.get_Item("DIOC"), _Driver.Digital.Channels.get_Item("DIOD") }; for (int i = 0; i < _ChannelArray.Length; i++) { if (_ChannelArray[i].Direction != AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut) { _ChannelArray[i].Direction = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut; } } Reset_Digital(); _AI_ChannelCollection = new AI_Channels(ref _Driver); _AO_ChannelCollection = new AO_Channels(ref _Driver); _IsInitialized = true; return(true); } catch { return(false); } } }
/// <summary> /// Initializes the Agilent instrument /// </summary> /// <param name="resourceName"></param> /// <returns></returns> public bool Init(string resourceName) { if (IsInistialized) return true; try { _Driver.Initialize(resourceName, false, true, Options); var _ChannelArray = new AgilentU254xDigitalChannel[] { _Driver.Digital.Channels.get_Item("DIOA"), _Driver.Digital.Channels.get_Item("DIOB"), _Driver.Digital.Channels.get_Item("DIOC"), _Driver.Digital.Channels.get_Item("DIOD") }; foreach (var ch in _ChannelArray) if (ch.Direction != AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut) ch.Direction = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut; Reset_Digital(); _AI_ChannelCollection = new AI_Channels(_Driver); _AO_ChannelCollection = new AO_Channels(_Driver); _IsInitialized = true; return true; } catch { return false; } }