示例#1
0
        /// <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;
            }
        }