From aaf9d8709e186337ec6e406f84e447696e786809 Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Thu, 10 Jul 2025 19:41:11 -0400 Subject: [PATCH 1/6] move multiplier to frequency. Fix the bug --- .../Mixer Steps/MixerFrequencyTestStep.cs | 53 ++++++++++++++++--- .../Mixer Steps/MixerSetupTestStep.cs | 38 ------------- 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index 54135d5..01083f8 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -104,8 +104,13 @@ public MixerFrequencyTypeEnum InputMixerFrequencyType [Unit("Hz", UseEngineeringPrefix: true)] public double InputMixerFrequencyFixed { get; set; } + [Display("Fractional Multiplier Numerator", Groups: new[] { "Mixer Frequency", "Input" }, Order: 16)] + public int InputFractionalMultiplierNumerator { get; set; } + [Display("Fractional Multiplier Denominator", Groups: new[] { "Mixer Frequency", "Input" }, Order: 17)] + public int InputFractionalMultiplierDenominator { get; set; } + [Browsable(true)] - [Display("Calc Input", Groups: new[] { "Mixer Frequency", "Input" }, Order: 16)] + [Display("Calc Input", Groups: new[] { "Mixer Frequency", "Input" }, Order: 18)] public void CalcInput() { if (PNAX.IsConnected) @@ -118,6 +123,7 @@ public void CalcInput() #endregion + #region LO1 [Browsable(false)] public bool IsLO1MixerFrequencyTypeStartStop { get; set; } @@ -186,8 +192,13 @@ public MixerFrequencyTypeEnum LO1MixerFrequencyType [Display("Input > LO", Groups: new[] { "Mixer Frequency", "LO1" }, Order: 26)] public bool InputGTLO1 { get; set; } + [Display("Fractional Multiplier Numerator", Groups: new[] { "Mixer Frequency", "LO1" }, Order: 27)] + public int LO1FractionalMultiplierNumerator { get; set; } + [Display("Fractional Multiplier Denominator", Groups: new[] { "Mixer Frequency", "LO1" }, Order: 28)] + public int LO1FractionalMultiplierDenominator { get; set; } + [Browsable(true)] - [Display("Calc LO", Groups: new[] { "Mixer Frequency", "LO1" }, Order: 27)] + [Display("Calc LO", Groups: new[] { "Mixer Frequency", "LO1" }, Order: 29)] public void CalcLO1() { if (PNAX.IsConnected) @@ -351,9 +362,17 @@ public MixerFrequencyTypeEnum LO2MixerFrequencyType [EnabledIf("DoubleStage", true, HideIfDisabled = true)] public bool IF1GTLO2 { get; set; } + + [Display("Fractional Multiplier Numerator", Groups: new[] { "Mixer Frequency", "LO2" }, Order: 47)] + [EnabledIf("DoubleStage", true, HideIfDisabled = true)] + public int LO2FractionalMultiplierNumerator { get; set; } + [Display("Fractional Multiplier Denominator", Groups: new[] { "Mixer Frequency", "LO2" }, Order: 48)] + [EnabledIf("DoubleStage", true, HideIfDisabled = true)] + public int LO2FractionalMultiplierDenominator { get; set; } + [Browsable(true)] [EnabledIf("DoubleStage", true, HideIfDisabled = true)] - [Display("Calc LO2", Groups: new[] { "Mixer Frequency", "LO2" }, Order: 47)] + [Display("Calc LO2", Groups: new[] { "Mixer Frequency", "LO2" }, Order: 49)] public void CalcLO2() { if (PNAX.IsConnected) @@ -533,12 +552,12 @@ private void CalcLO1Values() // Set requirements PNAX.SetConverterStages(DummyChannel, ConverterStages); SetInput(DummyChannel); + SetMultiplier(DummyChannel); //SetLO1(); SetIF(DummyChannel); SetLO2(DummyChannel); SetOutput(DummyChannel); - //PNAX.MixerApply(DummyChannel); PNAX.MixerCalc(DummyChannel, "LO_1"); PNAX.WaitForOperationComplete(); @@ -600,8 +619,8 @@ private void CalcLO2Values() PNAX.SetConverterStages(DummyChannel, ConverterStages); SetInput(DummyChannel); SetLO1(DummyChannel); + SetMultiplier(DummyChannel); SetIF(DummyChannel); - //SetLO2(DummyChannel); SetOutput(DummyChannel); PNAX.MixerCalc(DummyChannel, "LO_2"); @@ -664,6 +683,7 @@ private void CalcOutputValues() // Set requirements PNAX.SetConverterStages(DummyChannel, ConverterStages); SetInput(DummyChannel); + SetMultiplier(DummyChannel); SetLO1(DummyChannel); SetIF(DummyChannel); SetLO2(DummyChannel); @@ -720,7 +740,8 @@ public MixerFrequencyTestStep() private void UpdateDefaultValues() { var defaultValues = PNAX.GetMixerFrequencyDefaultValues(); - if (defaultValues == null) + var defaultSettings = PNAX.GetMixerSetupDefaultValues(); + if (defaultValues == null || defaultSettings == null) return; InputMixerFrequencyType = defaultValues.InputMixerFrequencyType; @@ -729,6 +750,8 @@ private void UpdateDefaultValues() InputMixerFrequencyCenter = defaultValues.InputMixerFrequencyCenter; InputMixerFrequencySpan = defaultValues.InputMixerFrequencySpan; InputMixerFrequencyFixed = defaultValues.InputMixerFrequencyFixed; + InputFractionalMultiplierNumerator = defaultSettings.InputFractionalMultiplierNumerator; + InputFractionalMultiplierDenominator = defaultSettings.InputFractionalMultiplierDenominator; LO1MixerFrequencyType = defaultValues.LO1MixerFrequencyType; LO1MixerFrequencyStart = defaultValues.LO1MixerFrequencyStart; @@ -737,6 +760,8 @@ private void UpdateDefaultValues() LO1MixerFrequencySpan = defaultValues.LO1MixerFrequencySpan; LO1MixerFrequencyFixed = defaultValues.LO1MixerFrequencyFixed; InputGTLO1 = defaultValues.InputGTLO1; + LO1FractionalMultiplierNumerator = defaultSettings.LO1FractionalMultiplierNumerator; + LO1FractionalMultiplierDenominator = defaultSettings.LO1FractionalMultiplierDenominator; IFSidebandType = defaultValues.IFSidebandType; IFMixerFrequencyType = defaultValues.IFMixerFrequencyType; @@ -753,6 +778,8 @@ private void UpdateDefaultValues() LO2MixerFrequencySpan = defaultValues.LO2MixerFrequencySpan; LO2MixerFrequencyFixed = defaultValues.LO2MixerFrequencyFixed; IF1GTLO2 = defaultValues.IF1GTLO2; + LO2FractionalMultiplierNumerator = defaultSettings.LO2FractionalMultiplierNumerator; + LO2FractionalMultiplierDenominator = defaultSettings.LO2FractionalMultiplierDenominator; OutputSidebandType = defaultValues.OutputSidebandType; OutputMixerFrequencyType = defaultValues.OutputMixerFrequencyType; @@ -776,6 +803,7 @@ public override void Run() PNAX.SetConverterStages(Channel, ConverterStages); SetInput(Channel); + SetMultiplier(Channel); SetLO1(Channel); SetIF(Channel); SetLO2(Channel); @@ -915,6 +943,19 @@ public override void Run() UpgradeVerdict(Verdict.Pass); } + private void SetMultiplier(int Channel) + { + PNAX.SetInputFractionalMultiplierNumerator(Channel, InputFractionalMultiplierNumerator); + PNAX.SetInputFractionalMultiplierDenominator(Channel, InputFractionalMultiplierDenominator); + PNAX.SetLOFractionalMultiplierNumerator(Channel, 1, LO1FractionalMultiplierNumerator); + PNAX.SetLOFractionalMultiplierDenominator(Channel, 1, LO1FractionalMultiplierDenominator); + if (ConverterStages == ConverterStagesEnum._2) + { + PNAX.SetLOFractionalMultiplierNumerator(Channel, 2, LO2FractionalMultiplierNumerator); + PNAX.SetLOFractionalMultiplierDenominator(Channel, 2, LO2FractionalMultiplierDenominator); + } + } + private void SetInput(int Channel) { #region Input diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs index 9cf658e..3831e36 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs @@ -118,26 +118,6 @@ public LOEnum PortLO2 } } - [Display("Fractional Multiplier Numerator", Group: "Input Port", Order: 31)] - public int InputFractionalMultiplierNumerator { get; set; } - [Display("Fractional Multiplier Denominator", Group: "Input Port", Order: 32)] - public int InputFractionalMultiplierDenominator { get; set; } - - [Display("Fractional Multiplier Numerator", Group: "LO1 Port", Order: 41)] - public int LO1FractionalMultiplierNumerator { get; set; } - [Display("Fractional Multiplier Denominator", Group: "LO1 Port", Order: 42)] - public int LO1FractionalMultiplierDenominator { get; set; } - - [Display("Fractional Multiplier Numerator", Group: "LO2 Port", Order: 51)] - [EnabledIf("DoubleStage", true, HideIfDisabled = true)] - public int LO2FractionalMultiplierNumerator { get; set; } - [Display("Fractional Multiplier Denominator", Group: "LO2 Port", Order: 52)] - [EnabledIf("DoubleStage", true, HideIfDisabled = true)] - public int LO2FractionalMultiplierDenominator { get; set; } - - - - [Display("Enable Embedded LO", Group: "Embedded LO", Order: 70)] public bool EnableEmbeddedLO { get; set; } @@ -237,12 +217,6 @@ private void UpdateDefaultValues() PortOutput = defaultValues.PortOutput; PortLO1 = defaultValues.PortLO1; PortLO2 = defaultValues.PortLO2; - InputFractionalMultiplierNumerator = defaultValues.InputFractionalMultiplierNumerator; - InputFractionalMultiplierDenominator = defaultValues.InputFractionalMultiplierDenominator; - LO1FractionalMultiplierNumerator = defaultValues.LO1FractionalMultiplierNumerator; - LO1FractionalMultiplierDenominator = defaultValues.LO1FractionalMultiplierDenominator; - LO2FractionalMultiplierNumerator = defaultValues.LO2FractionalMultiplierNumerator; - LO2FractionalMultiplierDenominator = defaultValues.LO2FractionalMultiplierDenominator; EnableEmbeddedLO = defaultValues.EnableEmbeddedLO; TuningMethod = defaultValues.TuningMethod; @@ -262,15 +236,9 @@ public override void Run() PNAX.SetConverterStages(Channel, ConverterStages); PNAX.SetPortInputOutput(Channel, PortInput, PortOutput); - PNAX.SetInputFractionalMultiplierNumerator(Channel, InputFractionalMultiplierNumerator); - PNAX.SetInputFractionalMultiplierDenominator(Channel, InputFractionalMultiplierDenominator); - PNAX.SetLOFractionalMultiplierNumerator(Channel, 1, LO1FractionalMultiplierNumerator); - PNAX.SetLOFractionalMultiplierDenominator(Channel, 1, LO1FractionalMultiplierDenominator); PNAX.SetPortLO(Channel, 1, PortLO1); if (ConverterStages == ConverterStagesEnum._2) { - PNAX.SetLOFractionalMultiplierNumerator(Channel, 2, LO2FractionalMultiplierNumerator); - PNAX.SetLOFractionalMultiplierDenominator(Channel, 2, LO2FractionalMultiplierDenominator); PNAX.SetPortLO(Channel, 2, PortLO2); } @@ -298,15 +266,9 @@ public override void Run() { ("Converter Stages", ConverterStages), ("Input Port", PortInput), - ("Fractional Multiplier Numerator", InputFractionalMultiplierNumerator), - ("Fractional Multiplier Denominator", InputFractionalMultiplierDenominator), - ("LO1 Fractional Multiplier Numerator", LO1FractionalMultiplierNumerator), - ("LO1 Fractional Multiplier Denominator", LO1FractionalMultiplierDenominator) }; if (ConverterStages == ConverterStagesEnum._2) { - retVal.Add(("LO2 Fractional Multiplier Numerator", LO2FractionalMultiplierNumerator)); - retVal.Add(("LO2 Fractional Multiplier Denominator", LO2FractionalMultiplierDenominator)); retVal.Add(("LO2 Port", PortLO2)); } retVal.Add(("Enable Embedded LO", EnableEmbeddedLO)); From 6823f7503377b3bfc6b45d677b5dc628f1414eb4 Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Sun, 13 Jul 2025 19:14:41 -0400 Subject: [PATCH 2/6] refactor the set and validation code --- .../Mixer Steps/MixerFrequencyTestStep.cs | 719 +++++++----------- 1 file changed, 255 insertions(+), 464 deletions(-) diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index 01083f8..d345820 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -6,6 +6,7 @@ // warranty, obligations or liability for any sample application files. using OpenTap; using System; +using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -123,7 +124,6 @@ public void CalcInput() #endregion - #region LO1 [Browsable(false)] public bool IsLO1MixerFrequencyTypeStartStop { get; set; } @@ -143,24 +143,9 @@ public MixerFrequencyTypeEnum LO1MixerFrequencyType set { _LO1MixerFrequencyType = value; - if (_LO1MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - IsLO1MixerFrequencyTypeStartStop = true; - IsLO1MixerFrequencyTypeCenterSpan = false; - IsLO1MixerFrequencyTypeFixed = false; - } - else if (_LO1MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - IsLO1MixerFrequencyTypeStartStop = false; - IsLO1MixerFrequencyTypeCenterSpan = true; - IsLO1MixerFrequencyTypeFixed = false; - } - else if (_LO1MixerFrequencyType == MixerFrequencyTypeEnum.Fixed) - { - IsLO1MixerFrequencyTypeStartStop = false; - IsLO1MixerFrequencyTypeCenterSpan = false; - IsLO1MixerFrequencyTypeFixed = true; - } + IsLO1MixerFrequencyTypeStartStop = _LO1MixerFrequencyType == MixerFrequencyTypeEnum.StartStop; + IsLO1MixerFrequencyTypeCenterSpan = _LO1MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan; + IsLO1MixerFrequencyTypeFixed = _LO1MixerFrequencyType == MixerFrequencyTypeEnum.Fixed; } } @@ -231,24 +216,9 @@ public MixerFrequencyTypeEnum IFMixerFrequencyType set { _IFMixerFrequencyType = value; - if (_IFMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - IsIFMixerFrequencyTypeStartStop = true; - IsIFMixerFrequencyTypeCenterSpan = false; - IsIFMixerFrequencyTypeFixed = false; - } - else if (_IFMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - IsIFMixerFrequencyTypeStartStop = false; - IsIFMixerFrequencyTypeCenterSpan = true; - IsIFMixerFrequencyTypeFixed = false; - } - else if (_IFMixerFrequencyType == MixerFrequencyTypeEnum.Fixed) - { - IsIFMixerFrequencyTypeStartStop = false; - IsIFMixerFrequencyTypeCenterSpan = false; - IsIFMixerFrequencyTypeFixed = true; - } + IsIFMixerFrequencyTypeStartStop = _IFMixerFrequencyType == MixerFrequencyTypeEnum.StartStop; + IsIFMixerFrequencyTypeCenterSpan = _IFMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan; + IsIFMixerFrequencyTypeFixed = _IFMixerFrequencyType == MixerFrequencyTypeEnum.Fixed; } } @@ -307,24 +277,9 @@ public MixerFrequencyTypeEnum LO2MixerFrequencyType set { _LO2MixerFrequencyType = value; - if (_LO2MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - IsLO2MixerFrequencyTypeStartStop = true; - IsLO2MixerFrequencyTypeCenterSpan = false; - IsLO2MixerFrequencyTypeFixed = false; - } - else if (_LO2MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - IsLO2MixerFrequencyTypeStartStop = false; - IsLO2MixerFrequencyTypeCenterSpan = true; - IsLO2MixerFrequencyTypeFixed = false; - } - else if (_LO2MixerFrequencyType == MixerFrequencyTypeEnum.Fixed) - { - IsLO2MixerFrequencyTypeStartStop = false; - IsLO2MixerFrequencyTypeCenterSpan = false; - IsLO2MixerFrequencyTypeFixed = true; - } + IsLO2MixerFrequencyTypeStartStop = _LO2MixerFrequencyType == MixerFrequencyTypeEnum.StartStop; + IsLO2MixerFrequencyTypeCenterSpan = _LO2MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan; + IsLO2MixerFrequencyTypeFixed = _LO2MixerFrequencyType == MixerFrequencyTypeEnum.Fixed; } } @@ -404,24 +359,9 @@ public MixerFrequencyTypeEnum OutputMixerFrequencyType set { _OutputMixerFrequencyType = value; - if (_OutputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - IsOutputMixerFrequencyTypeStartStop = true; - IsOutputMixerFrequencyTypeCenterSpan = false; - IsOutputMixerFrequencyTypeFixed = false; - } - else if (_OutputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - IsOutputMixerFrequencyTypeStartStop = false; - IsOutputMixerFrequencyTypeCenterSpan = true; - IsOutputMixerFrequencyTypeFixed = false; - } - else if (_OutputMixerFrequencyType == MixerFrequencyTypeEnum.Fixed) - { - IsOutputMixerFrequencyTypeStartStop = false; - IsOutputMixerFrequencyTypeCenterSpan = false; - IsOutputMixerFrequencyTypeFixed = true; - } + IsOutputMixerFrequencyTypeStartStop = _OutputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop; + IsOutputMixerFrequencyTypeCenterSpan = _OutputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan; + IsOutputMixerFrequencyTypeFixed = _OutputMixerFrequencyType == MixerFrequencyTypeEnum.Fixed; } } @@ -466,269 +406,141 @@ public void CalcOutput() } #endregion - - - #endregion - - private void CalcInputValues() + /// + /// Defines the target for the mixer calculation. + /// + private enum CalculationTarget { Input, LO1, LO2, Output } + + private void CalcInputValues() => CalculateValues(CalculationTarget.Input); + private void CalcLO1Values() => CalculateValues(CalculationTarget.LO1); + private void CalcLO2Values() => CalculateValues(CalculationTarget.LO2); + private void CalcOutputValues() => CalculateValues(CalculationTarget.Output); + + /// + /// A centralized method to perform mixer calculations using a temporary PNA channel. + /// This avoids code duplication across the different Calc... methods. + /// + /// The specific part of the mixer to calculate. + private void CalculateValues(CalculationTarget target) { - int DummyChannel = 234; - try - { - PNAX.Open(); - Log.Info("Calculating Input values"); - - // Create Dummy channel - //PNAX.MixerDiscard(DummyChannel); - int traceid = PNAX.GetNewTraceID(DummyChannel); - // Define a dummy measurement so we can setup all channel parameters - // we will add the traces during the StandardSingleTrace or StandardNewTrace test steps - PNAX.ScpiCommand($"CALCulate{DummyChannel.ToString()}:CUST:DEFine \'CH{DummyChannel.ToString()}_DUMMY_SC21_1\',\'Gain Compression Converters\',\'SC21\'"); - - // Set requirements - PNAX.SetConverterStages(DummyChannel, ConverterStages); - //SetInput(); - SetLO1(DummyChannel); - SetIF(DummyChannel); - SetLO2(DummyChannel); - SetOutput(DummyChannel); - - PNAX.MixerCalc(DummyChannel, "INP"); - PNAX.WaitForOperationComplete(); - - // Read Input and Update settings - string inpMode = PNAX.GetMixerFrequencyInputMode(DummyChannel); - - if (inpMode.Equals("SWEPT")) - { - InputMixerFrequencyType = MixerFrequencyTypeEnum.StartStop; - double ReadStart = PNAX.GetFrequencyLOStart(DummyChannel, 1); - double ReadStop = PNAX.GetFrequencyLOStop(DummyChannel, 1); - InputMixerFrequencyStart = ReadStart; - InputMixerFrequencyStop = ReadStop; - } - else if (inpMode.Equals("FIXED")) - { - InputMixerFrequencyType = MixerFrequencyTypeEnum.Fixed; - double ReadInputMixerFrequencyFixed = PNAX.GetFrequencyInputFixed(DummyChannel); - InputMixerFrequencyFixed = ReadInputMixerFrequencyFixed; - } - - // Delete Dummy Channel - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); + const int DummyChannel = 234; + string dummyTraceName = $"CH{DummyChannel}_DUMMY_SC21_1"; + string logName = target.ToString(); - PNAX.Close(); - } - catch (Exception) - { - if (PNAX.IsConnected) - { - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - PNAX.Close(); - } - Log.Error("Cannot calcluate Input values!"); - return; - } - - } - - private void CalcLO1Values() - { - int DummyChannel = 234; try { PNAX.Open(); - Log.Info("Calculating LO1 values"); + Log.Info($"Calculating {logName} values"); - // Create Dummy channel - //PNAX.MixerDiscard(DummyChannel); + // Create Dummy channel and measurement int traceid = PNAX.GetNewTraceID(DummyChannel); - // Define a dummy measurement so we can setup all channel parameters - // we will add the traces during the StandardSingleTrace or StandardNewTrace test steps - PNAX.ScpiCommand($"CALCulate{DummyChannel.ToString()}:CUST:DEFine \'CH{DummyChannel.ToString()}_DUMMY_SC21_1\',\'Gain Compression Converters\',\'SC21\'"); + PNAX.ScpiCommand($"CALCulate{DummyChannel}:CUST:DEFine '{dummyTraceName}','Gain Compression Converters','SC21'"); - // Set requirements + // Set all known parameters except for the one being calculated PNAX.SetConverterStages(DummyChannel, ConverterStages); - SetInput(DummyChannel); + PNAX.SetFrequencyOutputSideband(DummyChannel, OutputSidebandType); SetMultiplier(DummyChannel); - //SetLO1(); SetIF(DummyChannel); - SetLO2(DummyChannel); - SetOutput(DummyChannel); - - PNAX.MixerCalc(DummyChannel, "LO_1"); - PNAX.WaitForOperationComplete(); - - // Read LO1 and Update settings - String inpMode = PNAX.GetMixerFrequencyLOMode(DummyChannel, 1); - if (inpMode.Equals("SWEPT")) - { - LO1MixerFrequencyType = MixerFrequencyTypeEnum.StartStop; - double ReadStart = PNAX.GetFrequencyLOStart(DummyChannel, 1); - double ReadStop = PNAX.GetFrequencyLOStop(DummyChannel, 1); - LO1MixerFrequencyStart = ReadStart; - LO1MixerFrequencyStop = ReadStop; - } - else if (inpMode.Equals("FIXED")) - { - LO1MixerFrequencyType = MixerFrequencyTypeEnum.Fixed; - double ReadLO1MixerFrequencyFixed = PNAX.GetFrequencyLOFixed(DummyChannel, 1); - LO1MixerFrequencyFixed = ReadLO1MixerFrequencyFixed; + if (target != CalculationTarget.Input) SetInput(DummyChannel); + if (target != CalculationTarget.LO1) SetLO1(DummyChannel); + if (target != CalculationTarget.LO2) SetLO2(DummyChannel); + if (target != CalculationTarget.Output) SetOutput(DummyChannel); + + // Execute the calculation and read back the results + switch (target) + { + case CalculationTarget.Input: + PNAX.MixerCalc(DummyChannel, "INP"); + PNAX.WaitForOperationComplete(); + string inpMode = PNAX.GetMixerFrequencyInputMode(DummyChannel); + if (inpMode.Equals("SWEPT")) + { + InputMixerFrequencyType = MixerFrequencyTypeEnum.StartStop; + InputMixerFrequencyStart = PNAX.GetFrequencyLOStart(DummyChannel, 1); + InputMixerFrequencyStop = PNAX.GetFrequencyLOStop(DummyChannel, 1); + } + else if (inpMode.Equals("FIXED")) + { + InputMixerFrequencyType = MixerFrequencyTypeEnum.Fixed; + InputMixerFrequencyFixed = PNAX.GetFrequencyInputFixed(DummyChannel); + } + break; + case CalculationTarget.LO1: + PNAX.MixerCalc(DummyChannel, "LO_1"); + PNAX.WaitForOperationComplete(); + string lo1Mode = PNAX.GetMixerFrequencyLOMode(DummyChannel, 1); + if (lo1Mode.Equals("SWEPT")) + { + LO1MixerFrequencyType = MixerFrequencyTypeEnum.StartStop; + LO1MixerFrequencyStart = PNAX.GetFrequencyLOStart(DummyChannel, 1); + LO1MixerFrequencyStop = PNAX.GetFrequencyLOStop(DummyChannel, 1); + } + else if (lo1Mode.Equals("FIXED")) + { + LO1MixerFrequencyType = MixerFrequencyTypeEnum.Fixed; + LO1MixerFrequencyFixed = PNAX.GetFrequencyLOFixed(DummyChannel, 1); + } + InputGTLO1 = PNAX.GetLOILTI(DummyChannel, 1); + break; + case CalculationTarget.LO2: + PNAX.MixerCalc(DummyChannel, "LO_2"); + PNAX.WaitForOperationComplete(); + string lo2Mode = PNAX.GetMixerFrequencyLOMode(DummyChannel, 2); + if (lo2Mode.Equals("SWEPT")) + { + LO2MixerFrequencyType = MixerFrequencyTypeEnum.StartStop; + LO2MixerFrequencyStart = PNAX.GetFrequencyLOStart(DummyChannel, 2); + LO2MixerFrequencyStop = PNAX.GetFrequencyLOStop(DummyChannel, 2); + } + else if (lo2Mode.Equals("FIXED")) + { + LO2MixerFrequencyType = MixerFrequencyTypeEnum.Fixed; + LO2MixerFrequencyFixed = PNAX.GetFrequencyLOFixed(DummyChannel, 2); + } + IF1GTLO2 = PNAX.GetLOILTI(DummyChannel, 2); + break; + case CalculationTarget.Output: + PNAX.MixerCalc(DummyChannel, "OUTP"); + PNAX.WaitForOperationComplete(); + string outMode = PNAX.GetMixerFrequencyOutputMode(DummyChannel); + if (outMode.Equals("SWEPT")) + { + OutputMixerFrequencyType = MixerFrequencyTypeEnum.StartStop; + OutputMixerFrequencyStart = PNAX.GetFrequencyOutputStart(DummyChannel); + OutputMixerFrequencyStop = PNAX.GetFrequencyOutputStop(DummyChannel); + } + else if (outMode.Equals("FIXED")) + { + OutputMixerFrequencyType = MixerFrequencyTypeEnum.Fixed; + OutputMixerFrequencyFixed = PNAX.GetFrequencyOutputFixed(DummyChannel); + } + OutputSidebandType = PNAX.GetFrequencyOutputSideband(DummyChannel); + break; } - - bool ReadInputGTLO1 = PNAX.GetLOILTI(DummyChannel, 1); - InputGTLO1 = ReadInputGTLO1; - - // Delete Dummy Channel - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - - PNAX.Close(); } catch (Exception) { - if (PNAX.IsConnected) - { - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - PNAX.Close(); - } - Log.Error("Cannot calcluate LO1 values!"); - return; - } - - } - - private void CalcLO2Values() - { - int DummyChannel = 234; - try - { - PNAX.Open(); - Log.Info("Calculating LO2 values"); - - // Create Dummy channel - //PNAX.MixerDiscard(DummyChannel); - int traceid = PNAX.GetNewTraceID(DummyChannel); - // Define a dummy measurement so we can setup all channel parameters - // we will add the traces during the StandardSingleTrace or StandardNewTrace test steps - PNAX.ScpiCommand($"CALCulate{DummyChannel.ToString()}:CUST:DEFine \'CH{DummyChannel.ToString()}_DUMMY_SC21_1\',\'Gain Compression Converters\',\'SC21\'"); - - // Set requirements - PNAX.SetConverterStages(DummyChannel, ConverterStages); - SetInput(DummyChannel); - SetLO1(DummyChannel); - SetMultiplier(DummyChannel); - SetIF(DummyChannel); - SetOutput(DummyChannel); - - PNAX.MixerCalc(DummyChannel, "LO_2"); - PNAX.WaitForOperationComplete(); - - // Read LO1 and Update settings - string inpMode = PNAX.GetMixerFrequencyLOMode(DummyChannel, 2); - - if (inpMode.Equals("SWEPT")) - { - LO2MixerFrequencyType = MixerFrequencyTypeEnum.StartStop; - double ReadStart = PNAX.GetFrequencyLOStart(DummyChannel, 2); - double ReadStop = PNAX.GetFrequencyLOStop(DummyChannel, 2); - LO2MixerFrequencyStart = ReadStart; - LO2MixerFrequencyStop = ReadStop; - } - else if (inpMode.Equals("FIXED")) - { - LO2MixerFrequencyType = MixerFrequencyTypeEnum.Fixed; - double ReadLO2MixerFrequencyFixed = PNAX.GetFrequencyLOFixed(DummyChannel, 2); - LO2MixerFrequencyFixed = ReadLO2MixerFrequencyFixed; - } - - bool ReadInputGTLO2 = PNAX.GetLOILTI(DummyChannel, 2); - IF1GTLO2 = ReadInputGTLO2; - - // Delete Dummy Channel - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - - PNAX.Close(); - } - catch (Exception) - { - if (PNAX.IsConnected) - { - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - PNAX.Close(); - } - Log.Error("Cannot calcluate LO2 values!"); - return; - } - - } - - private void CalcOutputValues() - { - int DummyChannel = 234; - try - { - PNAX.Open(); - Log.Info("Calculating Input values"); - - // Create Dummy channel - //PNAX.MixerDiscard(DummyChannel); - int traceid = PNAX.GetNewTraceID(DummyChannel); - // Define a dummy measurement so we can setup all channel parameters - // we will add the traces during the StandardSingleTrace or StandardNewTrace test steps - PNAX.ScpiCommand($"CALCulate{DummyChannel.ToString()}:CUST:DEFine \'CH{DummyChannel.ToString()}_DUMMY_SC21_1\',\'Gain Compression Converters\',\'SC21\'"); - - // Set requirements - PNAX.SetConverterStages(DummyChannel, ConverterStages); - SetInput(DummyChannel); - SetMultiplier(DummyChannel); - SetLO1(DummyChannel); - SetIF(DummyChannel); - SetLO2(DummyChannel); - //SetOutput(DummyChannel); - - PNAX.MixerCalc(DummyChannel, "OUTP"); - PNAX.WaitForOperationComplete(); - - // Read output and Update settings - String inpMode = PNAX.GetMixerFrequencyOutputMode(DummyChannel); - - if (inpMode.Equals("SWEPT")) - { - double ReadStart = PNAX.GetFrequencyOutputStart(DummyChannel); - double ReadStop = PNAX.GetFrequencyOutputStop(DummyChannel); - OutputMixerFrequencyType = MixerFrequencyTypeEnum.StartStop; - OutputMixerFrequencyStart = ReadStart; - OutputMixerFrequencyStop = ReadStop; - } - else if (inpMode.Equals("FIXED")) - { - OutputMixerFrequencyType = MixerFrequencyTypeEnum.Fixed; - double ReadOutputMixerFrequencyFixed = PNAX.GetFrequencyOutputFixed(DummyChannel); - OutputMixerFrequencyFixed = ReadOutputMixerFrequencyFixed; - } - - SidebandTypeEnum ReadOutputSidebandType = PNAX.GetFrequencyOutputSideband(DummyChannel); - OutputSidebandType = ReadOutputSidebandType; - - // Delete Dummy Channel - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); - - PNAX.Close(); + Log.Error($"Cannot calculate {logName} values!"); } - catch (Exception) + finally { if (PNAX.IsConnected) { - PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete \'CH{DummyChannel}_DUMMY_SC21_1\'"); + try + { + // Cleanup dummy channel + PNAX.ScpiCommand($"CALCulate{DummyChannel}:PARameter:DELete '{dummyTraceName}'"); + } + catch (Exception ex) + { + Log.Warning($"Failed to delete dummy channel during cleanup: {ex.Message}"); + } PNAX.Close(); } - Log.Error("Cannot calcluate Input values!"); - return; } - } public MixerFrequencyTestStep() @@ -799,9 +611,7 @@ public override void Run() // Start from scratch PNAX.MixerDiscard(Channel); - PNAX.SetConverterStages(Channel, ConverterStages); - SetInput(Channel); SetMultiplier(Channel); SetLO1(Channel); @@ -813,6 +623,12 @@ public override void Run() PNAX.MixerCalc(Channel); PNAX.MixerApply(Channel); + ValidateAllSettings(); + UpgradeVerdict(Verdict.Pass); + } + + private void ValidateAllSettings() + { // Now read back and validate the values were not changed by the Calculate command #region Input if (InputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) @@ -939,8 +755,6 @@ public override void Run() } PNAX.ValidateFrequencyOutputSideband(Channel, OutputSidebandType); #endregion - - UpgradeVerdict(Verdict.Pass); } private void SetMultiplier(int Channel) @@ -949,204 +763,181 @@ private void SetMultiplier(int Channel) PNAX.SetInputFractionalMultiplierDenominator(Channel, InputFractionalMultiplierDenominator); PNAX.SetLOFractionalMultiplierNumerator(Channel, 1, LO1FractionalMultiplierNumerator); PNAX.SetLOFractionalMultiplierDenominator(Channel, 1, LO1FractionalMultiplierDenominator); + retVal.Add(("Fractional Multiplier Numerator", InputFractionalMultiplierNumerator)); + retVal.Add(("Fractional Multiplier Denominator", InputFractionalMultiplierDenominator)); + retVal.Add(("LO1 Fractional Multiplier Numerator", LO1FractionalMultiplierNumerator)); + retVal.Add(("LO1 Fractional Multiplier Denominator", LO1FractionalMultiplierDenominator)); if (ConverterStages == ConverterStagesEnum._2) { PNAX.SetLOFractionalMultiplierNumerator(Channel, 2, LO2FractionalMultiplierNumerator); PNAX.SetLOFractionalMultiplierDenominator(Channel, 2, LO2FractionalMultiplierDenominator); + retVal.Add(("LO1 Fractional Multiplier Numerator", LO2FractionalMultiplierNumerator)); + retVal.Add(("LO1 Fractional Multiplier Denominator", LO2FractionalMultiplierDenominator)); } + } - private void SetInput(int Channel) + private (double Start, double Stop) CalculateStartStop(double inputStart, double inputStop, double inputCenter, double inputSpan, MixerFrequencyTypeEnum type) { - #region Input - if (InputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.StartStop); - PNAX.SetFrequencyInputStart(Channel, InputMixerFrequencyStart); - PNAX.SetFrequencyInputStop(Channel, InputMixerFrequencyStop); - - retVal.Add(("Mixer Frequency Input Mode", MixerFrequencyTypeEnum.StartStop)); - retVal.Add(("Mixer Frequency Input Start", InputMixerFrequencyStart)); - retVal.Add(("Mixer Frequency Input Stop", InputMixerFrequencyStop)); - } - else if (InputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = InputMixerFrequencyCenter - (InputMixerFrequencySpan / 2); - double stop = InputMixerFrequencyCenter + (InputMixerFrequencySpan / 2); - PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.CenterSpan); - PNAX.SetFrequencyInputStart(Channel, start); - PNAX.SetFrequencyInputStop(Channel, stop); - - retVal.Add(("Mixer Frequency Input Mode", MixerFrequencyTypeEnum.CenterSpan)); - retVal.Add(("Mixer Frequency Input Center", InputMixerFrequencyCenter)); - retVal.Add(("Mixer Frequency Input Span", InputMixerFrequencySpan)); - } + if (type == MixerFrequencyTypeEnum.StartStop) + return (inputStart, inputStop); else - { - // Fixed - PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.Fixed); - PNAX.SetFrequencyInputFixed(Channel, InputMixerFrequencyFixed); + return (inputCenter - (inputSpan / 2.0), inputCenter + (inputSpan / 2.0)); + } - retVal.Add(("Mixer Frequency Input Mode", MixerFrequencyTypeEnum.Fixed)); - retVal.Add(("Mixer Frequency Input Fixed", InputMixerFrequencyFixed)); - } - #endregion + private void LogStartStop(string prefix, double start, double stop) + { + retVal.Add(($"{prefix} Mode", MixerFrequencyTypeEnum.StartStop)); + retVal.Add(($"{prefix} Start", start)); + retVal.Add(($"{prefix} Stop", stop)); } - private void SetLO1(int Channel) + private void LogCenterSpan(string prefix, double center, double span) { - #region LO1 - if (LO1MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.StartStop); - PNAX.SetFrequencyLOStart(Channel, 1, LO1MixerFrequencyStart); - PNAX.SetFrequencyLOStop(Channel, 1, LO1MixerFrequencyStop); + retVal.Add(($"{prefix} Mode", MixerFrequencyTypeEnum.CenterSpan)); + retVal.Add(($"{prefix} Center", center)); + retVal.Add(($"{prefix} Span", span)); + } - retVal.Add(("Mixer Frequency LO1 Mode", MixerFrequencyTypeEnum.StartStop)); - retVal.Add(("Mixer Frequency LO1 Start", LO1MixerFrequencyStart)); - retVal.Add(("Mixer Frequency LO1 Stop", LO1MixerFrequencyStop)); - } - else if (LO1MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = LO1MixerFrequencyCenter - (LO1MixerFrequencySpan / 2); - double stop = LO1MixerFrequencyCenter + (LO1MixerFrequencySpan / 2); - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.CenterSpan); - PNAX.SetFrequencyLOStart(Channel, 1, start); - PNAX.SetFrequencyLOStop(Channel, 1, stop); + private void LogFixed(string prefix, double @fixed) + { + retVal.Add(($"{prefix} Mode", MixerFrequencyTypeEnum.Fixed)); + retVal.Add(($"{prefix} Fixed", @fixed)); + } - retVal.Add(("Mixer Frequency LO1 Mode", MixerFrequencyTypeEnum.CenterSpan)); - retVal.Add(("Mixer Frequency LO1 Center", LO1MixerFrequencyCenter)); - retVal.Add(("Mixer Frequency LO1 Span", LO1MixerFrequencySpan)); + private void SetInput(int Channel) + { + var (start, stop) = CalculateStartStop(InputMixerFrequencyStart, InputMixerFrequencyStop, InputMixerFrequencyCenter, InputMixerFrequencySpan, InputMixerFrequencyType); + switch (InputMixerFrequencyType) + { + case MixerFrequencyTypeEnum.StartStop: + PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.StartStop); + PNAX.SetFrequencyInputStart(Channel, start); + PNAX.SetFrequencyInputStop(Channel, stop); + LogStartStop("Mixer Frequency Input", start, stop); + break; + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.CenterSpan); + PNAX.SetFrequencyInputStart(Channel, start); + PNAX.SetFrequencyInputStop(Channel, stop); + LogCenterSpan("Mixer Frequency Input", InputMixerFrequencyCenter, InputMixerFrequencySpan); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.SetMixerFrequencyInputMode(Channel, MixerFrequencyTypeEnum.Fixed); + PNAX.SetFrequencyInputFixed(Channel, InputMixerFrequencyFixed); + LogFixed("Mixer Frequency Input", InputMixerFrequencyFixed); + break; } - else - { - // Fixed - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.Fixed); - PNAX.SetFrequencyLOFixed(Channel, 1, LO1MixerFrequencyFixed); + } - retVal.Add(("Mixer Frequency LO1 Mode", MixerFrequencyTypeEnum.Fixed)); - retVal.Add(("Mixer Frequency LO1 Fixed", LO1MixerFrequencyFixed)); + private void SetLO1(int Channel) + { + var (start, stop) = CalculateStartStop(LO1MixerFrequencyStart, LO1MixerFrequencyStop, LO1MixerFrequencyCenter, LO1MixerFrequencySpan, LO1MixerFrequencyType); + switch(LO1MixerFrequencyType) + { + case MixerFrequencyTypeEnum.StartStop: + PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.StartStop); + PNAX.SetFrequencyLOStart(Channel, 1, start); + PNAX.SetFrequencyLOStop(Channel, 1, stop); + LogStartStop("Mixer Frequency LO1", start, stop); + break; + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.CenterSpan); + PNAX.SetFrequencyLOStart(Channel, 1, start); + PNAX.SetFrequencyLOStop(Channel, 1, stop); + LogCenterSpan("Mixer Frequency LO1", LO1MixerFrequencyCenter, LO1MixerFrequencySpan); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.Fixed); + PNAX.SetFrequencyLOFixed(Channel, 1, LO1MixerFrequencyFixed); + LogFixed("Mixer Frequency LO1", LO1MixerFrequencyFixed); + break; } PNAX.SetLOILTI(Channel, 1, InputGTLO1); retVal.Add(("Input Greater Than LO", InputGTLO1)); - #endregion } private void SetIF(int Channel) { - #region IF if (ConverterStages == ConverterStagesEnum._2) { - if (IFMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.SetFrequencyIFStart(Channel, IFMixerFrequencyStart); - PNAX.SetFrequencyIFStop(Channel, IFMixerFrequencyStop); - - retVal.Add(("Mixer Frequency IF Start", IFMixerFrequencyStart)); - retVal.Add(("Mixer Frequency IF Stop", IFMixerFrequencyStop)); - } - else if (IFMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = IFMixerFrequencyCenter - (IFMixerFrequencySpan / 2); - double stop = IFMixerFrequencyCenter + (IFMixerFrequencySpan / 2); - PNAX.SetFrequencyIFStart(Channel, start); - PNAX.SetFrequencyIFStop(Channel, stop); - - retVal.Add(("Mixer Frequency IF Center", IFMixerFrequencyCenter)); - retVal.Add(("Mixer Frequency IF Span", IFMixerFrequencySpan)); - } - else - { - // Fixed - // TODO find command for IF Fixed - // PNAX.SetFrequencyIFFixed(Channel, IFMixerFrequencyFixed); + var (start, stop) = CalculateStartStop(LO2MixerFrequencyStart, LO2MixerFrequencyStop, LO2MixerFrequencyCenter, LO2MixerFrequencySpan, LO2MixerFrequencyType); + switch(IFMixerFrequencyType) + { + case MixerFrequencyTypeEnum.StartStop: + PNAX.SetFrequencyIFStart(Channel, start); + PNAX.SetFrequencyIFStop(Channel, stop); + LogStartStop("Mixer Frequency IF", start, stop); + break; + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.SetFrequencyIFStart(Channel, start); + PNAX.SetFrequencyIFStop(Channel, stop); + LogCenterSpan("Mixer Frequency IF", IFMixerFrequencyCenter, IFMixerFrequencySpan); + break; + case MixerFrequencyTypeEnum.Fixed: + // TODO find command for IF Fixed + // PNAX.SetFrequencyIFFixed(Channel, IFMixerFrequencyFixed); + break; } PNAX.SetFrequencyIFSideband(Channel, IFSidebandType); retVal.Add(("Mixer Frequency IF Sideband", IFSidebandType)); } - #endregion } private void SetLO2(int Channel) { - #region LO2 if (ConverterStages == ConverterStagesEnum._2) { - if (LO2MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.StartStop); - PNAX.SetFrequencyLOStart(Channel, 2, LO2MixerFrequencyStart); - PNAX.SetFrequencyLOStop(Channel, 2, LO2MixerFrequencyStop); - - retVal.Add(("Mixer Frequency LO2 Mode", MixerFrequencyTypeEnum.StartStop)); - retVal.Add(("Mixer Frequency LO2 Start", LO2MixerFrequencyStart)); - retVal.Add(("Mixer Frequency LO2 Stop", LO2MixerFrequencyStop)); - } - else if (LO2MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = LO2MixerFrequencyCenter - (LO2MixerFrequencySpan / 2); - double stop = LO2MixerFrequencyCenter + (LO2MixerFrequencySpan / 2); - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.CenterSpan); - PNAX.SetFrequencyLOStart(Channel, 2, start); - PNAX.SetFrequencyLOStop(Channel, 2, stop); - - retVal.Add(("Mixer Frequency LO2 Mode", MixerFrequencyTypeEnum.CenterSpan)); - retVal.Add(("Mixer Frequency LO2 Center", LO2MixerFrequencyCenter)); - retVal.Add(("Mixer Frequency LO2 Span", LO2MixerFrequencySpan)); - } - else - { - // Fixed - PNAX.SetMixerFrequencyLOMode(Channel, 1, MixerFrequencyTypeEnum.Fixed); - PNAX.SetFrequencyLOFixed(Channel, 2, LO2MixerFrequencyFixed); - - retVal.Add(("Mixer Frequency LO2 Mode", MixerFrequencyTypeEnum.Fixed)); - retVal.Add(("Mixer Frequency LO2 Fixed", LO2MixerFrequencyFixed)); + var (start, stop) = CalculateStartStop(LO2MixerFrequencyStart, LO2MixerFrequencyStop, LO2MixerFrequencyCenter, LO2MixerFrequencySpan, LO2MixerFrequencyType); + switch(LO2MixerFrequencyType) + { + case MixerFrequencyTypeEnum.StartStop: + PNAX.SetMixerFrequencyLOMode(Channel, 2, MixerFrequencyTypeEnum.StartStop); + PNAX.SetFrequencyLOStart(Channel, 2, start); + PNAX.SetFrequencyLOStop(Channel, 2, stop); + LogStartStop("Mixer Frequency LO2", start, stop); + break; + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.SetMixerFrequencyLOMode(Channel, 2, MixerFrequencyTypeEnum.CenterSpan); + PNAX.SetFrequencyLOStart(Channel, 2, start); + PNAX.SetFrequencyLOStop(Channel, 2, stop); + LogCenterSpan("Mixer Frequency LO2", LO2MixerFrequencyCenter, LO2MixerFrequencySpan); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.SetMixerFrequencyLOMode(Channel, 2, MixerFrequencyTypeEnum.Fixed); + PNAX.SetFrequencyLOFixed(Channel, 2, LO2MixerFrequencyFixed); + LogFixed("Mixer Frequency LO2", LO2MixerFrequencyFixed); + break; } PNAX.SetLOILTI(Channel, 2, IF1GTLO2); retVal.Add(("IF1 Greater Than LO2", IF1GTLO2)); } - #endregion } private void SetOutput(int Channel) { - #region Output PNAX.SetMixerFrequencyOutputMode(Channel, OutputMixerFrequencyType); retVal.Add(("Mixer Frequency LO1 Mode", MixerFrequencyTypeEnum.Fixed)); - if (OutputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.SetFrequencyOutputStart(Channel, OutputMixerFrequencyStart); - PNAX.SetFrequencyOutputStop(Channel, OutputMixerFrequencyStop); - - retVal.Add(("Mixer Frequency Output Start", OutputMixerFrequencyStart)); - retVal.Add(("Mixer Frequency Output Stop", OutputMixerFrequencyStop)); - } - else if (OutputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = OutputMixerFrequencyCenter - (OutputMixerFrequencySpan / 2); - double stop = OutputMixerFrequencyCenter + (OutputMixerFrequencySpan / 2); - PNAX.SetFrequencyOutputStart(Channel, start); - PNAX.SetFrequencyOutputStop(Channel, stop); - - retVal.Add(("Mixer Frequency Output Center", OutputMixerFrequencyCenter)); - retVal.Add(("Mixer Frequency Output Span", OutputMixerFrequencySpan)); - } - else - { - // Fixed - PNAX.SetFrequencyOutputFixed(Channel, OutputMixerFrequencyFixed); - - retVal.Add(("Mixer Frequency Output Fixed", OutputMixerFrequencyFixed)); + var (start, stop) = CalculateStartStop(OutputMixerFrequencyStart, OutputMixerFrequencyStop, OutputMixerFrequencyCenter, OutputMixerFrequencySpan, OutputMixerFrequencyType); + switch(OutputMixerFrequencyType) + { + case MixerFrequencyTypeEnum.StartStop: + PNAX.SetFrequencyOutputStart(Channel, start); + PNAX.SetFrequencyOutputStop(Channel, stop); + LogStartStop("Mixer Frequency Output", start, stop); + break; + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.SetFrequencyOutputStart(Channel, start); + PNAX.SetFrequencyOutputStop(Channel, stop); + LogCenterSpan("Mixer Frequency Output", OutputMixerFrequencyCenter, OutputMixerFrequencySpan); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.SetFrequencyOutputFixed(Channel, OutputMixerFrequencyFixed); + LogFixed("Mixer Frequency Output", OutputMixerFrequencyFixed); + break; } PNAX.SetFrequencyOutputSideband(Channel, OutputSidebandType); retVal.Add(("Mixer Frequency Output Sideband", OutputSidebandType)); - #endregion } private List<(string, object)> retVal = new List<(string, object)>(); From 1ec24345d991fe469380b382f619a8b1d6f81730 Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Tue, 15 Jul 2025 17:10:26 -0400 Subject: [PATCH 3/6] there is a lo setup error message in mixersetup step --- .../Mixer Steps/MixerFrequencyTestStep.cs | 148 +++++++----------- .../Mixer Steps/MixerSetupTestStep.cs | 4 - .../Modulation Distortion/MODXMixer.cs | 27 ++-- .../Scalar Mixer Phase/ScalarMixerSweep.cs | 15 +- 4 files changed, 72 insertions(+), 122 deletions(-) diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index d345820..9c004db 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -621,7 +621,7 @@ public override void Run() // Apply changes to instrument PNAX.MixerCalc(Channel); - PNAX.MixerApply(Channel); + //PNAX.MixerApply(Channel); ValidateAllSettings(); UpgradeVerdict(Verdict.Pass); @@ -631,51 +631,36 @@ private void ValidateAllSettings() { // Now read back and validate the values were not changed by the Calculate command #region Input - if (InputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) + var (start, stop) = CalculateStartStop(InputMixerFrequencyStart, InputMixerFrequencyStop, InputMixerFrequencyCenter, InputMixerFrequencyCenter, InputMixerFrequencyType); + switch(InputMixerFrequencyType) { - PNAX.ValidateMixerFrequencyInputMode(Channel, "SWEPT"); - PNAX.ValidateFrequencyInputStart(Channel, InputMixerFrequencyStart); - PNAX.ValidateFrequencyInputStop(Channel, InputMixerFrequencyStop); - } - else if (InputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = InputMixerFrequencyCenter - (InputMixerFrequencySpan / 2); - double stop = InputMixerFrequencyCenter + (InputMixerFrequencySpan / 2); - - PNAX.ValidateMixerFrequencyInputMode(Channel, "SWEPT"); - PNAX.ValidateFrequencyInputStart(Channel, start); - PNAX.ValidateFrequencyInputStop(Channel, stop); - } - else - { - // Fixed - PNAX.ValidateMixerFrequencyInputMode(Channel, "FIXED"); - PNAX.ValidateFrequencyInputFixed(Channel, InputMixerFrequencyFixed); + case MixerFrequencyTypeEnum.StartStop: + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.ValidateMixerFrequencyInputMode(Channel, "SWEPT"); + PNAX.ValidateFrequencyInputStart(Channel, start); + PNAX.ValidateFrequencyInputStop(Channel, stop); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.ValidateMixerFrequencyInputMode(Channel, "FIXED"); + PNAX.ValidateFrequencyInputFixed(Channel, InputMixerFrequencyFixed); + break; } #endregion #region LO1 - if (LO1MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "SWEPT"); - PNAX.ValidateFrequencyLOStart(Channel, 1, LO1MixerFrequencyStart); - PNAX.ValidateFrequencyLOStop(Channel, 1, LO1MixerFrequencyStop); - } - else if (LO1MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = LO1MixerFrequencyCenter - (LO1MixerFrequencySpan / 2); - double stop = LO1MixerFrequencyCenter + (LO1MixerFrequencySpan / 2); - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "SWEPT"); - PNAX.ValidateFrequencyLOStart(Channel, 1, start); - PNAX.ValidateFrequencyLOStop(Channel, 1, stop); - } - else + (start, stop) = CalculateStartStop(LO1MixerFrequencyStart, LO1MixerFrequencyStop, LO1MixerFrequencyCenter, LO1MixerFrequencyCenter, LO1MixerFrequencyType); + switch(LO1MixerFrequencyType) { - // Fixed - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "FIXED"); - PNAX.ValidateFrequencyLOFixed(Channel, 1, LO1MixerFrequencyFixed); + case MixerFrequencyTypeEnum.StartStop: + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "SWEPT"); + PNAX.ValidateFrequencyLOStart(Channel, 1, start); + PNAX.ValidateFrequencyLOStop(Channel, 1, stop); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "FIXED"); + PNAX.ValidateFrequencyLOFixed(Channel, 1, LO1MixerFrequencyFixed); + break; } PNAX.ValidateLOILTI(Channel, 1, InputGTLO1); #endregion @@ -683,24 +668,16 @@ private void ValidateAllSettings() #region IF if (ConverterStages == ConverterStagesEnum._2) { - if (IFMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.ValidateFrequencyIFStart(Channel, IFMixerFrequencyStart); - PNAX.ValidateFrequencyIFStop(Channel, IFMixerFrequencyStop); - } - else if (IFMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = IFMixerFrequencyCenter - (IFMixerFrequencySpan / 2); - double stop = IFMixerFrequencyCenter + (IFMixerFrequencySpan / 2); - PNAX.ValidateFrequencyIFStart(Channel, start); - PNAX.ValidateFrequencyIFStop(Channel, stop); - } - else + (start, stop) = CalculateStartStop(IFMixerFrequencyStart, IFMixerFrequencyStop, IFMixerFrequencyCenter, IFMixerFrequencyCenter, IFMixerFrequencyType); + switch(IFMixerFrequencyType) { - // Fixed - // TODO find command for IF Fixed - // PNAX.SetFrequencyIFFixed(Channel, IFMixerFrequencyFixed); + case MixerFrequencyTypeEnum.StartStop: + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.ValidateFrequencyIFStart(Channel, start); + PNAX.ValidateFrequencyIFStop(Channel, stop); + break; + case MixerFrequencyTypeEnum.Fixed: + break; } PNAX.ValidateFrequencyIFSideband(Channel, IFSidebandType); } @@ -709,49 +686,36 @@ private void ValidateAllSettings() #region LO2 if (ConverterStages == ConverterStagesEnum._2) { - if (LO2MixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "SWEPT"); - PNAX.ValidateFrequencyLOStart(Channel, 2, LO2MixerFrequencyStart); - PNAX.ValidateFrequencyLOStop(Channel, 2, LO2MixerFrequencyStop); - } - else if (LO2MixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = LO2MixerFrequencyCenter - (LO2MixerFrequencySpan / 2); - double stop = LO2MixerFrequencyCenter + (LO2MixerFrequencySpan / 2); - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "SWEPT"); - PNAX.ValidateFrequencyLOStart(Channel, 2, start); - PNAX.ValidateFrequencyLOStop(Channel, 2, stop); - } - else + (start, stop) = CalculateStartStop(LO2MixerFrequencyStart, LO2MixerFrequencyStop, LO2MixerFrequencyCenter, LO2MixerFrequencyCenter, LO2MixerFrequencyType); + switch(LO2MixerFrequencyType) { - // Fixed - PNAX.ValidateMixerFrequencyLOMode(Channel, 1, "FIXED"); - PNAX.ValidateFrequencyLOFixed(Channel, 2, LO2MixerFrequencyFixed); + case MixerFrequencyTypeEnum.StartStop: + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.ValidateMixerFrequencyLOMode(Channel, 2, "SWEPT"); + PNAX.ValidateFrequencyLOStart(Channel, 2, start); + PNAX.ValidateFrequencyLOStop(Channel, 2, stop); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.ValidateMixerFrequencyLOMode(Channel, 2, "FIXED"); + PNAX.ValidateFrequencyLOFixed(Channel, 2, LO2MixerFrequencyFixed); + break; } PNAX.ValidateLOILTI(Channel, 2, IF1GTLO2); } #endregion #region Output - if (OutputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop) - { - PNAX.ValidateFrequencyOutputStart(Channel, OutputMixerFrequencyStart); - PNAX.ValidateFrequencyOutputStop(Channel, OutputMixerFrequencyStop); - } - else if (OutputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - // Calculate Start/Stop from Center/Span - double start = OutputMixerFrequencyCenter - (OutputMixerFrequencySpan / 2); - double stop = OutputMixerFrequencyCenter + (OutputMixerFrequencySpan / 2); - PNAX.ValidateFrequencyOutputStart(Channel, start); - PNAX.ValidateFrequencyOutputStop(Channel, stop); - } - else + (start, stop) = CalculateStartStop(OutputMixerFrequencyStart, OutputMixerFrequencyStop, OutputMixerFrequencyCenter, OutputMixerFrequencyCenter, OutputMixerFrequencyType); + switch(OutputMixerFrequencyType) { - // Fixed - PNAX.ValidateFrequencyOutputFixed(Channel, OutputMixerFrequencyFixed); + case MixerFrequencyTypeEnum.StartStop: + case MixerFrequencyTypeEnum.CenterSpan: + PNAX.ValidateFrequencyOutputStart(Channel, start); + PNAX.ValidateFrequencyOutputStop(Channel, stop); + break; + case MixerFrequencyTypeEnum.Fixed: + PNAX.ValidateFrequencyOutputFixed(Channel, OutputMixerFrequencyFixed); + break; } PNAX.ValidateFrequencyOutputSideband(Channel, OutputSidebandType); #endregion diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs index 3831e36..bb387a8 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerSetupTestStep.cs @@ -194,10 +194,6 @@ public int TuningPoint [Display("LO Frequency Delta", Group: "Embedded LO", Order: 79)] [Unit("Hz", UseEngineeringPrefix: true)] public double LOFrequencyDelta { get; set; } - - - - #endregion public MixerSetupTestStep() diff --git a/OpenTap.Plugins.PNAX/Converters/Modulation Distortion/MODXMixer.cs b/OpenTap.Plugins.PNAX/Converters/Modulation Distortion/MODXMixer.cs index af26570..5f43505 100644 --- a/OpenTap.Plugins.PNAX/Converters/Modulation Distortion/MODXMixer.cs +++ b/OpenTap.Plugins.PNAX/Converters/Modulation Distortion/MODXMixer.cs @@ -113,7 +113,7 @@ public class MODXMixer : PNABaseStep public double LO1Power { get; set; } [Display("LO1 Leveling", Groups: new[] { "Power", "LO1" }, Order: 52)] - public SourceLevelingModeType LO1SourceLevelingMode{ get; set; } + public SourceLevelingModeType LO1SourceLevelingMode { get; set; } [Display("LO1 Attenuator", Groups: new[] { "Power", "LO1" }, Order: 53)] [Unit("dB", UseEngineeringPrefix: true, StringFormat: "0")] @@ -269,27 +269,24 @@ public override void Run() } PNAX.MixerApply(Channel); - // Power - PNAX.SetPortLO(Channel, 1, LO1Source); - //PNAX.MODMixerSourceRole(Channel, "INPUT", "Device0"); - PNAX.SetLOPower(Channel, 1, LO1Power); - PNAX.SetSourceLevelingMode(Channel, InputPort, LO1SourceLevelingMode.ToString()); - PNAX.SetSourceAttenuator(Channel, InputPort, LO1Attenuator); - + SetPower(LO1Source, LO1Power, LO1SourceLevelingMode.ToString(), LO1Attenuator); if (ConverterStages == ConverterStagesEnum._2) - { - PNAX.SetPortLO(Channel, 2, LO2Source); - //PNAX.MODMixerSourceRole(Channel, "INPUT", "Device0"); - PNAX.SetLOPower(Channel, 2, LO2Power); - PNAX.SetSourceLevelingMode(Channel, InputPort, LO1SourceLevelingMode.ToString()); - PNAX.SetSourceAttenuator(Channel, InputPort, LO1Attenuator); - } + SetPower(LO2Source, LO2Power, LO2SourceLevelingMode.ToString(), LO2Attenuator); + // Apply changes to instrument PNAX.MixerCalc(Channel); PNAX.MixerApply(Channel); UpgradeVerdict(Verdict.Pass); } + + private void SetPower(string source, double power, string mode, double attenuator) + { + PNAX.SetPortLO(Channel, 1, source); + PNAX.SetLOPower(Channel, 1, power); + PNAX.SetSourceLevelingMode(Channel, InputPort, mode); + PNAX.SetSourceAttenuator(Channel, InputPort, attenuator); + } } } diff --git a/OpenTap.Plugins.PNAX/Converters/Scalar Mixer Phase/ScalarMixerSweep.cs b/OpenTap.Plugins.PNAX/Converters/Scalar Mixer Phase/ScalarMixerSweep.cs index 605da1b..475a4d8 100644 --- a/OpenTap.Plugins.PNAX/Converters/Scalar Mixer Phase/ScalarMixerSweep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Scalar Mixer Phase/ScalarMixerSweep.cs @@ -161,8 +161,8 @@ private void UpdateDefaultValues() IsAvoidSpurs = DefaultValues.IsAvoidSpurs; NumberOfPoints = DefaultValues.NumberOfPoints; IFBandwidth = DefaultValues.IFBandwidth; - IsEnablePhase = DefaultValues.IsEnablePhase; - PhasePoint = DefaultValues.PhasePoint; + IsEnablePhase = DefaultValues.IsEnablePhase; + PhasePoint = DefaultValues.PhasePoint; } public override void Run() { @@ -182,17 +182,10 @@ public override void Run() PNAX.SetReversedPort2Coupler(Channel, IsReversedPortTwoCoupler); PNAX.SetPoints(Channel, NumberOfPoints); PNAX.SetIFBandwidth(Channel, IFBandwidth); - PNAX.SetMixerPhase(Channel, IsEnablePhase); PNAX.SetNormalizingDataPoint(Channel, PhasePointValue); - if (PhasePoint == ScalerMixerPhasePoint.AbsolutePhase) - { - PNAX.SetMixerUseAbsolutePhase(Channel, true); - } - else - { - PNAX.SetMixerUseAbsolutePhase(Channel, false); - } + PNAX.SetMixerUseAbsolutePhase(Channel, PhasePoint == ScalerMixerPhasePoint.AbsolutePhase); + UpgradeVerdict(Verdict.Pass); } From a2a9fb68a8bf269d44a993c31f5f9b65f51a190e Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Thu, 31 Jul 2025 13:26:47 -0400 Subject: [PATCH 4/6] fixed the input calcuation --- .../Converters/Mixer Steps/MixerFrequencyTestStep.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index 9c004db..71da6a1 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -449,6 +449,7 @@ private void CalculateValues(CalculationTarget target) if (target != CalculationTarget.LO2) SetLO2(DummyChannel); if (target != CalculationTarget.Output) SetOutput(DummyChannel); + // Execute the calculation and read back the results switch (target) { @@ -459,8 +460,8 @@ private void CalculateValues(CalculationTarget target) if (inpMode.Equals("SWEPT")) { InputMixerFrequencyType = MixerFrequencyTypeEnum.StartStop; - InputMixerFrequencyStart = PNAX.GetFrequencyLOStart(DummyChannel, 1); - InputMixerFrequencyStop = PNAX.GetFrequencyLOStop(DummyChannel, 1); + InputMixerFrequencyStart = PNAX.GetFrequencyInputStart(DummyChannel); + InputMixerFrequencyStop = PNAX.GetFrequencyInputStop(DummyChannel); } else if (inpMode.Equals("FIXED")) { From 4425d24717c6d6c7bdd097d22615a6e8da33f91e Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Thu, 31 Jul 2025 13:36:38 -0400 Subject: [PATCH 5/6] clean the setter --- .../Mixer Steps/MixerFrequencyTestStep.cs | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index 71da6a1..58dfb46 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -59,24 +59,9 @@ public MixerFrequencyTypeEnum InputMixerFrequencyType set { _InputMixerFrequencyType = value; - if (_InputMixerFrequencyType== MixerFrequencyTypeEnum.StartStop) - { - IsInputMixerFrequencyTypeStartStop = true; - IsInputMixerFrequencyTypeCenterSpan = false; - IsInputMixerFrequencyTypeFixed = false; - } - else if (_InputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan) - { - IsInputMixerFrequencyTypeStartStop = false; - IsInputMixerFrequencyTypeCenterSpan = true; - IsInputMixerFrequencyTypeFixed = false; - } - else if (_InputMixerFrequencyType == MixerFrequencyTypeEnum.Fixed) - { - IsInputMixerFrequencyTypeStartStop = false; - IsInputMixerFrequencyTypeCenterSpan = false; - IsInputMixerFrequencyTypeFixed = true; - } + IsInputMixerFrequencyTypeStartStop = _InputMixerFrequencyType == MixerFrequencyTypeEnum.StartStop; + IsInputMixerFrequencyTypeCenterSpan = _InputMixerFrequencyType == MixerFrequencyTypeEnum.CenterSpan; + IsInputMixerFrequencyTypeFixed = _InputMixerFrequencyType == MixerFrequencyTypeEnum.Fixed; } } From 4d7c60746926fcf9264b134dff107083fceb5d54 Mon Sep 17 00:00:00 2001 From: "KEYSIGHT\\alexwang" Date: Thu, 31 Jul 2025 21:55:30 -0400 Subject: [PATCH 6/6] bump version --- .gitignore | 1 + .gitversion | 2 +- .../Converters/Mixer Steps/MixerFrequencyTestStep.cs | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 48a07ae..1bd507d 100644 --- a/.gitignore +++ b/.gitignore @@ -259,3 +259,4 @@ paket-files/ # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc +.vscode/settings.json diff --git a/.gitversion b/.gitversion index 01e4ec1..ac325d1 100644 --- a/.gitversion +++ b/.gitversion @@ -3,7 +3,7 @@ # This is the version number that will be used. Prerelease numbers are calculated by # counting git commits since the last change in this value. -version = 0.7.4 +version = 0.7.5 # A version is determined to be a "beta" prerelease if it originates from the default branch # The default branch is the first branch that matches the following regular expession. diff --git a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs index 58dfb46..d4f7cb8 100644 --- a/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs +++ b/OpenTap.Plugins.PNAX/Converters/Mixer Steps/MixerFrequencyTestStep.cs @@ -607,7 +607,6 @@ public override void Run() // Apply changes to instrument PNAX.MixerCalc(Channel); - //PNAX.MixerApply(Channel); ValidateAllSettings(); UpgradeVerdict(Verdict.Pass);