/// <summary> /// 连接仪器 /// </summary> /// <returns></returns> public bool Connect() { if (instrument.Count != Configs.Count) { ErrorString = "仪器未初始化"; return(false); } foreach (var measurement in instrument.Values) { if (measurement != null && measurement.IsConnected) { return(true); } if (!measurement.Connect()) { Disconnect(); ErrorString = $"{measurement.CustomMeasurementName}连接失败:{measurement.ErrorString}"; return(false); } } opticalSource = instrument[InstrumentType.PointOpticalSource] as IOpticalSource; powerMeter = instrument[InstrumentType.PowerMeter] as IPowerMeter; polarizationController = instrument[InstrumentType.PolarizationController] as IPolarizationController; module = powerMeter.Channels.FirstOrDefault().Key; ErrorString = "所有仪器已经连接"; return(true); }
void LoadControl(string visaName, Action <bool, string> cb) { Task.Run(() => { if (m_contype == CONTYPE.IVI) { m_pm = new U2021XAIVI(visaName); } else { m_pm = new U2001Scpi(visaName); } bool b = m_pm.Initialize(out string outMessage, out IIviDriverIdentity identity); cb(b, outMessage); }); }
private void btnPowerOpen_Click(object sender, RoutedEventArgs e) { PowerMeterType type = (PowerMeterType)(this.cmbPowerType.SelectedIndex); string addr = this.tbPowerAddr.Text; if (!isPowerMeterConnected) { powerMeter = PowerMeter.GetInstance(type); isPowerMeterConnected = powerMeter.Connect(addr); if (isPowerMeterConnected) { this.btnPowerOpen.Background = sucessColor; } else { this.btnPowerOpen.Background = normalColor; } } else { this.btnPowerOpen.Background = sucessColor; } }