|
@@ -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; }
|