ceac_pqy@163.com 3 år sedan
förälder
incheckning
48096e46a7

BIN
exe/apps/Tps_LQ_Transmitter/Tps_LQ_Transmitter.dll


BIN
exe/apps/Tps_LQ_Transmitter/Tps_LQ_Transmitter.pdb


BIN
exe/apps/Tps_LQ_Transmitter/config/测试#常温测试#发射机 -N9030A.xlsx


BIN
tps/TpsLabStudio/.vs/TpsLabStudio/v16/.suo


BIN
tps/TpsLabStudio/config/测试#常温测试#发射机 -N9030A.xlsx


+ 14 - 8
tps/TpsLabStudio/models/HarmonicSuppression.cs

@@ -63,6 +63,7 @@ namespace Tps_LQ_Transmitter.models
             PowerPara.HarmonicTime = parameters.Parameters.GetParameterToArray<int>("谐波次数");
             //PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
             PowerPara.HarmonicSuppressionLower = parameters.Parameters.GetParameter<double>("谐波抑制下限");
+            PowerPara.HarmonicSuppressionUpper = parameters.Parameters.GetParameter<double>("谐波抑制上限");
             if ( (PowerPara.SPAN == null) || (PowerPara.REF == null) ||(PowerPara.SmallSignalREF==null)|| (PowerPara.RBW == null) || (PowerPara.VBW == null) || (PowerPara.HarmonicTime == null)
                 ||(PowerPara.HarmonicSuppressionLower==0))
             {
@@ -112,6 +113,7 @@ namespace Tps_LQ_Transmitter.models
                 double[] HarmonicTimeVal = new double[PowerPara.HarmonicTime.Length];
                 double HarmonicMinTimeVal = 0;
                 HarmonicSuppressionPrint.Lower = PowerPara.HarmonicSuppressionLower;
+                HarmonicSuppressionPrint.Upper  = PowerPara.HarmonicSuppressionUpper;
                 if (true)//需具备仪器
                 {
                     SA.Write("REF", PowerPara.SmallSignalREF); SA.Query("OPC");
@@ -125,7 +127,7 @@ namespace Tps_LQ_Transmitter.models
                         Data.HarmonicSuppression[parameters.PointIndex, harmonic_num] = Math.Round(Power - y_value, 2);
                         HarmonicSuppressionPrint.Test_name = parameters.Channel + "-"+ PowerPara.HarmonicTime[harmonic_num].ToString()+ "次-谐波抑制测试-" + parameters.CenterFreq.ToString() + "MHz";
                         HarmonicTimeVal[harmonic_num] = Data.HarmonicSuppression[parameters.PointIndex, harmonic_num];
-                        if (HarmonicTimeVal[harmonic_num] >= HarmonicSuppressionPrint.Lower)
+                        if ((HarmonicTimeVal[harmonic_num] >= HarmonicSuppressionPrint.Lower) && (HarmonicTimeVal[harmonic_num] <= HarmonicSuppressionPrint.Upper))
                         {
                             HarmonicSuppressionPrint.Result = "是";
                         }
@@ -133,17 +135,17 @@ namespace Tps_LQ_Transmitter.models
                         {
                             HarmonicSuppressionPrint.Result = "否";
                         }
-                        tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), "/", HarmonicTimeVal[harmonic_num].ToString(), HarmonicSuppressionPrint.Result);
+                        tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicTimeVal[harmonic_num].ToString(), HarmonicSuppressionPrint.Result);
                         if (parameters.Channel == "通道1")
                         {
 
-                            WriteExcelData(sheet, parameters.PointIndex, 1+2*(harmonic_num+1), HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), "/", HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                            WriteExcelData(sheet, parameters.PointIndex, 1+2*(harmonic_num+1), HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                             // tps.SetTestTableCellValue(point, 15, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);
                         }
                         else if (parameters.Channel == "通道2")
                         {
 
-                            WriteExcelData(sheet, parameters.PointIndex, 2 + 2 * (harmonic_num + 1), HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), "/", HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                            WriteExcelData(sheet, parameters.PointIndex, 2 + 2 * (harmonic_num + 1), HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                             // tps.SetTestTableCellValue(point + 15, 15, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);
                         }
                     }
@@ -163,7 +165,7 @@ namespace Tps_LQ_Transmitter.models
                
                 HarmonicSuppressionPrint.TestVal = HarmonicMinTimeVal;
               //  HarmonicSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
-                if (HarmonicSuppressionPrint.TestVal >= HarmonicSuppressionPrint.Lower)
+                if ((HarmonicTimeVal[harmonic_num] >= HarmonicSuppressionPrint.Lower) && (HarmonicTimeVal[harmonic_num] <= HarmonicSuppressionPrint.Upper))
                 {
                     HarmonicSuppressionPrint.Result = "是";
                 }
@@ -171,17 +173,17 @@ namespace Tps_LQ_Transmitter.models
                 {
                     HarmonicSuppressionPrint.Result = "否";
                 }
-                tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), "/", HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
                     
-                    WriteExcelData(sheet, parameters.PointIndex, 1, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(),"/", HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 1, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                    // tps.SetTestTableCellValue(point, 15, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);
                 }
                 else if (parameters.Channel == "通道2")
                 {
                     
-                    WriteExcelData(sheet, parameters.PointIndex, 2, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), "/", HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 2, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                    // tps.SetTestTableCellValue(point + 15, 15, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);
                 }
 
@@ -277,6 +279,10 @@ namespace Tps_LQ_Transmitter.models
             /// 谐波抑制下限
             /// </summary>
             public double HarmonicSuppressionLower { set; get; }
+            /// <summary>
+            /// 谐波抑制上限
+            /// </summary>
+            public double HarmonicSuppressionUpper{ set; get; }
         }
         public class OutData
         {

+ 12 - 12
tps/TpsLabStudio/models/ModulationIndexAndMaxFreqOffset.cs

@@ -207,7 +207,7 @@ namespace Tps_LQ_Transmitter.models
                 leftFreqOffsetPrint.TestVal = double.Parse(Data.leftFreqOffset[parameters.PointIndex]);
                 rightFreqOffsetPrint.TestVal = double.Parse(Data.rightFreqOffset[parameters.PointIndex]);
 
-                if (ModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower && ModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper)
+                if ((ModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower) &&( ModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper))
                 {
                     ModulationIndexPrint.Result = "是";
                     MaxFreqOffsetPrint.Result = "是";
@@ -221,7 +221,7 @@ namespace Tps_LQ_Transmitter.models
                    
                 }
 
-                if (leftModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower && leftModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper)
+                if ((leftModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower) && (leftModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper))
                 {
                    
                     leftModulationIndexPrint.Result = "是";                  
@@ -234,7 +234,7 @@ namespace Tps_LQ_Transmitter.models
                     leftFreqOffsetPrint.Result = "否";
                 }
 
-                if (rightModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower && rightModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper)
+                if ((rightModulationIndexPrint.TestVal >= ModulationIndexPrint.Lower) && (rightModulationIndexPrint.TestVal <= ModulationIndexPrint.Upper))
                 {
 
                     rightModulationIndexPrint.Result = "是";               
@@ -246,9 +246,9 @@ namespace Tps_LQ_Transmitter.models
                     rightModulationIndexPrint.Result = "否";                
                     rightFreqOffsetPrint.Result = "否";
                 }
-                tps.TestTableAddCell(MaxFreqOffsetPrint.Test_name, leftFreqOffsetPrint.Lower.ToString(), leftFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                tps.TestTableAddCell(leftFreqOffsetPrint.Test_name, leftFreqOffsetPrint.Lower.ToString(), leftFreqOffsetPrint.Upper.ToString(), leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
-                tps.TestTableAddCell(rightFreqOffsetPrint.Test_name, rightFreqOffsetPrint.Lower.ToString(), rightFreqOffsetPrint.Upper.ToString(), rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
+                tps.TestTableAddCell(MaxFreqOffsetPrint.Test_name, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+                tps.TestTableAddCell(leftFreqOffsetPrint.Test_name, "/", "/", leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
+                tps.TestTableAddCell(rightFreqOffsetPrint.Test_name, "/", "/", rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
                
                 tps.TestTableAddCell(ModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
                 tps.TestTableAddCell(leftModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), leftModulationIndexPrint.TestVal.ToString(), leftModulationIndexPrint.Result);
@@ -261,9 +261,9 @@ namespace Tps_LQ_Transmitter.models
                     WriteExcelData(sheet, parameters.PointIndex, 1, ModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 5, leftModulationIndexPrint.Test_name, leftModulationIndexPrint.Lower.ToString(), leftModulationIndexPrint.Upper.ToString(), leftModulationIndexPrint.TestVal.ToString(), leftModulationIndexPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 9, rightModulationIndexPrint.Test_name, rightModulationIndexPrint.Lower.ToString(), rightModulationIndexPrint.Upper.ToString(), rightModulationIndexPrint.TestVal.ToString(), rightModulationIndexPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 3, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 7, leftFreqOffsetPrint.Test_name, leftFreqOffsetPrint.Lower.ToString(), leftFreqOffsetPrint.Upper.ToString(), leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 11, rightFreqOffsetPrint.Test_name, rightFreqOffsetPrint.Lower.ToString(), rightFreqOffsetPrint.Upper.ToString(), rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 3, MaxFreqOffsetPrint.Test_name, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 7, leftFreqOffsetPrint.Test_name, "/", "/", leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 11, rightFreqOffsetPrint.Test_name, "/", "/", rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
                     // tps.SetTestTableCellValue(point, 6, Data.MaxFreqOffset[point]);
                 }
                 else if (parameters.Channel == "通道2")
@@ -272,9 +272,9 @@ namespace Tps_LQ_Transmitter.models
                     WriteExcelData(sheet, parameters.PointIndex, 2, ModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 6, leftModulationIndexPrint.Test_name, leftModulationIndexPrint.Lower.ToString(), leftModulationIndexPrint.Upper.ToString(), leftModulationIndexPrint.TestVal.ToString(), leftModulationIndexPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 10, rightModulationIndexPrint.Test_name, rightModulationIndexPrint.Lower.ToString(), rightModulationIndexPrint.Upper.ToString(), rightModulationIndexPrint.TestVal.ToString(), rightModulationIndexPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 4, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 8, leftFreqOffsetPrint.Test_name, leftFreqOffsetPrint.Lower.ToString(), leftFreqOffsetPrint.Upper.ToString(), leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 11, rightFreqOffsetPrint.Test_name, rightFreqOffsetPrint.Lower.ToString(), rightFreqOffsetPrint.Upper.ToString(), rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 4, MaxFreqOffsetPrint.Test_name, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 8, leftFreqOffsetPrint.Test_name, "/", "/", leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 11, rightFreqOffsetPrint.Test_name, "/", "/", rightFreqOffsetPrint.TestVal.ToString(), rightFreqOffsetPrint.Result);
                     //tps.SetTestTableCellValue(point + 15, 9, ModulationIndexPrint.Result, Data.ModulationIndex[point]);
                     //tps.SetTestTableCellValue(point + 15, 6, Data.MaxFreqOffset[point]);
                 }

+ 29 - 14
tps/TpsLabStudio/models/NoisePowerDensity.cs

@@ -32,8 +32,13 @@ namespace Tps_LQ_Transmitter.models
                 ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
                 return false;
             }
+            OpenExcel("噪声功率谱密度", out Spire.Xls.Workbook workbook, out Spire.Xls.Worksheet sheet);
+            if (sheet == null)
+            {
+                ShowMessage(MsgType.Error, "找不到" + tps.TestProject + "模板.xlsx");
+                return false;
+            }
 
-            
             ConfigParameter PowerPara = new ConfigParameter();
             //PowerPara.StepFrequency = 0;
             //PowerPara.ComPort = parameters.Parameters.GetParameter<string>("串口");
@@ -51,6 +56,7 @@ namespace Tps_LQ_Transmitter.models
             PowerPara.VBW = parameters.Parameters.GetParameter<string>("视频带宽(VBW)");
             //PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
             PowerPara.NoisePowerUpper = parameters.Parameters.GetParameter<double>("噪声功率谱密度上限");
+            PowerPara.NoisePowerLower = parameters.Parameters.GetParameter<double>("噪声功率谱密度下限");
             if ( (PowerPara.CHSPAN == null) || (PowerPara.ACHBand == null)  || (PowerPara.REF == null) || (PowerPara.RBW == null) || (PowerPara.VBW == null) || (PowerPara.NoisePowerUpper == 0))
             {
                 ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行", parameters.Channel, parameters.Name));
@@ -130,8 +136,9 @@ namespace Tps_LQ_Transmitter.models
 
                 NoisePowerPrint.Test_name = parameters.Channel + "-噪声功率谱密度(dBm/Hz)-" + parameters.CenterFreq.ToString() + "MHz";
                 NoisePowerPrint.Upper = PowerPara.NoisePowerUpper;
-                
-                if ( NoisePowerPrint.TestVal <= NoisePowerPrint.Upper)
+                NoisePowerPrint.Lower = PowerPara.NoisePowerLower;
+
+                if ((NoisePowerPrint.TestVal >= NoisePowerPrint.Lower) && (NoisePowerPrint.TestVal <= NoisePowerPrint.Upper))
                 {
                     NoisePowerPrint.Result = "是";
                 }
@@ -139,15 +146,19 @@ namespace Tps_LQ_Transmitter.models
                 {
                     NoisePowerPrint.Result = "否";
                 }
-                tps.TestTableAddCell(NoisePowerPrint.Test_name, "/", NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
-                //if (parameters.Channel == "通道1")
-                //{
-                //    //tps.SetTestTableCellValue(point, 9,  NoisePowerPrint.Result ,NoisePowerPrint.TestVal);                    
-                //}
-                //else if (parameters.Channel == "通道2")
-                //{
-                //    //tps.SetTestTableCellValue(point + 15, 9,  NoisePowerPrint.Result ,NoisePowerPrint.TestVal);                  
-                //}
+                tps.TestTableAddCell(NoisePowerPrint.Test_name, NoisePowerPrint.Lower.ToString(), NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
+                if (parameters.Channel == "通道1")
+                {
+
+                    WriteExcelData(sheet, parameters.PointIndex, 1, NoisePowerPrint.Test_name, NoisePowerPrint.Lower.ToString(), NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
+                   
+                }
+                else if (parameters.Channel == "通道2")
+                {
+
+                    WriteExcelData(sheet, parameters.PointIndex, 2, NoisePowerPrint.Test_name, NoisePowerPrint.Lower.ToString(), NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
+                    
+                }
             }
             if (SA.Query("IDN").Contains("N9030"))//N9030A型号频谱仪
             {
@@ -158,8 +169,8 @@ namespace Tps_LQ_Transmitter.models
                 SA.Write("设置MARK为常规", "1"); SA.Query("OPC");
                 SA.Write("关闭所有MARK"); SA.Query("OPC");
 
-            }           
-
+            }
+            SaveExcel(workbook);
             return true;
         }
 
@@ -249,6 +260,10 @@ namespace Tps_LQ_Transmitter.models
             /// 噪声功率上限
             /// </summary>
             public double NoisePowerUpper{set;get;}
+            /// <summary>
+            /// 噪声功率下限
+            /// </summary>
+            public double NoisePowerLower { set; get; }
         }
         public class OutData
         {

+ 44 - 6
tps/TpsLabStudio/models/PhaseNoise.cs

@@ -33,6 +33,12 @@ namespace Tps_LQ_Transmitter.models
                 ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
                 return false;
             }
+            OpenExcel("相位噪声", out Spire.Xls.Workbook workbook, out Spire.Xls.Worksheet sheet);
+            if (sheet == null)
+            {
+                ShowMessage(MsgType.Error, "找不到" + tps.TestProject + "模板.xlsx");
+                return false;
+            }
             ConfigParameter PowerPara = new ConfigParameter();
             //PowerPara.StepFrequency = 0;
             //PowerPara.ComPort = parameters.Parameters.GetParameter<string>("串口");
@@ -49,6 +55,7 @@ namespace Tps_LQ_Transmitter.models
             PowerPara.VBW = parameters.Parameters.GetParameter<string>("视频带宽(VBW)");
             //PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
             PowerPara.PhaseNoiseUpper = parameters.Parameters.GetParameter<double >("相位噪声上限");
+            PowerPara.PhaseNoiseLower = parameters.Parameters.GetParameter<double>("相位噪声下限");
             if ( (PowerPara.SPAN == null) || (PowerPara.REF == null) || (PowerPara.RBW == null) ||  (PowerPara.VBW == null) || (PowerPara.PhaseNoiseUpper==0))
             {
                 ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行", parameters.Channel, parameters.Name));
@@ -136,6 +143,7 @@ namespace Tps_LQ_Transmitter.models
                 double[] PhaseNoiseOffsetVal = new double[PowerPara.PNosieOffsetFreq.Length];
                 double PhaseNoiseMaxOffsetVal = 0;
                 PhaseNoisePrint.Upper = PowerPara.PhaseNoiseUpper;
+                PhaseNoisePrint.Lower = PowerPara.PhaseNoiseLower;
                 for ( int offset_num = 0; offset_num < PowerPara.PNosieOffsetFreq.Length; offset_num++)
                 {
                     if (SA.Query("IDN").Contains("N9030"))//N9030A型号频谱仪
@@ -159,8 +167,8 @@ namespace Tps_LQ_Transmitter.models
                        
 
                     }
-                    PhaseNoisePrint.Test_name = parameters.Channel + "-" + (PowerPara.PNosieOffsetFreq[offset_num]/1000).ToString()+"Khz-相位噪声(dBc/Hz)-" + parameters.CenterFreq.ToString() + "MHz";
-                    if (Data.PhaseNoise[parameters.PointIndex, offset_num] <= PhaseNoisePrint.Upper)
+                    PhaseNoisePrint.Test_name = parameters.Channel + "-" + (PowerPara.PNosieOffsetFreq[offset_num]/1000).ToString()+"KHz-相位噪声(dBc/Hz)-" + parameters.CenterFreq.ToString() + "MHz";
+                    if ((Data.PhaseNoise[parameters.PointIndex, offset_num] >= PhaseNoisePrint.Lower) && (Data.PhaseNoise[parameters.PointIndex, offset_num] <= PhaseNoisePrint.Upper))
                     {
                         PhaseNoisePrint.Result = "是";
                     }
@@ -168,7 +176,21 @@ namespace Tps_LQ_Transmitter.models
                     {
                         PhaseNoisePrint.Result = "否";
                     }
-                    tps.TestTableAddCell(PhaseNoisePrint.Test_name, "/", PhaseNoisePrint.Upper.ToString(), Data.PhaseNoise[parameters.PointIndex, offset_num].ToString(), PhaseNoisePrint.Result);
+                    tps.TestTableAddCell(PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), Data.PhaseNoise[parameters.PointIndex, offset_num].ToString(), PhaseNoisePrint.Result);
+
+                   
+                    if (parameters.Channel == "通道1")
+                    {
+
+                        WriteExcelData(sheet, parameters.PointIndex, 1 + 2 * (offset_num + 1), PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+                        
+                    }
+                    else if (parameters.Channel == "通道2")
+                    {
+
+                        WriteExcelData(sheet, parameters.PointIndex, 2 + 2 * (offset_num + 1), PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+                       
+                    }
                     PhaseNoiseOffsetVal[offset_num] = Data.PhaseNoise[parameters.PointIndex, offset_num];
                 }
                 if (PowerPara.PNosieOffsetFreq.Length > 1)//计算相位噪声中的最大值
@@ -182,7 +204,7 @@ namespace Tps_LQ_Transmitter.models
                 PhaseNoisePrint.Test_name = parameters.Channel + "-相位噪声(dBc/Hz)-" + parameters.CenterFreq.ToString() + "MHz";
                
                 PhaseNoisePrint.TestVal = PhaseNoiseMaxOffsetVal;
-                if (PhaseNoisePrint.TestVal <= PhaseNoisePrint.Upper)
+                if ((PhaseNoisePrint.TestVal >= PhaseNoisePrint.Lower) && (PhaseNoisePrint.TestVal <= PhaseNoisePrint.Upper))
                 {
                     PhaseNoisePrint.Result = "是";
                 }
@@ -190,7 +212,19 @@ namespace Tps_LQ_Transmitter.models
                 {
                     PhaseNoisePrint.Result = "否";
                 }
-                tps.TestTableAddCell(PhaseNoisePrint.Test_name, "/", PhaseNoisePrint.Upper.ToString() ,PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+                tps.TestTableAddCell(PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString() ,PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+                if (parameters.Channel == "通道1")
+                {
+
+                    WriteExcelData(sheet, parameters.PointIndex, 1, PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+
+                }
+                else if (parameters.Channel == "通道2")
+                {
+
+                    WriteExcelData(sheet, parameters.PointIndex, 2, PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+
+                }
                 //if (parameters.Channel == "通道1")
                 //{
                 //    //tps.SetTestTableCellValue(point, 15, PhaseNoisePrint.Result, PhaseNoisePrint.TestVal);
@@ -205,7 +239,7 @@ namespace Tps_LQ_Transmitter.models
                 SA.Write("SetSAMode"); SA.Query("OPC");
                 SA.Write("SingleOrCont", "1"); SA.Query("OPC");
             }
-            
+            SaveExcel(workbook);
             return true;
         }
 
@@ -296,6 +330,10 @@ namespace Tps_LQ_Transmitter.models
             /// 相位噪声上限
             /// </summary>
             public double  PhaseNoiseUpper{set;get;}
+            /// <summary>
+            /// 相位噪声下限
+            /// </summary>
+            public double PhaseNoiseLower { set; get; }
         }
         public class OutData
         {

+ 13 - 7
tps/TpsLabStudio/models/PowerAndFreqStability.cs

@@ -83,6 +83,7 @@ namespace Tps_LQ_Transmitter.models
             PowerPara.PowerUpper = parameters.Parameters.GetParameter<double>("功率上限");
             PowerPara.FreqAccuracyUpper = parameters.Parameters.GetParameter<double>("频率稳定度上限");
             PowerPara.PowerSumLower = parameters.Parameters.GetParameter<double>("两路功率总和下限");
+            PowerPara.PowerSumUpper = parameters.Parameters.GetParameter<double>("两路功率总和上限");
             PowerPara.PowerFlatnessUpper = parameters.Parameters.GetParameter<double>("功率不平度上限");
             if (  (PowerPara.SPAN == null) || (PowerPara.REF == null) || (PowerPara.RBW == null) || (PowerPara.VBW == null) || (PowerPara.PowerLower == 0)
                 || (PowerPara.PowerUpper == 0) || (PowerPara.FreqAccuracyUpper == 0) || (PowerPara.PowerSumLower == 0) || (PowerPara.PowerFlatnessUpper == 0))
@@ -238,12 +239,12 @@ namespace Tps_LQ_Transmitter.models
                 {
                     FreqAccuracyPrint.Result = "否";
                 }
-                tps.TestTableAddCell(PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                tps.TestTableAddCell(PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
                 tps.TestTableAddCell(FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
                     
-                    WriteExcelData(sheet, parameters.PointIndex, 1, PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 1, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 3, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
                     //tps.SetTestTableCellValue(parameters.PointIndex, 10, PowerPrint.Result, PowerPrint.TestVal);
                     //tps.SetTestTableCellValue(parameters.PointIndex, 7, FreqPrint.Result, FreqPrint.TestVal);
@@ -251,8 +252,8 @@ namespace Tps_LQ_Transmitter.models
                 else if (parameters.Channel == "通道2")
                 {
                   
-                    WriteExcelData(sheet, parameters.PointIndex, 2, PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
-                    WriteExcelData(sheet, parameters.PointIndex, 4, FreqPrint.Test_name, "/", FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 2, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 4, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
                     //tps.SetTestTableCellValue(parameters.PointIndex, 11, PowerPrint.Result, PowerPrint.TestVal);
                     //tps.SetTestTableCellValue(parameters.PointIndex + 15, 7, FreqPrint.Result, FreqPrint.TestVal);
                 }
@@ -273,6 +274,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     PowerSumPrint.Test_name =  "两路功率总和(W)-" + parameters.CenterFreq.ToString() + "MHz";
                     PowerSumPrint.Lower = PowerPara.PowerSumLower;
+                    PowerSumPrint.Upper = PowerPara.PowerSumUpper;
                     PowerSumPrint.TestVal = Math.Round(WTempPowerVal[0, parameters.PointIndex] + WTempPowerVal[1, parameters.PointIndex],2);//W
                     if ((PowerSumPrint.TestVal >= PowerSumPrint.Lower) && (PowerSumPrint.TestVal <= PowerSumPrint.Upper))
                     {
@@ -285,7 +287,7 @@ namespace Tps_LQ_Transmitter.models
                     PowerFlatnessPrint.Test_name =  "功率不平度(dB)-" + parameters.CenterFreq.ToString() + "MHz";
                     PowerFlatnessPrint.Upper = PowerPara.PowerFlatnessUpper;
                     PowerFlatnessPrint.TestVal = Math.Round(Math.Abs(dBTempPowerVal[0, parameters.PointIndex] - dBTempPowerVal[1, parameters.PointIndex]),2);//dB
-                    if ((PowerFlatnessPrint.TestVal >= PowerFlatnessPrint.Lower) && (PowerFlatnessPrint.TestVal <= PowerFlatnessPrint.Upper))
+                    if ((PowerFlatnessPrint.TestVal >= 0) && (PowerFlatnessPrint.TestVal <= PowerFlatnessPrint.Upper))
                     {
                         PowerFlatnessPrint.Result = "是";
                     }
@@ -294,8 +296,8 @@ namespace Tps_LQ_Transmitter.models
                         PowerFlatnessPrint.Result = "否";
                     }
                    
-                    tps.TestTableAddCell(PowerSumPrint.Test_name, PowerSumPrint.Lower.ToString(), "/", PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
-                    tps.TestTableAddCell(PowerFlatnessPrint.Test_name, PowerFlatnessPrint.Lower.ToString(), "/", PowerFlatnessPrint.TestVal.ToString(), PowerFlatnessPrint.Result);
+                    tps.TestTableAddCell(PowerSumPrint.Test_name, PowerSumPrint.Lower.ToString(), PowerSumPrint.Upper.ToString(), PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
+                    tps.TestTableAddCell(PowerFlatnessPrint.Test_name, "0", PowerFlatnessPrint.Upper.ToString(), PowerFlatnessPrint.TestVal.ToString(), PowerFlatnessPrint.Result);
                    // WriteExcelData(sheet, parameters.PointIndex, 3, PowerSumPrint.Test_name, PowerSumPrint.Lower.ToString(), "/", PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
                    // WriteExcelData(sheet, parameters.PointIndex, 4, PowerFlatnessPrint.Test_name, PowerFlatnessPrint.Lower.ToString(), "/", PowerFlatnessPrint.TestVal.ToString(), PowerFlatnessPrint.Result);
                     //tps.SetTestTableCellValue(parameters.PointIndex, 12, PowerSumPrint.Result, PowerSumPrint.TestVal);
@@ -442,6 +444,10 @@ namespace Tps_LQ_Transmitter.models
             /// </summary>
             public double PowerSumLower { set; get; }
             /// <summary>
+            /// 两路功率总和上限
+            /// </summary>
+            public double PowerSumUpper { set; get; }
+            /// <summary>
             /// 功率不平度上限
             /// </summary>
             public double PowerFlatnessUpper { set; get; }

+ 88 - 16
tps/TpsLabStudio/models/PowerTest-PowerMeter.cs

@@ -11,6 +11,9 @@ namespace Tps_LQ_Transmitter.models
 {
     class PowerTest_PowerMeter : BaseModel
     {
+        double[,] WTempPowerVal;
+        double[,] dBTempPowerVal;
+        string serial = "****";
         public PowerTest_PowerMeter()
         {
             TemplateName = "功率(功率计)测试";
@@ -40,34 +43,52 @@ namespace Tps_LQ_Transmitter.models
             
          //   TransmitterSerialPort SerialClient = new TransmitterSerialPort();
             ConfigParameter PowerPara = new ConfigParameter();
+            DataType PowerSumPrint = new DataType();//两路功率总和(w)
+            DataType PowerFlatnessPrint = new DataType();//两路功率不平度(dB)
 
-         //   MatchComPara CfigComParas = new MatchComPara();
+            //   MatchComPara CfigComParas = new MatchComPara();
             //CfigComParas = LoadComWorkBook();
-            
+
             //if (CfigComParas == null)
             //{
             //    return false;
             //}
 
-         //   byte FourthByte=0x00;
-         //   string ComPort = CfigComParas.GetComPort("1");
-         //   byte ThridByte = Convert.ToByte(CfigComParas.GetThirdByte("1"),16);
-         //   PowerPara.StepFrequency = 0;
-         //   PowerPara.StartFrequency = parameters.Parameters.GetParameter<double>("起始频率");
-         //   PowerPara.StepFrequency = parameters.Parameters.GetParameter<double>("频率步进");
-         ////   PowerPara.FrequencyNumber = parameters.Parameters.GetParameter<int>("频点数量");
-         //   PowerPara.StopFrequency = parameters.Parameters.GetParameter<double>("终止频率");
-            
-         //   PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
+            //   byte FourthByte=0x00;
+            //   string ComPort = CfigComParas.GetComPort("1");
+            //   byte ThridByte = Convert.ToByte(CfigComParas.GetThirdByte("1"),16);
+            //   PowerPara.StepFrequency = 0;
+            //   PowerPara.StartFrequency = parameters.Parameters.GetParameter<double>("起始频率");
+            //   PowerPara.StepFrequency = parameters.Parameters.GetParameter<double>("频率步进");
+            ////   PowerPara.FrequencyNumber = parameters.Parameters.GetParameter<int>("频点数量");
+            //   PowerPara.StopFrequency = parameters.Parameters.GetParameter<double>("终止频率");
+
+            //   PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
             PowerPara.PowerLower = parameters.Parameters.GetParameter<double>("功率下限");
             PowerPara.PowerUpper = parameters.Parameters.GetParameter<double>("功率上限");
             PowerPara.PowerSumLower = parameters.Parameters.GetParameter<double>("两路功率总和下限");
+            PowerPara.PowerSumUpper = parameters.Parameters.GetParameter<double>("两路功率总和上限");
             PowerPara.PowerFlatnessUpper = parameters.Parameters.GetParameter<double>("功率不平度上限");
             if ( (PowerPara.PowerLower == 0) || (PowerPara.PowerUpper == 0) ||  (PowerPara.PowerSumLower == 0) || (PowerPara.PowerFlatnessUpper == 0))
             {
                 ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行", parameters.Channel, parameters.Name));
                 return false;
             }
+
+            if (tps.Serial != serial)
+            {
+                WTempPowerVal = new double[2, parameters.PointTotal];
+                dBTempPowerVal = new double[2, parameters.PointTotal];
+                serial = tps.Serial;
+                for (int initVal1 = 0; initVal1 < 2; initVal1++)
+                {
+                    for (int initVal2 = 0; initVal2 < parameters.PointTotal; initVal2++)
+                    {
+                        WTempPowerVal[initVal1, initVal2] = -100;
+                        dBTempPowerVal[initVal1, initVal2] = -100;
+                    }
+                }
+            }
             //if (PowerPara.ControlDelay == 0)
             //{
             //    PowerPara.ControlDelay = 10;
@@ -100,7 +121,7 @@ namespace Tps_LQ_Transmitter.models
                 PowerPrint.Lower = PowerPara.PowerLower;
                 PowerPrint.Upper = PowerPara.PowerUpper;
                 PowerPrint.TestVal = Math.Round(double.Parse(aa), 2);//功率W
-                if (PowerPrint.TestVal <= PowerPrint.Upper)
+                if ((PowerPrint.TestVal >= PowerPrint.Lower ) && (PowerPrint.TestVal <= PowerPrint.Upper))
                 {
                     PowerPrint.Result = "是";
                 }
@@ -108,17 +129,64 @@ namespace Tps_LQ_Transmitter.models
                 {
                     PowerPrint.Result = "否";
                 }
-                tps.TestTableAddCell(PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                tps.TestTableAddCell(PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
 
-                    WriteExcelData(sheet, parameters.PointIndex, 1, PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);            
+                    WriteExcelData(sheet, parameters.PointIndex, 1, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);            
                 }
                 else if (parameters.Channel == "通道2")
                 {
 
-                    WriteExcelData(sheet, parameters.PointIndex, 2, PowerPrint.Test_name, "/", PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);                 
+                    WriteExcelData(sheet, parameters.PointIndex, 2, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);                 
+                }
+                #region 功率不平度及两路功率总和计算
+                if (parameters.Channel == "通道1")
+                {
+                    WTempPowerVal[0, parameters.PointIndex] = PowerPrint.TestVal;//W
+                    dBTempPowerVal[0, parameters.PointIndex] = 10* Math.Log10(PowerPrint.TestVal*1000);//dB
+                }
+                else
+                {
+                    WTempPowerVal[1, parameters.PointIndex] = PowerPrint.TestVal;//W
+                    dBTempPowerVal[1, parameters.PointIndex] = 10 * Math.Log10(PowerPrint.TestVal * 1000);//dB
+                }
+
+                if (WTempPowerVal[0, parameters.PointIndex] > -100 && WTempPowerVal[1, parameters.PointIndex] > -100)
+                {
+                    PowerSumPrint.Test_name = "两路功率总和(W)-" + parameters.CenterFreq.ToString() + "MHz";
+                    PowerSumPrint.Lower = PowerPara.PowerSumLower;
+                    PowerSumPrint.Upper = PowerPara.PowerSumUpper;
+                    PowerSumPrint.TestVal = Math.Round(WTempPowerVal[0, parameters.PointIndex] + WTempPowerVal[1, parameters.PointIndex], 2);//W
+                    if ((PowerSumPrint.TestVal >= PowerSumPrint.Lower) && (PowerSumPrint.TestVal <= PowerSumPrint.Upper))
+                    {
+                        PowerSumPrint.Result = "是";
+                    }
+                    else
+                    {
+                        PowerSumPrint.Result = "否";
+                    }
+                    PowerFlatnessPrint.Test_name = "功率不平度(dB)-" + parameters.CenterFreq.ToString() + "MHz";
+                    PowerFlatnessPrint.Upper = PowerPara.PowerFlatnessUpper;
+                    PowerFlatnessPrint.TestVal = Math.Round(Math.Abs(dBTempPowerVal[0, parameters.PointIndex] - dBTempPowerVal[1, parameters.PointIndex]), 2);//dB
+                    if ((PowerFlatnessPrint.TestVal >= 0) && (PowerFlatnessPrint.TestVal <= PowerFlatnessPrint.Upper))
+                    {
+                        PowerFlatnessPrint.Result = "是";
+                    }
+                    else
+                    {
+                        PowerFlatnessPrint.Result = "否";
+                    }
+
+                    tps.TestTableAddCell(PowerSumPrint.Test_name, PowerSumPrint.Lower.ToString(), PowerSumPrint.Upper.ToString(), PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
+                    tps.TestTableAddCell(PowerFlatnessPrint.Test_name, PowerFlatnessPrint.Lower.ToString(), "0", PowerFlatnessPrint.TestVal.ToString(), PowerFlatnessPrint.Result);
+                    // WriteExcelData(sheet, parameters.PointIndex, 3, PowerSumPrint.Test_name, PowerSumPrint.Lower.ToString(), "/", PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
+                    // WriteExcelData(sheet, parameters.PointIndex, 4, PowerFlatnessPrint.Test_name, PowerFlatnessPrint.Lower.ToString(), "/", PowerFlatnessPrint.TestVal.ToString(), PowerFlatnessPrint.Result);
+                    //tps.SetTestTableCellValue(parameters.PointIndex, 12, PowerSumPrint.Result, PowerSumPrint.TestVal);
+                    //tps.SetTestTableCellValue(parameters.PointIndex, 13, PowerFlatnessPrint.Result,PowerFlatnessPrint.TestVal);
+
                 }
+                #endregion
             }
             SaveExcel(workbook);
             return true;
@@ -185,6 +253,10 @@ namespace Tps_LQ_Transmitter.models
             /// </summary>
             public double PowerSumLower { set; get; }
             /// <summary>
+            /// 两路功率总和上限
+            /// </summary>
+            public double PowerSumUpper { set; get; }
+            /// <summary>
             /// 功率不平度上限
             /// </summary>
             public double PowerFlatnessUpper { set; get; }

+ 9 - 4
tps/TpsLabStudio/models/SpuriousSuppression.cs

@@ -59,6 +59,7 @@ namespace Tps_LQ_Transmitter.models
             PowerPara.VBW = parameters.Parameters.GetParameter<string>("视频带宽(VBW)");
             //PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
             PowerPara.SpuriousSuppressionLower = parameters.Parameters.GetParameter<double>("杂波抑制下限");
+            PowerPara.SpuriousSuppressionUpper = parameters.Parameters.GetParameter<double>("杂波抑制上限");
             if ( (PowerPara.LeftOffset == 0) || (PowerPara.LeftOffsetStart == 0) || (PowerPara.RightOffset == 0) || (PowerPara.RightOffsetStop == 0)
                 || (PowerPara.SPAN == null) || (PowerPara.REF == null) || (PowerPara.SmallSignalREF == null) ||  (PowerPara.RBW == null) || 
                 (PowerPara.VBW == null) || (PowerPara.SpuriousSuppressionLower == 0))
@@ -129,7 +130,7 @@ namespace Tps_LQ_Transmitter.models
                 SpuriousSuppressionPrint.Lower = PowerPara.SpuriousSuppressionLower;
                 SpuriousSuppressionPrint.TestVal = Math.Round(Math.Min(PowerLeft, PowerRigth), 2);
                // SpuriousSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
-                if (SpuriousSuppressionPrint.TestVal >= SpuriousSuppressionPrint.Lower)
+                if ((SpuriousSuppressionPrint.TestVal >= SpuriousSuppressionPrint.Lower) && (SpuriousSuppressionPrint.TestVal <= SpuriousSuppressionPrint.Upper))
                 {
                     SpuriousSuppressionPrint.Result = "是";
                 }
@@ -137,18 +138,18 @@ namespace Tps_LQ_Transmitter.models
                 {
                     SpuriousSuppressionPrint.Result = "否";
                 }
-                tps.TestTableAddCell(SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), "/", SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+                tps.TestTableAddCell(SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
                     
                     //tps.SetTestTableCellValue(point, 14, SpuriousSuppressionPrint.Result,SpuriousSuppressionPrint.TestVal);    
-                    WriteExcelData(sheet, parameters.PointIndex, 1, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(),"/", SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 1, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
                 }
                 else if (parameters.Channel == "通道2")
                 {
                   
                     //tps.SetTestTableCellValue(point + 15, 14, SpuriousSuppressionPrint.Result, SpuriousSuppressionPrint.TestVal);           
-                    WriteExcelData(sheet, parameters.PointIndex, 2, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), "/", SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+                    WriteExcelData(sheet, parameters.PointIndex, 2, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
                 }
             }
             SaveExcel(workbook);
@@ -254,6 +255,10 @@ namespace Tps_LQ_Transmitter.models
             /// 杂波抑制下限
             /// </summary>
             public double SpuriousSuppressionLower { set; get; }
+            /// <summary>
+            /// 杂波抑制上
+            /// </summary>
+            public double SpuriousSuppressionUpper { set; get; }
         }
 
         public class OutData