public static AcpResults FetchAcp(RFmxNRMX nrSignal, string selectorString = "")
        {
            AcpResults acpResults = new AcpResults();

            nrSignal.Acp.Results.FetchOffsetMeasurementArray(selectorString, 10, ref acpResults.lowerRelativePower,
                                                             ref acpResults.upperRelativePower, ref acpResults.lowerAbsolutePower, ref acpResults.upperAbsolutePower);

            nrSignal.Acp.Results.ComponentCarrier.FetchMeasurement(selectorString, 10, out acpResults.absolutePower, out acpResults.relativePower);

            for (int i = 0; i < acpResults.lowerRelativePower.Length; i++)
            {
                nrSignal.Acp.Results.FetchRelativePowersTrace(selectorString, 10, i, ref acpResults.relativePowersTrace);
            }

            nrSignal.Acp.Results.FetchSpectrum(selectorString, 10, ref acpResults.spectrum);

            return(acpResults);
        }
        /// <summary>Fetches common results from the ACP measurement.</summary>
        /// <param name="nr">Specifies the NR signal to fetch results from.</param>
        /// <param name="selectorString">(Optional) Specifies the result name. See the RFmx help for more documentation of this parameter.</param>
        /// <returns>Common ACP measurement results.</returns>
        public static AcpResults FetchAcp(RFmxNRMX nr, string selectorString = "")
        {
            double[] lowerRelativePower = null;
            double[] upperRelativePower = null;
            double[] lowerAbsolutePower = null;
            double[] upperAbsolutePower = null;
            nr.Acp.Results.FetchOffsetMeasurementArray(selectorString, 10.0,
                                                       ref lowerRelativePower, ref upperRelativePower, ref lowerAbsolutePower, ref upperAbsolutePower);
            AcpResults results = new AcpResults()
            {
                OffsetResults = new AcpOffsetResults[lowerRelativePower.Length]
            };

            for (int i = 0; i < lowerRelativePower.Length; i++)
            {
                string offsetString = RFmxNRMX.BuildOffsetString(selectorString, i);
                nr.Acp.Configuration.GetOffsetFrequency(offsetString, out double offsetFrequency);
                nr.Acp.Configuration.GetOffsetIntegrationBandwidth(offsetString, out double offsetIbw);
                results.OffsetResults[i] = new AcpOffsetResults()
                {
                    LowerRelativePower_dB   = lowerRelativePower[i],
                    UpperRelativePower_dB   = upperRelativePower[i],
                    LowerAbsolutePower_dBm  = lowerAbsolutePower[i],
                    UpperAbsolutePower_dBm  = upperAbsolutePower[i],
                    Frequency_Hz            = offsetFrequency,
                    IntegrationBandwidth_Hz = offsetIbw
                };
            }
            double[] absolutePower = null;
            double[] relativePower = null;
            nr.Acp.Results.ComponentCarrier.FetchMeasurementArray(selectorString, 10.0, ref absolutePower, ref relativePower);
            results.ComponentCarrierResults = new AcpComponentCarrierResults[absolutePower.Length];
            for (int i = 0; i < absolutePower.Length; i++)
            {
                results.ComponentCarrierResults[i] = new AcpComponentCarrierResults()
                {
                    AbsolutePower_dBm = absolutePower[i],
                    RelativePower_dB  = relativePower[i]
                };
            }
            return(results);
        }
Esempio n. 3
0
        /// <summary>Fetches common results from the ACP measurement.</summary>
        /// <param name="specAn">Specifies the SpecAn signal to fetch results from.</param>
        /// <param name="selectorString">(Optional) Specifies the result name. See the RFmx help for more documentation of this parameter.</param>
        /// <returns>Common ACP measurement results.</returns>
        public static AcpResults FetchAcp(RFmxSpecAnMX specAn, string selectorString = "")
        {
            double[] lowerRelativePower = null;
            double[] upperRelativePower = null;
            double[] lowerAbsolutePower = null;
            double[] upperAbsolutePower = null;
            specAn.Acp.Results.FetchOffsetMeasurementArray(selectorString, 10.0,
                                                           ref lowerRelativePower, ref upperRelativePower, ref lowerAbsolutePower, ref upperAbsolutePower);
            AcpResults results = new AcpResults()
            {
                OffsetResults = new AcpOffsetResults[lowerRelativePower.Length]
            };

            for (int i = 0; i < lowerRelativePower.Length; i++)
            {
                string offsetString = RFmxSpecAnMX.BuildOffsetString2(selectorString, i);
                specAn.Acp.Configuration.GetOffsetFrequency(offsetString, out double offsetFrequency);
                specAn.Acp.Configuration.GetOffsetIntegrationBandwidth(offsetString, out double offsetIbw);
                results.OffsetResults[i] = new AcpOffsetResults()
                {
                    LowerRelativePower_dB           = lowerRelativePower[i],
                    UpperRelativePower_dB           = upperRelativePower[i],
                    LowerAbsolutePower_dBm_or_dBmHz = lowerAbsolutePower[i],
                    UpperAbsolutePower_dBm_or_dBmHz = upperAbsolutePower[i],
                    Frequency_Hz            = offsetFrequency,
                    IntegrationBandwidth_Hz = offsetIbw
                };
            }
            specAn.Acp.Configuration.GetNumberOfCarriers(selectorString, out int numCarrierChannels);
            results.ComponentCarrierResults = new AcpComponentCarrierResults[numCarrierChannels];
            for (int i = 0; i < numCarrierChannels; i++)
            {
                string carrierString = RFmxSpecAnMX.BuildCarrierString2(selectorString, i);
                AcpComponentCarrierResults componentCarrierResults;
                specAn.Acp.Results.FetchCarrierMeasurement(carrierString, 10.0, out componentCarrierResults.AbsolutePower_dBm_or_dBmHz,
                                                           out componentCarrierResults.TotalRelativePower_dB, out componentCarrierResults.Frequency_Hz, out componentCarrierResults.IntegrationBandwidth_Hz);
                results.ComponentCarrierResults[i] = componentCarrierResults;
            }
            specAn.Acp.Results.FetchTotalCarrierPower(selectorString, 10.0, out results.TotalCarrierPower_dBm_or_dBmHz);
            return(results);
        }