/// <summary>Configures common settings related to the NR standard of the measured signal.</summary> /// <param name="nr">Specifies the NR signal to configure.</param> /// <param name="standardConfig">Specifies the NR standard 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 ConfigureStandard(RFmxNRMX nr, StandardConfiguration standardConfig, string selectorString = "") { nr.SetComponentCarrierSpacingType(selectorString, RFmxNRMXComponentCarrierSpacingType.Nominal); // nominal is assumed nr.SetLinkDirection(selectorString, standardConfig.LinkDirection); nr.SetFrequencyRange(selectorString, standardConfig.FrequencyRange); nr.SetBand(selectorString, standardConfig.Band); nr.SetAutoResourceBlockDetectionEnabled(selectorString, standardConfig.AutoResourceBlockDetectionEnabled); nr.ComponentCarrier.SetDownlinkTestModel(selectorString, standardConfig.DownlinkTestModel); nr.ComponentCarrier.SetDownlinkTestModelDuplexScheme(selectorString, standardConfig.DownlinkTestModelDuplexScheme); nr.ComponentCarrier.SetNumberOfComponentCarriers(selectorString, standardConfig.ComponentCarrierConfigurations.Length); for (int i = 0; i < standardConfig.ComponentCarrierConfigurations.Length; i++) { string carrierString = RFmxNRMX.BuildCarrierString(selectorString, i); ComponentCarrierConfiguration componentCarrierConfig = standardConfig.ComponentCarrierConfigurations[i]; nr.ComponentCarrier.SetBandwidth(carrierString, componentCarrierConfig.Bandwidth_Hz); nr.ComponentCarrier.SetCellID(carrierString, componentCarrierConfig.CellId); nr.ComponentCarrier.SetPuschModulationType(carrierString, componentCarrierConfig.PuschModulationType); nr.ComponentCarrier.SetBandwidthPartSubcarrierSpacing(carrierString, componentCarrierConfig.SubcarrierSpacing_Hz); nr.ComponentCarrier.SetPuschResourceBlockOffset(carrierString, componentCarrierConfig.PuschResourceBlockOffset); nr.ComponentCarrier.SetPuschNumberOfResourceBlocks(carrierString, componentCarrierConfig.PuschNumberOfResourceBlocks); nr.ComponentCarrier.SetPuschTransformPrecodingEnabled(carrierString, componentCarrierConfig.PuschTransformPrecodingEnabled); nr.ComponentCarrier.SetPuschSlotAllocation(carrierString, componentCarrierConfig.PuschSlotAllocation); nr.ComponentCarrier.SetPuschSymbolAllocation(carrierString, componentCarrierConfig.PuschSymbolAllocation); nr.ComponentCarrier.SetPuschDmrsConfigurationType(carrierString, componentCarrierConfig.PuschDmrsConfigurationType); nr.ComponentCarrier.SetPuschMappingType(carrierString, componentCarrierConfig.PuschMappingType); nr.ComponentCarrier.SetPuschDmrsTypeAPosition(carrierString, componentCarrierConfig.PuschDmrsTypeAPosition); nr.ComponentCarrier.SetPuschDmrsDuration(carrierString, componentCarrierConfig.PuschDmrsDuration); nr.ComponentCarrier.SetPuschDmrsAdditionalPositions(carrierString, componentCarrierConfig.PuschDmrsAdditionalPositions); } }
/// <summary>Configures common settings related to the LTE standard of the measured signal.</summary> /// <param name="lte">Specifies the LTE signal to configure.</param> /// <param name="standardConfig">Specifies the LTE standard 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> #region Measurement Configuration public static void ConfigureStandard(RFmxLteMX lte, StandardConfiguration standardConfig, string selectorString = "") { lte.ComponentCarrier.SetSpacingType(selectorString, RFmxLteMXComponentCarrierSpacingType.Nominal); // nominal spacing is assumed lte.ConfigureLinkDirection(selectorString, standardConfig.LinkDirection); lte.ConfigureDuplexScheme(selectorString, standardConfig.DuplexScheme, standardConfig.UplinkDownlinkConfiguration); lte.ConfigureBand(selectorString, standardConfig.Band); lte.ConfigureNumberOfComponentCarriers(selectorString, standardConfig.ComponentCarrierConfigurations.Length); for (int i = 0; i < standardConfig.ComponentCarrierConfigurations.Length; i++) { string carrierString = RFmxLteMX.BuildCarrierString(selectorString, i); ComponentCarrierConfiguration componentCarrierConfig = standardConfig.ComponentCarrierConfigurations[i]; lte.ComponentCarrier.SetBandwidth(carrierString, componentCarrierConfig.Bandwidth_Hz); lte.ComponentCarrier.SetCellId(carrierString, componentCarrierConfig.CellId); lte.ComponentCarrier.ConfigurePuschModulationType(carrierString, componentCarrierConfig.PuschModulationType); lte.ComponentCarrier.ConfigurePuschResourceBlocks(carrierString, componentCarrierConfig.PuschResourceBlockOffset, componentCarrierConfig.PuschNumberOfResourceBlocks); lte.ComponentCarrier.ConfigureDownlinkTestModel(carrierString, componentCarrierConfig.DownlinkTestModel); } lte.ComponentCarrier.ConfigureAutoResourceBlockDetectionEnabled(selectorString, standardConfig.PuschAutoResourceBlockDetectionEnabled); lte.ConfigureAutoDmrsDetectionEnabled(selectorString, standardConfig.AutoDmrsDetectionEnabled); lte.ComponentCarrier.ConfigureDownlinkAutoCellIDDetectionEnabled(selectorString, standardConfig.DownlinkAutoCellIDDetectionEnabled); }
/// <summary>Returns the struct with default values set.</summary> /// <returns>The struct with default values set.</returns> public static StandardConfiguration GetDefault() { return(new StandardConfiguration { LinkDirection = RFmxNRMXLinkDirection.Uplink, FrequencyRange = RFmxNRMXFrequencyRange.Range1, Band = 78, AutoResourceBlockDetectionEnabled = RFmxNRMXAutoResourceBlockDetectionEnabled.True, DownlinkTestModel = RFmxNRMXDownlinkTestModel.TM1_1, DownlinkTestModelDuplexScheme = RFmxNRMXDownlinkTestModelDuplexScheme.Fdd, ComponentCarrierConfigurations = new ComponentCarrierConfiguration[] { ComponentCarrierConfiguration.GetDefault() } }); }
/// <summary>Returns the struct with default values set.</summary> /// <returns>The struct with default values set.</returns> public static StandardConfiguration GetDefault() { return(new StandardConfiguration() { LinkDirection = RFmxLteMXLinkDirection.Uplink, DuplexScheme = RFmxLteMXDuplexScheme.Fdd, UplinkDownlinkConfiguration = RFmxLteMXUplinkDownlinkConfiguration.Configuration0, Band = 1, PuschAutoResourceBlockDetectionEnabled = RFmxLteMXAutoResourceBlockDetectionEnabled.True, AutoDmrsDetectionEnabled = RFmxLteMXAutoDmrsDetectionEnabled.True, DownlinkAutoCellIDDetectionEnabled = RFmxLteMXDownlinkAutoCellIDDetectionEnabled.False, ComponentCarrierConfigurations = new ComponentCarrierConfiguration[] { ComponentCarrierConfiguration.GetDefault() } }); }