Пример #1
0
        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()));
        }