public override Task <Empty> NRConfigureStandard(RFmxNRStandardConfiguration request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var standardConfig = new RFmxNR.StandardConfiguration() { AutoResourceBlockDetectionEnabled = (RFmxNRMXAutoResourceBlockDetectionEnabled)(request.AutoResourceBlockDetectionEnabled ? 1 : 0), Band = request.Band, ComponentCarrierConfigurations = new RFmxNR.ComponentCarrierConfiguration[request.ComponentCarrierConfigurations.Count], DownlinkTestModel = (RFmxNRMXDownlinkTestModel)request.DownlinkTestModel, DownlinkTestModelDuplexScheme = (RFmxNRMXDownlinkTestModelDuplexScheme)request.DownlinkTestModelDuplexScheme, FrequencyRange = (RFmxNRMXFrequencyRange)request.FrequencyRange, LinkDirection = (RFmxNRMXLinkDirection)request.LinkDirection }; for (int i = 0; i < request.ComponentCarrierConfigurations.Count; i++) { var requestComponentCarrierConfiguration = request.ComponentCarrierConfigurations[i]; standardConfig.ComponentCarrierConfigurations[i] = new RFmxNR.ComponentCarrierConfiguration() { Bandwidth_Hz = requestComponentCarrierConfiguration.BandwidthHz, CellId = requestComponentCarrierConfiguration.CellId, PuschDmrsAdditionalPositions = requestComponentCarrierConfiguration.PuschDmrsAdditionalPositions, PuschDmrsConfigurationType = (RFmxNRMXPuschDmrsConfigurationType)requestComponentCarrierConfiguration.PuschDmrsConfigurationType, PuschDmrsDuration = (RFmxNRMXPuschDmrsDuration)requestComponentCarrierConfiguration.PuschDmrsDuration, PuschDmrsTypeAPosition = requestComponentCarrierConfiguration.PuschDmrsTypeAPosition, PuschMappingType = (RFmxNRMXPuschMappingType)requestComponentCarrierConfiguration.PuschMappingType, PuschModulationType = (RFmxNRMXPuschModulationType)requestComponentCarrierConfiguration.PuschModulationType, PuschNumberOfResourceBlocks = requestComponentCarrierConfiguration.PuschNumberOfResourceBlocks, PuschResourceBlockOffset = requestComponentCarrierConfiguration.PuschResourceBlockOffset, PuschSlotAllocation = requestComponentCarrierConfiguration.PuschSlotAllocation, PuschSymbolAllocation = requestComponentCarrierConfiguration.PuschSymbolAllocation, PuschTransformPrecodingEnabled = (RFmxNRMXPuschTransformPrecodingEnabled)(requestComponentCarrierConfiguration.PuschTransformPrecodingEnabled ? 1 : 0), SubcarrierSpacing_Hz = requestComponentCarrierConfiguration.SubcarrierSpacingHz }; } RFmxNR.ConfigureStandard(nr, standardConfig, request.SelectorString); return(Task.FromResult(new Empty())); }