/// <summary>Configures common settings for the ACP measurement and selects the measurement.</summary> /// <param name="specAn">Specifies the SpecAn signal to configure.</param> /// <param name="acpConfig">Specifies the ACP settings to apply.</param> /// <param name="selectorString">Pass an empty string. The signal name that is passed when creating the signal configuration is used. See the RFmx help for more documention of this parameter.</param> public static void ConfigureAcp(RFmxSpecAnMX specAn, AcpConfiguration acpConfig, string selectorString = "") { specAn.SelectMeasurements(selectorString, RFmxSpecAnMXMeasurementTypes.Acp, false); specAn.Acp.Configuration.ConfigurePowerUnits(selectorString, acpConfig.PowerUnits); specAn.Acp.Configuration.ConfigureAveraging(selectorString, acpConfig.AveragingEnabled, acpConfig.AveragingCount, acpConfig.AveragingType); specAn.Acp.Configuration.ConfigureFft(selectorString, acpConfig.FftWindow, acpConfig.FftPadding); specAn.Acp.Configuration.ConfigureRbwFilter(selectorString, acpConfig.RbwAuto, acpConfig.Rbw_Hz, acpConfig.RbwFilterType); specAn.Acp.Configuration.ConfigureSweepTime(selectorString, acpConfig.SweepTimeAuto, acpConfig.SweepTimeInterval_s); specAn.Acp.Configuration.ConfigureNumberOfCarriers(selectorString, acpConfig.ComponentCarrierConfiguration.Length); for (int i = 0; i < acpConfig.ComponentCarrierConfiguration.Length; i++) { string carrierString = RFmxSpecAnMX.BuildCarrierString2(selectorString, i); AcpComponentCarrierConfiguration carrierConfiguration = acpConfig.ComponentCarrierConfiguration[i]; specAn.Acp.Configuration.ConfigureCarrierIntegrationBandwidth(carrierString, carrierConfiguration.IntegrationBandwidth_Hz); specAn.Acp.Configuration.ConfigureCarrierFrequency(carrierString, carrierConfiguration.Frequency_Hz); specAn.Acp.Configuration.ConfigureCarrierRrcFilter(carrierString, carrierConfiguration.RrcFilterEnabled, carrierConfiguration.RrcAlpha); specAn.Acp.Configuration.ConfigureCarrierMode(carrierString, carrierConfiguration.Mode); } specAn.Acp.Configuration.ConfigureNumberOfOffsets(selectorString, acpConfig.OffsetChannelConfiguration.Length); for (int i = 0; i < acpConfig.OffsetChannelConfiguration.Length; i++) { string offsetString = RFmxSpecAnMX.BuildOffsetString2(selectorString, i); AcpOffsetChannelConfiguration offsetConfiguration = acpConfig.OffsetChannelConfiguration[i]; specAn.Acp.Configuration.ConfigureOffsetIntegrationBandwidth(offsetString, offsetConfiguration.IntegrationBandwidth_Hz); specAn.Acp.Configuration.ConfigureOffset(offsetString, offsetConfiguration.Frequency_Hz, offsetConfiguration.SideBand, offsetConfiguration.Enabled); specAn.Acp.Configuration.ConfigureOffsetPowerReference(offsetString, offsetConfiguration.PowerReferenceCarrier, offsetConfiguration.PowerReferenceSpecificIndex); specAn.Acp.Configuration.ConfigureOffsetRelativeAttenuation(offsetString, offsetConfiguration.RelativeAttenuation_dB); specAn.Acp.Configuration.ConfigureOffsetRrcFilter(offsetString, offsetConfiguration.RrcFilterEnabled, offsetConfiguration.RrcAlpha); } }
/// <summary>Returns the struct with default values set.</summary> /// <returns>The struct with default values set.</returns> public static AcpConfiguration GetDefault() { return(new AcpConfiguration { PowerUnits = RFmxSpecAnMXAcpPowerUnits.dBm, AveragingEnabled = RFmxSpecAnMXAcpAveragingEnabled.False, AveragingCount = 10, AveragingType = RFmxSpecAnMXAcpAveragingType.Rms, FftWindow = RFmxSpecAnMXAcpFftWindow.FlatTop, FftPadding = -1, RbwAuto = RFmxSpecAnMXAcpRbwAutoBandwidth.True, Rbw_Hz = 10e3, RbwFilterType = RFmxSpecAnMXAcpRbwFilterType.Gaussian, SweepTimeAuto = RFmxSpecAnMXAcpSweepTimeAuto.True, SweepTimeInterval_s = 1e-3, ComponentCarrierConfiguration = new AcpComponentCarrierConfiguration[] { AcpComponentCarrierConfiguration.GetDefault() }, OffsetChannelConfiguration = new AcpOffsetChannelConfiguration[] { AcpOffsetChannelConfiguration.GetDefault() } }); }