コード例 #1
0
        /// <summary>
        /// 根据精度测量噪低
        /// </summary>
        /// <param name="accuracy"></param>
        /// <returns></returns>
        public double MeasureNoiseFloor(double accuracy)
        {
            accuracy = Math.Max(accuracy, 0.01);
            accuracy = Math.Min(accuracy, 10);
            double num       = Math.Pow(10, 0.1 * accuracy);
            double num1      = 1 / (num - 1);
            double num2      = num1 * num1;
            int    num3      = Math.Max(65, (int)(num2 / 10));
            double num4      = 100;
            double num5      = 1 / (6.28318530717959 * num4);
            double sweepTime = this.SweepTime;
            double num6      = 3 * num5 * (double)num3;

            this.RBW             = 1000;
            this.VBW             = num4;
            this.SweepPoints     = num3;
            this.SweepTime       = num6;
            this.Marker1Function = SpectrumAnalyzer.MarkerFunctionType.BandIntervalPower;
            if (SpectrumAnalyzer.IsPSA(this.Model) || SpectrumAnalyzer.IsESA(this.Model))
            {
                this.Marker1Mode = SpectrumAnalyzer.MarkerModeType.Span;
            }
            else
            {
                this.Sweep();
            }
            this.MarkerPositionPoints = (double)((num3 - 1) / 2);
            this.MarkerSpanPoints     = (double)(num3 - 4);
            this.Sweep();
            this.SweepTime = sweepTime;
            return(this.Marker1Value - 30);
        }
コード例 #2
0
        public static SpectrumAnalyzer CreateDetectedSpectrumAnalyzer(string address)
        {
            SpectrumAnalyzer scpiSpectrumAnalyzer;

            try
            {
                string str = ScpiInstrument.DetermineModel(address);
                if (SpectrumAnalyzer.IsMXA(str) || SpectrumAnalyzer.IsEXA(str) || SpectrumAnalyzer.IsPXA(str))
                {
                    scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzer(address);
                }
                else if (SpectrumAnalyzer.IsFSW(str))
                {
                    scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerFSW(address);
                }
                else if (SpectrumAnalyzer.IsESA(str) || SpectrumAnalyzer.IsPSA(str) || SpectrumAnalyzer.IsE4446A(str))
                {
                    scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerE4446A(address);
                }
                else if (SpectrumAnalyzer.IsAV4003(str))
                {
                    scpiSpectrumAnalyzer = new ScpiSpectrumAnalyzerAV4033(address);
                }
                else
                {
                    throw new Exception(string.Concat(str, " 不支持对应型号的频谱仪"));
                }
            }
            catch (Exception exception)
            {
                throw new Exception(string.Concat("连接频谱仪错误: ", exception.Message));
            }
            return(scpiSpectrumAnalyzer);
        }
コード例 #3
0
        public static SpectrumAnalyzer Connect(string currentAddress, SpectrumAnalyzer.ValidateSupportDelegate supportDelegate, bool interactive)
        {
            SpectrumAnalyzer spectrumAnalyzer = null;
            string           str = (currentAddress != null ? currentAddress : "GPIB0::18::INSTR");

            SpectrumAnalyzer.m_validateSupportDelegate = supportDelegate;
            if (interactive)
            {
                throw new Exception("不支持交互模式");
            }
            try
            {
                if (SpectrumAnalyzer.DetermineSupport(str) == null)
                {
                    spectrumAnalyzer = SpectrumAnalyzer.CreateDetectedSpectrumAnalyzer(str);
                }
            }
            catch
            {
                // MessageBox.Show("设备连接异常!");
            }
            SpectrumAnalyzer.m_validateSupportDelegate = null;
            if (spectrumAnalyzer != null)
            {
                spectrumAnalyzer.Connected = true;
            }
            return(spectrumAnalyzer);
        }
コード例 #4
0
 protected override void DetermineOptions()
 {
     if (!SpectrumAnalyzer.IsESA(this.Model))
     {
         base.DetermineOptions();
         return;
     }
     this.m_options = "";
 }
コード例 #5
0
        private static string DetermineSupport(string address)
        {
            if (SpectrumAnalyzer.m_validateSupportDelegate == null)
            {
                return(null);
            }
            SpectrumAnalyzer spectrumAnalyzer = null;

            try
            {
                spectrumAnalyzer = SpectrumAnalyzer.CreateDetectedSpectrumAnalyzer(address);
            }
            catch
            {
                throw;
            }
            if (spectrumAnalyzer == null)
            {
                return("无法识别对应的频谱仪");
            }
            return(SpectrumAnalyzer.m_validateSupportDelegate(spectrumAnalyzer));
        }
コード例 #6
0
 public virtual bool IsPXA()
 {
     return(SpectrumAnalyzer.IsPXA(this.Model));
 }