public override Task <RFmxNRAcpResults> NRFetchAcpResults(RFmxResultQuery request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var acpResults = RFmxNR.FetchAcp(nr, request.SelectorString); var response = new RFmxNRAcpResults(); foreach (var componentCarrierResult in acpResults.ComponentCarrierResults) { response.ComponentCarrierResults.Add(new RFmxNRAcpComponentCarrierResults() { AbsolutePowerDBm = componentCarrierResult.AbsolutePower_dBm, RelativePowerDB = componentCarrierResult.RelativePower_dB }); } foreach (var offsetResult in acpResults.OffsetResults) { response.OffsetResults.Add(new RFmxNRAcpOffsetResults() { FrequencyHz = offsetResult.Frequency_Hz, IntegrationBandwidthHz = offsetResult.IntegrationBandwidth_Hz, LowerAbsolutePowerDBm = offsetResult.LowerAbsolutePower_dBm, LowerRelativePowerDB = offsetResult.LowerRelativePower_dB, UpperAbsolutePowerDBm = offsetResult.UpperAbsolutePower_dBm, UpperRelativePowerDB = offsetResult.UpperRelativePower_dB }); } return(Task.FromResult(response)); }
public override Task <Empty> NRConfigureModAcc(RFmxNRModAccConfiguration request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var modAccConfiguration = new RFmxNR.ModAccConfiguration() { AveragingCount = request.AveragingCount, AveragingEnabled = (RFmxNRMXModAccAveragingEnabled)(request.AveragingEnabled ? 1 : 0), EvmUnit = (RFmxNRMXModAccEvmUnit)request.EvmUnit, MeasurementLength = request.MeasurementLength, MeasurementLengthUnit = (RFmxNRMXModAccMeasurementLengthUnit)request.MeasurementLengthUnit, MeasurementOffset = request.MeasurementOffset }; RFmxNR.ConfigureModacc(nr, modAccConfiguration, request.SelectorString); return(Task.FromResult(new Empty())); }
public override Task <Empty> NRConfigureCommon(RFmxCommonConfiguration request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var commonConfig = new CommonConfiguration() { SelectedPorts = request.SelectedPorts, CenterFrequency_Hz = request.CenterFrequencyHz, ReferenceLevel_dBm = request.ReferenceLevelDBm, ExternalAttenuation_dB = request.ExternalAttenuationDB, TriggerEnabled = request.TriggerEnabled, DigitalTriggerSource = request.DigitalTriggerSource, TriggerDelay_s = request.TriggerDelayS }; RFmxNR.ConfigureCommon(nr, commonConfig, request.SelectorString); return(Task.FromResult(new Empty())); }
public override Task <Empty> NRSelectAndInitiateMeasurements(RFmxNRMeasurementConfiguration request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); RFmxNRMXMeasurementTypes[] measurements = new RFmxNRMXMeasurementTypes[request.Measurements.Count]; for (int i = 0; i < request.Measurements.Count; i++) { measurements[i] = (RFmxNRMXMeasurementTypes)request.Measurements[i]; } AutoLevelConfiguration autoLevelConfig = new AutoLevelConfiguration() { Enabled = request.AutoLevelConfiguration.Enabled, MeasurementInterval_s = request.AutoLevelConfiguration.MeasurementInterval }; RFmxNR.SelectAndInitiateMeasurements(nr, measurements, autoLevelConfig, request.EnableTraces, request.SelectorString, request.ResultName); return(Task.FromResult(new Empty())); }
public override Task <RFmxNRModAccResults> NRFetchModAccResults(RFmxResultQuery request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var modAccResults = RFmxNR.FetchModAcc(nr, request.SelectorString); var response = new RFmxNRModAccResults(); foreach (var result in modAccResults.ComponentCarrierResults) { response.ComponentCarrierResults.Add(new RFmxNRModAccComponentCarrierResults() { MaxPeakCompositeEvm = result.MaxPeakCompositeEvm, MeanFrequencyErrorHz = result.MeanFrequencyError_Hz, MeanRmsCompositeEvm = result.MeanRmsCompositeEvm, PeakCompositeEvmSlotIndex = result.PeakCompositeEvmSlotIndex, PeakCompositeEvmSubcarrierIndex = result.PeakCompositeEvmSubcarrierIndex, PeakCompositeEvmSymbolIndex = result.PeakCompositeEvmSymbolIndex, }); } return(Task.FromResult(response)); }
public override Task <Empty> NRConfigureAcp(RFmxNRAcpConfiguration request, ServerCallContext context) { var instr = sessionMap[(IntPtr)request.Session.Handle]; var nr = GetNRSignalConfiguration(instr, request.SignalName); var acpConfig = new RFmxNR.AcpConfiguration() { AveragingCount = request.AveragingCount, AveragingEnabled = (RFmxNRMXAcpAveragingEnabled)(request.AveragingEnabled ? 1 : 0), AveragingType = (RFmxNRMXAcpAveragingType)request.AveragingType, MeasurementMethod = (RFmxNRMXAcpMeasurementMethod)request.MeasurementMethod, NoiseCompensationEnabled = (RFmxNRMXAcpNoiseCompensationEnabled)(request.NoiseCompensationEnabled ? 1 : 0), NumberOfEndcOffsets = request.NumberOfEndcOffsets, NumberOfEutraOffsets = request.NumberOfEutraOffsets, NumberOfNrOffsets = request.NumberOfNrOffsets, NumberOfUtraOffsets = request.NumberOfUtraOffsets, SweepTimeAuto = (RFmxNRMXAcpSweepTimeAuto)(request.SweepTimeAuto ? 1 : 0), SweepTimeInterval_s = request.SweepTimeIntervalS }; RFmxNR.ConfigureAcp(nr, acpConfig, request.SelectorString); return(Task.FromResult(new Empty())); }
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())); }