Browse Source

新增8台产品测试功能

ceac_pqy@163.com 3 years ago
parent
commit
c950ed89f7
35 changed files with 1056 additions and 639 deletions
  1. 6 0
      .vs/VSWorkspaceState.json
  2. BIN
      .vs/slnx.sqlite
  3. BIN
      exe/apps/Tps_LQ_Transmitter/Tps_LQ_Transmitter.dll
  4. BIN
      exe/apps/Tps_LQ_Transmitter/Tps_LQ_Transmitter.pdb
  5. BIN
      exe/apps/Tps_LQ_Transmitter/config/测试#常温测试#9B发射机-N9030A.xlsx
  6. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/.xlsx
  7. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1.xlsx
  8. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1046.xlsx
  9. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1057.xlsx
  10. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1058.xlsx
  11. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1103.xlsx
  12. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1106.xlsx
  13. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1110.xlsx
  14. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1116.xlsx
  15. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/12.xlsx
  16. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/211006.xlsx
  17. BIN
      exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/66666.xlsx
  18. BIN
      tps/TpsLabStudio/.vs/TpsLabStudio/v16/.suo
  19. 69 59
      tps/TpsLabStudio/FrmMain.Designer.cs
  20. 286 85
      tps/TpsLabStudio/FrmMain.cs
  21. 200 24
      tps/TpsLabStudio/MainTps.cs
  22. 1 1
      tps/TpsLabStudio/TpsLabStudio.csproj.user
  23. 1 1
      tps/TpsLabStudio/com/RainwormPower.cs
  24. BIN
      tps/TpsLabStudio/config/测试#常温测试#9B发射机-N9030A.xlsx
  25. 3 3
      tps/TpsLabStudio/models/BaseModel.cs
  26. 4 4
      tps/TpsLabStudio/models/FskModulationIndexAndMaxFreqOffset.cs
  27. 3 3
      tps/TpsLabStudio/models/HarmonicSuppression.cs
  28. 7 7
      tps/TpsLabStudio/models/ModulationIndexAndMaxFreqOffset.cs
  29. 2 2
      tps/TpsLabStudio/models/NoisePowerDensity.cs
  30. 413 413
      tps/TpsLabStudio/models/NormalTemperatureTest.cs
  31. 3 3
      tps/TpsLabStudio/models/PhaseNoise.cs
  32. 5 5
      tps/TpsLabStudio/models/PowerAndFreqStability.cs
  33. 5 4
      tps/TpsLabStudio/models/PowerTest-PowerMeter.cs
  34. 29 7
      tps/TpsLabStudio/models/SpuriousSuppression.cs
  35. 19 18
      tps/TpsLabStudio/models/VoltAndCurrent.cs

+ 6 - 0
.vs/VSWorkspaceState.json

@@ -0,0 +1,6 @@
+{
+  "ExpandedNodes": [
+    ""
+  ],
+  "PreviewInSolutionExplorer": false
+}

BIN
.vs/slnx.sqlite


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/测试#常温测试#9B发射机-N9030A.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1046.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1057.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1058.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1103.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1106.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1110.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/1116.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/12.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/211006.xlsx


BIN
exe/apps/Tps_LQ_Transmitter/发射机/9B发射机/测试数据/常温测试/66666.xlsx


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


+ 69 - 59
tps/TpsLabStudio/FrmMain.Designer.cs

@@ -29,9 +29,9 @@
         private void InitializeComponent()
         {
             this.components = new System.ComponentModel.Container();
-            DevComponents.DotNetBar.Layout.BorderPattern borderPattern2 = new DevComponents.DotNetBar.Layout.BorderPattern();
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+            DevComponents.DotNetBar.Layout.BorderPattern borderPattern1 = new DevComponents.DotNetBar.Layout.BorderPattern();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
             this.splitContainer1 = new System.Windows.Forms.SplitContainer();
             this.advTree1 = new DevComponents.AdvTree.AdvTree();
             this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -45,7 +45,6 @@
             this.layoutControl1 = new DevComponents.DotNetBar.Layout.LayoutControl();
             this.tbTestProject = new DevComponents.DotNetBar.Controls.TextBoxX();
             this.tbPlace = new DevComponents.DotNetBar.Controls.TextBoxX();
-            this.tbSerial = new DevComponents.DotNetBar.Controls.TextBoxX();
             this.tbTemp = new DevComponents.DotNetBar.Controls.TextBoxX();
             this.tbRH = new DevComponents.DotNetBar.Controls.TextBoxX();
             this.BtnLoadTpsConfig = new DevComponents.DotNetBar.ButtonX();
@@ -56,6 +55,7 @@
             this.BtnStart = new DevComponents.DotNetBar.ButtonX();
             this.cbbProduct = new DevComponents.DotNetBar.Controls.ComboBoxEx();
             this.tbTester = new DevComponents.DotNetBar.Controls.TextBoxX();
+            this.tbSerials = new System.Windows.Forms.ComboBox();
             this.layoutGroup1 = new DevComponents.DotNetBar.Layout.LayoutGroup();
             this.layoutControlItem1 = new DevComponents.DotNetBar.Layout.LayoutControlItem();
             this.layoutControlItem2 = new DevComponents.DotNetBar.Layout.LayoutControlItem();
@@ -81,10 +81,11 @@
             this.superTabControlPanel2 = new DevComponents.DotNetBar.SuperTabControlPanel();
             this.dgvManualData = new DevComponents.DotNetBar.Controls.DataGridViewX();
             this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
+            this.btnDebugging = new DevComponents.DotNetBar.ButtonX();
             this.BtnLoadManualData = new DevComponents.DotNetBar.ButtonX();
             this.BtnSaveManualData = new DevComponents.DotNetBar.ButtonX();
             this.tabManualData = new DevComponents.DotNetBar.SuperTabItem();
-            this.btnDebugging = new DevComponents.DotNetBar.ButtonX();
+            this.tbSerial = new DevComponents.DotNetBar.Controls.TextBoxX();
             ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
             this.splitContainer1.Panel1.SuspendLayout();
             this.splitContainer1.Panel2.SuspendLayout();
@@ -163,33 +164,33 @@
             this.tsmUnSelecteAll,
             this.tsmSelectAll});
             this.contextMenuStrip1.Name = "contextMenuStrip1";
-            this.contextMenuStrip1.Size = new System.Drawing.Size(149, 92);
+            this.contextMenuStrip1.Size = new System.Drawing.Size(147, 92);
             // 
             // tsmChannel
             // 
             this.tsmChannel.Name = "tsmChannel";
-            this.tsmChannel.Size = new System.Drawing.Size(148, 22);
+            this.tsmChannel.Size = new System.Drawing.Size(146, 22);
             this.tsmChannel.Text = "按通道分类";
             this.tsmChannel.Click += new System.EventHandler(this.tsmChannel_Click);
             // 
             // tmsTestNode
             // 
             this.tmsTestNode.Name = "tmsTestNode";
-            this.tmsTestNode.Size = new System.Drawing.Size(148, 22);
+            this.tmsTestNode.Size = new System.Drawing.Size(146, 22);
             this.tmsTestNode.Text = "按指标分类";
             this.tmsTestNode.Click += new System.EventHandler(this.tmsTestNode_Click);
             // 
             // tsmUnSelecteAll
             // 
             this.tsmUnSelecteAll.Name = "tsmUnSelecteAll";
-            this.tsmUnSelecteAll.Size = new System.Drawing.Size(148, 22);
+            this.tsmUnSelecteAll.Size = new System.Drawing.Size(146, 22);
             this.tsmUnSelecteAll.Text = "全部取消选择";
             this.tsmUnSelecteAll.Click += new System.EventHandler(this.tsmUnSelecteAll_Click);
             // 
             // tsmSelectAll
             // 
             this.tsmSelectAll.Name = "tsmSelectAll";
-            this.tsmSelectAll.Size = new System.Drawing.Size(148, 22);
+            this.tsmSelectAll.Size = new System.Drawing.Size(146, 22);
             this.tsmSelectAll.Text = "全部选择";
             this.tsmSelectAll.Click += new System.EventHandler(this.tsmSelectAll_Click);
             // 
@@ -213,7 +214,6 @@
             // 
             this.layoutControl1.Controls.Add(this.tbTestProject);
             this.layoutControl1.Controls.Add(this.tbPlace);
-            this.layoutControl1.Controls.Add(this.tbSerial);
             this.layoutControl1.Controls.Add(this.tbTemp);
             this.layoutControl1.Controls.Add(this.tbRH);
             this.layoutControl1.Controls.Add(this.BtnLoadTpsConfig);
@@ -224,6 +224,7 @@
             this.layoutControl1.Controls.Add(this.BtnStart);
             this.layoutControl1.Controls.Add(this.cbbProduct);
             this.layoutControl1.Controls.Add(this.tbTester);
+            this.layoutControl1.Controls.Add(this.tbSerials);
             this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Top;
             this.layoutControl1.Location = new System.Drawing.Point(0, 0);
             this.layoutControl1.Margin = new System.Windows.Forms.Padding(2);
@@ -268,21 +269,6 @@
             this.tbPlace.TabIndex = 1;
             this.tbPlace.Text = "林泉电机";
             // 
-            // tbSerial
-            // 
-            // 
-            // 
-            // 
-            this.tbSerial.Border.Class = "TextBoxBorder";
-            this.tbSerial.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
-            this.tbSerial.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.tbSerial.Location = new System.Drawing.Point(66, 73);
-            this.tbSerial.Margin = new System.Windows.Forms.Padding(0);
-            this.tbSerial.Name = "tbSerial";
-            this.tbSerial.PreventEnterBeep = true;
-            this.tbSerial.Size = new System.Drawing.Size(253, 23);
-            this.tbSerial.TabIndex = 2;
-            // 
             // tbTemp
             // 
             // 
@@ -426,10 +412,18 @@
             this.tbTester.Text = "李朵";
             this.tbTester.TextChanged += new System.EventHandler(this.tbTester_TextChanged);
             // 
+            // tbSerials
+            // 
+            this.tbSerials.Location = new System.Drawing.Point(69, 76);
+            this.tbSerials.Name = "tbSerials";
+            this.tbSerials.Size = new System.Drawing.Size(247, 20);
+            this.tbSerials.TabIndex = 2;
+            this.tbSerials.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbSerials_KeyDown);
+            // 
             // layoutGroup1
             // 
-            borderPattern2.Bottom = DevComponents.DotNetBar.Layout.LinePattern.Dot;
-            this.layoutGroup1.CaptionStyle.BorderPattern = borderPattern2;
+            borderPattern1.Bottom = DevComponents.DotNetBar.Layout.LinePattern.Dot;
+            this.layoutGroup1.CaptionStyle.BorderPattern = borderPattern1;
             this.layoutGroup1.CaptionStyle.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.layoutGroup1.CaptionStyle.TextColor = System.Drawing.Color.Navy;
             this.layoutGroup1.Height = 208;
@@ -479,7 +473,7 @@
             // 
             // layoutControlItem3
             // 
-            this.layoutControlItem3.Control = this.tbSerial;
+            this.layoutControlItem3.Control = this.tbSerials;
             this.layoutControlItem3.Height = 26;
             this.layoutControlItem3.MinSize = new System.Drawing.Size(90, 0);
             this.layoutControlItem3.Name = "layoutControlItem3";
@@ -664,8 +658,8 @@
             this.superTabControl1.ControlBox.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
             this.superTabControl1.ControlBox.MenuBox,
             this.superTabControl1.ControlBox.CloseBox});
-            this.superTabControl1.Controls.Add(this.superTabControlPanel2);
             this.superTabControl1.Controls.Add(this.superTabControlPanel1);
+            this.superTabControl1.Controls.Add(this.superTabControlPanel2);
             this.superTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.superTabControl1.Location = new System.Drawing.Point(0, 0);
             this.superTabControl1.Margin = new System.Windows.Forms.Padding(2);
@@ -699,14 +693,14 @@
             this.dgvTestData.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
             this.dgvTestData.BackgroundColor = System.Drawing.Color.Azure;
             this.dgvTestData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
-            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
-            dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window;
-            dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText;
-            dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
-            dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.ControlText;
-            dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
-            this.dgvTestData.DefaultCellStyle = dataGridViewCellStyle4;
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dgvTestData.DefaultCellStyle = dataGridViewCellStyle1;
             this.dgvTestData.Dock = System.Windows.Forms.DockStyle.Fill;
             this.dgvTestData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
             this.dgvTestData.Location = new System.Drawing.Point(0, 0);
@@ -745,14 +739,14 @@
             this.dgvManualData.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
             this.dgvManualData.BackgroundColor = System.Drawing.Color.Azure;
             this.dgvManualData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
-            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
-            dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
-            dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
-            dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
-            dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.ControlText;
-            dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
-            this.dgvManualData.DefaultCellStyle = dataGridViewCellStyle3;
+            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dgvManualData.DefaultCellStyle = dataGridViewCellStyle2;
             this.dgvManualData.Dock = System.Windows.Forms.DockStyle.Fill;
             this.dgvManualData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229)))));
             this.dgvManualData.Location = new System.Drawing.Point(0, 54);
@@ -787,6 +781,19 @@
             this.panelEx1.Style.GradientAngle = 90;
             this.panelEx1.TabIndex = 0;
             // 
+            // btnDebugging
+            // 
+            this.btnDebugging.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+            this.btnDebugging.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnDebugging.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+            this.btnDebugging.Location = new System.Drawing.Point(455, 12);
+            this.btnDebugging.Name = "btnDebugging";
+            this.btnDebugging.Size = new System.Drawing.Size(69, 30);
+            this.btnDebugging.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+            this.btnDebugging.TabIndex = 1;
+            this.btnDebugging.Text = "调试界面";
+            this.btnDebugging.Click += new System.EventHandler(this.btnDebugging_Click);
+            // 
             // BtnLoadManualData
             // 
             this.BtnLoadManualData.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
@@ -820,18 +827,20 @@
             this.tabManualData.Name = "tabManualData";
             this.tabManualData.Text = "手动测试数据";
             // 
-            // btnDebugging
+            // tbSerial
             // 
-            this.btnDebugging.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
-            this.btnDebugging.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.btnDebugging.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
-            this.btnDebugging.Location = new System.Drawing.Point(455, 12);
-            this.btnDebugging.Name = "btnDebugging";
-            this.btnDebugging.Size = new System.Drawing.Size(69, 30);
-            this.btnDebugging.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
-            this.btnDebugging.TabIndex = 1;
-            this.btnDebugging.Text = "调试界面";
-            this.btnDebugging.Click += new System.EventHandler(this.btnDebugging_Click);
+            // 
+            // 
+            // 
+            this.tbSerial.Border.Class = "TextBoxBorder";
+            this.tbSerial.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+            this.tbSerial.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.tbSerial.Location = new System.Drawing.Point(66, 73);
+            this.tbSerial.Margin = new System.Windows.Forms.Padding(0);
+            this.tbSerial.Name = "tbSerial";
+            this.tbSerial.PreventEnterBeep = true;
+            this.tbSerial.Size = new System.Drawing.Size(236, 26);
+            this.tbSerial.TabIndex = 2;
             // 
             // FrmMain
             // 
@@ -870,12 +879,10 @@
         private DevComponents.DotNetBar.Controls.TextBoxX tbRH;
         private DevComponents.DotNetBar.Controls.TextBoxX tbTemp;
         private DevComponents.DotNetBar.Controls.ComboBoxEx cbbProduct;
-        private DevComponents.DotNetBar.Controls.TextBoxX tbSerial;
         private DevComponents.DotNetBar.Controls.TextBoxX tbPlace;
         private DevComponents.DotNetBar.Controls.TextBoxX tbTester;
         private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem1;
         private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem2;
-        private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem3;
         private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem6;
         private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem7;
         private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem4;
@@ -917,6 +924,9 @@
         private DevComponents.DotNetBar.ButtonX BtnLoadManualData;
         private DevComponents.DotNetBar.ButtonX BtnSaveManualData;
         private DevComponents.DotNetBar.ButtonX btnDebugging;
+        private System.Windows.Forms.ComboBox tbSerials;
+        private DevComponents.DotNetBar.Layout.LayoutControlItem layoutControlItem3;
+        private DevComponents.DotNetBar.Controls.TextBoxX tbSerial;
     }
 }
 

+ 286 - 85
tps/TpsLabStudio/FrmMain.cs

@@ -33,11 +33,14 @@ namespace Tps_LQ_Transmitter
         /// <summary>
         /// 停止测试标志
         /// </summary>
-        bool IsRuning = true;
+        public bool IsRuning = true;
 
+        CommonVisaResource DCPower = null;
+        RainwormPower rainwormPower = null;
 
-        FrmMsg frmMsg;
-        FrmDevice frmDevice;
+
+       FrmMsg frmMsg;
+       FrmDevice frmDevice;
 
         public FrmMain()
         {
@@ -145,6 +148,7 @@ namespace Tps_LQ_Transmitter
                 currFileNode.Tps.ManualTableCellChanged -= Tps_ManualTableCellChanged;
                 currFileNode.Tps.TestTableCellChanged -= Tps_TestTableCellChanged;
                 currFileNode.Tps.AddTestTableCell -= Tps_TestTableAddCell;
+                currFileNode.Tps.CurrentSeries -= tps_UpdateCurrentSeries;
             }
 
             currFileNode = fn;
@@ -154,7 +158,9 @@ namespace Tps_LQ_Transmitter
                 currFileNode.Tps.ManualTableCellChanged += Tps_ManualTableCellChanged;
                 currFileNode.Tps.TestTableCellChanged += Tps_TestTableCellChanged;
                 currFileNode.Tps.AddTestTableCell += Tps_TestTableAddCell;
+                currFileNode.Tps.CurrentSeries += tps_UpdateCurrentSeries;
             }
+            currFileNode.Tps.RemainTimeUpdate += RemainTime;
 
             tbTestProject.Text = fn.TestProject;
             displayTree(true);
@@ -167,10 +173,10 @@ namespace Tps_LQ_Transmitter
             //显示仪器列表,把当前TPS使用的仪器和仪器检查界面绑定
             frmDevice.ShowDevices(currFileNode.Tps.Devices);
         }
-        private void Tps_TestTableAddCell(string name, string  lower, string upper, string testval, string result)
+        private void Tps_TestTableAddCell(string series,string name, string systemch,string  lower, string upper, string testval, string result)
         {
             this.Invoke(new Action(() => {
-                currFileNode.Tps.TestTable.Rows.Add(name, lower,upper,testval, result);
+                currFileNode.Tps.TestTable.Rows.Add(series, name, systemch,lower,upper,testval, result);
 
                 if (result=="是")
                 {      
@@ -185,6 +191,7 @@ namespace Tps_LQ_Transmitter
             }));
         }
 
+
         private void Tps_TestTableCellChanged(int row, int cell,bool ok, object value)
         {
             this.Invoke(new Action(() => {
@@ -217,6 +224,23 @@ namespace Tps_LQ_Transmitter
             }));
         }
 
+        private void RemainTime(string channel, int point, int FrequencyNumber, double CenterFreq, double testMin)
+        {
+            this.BeginInvoke(new Action(() =>
+            {
+                labRemainTime.Text = $"{channel},第{point + 1}/{FrequencyNumber}个频点:{CenterFreq}MHz测试,耗时{Math.Round(testMin, 2)}Min。";
+            }));
+        }
+        
+        private void tps_UpdateCurrentSeries(string series)
+        {
+            this.BeginInvoke(new Action(() =>
+            {
+               tbSerials.Text = series;
+            }));
+
+        }
+
         int errorCount = 0;
         private void Tps_MessageEvent(MsgType msgType, string msg)
         {
@@ -229,7 +253,7 @@ namespace Tps_LQ_Transmitter
         {
             if (currFileNode == null)
                 return;
-            if (tbSerial.Text == "")
+            if (tbSerials.Items.Count == 0)
             {
                 MessageBox.Show("温馨提示:请输入产品编号后再进行测试!");
                 return;
@@ -240,6 +264,7 @@ namespace Tps_LQ_Transmitter
 
             BtnLoadTpsConfig.Enabled = false;
             BtnStart.Enabled = false;
+            tbSerials.Enabled = false;
 
             currFileNode.Tps.Tester = tbTester.Text;
             currFileNode.Tps.Place = tbPlace.Text;
@@ -319,37 +344,47 @@ namespace Tps_LQ_Transmitter
             {
                 FrequencyNumber = currFileNode.Tps.TestFreqSum;//取限定的测试频点数
             }
-           
-           
-
+      
             dgvTestData.DataSource = null;
             dgvTestData.DataSource = currFileNode.Tps.TestTable;
+            double volt = currFileNode.Tps.GloabConfigDict["电压"];
+            double Current = currFileNode.Tps.GloabConfigDict["电流"];
             // ConfigParameter SetVoltPara = new ConfigParameter();
-            
-            CommonVisaResource DCPower = new CommonVisaResource();
-
-            try
+            if (tbSerials.Items.Count > 1) //如何测试产品大于1台,则使用外部TDK电源
             {
-                DCPower.Open(currFileNode.Tps.DCPowerAddress);
+                DCPower = new CommonVisaResource();
+
+                try
+                {
+                    DCPower.Open(currFileNode.Tps.DCPowerAddress);
+
+                }
+                catch (Exception ex)
+                {
+                    MessageBox.Show("打开TDK电源失败,请检查电源是否上电!");
+                    return;
+                }
 
+                DCPower.Write("INSTrument:NSELect 6\n"); DCPower.Query("*OPC?\n");
+                DCPower.Write("VOLTage:PROTection:LEVel 34 V\n"); DCPower.Query("*OPC?\n");//设置过压保护
+
+                DCPower.Write("VOLT:PROT:LOW 20 V\n"); DCPower.Query("*OPC?\n");//设置欠压保护
+                DCPower.Write("VOLT:PROT:LOW:STAT UVP\n"); DCPower.Query("*OPC?\n");//启动欠压保护
+
+
+                DCPower.Write($"VOLTage {volt} V\n"); DCPower.Query("*OPC?\n");//设置电压
+                DCPower.Write($"CURRent {Current} A\n"); DCPower.Query("*OPC?\n");//设置电流
+                DCPower.Write("GLOBal:OUTPut:STATe 1\n"); DCPower.Query("*OPC?\n");
+                ShowMessage(MsgType.Info, string.Format("打开外部TDK电源."));
             }
-            catch (Exception ex)
+            else //如何测试产品为1台,则使用内部蚯蚓电源
             {
-                MessageBox.Show("打开TDK电源失败,请检查电源是否上电!");
-                return;
+                rainwormPower = new RainwormPower();
+                rainwormPower.powerSetting(volt, Current);//设置输出电压和限制电流
+                rainwormPower.powerOnoff(RainwormPower.State.ON);//设置蚯蚓电源输出
+                rainwormPower.portClose();
+                ShowMessage(MsgType.Info, string.Format("打开内部蚯蚓电源."));
             }
-            DCPower.Write("INSTrument:NSELect 6\n"); DCPower.Query("*OPC?\n");
-            DCPower.Write("VOLTage:PROTection:LEVel 34 V\n"); DCPower.Query("*OPC?\n");//设置过压保护
-
-            DCPower.Write("VOLT:PROT:LOW 20 V\n"); DCPower.Query("*OPC?\n");//设置欠压保护
-            DCPower.Write("VOLT:PROT:LOW:STAT UVP\n"); DCPower.Query("*OPC?\n");//启动欠压保护
-            double volt = currFileNode.Tps.GloabConfigDict["电压"];
-            double Current = currFileNode.Tps.GloabConfigDict["电流"];
-
-            DCPower.Write($"VOLTage {volt} V\n"); DCPower.Query("*OPC?\n");//设置电压
-            DCPower.Write($"CURRent {Current} A\n"); DCPower.Query("*OPC?\n");//设置电流
-            DCPower.Write("GLOBal:OUTPut:STATe 1\n"); DCPower.Query("*OPC?\n");
-            ShowMessage(MsgType.Info, string.Format("打开TDK电源."));
            
 
             TransmitterSerialPort SerialClient = new TransmitterSerialPort();
@@ -359,62 +394,64 @@ namespace Tps_LQ_Transmitter
             task = new Task(new Action(() => {
                 //执行测试过程
                 //currFileNode.Tps.Start(isOrderByChannel);
-                 SerialClient.SerialOpen(CfigComParas.GetComPort("1"));//需要取消注释
-                 ShowMessage(MsgType.Info, string.Format("打开串口."));//需要取消注释
+                SerialClient.SerialOpen(CfigComParas.GetComPort("1"));//获取config下的串口控制中的串口号,用于切频点的串口
+                ShowMessage(MsgType.Info, string.Format("打开串口."));
                 currFileNode.Tps.SerialClient = SerialClient;
                 #region 根据频点来测指标
-                for (int point = 0; point < FrequencyNumber; point++)//频点总数
-                {
-                    FourthByte = Convert.ToByte(CfigComParas.GetFourthByte((point + 1).ToString()), 16);
-                    currFileNode.Tps.FourthByte = FourthByte;
-                    double CenterFreq = double.Parse(CfigComParas.Getfreqpoint((point + 1).ToString()));
-                    for (int i = 0; i < currFileNode.Tps.TestNodes.Count; i++)
-                    {
-                        currFileNode.Tps.TestNodes[i].PointIndex = point; 
-                        currFileNode.Tps.TestNodes[i].CenterFreq = CenterFreq;
-                        //currFileNode.Tps.TestNodes[i].PointTotal = currFileNode.Tps.TestNodes.Count;
-                        currFileNode.Tps.TestNodes[i].PointTotal = FrequencyNumber;
-                    }
-
-                    if (IsRuning == false)
-                    {
-                        //控制断电
-                        if (currFileNode.Tps.Product.Contains("YZH16A"))//针对YZH16A的产品
-                        {
-                            SerialClient.DUT_Transmitter_Ctrol(0x00, 0x00, 0x55);
-                        }
-                        else
-                        {
-                            SerialClient.DUT_Transmitter_Ctrol1(0x00, 0x00);
-                        }
+                //for (int point = 0; point < FrequencyNumber; point++)//频点总数
+                //{
+                    //FourthByte = Convert.ToByte(CfigComParas.GetFourthByte((point + 1).ToString()), 16);
+                    //currFileNode.Tps.FourthByte = FourthByte;
+                    //double CenterFreq = double.Parse(CfigComParas.Getfreqpoint((point + 1).ToString()));
+                    //for (int i = 0; i < currFileNode.Tps.TestNodes.Count; i++)
+                    //{
+                    //    currFileNode.Tps.TestNodes[i].PointIndex = point; 
+                    //    currFileNode.Tps.TestNodes[i].CenterFreq = CenterFreq;
+                    //    //currFileNode.Tps.TestNodes[i].PointTotal = currFileNode.Tps.TestNodes.Count;
+                    //    currFileNode.Tps.TestNodes[i].PointTotal = FrequencyNumber;
+                    //}
+
+                    //if (IsRuning == false)
+                    //{
+                    //    //控制断电
+                    //    if (currFileNode.Tps.Product.Contains("YZH16A"))//针对YZH16A的产品
+                    //    {
+                    //        SerialClient.DUT_Transmitter_Ctrol(0x00, 0x00, 0x55);
+                    //    }
+                    //    else
+                    //    {
+                    //        SerialClient.DUT_Transmitter_Ctrol1(0x00, 0x00);
+                    //    }
                         
-                        SerialClient.SerialClose();
-                        DCPower.Write("GLOBal:OUTPut:STATe 0\n"); DCPower.Query("*OPC?\n");
-                        ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭TDK电源."));
-                        return;
-                    }
-                    //控制
-                    if (currFileNode.Tps.Product.Contains("YZH16A"))//针对YZH16A的产品
-                    {
-                        SerialClient.DUT_Transmitter_Ctrol(ThridByte, FourthByte, 0x55);
-                    }
-                    else
-                    {
-                        SerialClient.DUT_Transmitter_Ctrol1(ThridByte, FourthByte);
-                    }
+                    //    SerialClient.SerialClose();
+                    //    DCPower.Write("GLOBal:OUTPut:STATe 0\n"); DCPower.Query("*OPC?\n");
+                    //    ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭TDK电源."));
+                    //    return;
+                    //}
+                    ////控制
+                    //if (currFileNode.Tps.Product.Contains("YZH16A"))//针对YZH16A的产品
+                    //{
+                    //    SerialClient.DUT_Transmitter_Ctrol(ThridByte, FourthByte, 0x55);
+                    //}
+                    //else
+                    //{
+                    //    SerialClient.DUT_Transmitter_Ctrol1(ThridByte, FourthByte);
+                    //}
                   
-                    ShowMessage(MsgType.Info, string.Format("发送串口指令EB 90 {0} {1}.", ThridByte, FourthByte));
-                    testMin = TimesCounter.ElapsedMilliseconds/1000f / 60f;
-
-                    Thread.Sleep(ControlDelay);//单位ms
-                    ShowMessage(MsgType.Info, string.Format("延时{0}ms.", ControlDelay));
-                    this.BeginInvoke(new Action(() =>
-                    {
-                        labRemainTime.Text = $"第{point + 1}个频点[{CenterFreq}]MHz测试,共{FrequencyNumber}个频点,耗时{Math.Round(testMin, 2)}Min。";
-                    }));
-                    currFileNode.Tps.Start(isOrderByChannel);
-
-                }
+                    //ShowMessage(MsgType.Info, string.Format("发送串口指令EB 90 {0} {1}.", ThridByte, FourthByte));
+                    //testMin = TimesCounter.ElapsedMilliseconds/1000f / 60f;
+
+                    //Thread.Sleep(ControlDelay);//单位ms
+                    //ShowMessage(MsgType.Info, string.Format("延时{0}ms.", ControlDelay));
+                    //this.BeginInvoke(new Action(() =>
+                    //{
+                    //    labRemainTime.Text = $"第{point + 1}个频点[{CenterFreq}]MHz测试,共{FrequencyNumber}个频点,耗时{Math.Round(testMin, 2)}Min。";
+                    //}));
+                    
+                //}
+                string[] ProductSeries = new string[tbSerials.Items.Count];
+                tbSerials.Items.CopyTo(ProductSeries, 0);
+                currFileNode.Tps.Start(isOrderByChannel, ProductSeries, DCPower, rainwormPower, SerialClient, CfigComParas);
                 TimesCounter.Stop();
                 testMin = TimesCounter.ElapsedMilliseconds / 1000f / 60f;
                 this.BeginInvoke(new Action(() => {
@@ -426,18 +463,28 @@ namespace Tps_LQ_Transmitter
                 //控制断电
                 if (currFileNode.Tps.Product.Contains("YZH16A"))//针对YZH16A的产品
                 {
-                    SerialClient.DUT_Transmitter_Ctrol(0x00, 0x00, 0x55);
+                    SerialClient.DUT_Transmitter_Ctrol(0x00, 0x00, 0x55);//todo:掉电控制
                 }
                 else
                 {
-                    SerialClient.DUT_Transmitter_Ctrol1(0x00, 0x00);
+                    SerialClient.DUT_Transmitter_Ctrol1(0x00, 0x00);//todo:掉电控制
                 }
                 SerialClient.SerialClose();//需要取消注释
-                DCPower.Write("GLOBal:OUTPut:STATe 0\n"); DCPower.Query("*OPC?\n");//需要取消注释
-                ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭TDK电源."));
+                if (tbSerials.Items.Count > 1)//如果测试台数大于1,则使用外部TDK电源
+                {
+                    DCPower.Write("GLOBal:OUTPut:STATe 0\n"); DCPower.Query("*OPC?\n");//需要取消注释
+                    ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭外部TDK电源."));
+                }
+                else 
+                {
+                    rainwormPower.powerOnoff(RainwormPower.State.OFF);//设置蚯蚓电源输出
+                    ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭内部蚯蚓电源."));
+                }
+                
                 this.Invoke(new Action(() => {
                     BtnLoadTpsConfig.Enabled = true;
                     BtnStart.Enabled = true;
+                    tbSerials.Enabled = true;
                 }));
 
             }));
@@ -697,5 +744,159 @@ namespace Tps_LQ_Transmitter
             DebuggingForm debuggingForm = new DebuggingForm();
             debuggingForm.Show();
         }
+
+        private void tbSerials_KeyDown(object sender, KeyEventArgs e)
+  
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+
+                if (tbSerials.Text != "")
+
+                {
+
+                    string newItem = tbSerials.Text.Trim();
+
+                    bool flag = false;
+
+                    for (int i = 0; i < tbSerials.Items.Count; i++)
+
+                    {
+
+                        if (string.Compare(newItem, tbSerials.Items[i].ToString()) == 0)
+
+                        {
+                            flag = true;
+                            this.BackColor = Color.Blue;
+                            MessageBox.Show("已经有相同项,添加无效");
+                        }
+
+                    }
+
+                    if (flag == false)
+                    {
+                        if (tbSerials.Items.Count < 8)
+                        {
+                            tbSerials.Items.Add(newItem);
+                            tbSerials.Text = "";
+                        }
+                        else
+                        {
+                            MessageBox.Show("已有8套产品的编号,添加无效");
+                        }
+
+                    }
+
+                }
+                else
+                {
+                    MessageBox.Show("未输入产品编号,添加无效");
+                }
+            }
+            if(e.KeyCode == Keys.Insert)
+            {
+                if (tbSerials.Items.Count != 0)
+                {
+                    if (tbSerials.SelectedItem != null)
+                    {
+                        string strItem = tbSerials.SelectedItem.ToString();
+                        if (tbSerials.Text != "")
+                        {
+                         
+                            string newItem = tbSerials.Text.Trim();
+
+                            bool flag = false;
+
+                            for (int i = 0; i < tbSerials.Items.Count; i++)
+
+                            {
+
+                                if (string.Compare(newItem, tbSerials.Items[i].ToString()) == 0)
+
+                                {
+                                    flag = true;
+                                    this.BackColor = Color.Blue;
+                                    MessageBox.Show("已经有相同项,插入无效");
+                                }
+
+                            }
+
+                            if (flag == false)
+                            {
+                                if (tbSerials.Items.Count < 8)
+                                {
+                                    tbSerials.Items.Insert(tbSerials.Items.IndexOf(strItem), newItem); ;
+                                    tbSerials.Text = "";
+                                }
+                                else
+                                {
+                                    MessageBox.Show("已有8套产品的编号,插入无效");
+                                }
+
+                            }
+                        }
+                        else
+                        {
+                            MessageBox.Show("未输入产品编号,插入无效");
+                        }
+                    }
+                    else
+                    {
+                        MessageBox.Show("未选中需要插入的位置,插入无效");
+                    }
+                }
+                else
+                {
+                    MessageBox.Show("产品编号为空,插入无效");
+                }
+            }
+            if(e.KeyCode == Keys.Delete) 
+            {
+                if (tbSerials.Items.Count != 0)
+                {
+                    if (tbSerials.SelectedItem != null)
+                    {
+                        string strItem = tbSerials.SelectedItem.ToString();
+                        DialogResult selsecltresult;
+                        selsecltresult = MessageBox.Show("是否删除当前编号?", "提示", MessageBoxButtons.OKCancel);
+                        if (selsecltresult == DialogResult.OK)
+                        {
+                            tbSerials.Items.Remove(strItem);
+                            if (tbSerials.Items.Count != 0 )
+                            {
+                              
+                                tbSerials.SelectedItem = tbSerials.Items[0];
+                            }
+                        }
+                    }
+                    else
+                    {
+                        MessageBox.Show("未选中需要删除的产品编号,删除无效");
+                    }
+                }
+                else 
+                {
+                    MessageBox.Show("产品编号为空,删除无效");
+                }          
+            }
+            if(e.KeyCode == Keys.Escape)
+            {
+                if (tbSerials.Items.Count != 0)
+                {
+                    DialogResult selsecltresult;
+                    selsecltresult = MessageBox.Show("是否删除全部编号?", "提示", MessageBoxButtons.OKCancel);
+                    if (selsecltresult == DialogResult.OK)
+                    {
+                        tbSerials.Items.Clear();
+                    }
+                }
+                else
+                {
+                    MessageBox.Show("产品编号为空,删除无效");
+                }
+            }
+        }
+
+       
     }
 }

+ 200 - 24
tps/TpsLabStudio/MainTps.cs

@@ -10,12 +10,18 @@ using Tps_LQ_Transmitter.models;
 using System.Data;
 using AppLibs.Devices;
 using System.Windows.Forms;
+using CommonDevHostApp.Devices;
+using Tps_LQ_Transmitter.Common;
+using System.Diagnostics;
+using System.Threading;
 
 namespace Tps_LQ_Transmitter
 {
     public delegate void DltShowMsg(MsgType msgType, string msg);
     public delegate void DltCellValueChanged(int row, int cell, bool ok, object value);
-    public delegate void DltCellValueAdd(string name, string lower, string upper, string testval, string result);
+    public delegate void DltCellValueAdd(string series, string name,string systemch, string lower, string upper, string testval, string result);
+    public delegate void DltRemainTime(string channel, int point, int FrequencyNumber, double CenterFreq, double testMin);
+    public delegate void DltCurrentSeries(string series);
     /// <summary>
     /// 一个测试文件对应的测试项目
     /// </summary>
@@ -31,6 +37,8 @@ namespace Tps_LQ_Transmitter
         public string Temperature { get; set; }
         //当前测试的产品序列号
         public string Serial { get; set; }
+        //当前测试的产品序列号所用的系统通道号(总共8路)
+        public string SystemChofSerial { get; set; }
         //环境湿度
         public string Humidity { get; set; }
         //待测产品
@@ -74,6 +82,8 @@ namespace Tps_LQ_Transmitter
         public event DltCellValueChanged ManualTableCellChanged;
         public event DltCellValueChanged TestTableCellChanged;
         public event DltCellValueAdd AddTestTableCell;
+        public event DltRemainTime RemainTimeUpdate;
+        public event DltCurrentSeries CurrentSeries;
 
 
         DataTable InitTestTable,InitManualTable; //原始数据的界面,用于初始化或者重置
@@ -640,51 +650,210 @@ namespace Tps_LQ_Transmitter
             }
             return ok;
         }
+        public void StopClose(string[] ProductSeries,CommonVisaResource DCPower, RainwormPower rainwormPower, TransmitterSerialPort SerialClient)
+        {
+            if (Product.Contains("YZH16A"))//针对YZH16A的产品
+            {
+                SerialClient.DUT_Transmitter_Ctrol(0x00, 0x00, 0x55);//todo:掉电控制
+            }
+            else
+            {
+                SerialClient.DUT_Transmitter_Ctrol1(0x00, 0x00);//todo:掉电控制
+            }
+            SerialClient.SerialClose();
+            if (ProductSeries.Length > 1)//如果测试台数大于1,则使用外部TDK电源
+            {
+                DCPower.Write("GLOBal:OUTPut:STATe 0\n"); DCPower.Query("*OPC?\n");//需要取消注释
+                ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭外部TDK电源."));
+            }
+            else
+            {
+                rainwormPower.powerOnoff(RainwormPower.State.OFF);//设置蚯蚓电源输出
+                rainwormPower.portClose();
+                ShowMessage(MsgType.Info, string.Format("关闭6YYC信号源,关闭串口,关闭内部蚯蚓电源."));
+            }
+            
+        }
 
         /// <summary>
-        /// 
+        /// 开始测试
         /// </summary>
         /// <param name="isOrderByChannel">按照指标分组还是按照通道分组</param>
-        public void Start(bool isOrderByChannel)
+        public void Start(bool isOrderByChannel,string[] ProductSeries, CommonVisaResource DCPower, RainwormPower rainwormPower, TransmitterSerialPort SerialClient, MatchComPara CfigComParas)
         {
-            ShowMessage(MsgType.Info, string.Format("序列号:{0} 测试开始",Serial));
+            
             isStop = false;
+
             //清空测试数据
-           // BaseModel.TestResults.Clear();
+            // BaseModel.TestResults.Clear();
+
+            FrmMain FrmPara = new FrmMain();
+
+
+            byte FourthByte = 0x00;
+            string ComPort = CfigComParas.GetComPort("1");
+            byte ThridByte = Convert.ToByte(CfigComParas.GetThirdByte("1"), 16);
+
+            int FrequencyNumber = 0;
+            if (TestFreqSum >= CfigComParas.ComParameters.Count)//如果限定的测试频点数大于设置的频点数
+            {
+                FrequencyNumber = CfigComParas.ComParameters.Count;//取设置的频点数
+            }
+            else
+            {
+                FrequencyNumber = TestFreqSum;//取限定的测试频点数
+            }
+
+            int ControlDelay = this.TestNodes[0].Parameters.GetParameter<int>("控制延时");
+            //SerialClient.SerialOpen(CfigComParas.GetComPort("1"));
+            //ShowMessage(MsgType.Info, string.Format("打开串口."));
             //选择勾选项
             List<TestNode> nodes = this.TestNodes.Where(x => x.IsSelected == true).ToList();
-            if(isOrderByChannel)
+            if (isOrderByChannel)
             {
                 //按照通道分组
+                Stopwatch TimesCounter = new Stopwatch();
+                double testMin = 0;
+                TimesCounter.Restart();
                 int Channel = 1;
                 foreach (IGrouping<string, TestNode> group in nodes.GroupBy(x => x.Channel))
                 {
-                    //ShowMessage(MsgType.Notice,$"温馨提示:即将测试第{Channel}通道,请将线缆换到{Channel}通道!");
-                    //Channel++;
+                    if (nodes.Count == 2)
+                    {
+                        if (group.Key == nodes[0].Channel)
+                        {
+                            MessageBox.Show("将产品通道1输出电缆接【衰减】接口,产品通道2输出电缆接【陷波】接口。", "温馨提示");
+                        }
+                        else if (group.Key == nodes[1].Channel)
+                        {
+                            MessageBox.Show("将产品通道1输出电缆接【陷波】接口,产品通道2输出电缆接【衰减】接口。", "温馨提示");
+                        }
+                    }
+                    else if(nodes.Count == 1)
+                    {
+                        MessageBox.Show("将产品输出电缆接【衰减】接口。", "温馨提示");
+                    }
+                    //channel++;
                     //排序后执行
-                    foreach (TestNode testnode in group.OrderBy(a => a.Order))
+
+                    for (int point = 0; point < FrequencyNumber; point++)//频点总数
                     {
-                        if(isStop == false)
+                        FourthByte = Convert.ToByte(CfigComParas.GetFourthByte((point + 1).ToString()), 16);
+                        double CenterFreq = double.Parse(CfigComParas.Getfreqpoint((point + 1).ToString()));
+                        for (int i = 0; i < this.TestNodes.Count; i++)
                         {
-                            ShowMessage(MsgType.Info, string.Format("开始执行测试指标:{0}/{1}", testnode.Channel, testnode.Name));
-                            if(testnode.TestModel != null)
+                            this.TestNodes[i].PointIndex = point;
+                            this.TestNodes[i].CenterFreq = CenterFreq;
+                            this.TestNodes[i].PointTotal = FrequencyNumber;
+                        }
+
+                        if (FrmPara.IsRuning == false)//中途点击停止测试按钮
+                        {
+                            //控制断电
+                            StopClose(ProductSeries,  DCPower,  rainwormPower,  SerialClient);
+                            return;
+                        }
+                        //控制
+
+                        if (Product.Contains("YZH16A"))//针对YZH16A的产品
+                        {
+                            SerialClient.DUT_Transmitter_Ctrol(ThridByte, FourthByte, 0x55);//todo:切换频点
+                        }
+                        else
+                        {
+                            SerialClient.DUT_Transmitter_Ctrol1(ThridByte, FourthByte);//todo:切换频点
+                        }
+                        ShowMessage(MsgType.Info, string.Format("发送串口指令EB 90 {0} {1}.", ThridByte, FourthByte));
+                        testMin = TimesCounter.ElapsedMilliseconds / 1000f / 60f;
+
+                        Thread.Sleep(ControlDelay);//单位ms
+                        ShowMessage(MsgType.Info, string.Format("延时{0}ms.", ControlDelay));
+                        RemainTimeUpdate(group.Key, point, FrequencyNumber, CenterFreq, testMin);
+                        //Tps_LQ_Transmitter.FrmMain.BeginInvoke(new Action(() =>
+                        //{
+
+                        //    //labRemainTime.Text = $"第{point + 1}个频点[{CenterFreq}]MHz测试,共{currFileNode.Tps.TestNodes.Count - 1}个频点,耗时{Math.Round(testMin, 2)}Min。";
+                        //}));
+                        //Tps_LQ_Transmitter.FrmMain.BeginInvoke(new FrmMain RemainTime, point, CenterFreq, testMin);
+                        //    //labRemainTime.Text = $"第{point + 1}个频点[{CenterFreq}]MHz测试,共{currFileNode.Tps.TestNodes.Count - 1}个频点,耗时{Math.Round(testMin, 2)}Min。";
+
+
+
+                        foreach (TestNode testnode in group.OrderBy(a => a.Order))
+                        {
+                            if (FrmPara.IsRuning == false)//中途点击停止测试按钮
+                            {
+                                //控制断电
+                                StopClose(ProductSeries, DCPower, rainwormPower, SerialClient);
+                                return;
+                            }
+                            if (isStop == false)
                             {
-                                //测试中途取消了勾选项
-                                if(testnode.IsSelected)
+                                if (nodes.Count == 1 && testnode.Name.Contains("杂波抑制"))
+                                {
+                                    MessageBox.Show("将产品输出电缆接【陷波】接口。", "温馨提示");                                  
+                                }
+                                if (nodes.Count == 2 && testnode.Name.Contains("杂波抑制"))
+                                {
+                                    if (group.Key == nodes[0].Channel)
+                                    {
+                                        ShowMessage(MsgType.Info, string.Format("开始执行测试指标:{0}/{1}", nodes[1].Channel, testnode.Name));
+                                    }
+                                    else if (group.Key == nodes[1].Channel)
+                                    {
+                                        ShowMessage(MsgType.Info, string.Format("开始执行测试指标:{0}/{1}", nodes[0].Channel, testnode.Name));
+                                    }
+                                    
+                                }
+                                else
                                 {
-                                    currModel = testnode.TestModel;
-                                    testnode.TestModel.Start(testnode);
+                                    ShowMessage(MsgType.Info, string.Format("开始执行测试指标:{0}/{1}", testnode.Channel, testnode.Name));
+                                }
+                               
+
+                                
+                                if (testnode.TestModel != null)
+                                {
+                                   
+                                    if (testnode.IsSelected)
+                                    {
+                                        currModel = testnode.TestModel;
+                                        for (int i =0;i< ProductSeries.Length;i++)
+                                        {
+                                            if (FrmPara.IsRuning == false)//中途点击停止测试按钮
+                                            {
+                                                //控制断电
+                                                StopClose(ProductSeries, DCPower, rainwormPower, SerialClient);
+                                                return;
+                                            }
+                                            this.Serial =  ProductSeries[i];
+                                            SystemChofSerial = (Array.IndexOf(ProductSeries, ProductSeries[i]) +  1).ToString();
+                                            UpDateCurrentSeries(this.Serial);
+                                            // 陷波支路用于测杂波抑制,衰减支路用于测试其他指标,
+                                            //双通道测试时:当测通道1的衰减支路指标时,在不换线的情况下,则进行通道2的陷波支路指标,然后换线,测通道2的衰减支路指标时,在不换线的情况下,则进行通道1的陷波支路指标。
+                                            //单通道测试时,当测通道1的衰减支路指标时,换线后,单独测试通道1的陷波支路指标
+                                            if (testnode.Name.Contains("杂波抑制"))
+                                            {
+                                                //todo:切产品同时切到陷波支路(1切8射频开关,1切2射频开关)
+                                            }
+                                            else 
+                                            {
+                                                //todo:切产品同时切到衰减支路(1切8射频开关,1切2射频开关)
+                                            }                                          
+                                            testnode.TestModel.Start(testnode, nodes);
+                                        }
+                                    }
+                                }
+                                else
+                                {
+                                    ShowMessage(MsgType.Error, string.Format("测试指标:{0}/{1} 没有实例化执行模块", testnode.Channel, testnode.Name));
                                 }
                             }
                             else
                             {
-                                ShowMessage(MsgType.Error, string.Format("测试指标:{0}/{1} 没有实例化执行模块", testnode.Channel, testnode.Name));
+                                break;
                             }
                         }
-                        else
-                        {
-                            break;
-                        }
                     }
                 }
             }
@@ -702,7 +871,7 @@ namespace Tps_LQ_Transmitter
                             if (testnode.TestModel != null)
                             {
                                 currModel = testnode.TestModel;
-                                testnode.TestModel.Start(testnode);
+                             //   testnode.TestModel.Start(testnode);
                             }
                             else
                             {
@@ -838,10 +1007,17 @@ namespace Tps_LQ_Transmitter
             if (TestTableCellChanged != null)
                 TestTableCellChanged(row, col, ok, value);
         }
-        public void TestTableAddCell(string name, string lower, string upper, string testval,string result)
+        public void TestTableAddCell(string series, string name,string systemch, string lower, string upper, string testval,string result)
         {
             if (AddTestTableCell != null)
-                AddTestTableCell(name,lower,upper,testval,result);
+                AddTestTableCell(series,name,systemch,lower,upper,testval,result);
+        }
+        public void UpDateCurrentSeries(string CuurentSeries)
+        {
+            if (CurrentSeries != null )
+            {
+                CurrentSeries(CuurentSeries);
+            }
         }
 
         void SaveTestTable()

+ 1 - 1
tps/TpsLabStudio/TpsLabStudio.csproj.user

@@ -5,6 +5,6 @@
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
     <StartAction>Program</StartAction>
-    <StartProgram>D:\code\TpsLabStudio_LTS\exe\JGWorks.exe</StartProgram>
+    <StartProgram>F:\Code\Code_Launch_8\exe\JGWorks.exe</StartProgram>
   </PropertyGroup>
 </Project>

+ 1 - 1
tps/TpsLabStudio/com/RainwormPower.cs

@@ -13,7 +13,7 @@ namespace Tps_LQ_Transmitter.com
     /// 蚯蚓直流程控电源控制类
     /// [使用计算机串口COM4通信]
     /// </summary>
-    class RainwormPower:MySerial
+    public  class RainwormPower:MySerial
     {
         SerialPort serial = null;
 

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


+ 3 - 3
tps/TpsLabStudio/models/BaseModel.cs

@@ -31,7 +31,7 @@ namespace Tps_LQ_Transmitter.models
         /// </summary>
         public MainTps tps { get; set; }
 
-        public virtual bool Run(TestNode parameters)
+        public virtual bool Run(TestNode parameters, List<TestNode> nodes)
         {
 
             return false;
@@ -41,11 +41,11 @@ namespace Tps_LQ_Transmitter.models
         /// 开始测试
         /// </summary>
         /// <returns></returns>
-        public virtual bool Start(TestNode parameters)
+        public virtual bool Start(TestNode parameters, List<TestNode> nodes)
         {
             IsRuning = true;
             IsPassed = false;
-            bool ok = Run(parameters);
+            bool ok = Run(parameters, nodes);
             IsRuning = false;
             FinishedTime = DateTime.Now;
             return ok;

+ 4 - 4
tps/TpsLabStudio/models/FskModulationIndexAndMaxFreqOffset.cs

@@ -18,7 +18,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// FSK调制指数及最大频偏指标测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double y_value, x_value;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点FSK调制指数及最大频偏指标测试开始", parameters.PointIndex));
@@ -151,7 +151,7 @@ namespace Tps_LQ_Transmitter.models
 
 
                     //控串口为0xEB 0x90 0x02 0xxx 0x00
-                    this.tps.SerialClient.DUT_Transmitter_Ctrol(this.tps.ThridByte, this.tps.FourthByte, 0x00);
+                    this.tps.SerialClient.DUT_Transmitter_Ctrol(this.tps.ThridByte, this.tps.FourthByte, 0x00);//todo:针对YZH16A的产品FSK调制,需更根据具体协议进行更改
                     Thread.Sleep(this.tps.ControlDelay);//单位ms
                     SA.Write("SingleOrCont", "0"); SA.Query("OPC");
                     SA.Write("单次扫描"); SA.Query("OPC");
@@ -196,10 +196,10 @@ namespace Tps_LQ_Transmitter.models
                    
                 }
 
-                tps.TestTableAddCell(MaxFreqOffsetPrint.Test_name, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+                tps.TestTableAddCell(tps.Serial,MaxFreqOffsetPrint.Test_name,tps.SystemChofSerial, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
              
                
-                tps.TestTableAddCell(ModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
+                tps.TestTableAddCell(tps.Serial,ModulationIndexPrint.Test_name, tps.SystemChofSerial, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
               
 
                 if (parameters.Channel == "通道1")

+ 3 - 3
tps/TpsLabStudio/models/HarmonicSuppression.cs

@@ -17,7 +17,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 谐波抑制测试-
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             ShowMessage(MsgType.Info, string.Format("第{0}个频点谐波抑制测试开始", parameters.PointIndex));
 
@@ -148,7 +148,7 @@ namespace Tps_LQ_Transmitter.models
                         {
                             HarmonicSuppressionPrint.Result = "否";
                         }
-                        tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicTimeVal[harmonic_num].ToString(), HarmonicSuppressionPrint.Result);
+                        tps.TestTableAddCell(tps.Serial,HarmonicSuppressionPrint.Test_name,tps.SystemChofSerial, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicTimeVal[harmonic_num].ToString(), HarmonicSuppressionPrint.Result);
                         if (parameters.Channel == "通道1")
                         {
 
@@ -185,7 +185,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     HarmonicSuppressionPrint.Result = "否";
                 }
-                tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+                tps.TestTableAddCell(tps.Serial,HarmonicSuppressionPrint.Test_name,tps.SystemChofSerial, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
                     

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

@@ -18,7 +18,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 功率及频率稳定度测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double y_value, x_value;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点调制指数及最大频偏指标测试开始", parameters.PointIndex));
@@ -298,13 +298,13 @@ namespace Tps_LQ_Transmitter.models
                     rightModulationIndexPrint.Result = "否";                
                     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(tps.Serial,MaxFreqOffsetPrint.Test_name,tps.SystemChofSerial, "/", "/", MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+                tps.TestTableAddCell(tps.Serial,leftFreqOffsetPrint.Test_name,tps.SystemChofSerial, "/", "/", leftFreqOffsetPrint.TestVal.ToString(), leftFreqOffsetPrint.Result);
+                tps.TestTableAddCell(tps.Serial,rightFreqOffsetPrint.Test_name,tps.SystemChofSerial, "/", "/", 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);
-                tps.TestTableAddCell(rightModulationIndexPrint.Test_name, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), rightModulationIndexPrint.TestVal.ToString(), rightModulationIndexPrint.Result);
+                tps.TestTableAddCell(tps.Serial,ModulationIndexPrint.Test_name, tps.SystemChofSerial,ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), ModulationIndexPrint.TestVal.ToString(), ModulationIndexPrint.Result);
+                tps.TestTableAddCell(tps.Serial,leftModulationIndexPrint.Test_name,tps.SystemChofSerial, ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), leftModulationIndexPrint.TestVal.ToString(), leftModulationIndexPrint.Result);
+                tps.TestTableAddCell(tps.Serial,rightModulationIndexPrint.Test_name, tps.SystemChofSerial,ModulationIndexPrint.Lower.ToString(), ModulationIndexPrint.Upper.ToString(), rightModulationIndexPrint.TestVal.ToString(), rightModulationIndexPrint.Result);
 
                 if (parameters.Channel == "通道1")
                 {

+ 2 - 2
tps/TpsLabStudio/models/NoisePowerDensity.cs

@@ -17,7 +17,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 噪声功率谱密度测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double ChannelPower, ChannelPowerDensity;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点噪声功率谱密度测试开始", parameters.PointIndex));
@@ -147,7 +147,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     NoisePowerPrint.Result = "否";
                 }
-                tps.TestTableAddCell(NoisePowerPrint.Test_name, NoisePowerPrint.Lower.ToString(), NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
+                tps.TestTableAddCell(tps.Serial,NoisePowerPrint.Test_name, tps.SystemChofSerial,NoisePowerPrint.Lower.ToString(), NoisePowerPrint.Upper.ToString(), NoisePowerPrint.TestVal.ToString(), NoisePowerPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
 

+ 413 - 413
tps/TpsLabStudio/models/NormalTemperatureTest.cs

@@ -16,429 +16,429 @@ namespace Tps_LQ_Transmitter.models
         {
             TemplateName = "常温检查测试";
         }
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
-            DateTime currentTime1 = new DateTime();       
-            Random random = new Random();
+        //    DateTime currentTime1 = new DateTime();       
+        //    Random random = new Random();
             
-            //获取仪器
-            var SA = this.tps.GetDevice("频谱仪"); 
-            var DC = this.tps.GetDevice("程控电源");
-
-            /*
-            if (DC == null || SA == null)
-            {
-                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;
-            }
+        //    //获取仪器
+        //    var SA = this.tps.GetDevice("频谱仪"); 
+        //    var DC = this.tps.GetDevice("程控电源");
+
+        //    /*
+        //    if (DC == null || SA == null)
+        //    {
+        //        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.IntervalTime = parameters.Parameters.GetParameter<int>("相对时间");//min
-            PowerPara.TestTime = parameters.Parameters.GetParameter<int>("测试次数");//min
-            int IntervalTime = (int)(PowerPara.IntervalTime * 60);//将min转换成s        
+        //    ConfigParameter PowerPara = new ConfigParameter();
+        //    PowerPara.IntervalTime = parameters.Parameters.GetParameter<int>("相对时间");//min
+        //    PowerPara.TestTime = parameters.Parameters.GetParameter<int>("测试次数");//min
+        //    int IntervalTime = (int)(PowerPara.IntervalTime * 60);//将min转换成s        
           
-            int time=0;
-            Stopwatch TimesCounter = new Stopwatch();
+        //    int time=0;
+        //    Stopwatch TimesCounter = new Stopwatch();
            
-            while ( time < PowerPara.TestTime)
-            {
-                currentTime1 = DateTime.Now;
-                TimesCounter.Restart();
+        //    while ( time < PowerPara.TestTime)
+        //    {
+        //        currentTime1 = DateTime.Now;
+        //        TimesCounter.Restart();
                 
-                //tps.SetTestTableCellValue(time, 3, true, currentTime1.Hour.ToString()+":"+ currentTime1.Minute.ToString());//测试时间
-                //tps.SetTestTableCellValue(time + PowerPara.TestTime, 3, true, currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString());//测试时间
-                tps.TestTableAddCell("绝对时间","/", "/", currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString(), "/");
-                WriteExcelData(sheet,  1 + time * 10, 1,"绝对时间", "/", "/", currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString(), "/");
+        //        //tps.SetTestTableCellValue(time, 3, true, currentTime1.Hour.ToString()+":"+ currentTime1.Minute.ToString());//测试时间
+        //        //tps.SetTestTableCellValue(time + PowerPara.TestTime, 3, true, currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString());//测试时间
+        //        tps.TestTableAddCell("绝对时间","/", "/", currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString(), "/");
+        //        WriteExcelData(sheet,  1 + time * 10, 1,"绝对时间", "/", "/", currentTime1.Hour.ToString() + ":" + currentTime1.Minute.ToString(), "/");
                
-                MainTest(parameters,time,workbook,sheet);
-                if (time == 3)
-                {
-                    IntervalTime = IntervalTime * 2;
-                }
-                while (TimesCounter.Elapsed.TotalSeconds <= IntervalTime && time!= PowerPara.TestTime-1)
-                {
-                    Thread.Sleep(100);
-                    if (IsRuning == false)
-                    {
-                        return false;
-                    }
-
-                }
-                TimesCounter.Stop();
-                time = time + 1;
-            }
-            SaveExcel(workbook);
-
-            return true;
-        }
-        public bool MainTest(TestNode parameters,int time, Spire.Xls.Workbook workbook,  Spire.Xls.Worksheet sheet)
-        {
+        //        MainTest(parameters,time,workbook,sheet);
+        //        if (time == 3)
+        //        {
+        //            IntervalTime = IntervalTime * 2;
+        //        }
+        //        while (TimesCounter.Elapsed.TotalSeconds <= IntervalTime && time!= PowerPara.TestTime-1)
+        //        {
+        //            Thread.Sleep(100);
+        //            if (IsRuning == false)
+        //            {
+        //                return false;
+        //            }
+
+        //        }
+        //        TimesCounter.Stop();
+        //        time = time + 1;
+        //    }
+        //    SaveExcel(workbook);
+
+        //    return true;
+        //}
+        //public bool MainTest(TestNode parameters,int time, Spire.Xls.Workbook workbook,  Spire.Xls.Worksheet sheet)
+        //{
            
-            Random random = new Random();
-            DataType VoltDataPrint = new DataType();
-            DataType CurrentDataPrint = new DataType();
-            DataType PowerPrint = new DataType();//功率(dBm)
-            DataType FreqPrint = new DataType();//实测频率
-            DataType FreqAccuracyPrint = new DataType();//频率稳定度
-            DataType PowerSumPrint = new DataType();//两路功率总和(w)
-            DataType PowerFlatnessPrint = new DataType();//两路功率不平度(dB)
-            DataType ModulationIndexPrint = new DataType();
-            DataType MaxFreqOffsetPrint = new DataType();
-            DataType DBMaxFreqOffsetPrint = new DataType();
-            DataType SpuriousSuppressionPrint = new DataType();
-            DataType HarmonicSuppressionPrint = new DataType();
-
-            //获取仪器
-            var SA = this.tps.GetDevice("频谱仪");
-            var DC = this.tps.GetDevice("程控电源");
-            TransmitterSerialPort SerialClient = new TransmitterSerialPort();
-            TestPara Data = new TestPara();
-
-            /*
-            if (DC == null || SA == null)
-            {
-                ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
-                return false;
-            }
-            */
-            MatchModulaPara CfigModuParas = new MatchModulaPara();
-            CfigModuParas = LoadModulationWorkBook();
-
-            ConfigParameter PowerPara = new ConfigParameter();
-            PowerPara.ComPort = parameters.Parameters.GetParameter<string>("串口");
-            PowerPara.OutLoss = parameters.Parameters.GetParameter<double>("输出损耗");
-            PowerPara.ChannelPara = parameters.Parameters.GetParameter<int>("通道数");
-            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.SPAN = parameters.Parameters.GetParameter<string>("扫描带宽(SPAN)");
-            PowerPara.REF = parameters.Parameters.GetParameter<string>("参考电平(REF)");
-            PowerPara.SmallSignalREF = parameters.Parameters.GetParameter<string>("小信号参考电平(REF)");
-            PowerPara.RBW = parameters.Parameters.GetParameter<string>("分辨率带宽(RBW)");
-            PowerPara.VBW = parameters.Parameters.GetParameter<string>("视频带宽(VBW)");
-            PowerPara.HarmonicTime = parameters.Parameters.GetParameterToArray<int>("谐波次数");
-            PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
-            PowerPara.VoltLower = parameters.Parameters.GetParameter<double>("电压下限");
-            PowerPara.VoltUpper = parameters.Parameters.GetParameter<double>("电压上限");
-            PowerPara.CurrentLower = parameters.Parameters.GetParameter<double>("电流下限");
-            PowerPara.CurrentUpper = parameters.Parameters.GetParameter<double>("电流上限");
-            PowerPara.PowerLower = parameters.Parameters.GetParameter<double>("功率下限");
-            PowerPara.PowerUpper = parameters.Parameters.GetParameter<double>("功率上限");
-            //PowerPara.FreqAccuracyUpper = parameters.Parameters.GetParameter<double>("频率稳定度上限");
-           // PowerPara.PowerFlatnessUpper = parameters.Parameters.GetParameter<double>("功率不平度上限");
-          //  PowerPara.ModulationIndexLower = parameters.Parameters.GetParameter<double>("调制系数下限");
-          //  PowerPara.ModulationIndexUpper = parameters.Parameters.GetParameter<double>("调制系数上限");
-            PowerPara.MaxFreqOffsetLower = parameters.Parameters.GetParameter<double>("最大频偏(KHz)下限");
-            PowerPara.MaxFreqOffsetUpper = parameters.Parameters.GetParameter<double>("最大频偏(KHz)上限");
-            PowerPara.SpuriousSuppressionLower = parameters.Parameters.GetParameter<double>("杂波抑制下限");
-            PowerPara.HarmonicSuppressionLower = parameters.Parameters.GetParameter<double>("谐波抑制下限");
-
-
-            if ((PowerPara.StartFrequency == 0) ||(PowerPara.ChannelPara == 0) ||((PowerPara.StepFrequency == 0) && (PowerPara.FrequencyNumber == 0)) || (PowerPara.StopFrequency == 0)
-                || (PowerPara.SPAN == null) || (PowerPara.REF == null) || (PowerPara.RBW == null) || (PowerPara.VBW == null) || (PowerPara.PowerLower == 0)
-                || (PowerPara.PowerUpper == 0) || (PowerPara.MaxFreqOffsetLower == 0) || (PowerPara.MaxFreqOffsetUpper == 0) || (PowerPara.SpuriousSuppressionLower == 0)
-                ||(PowerPara.HarmonicSuppressionLower == 0))
-            {
-                ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行", parameters.Channel, parameters.Name));
-                return false;
-            }
-            if (PowerPara.ControlDelay == 0)
-            {
-                PowerPara.ControlDelay = 10;
-            }
-            if ((PowerPara.FrequencyNumber != 0) && (PowerPara.FrequencyNumber != 1) && (PowerPara.StepFrequency == 0))
-            {
-                PowerPara.StepFrequency = ((int)(((PowerPara.StopFrequency - PowerPara.StartFrequency) / (PowerPara.FrequencyNumber - 1)) * 100)) / 100;
-            }
-            if (PowerPara.StepFrequency != 0)
-            {
-                PowerPara.FrequencyNumber = ((int)((PowerPara.StopFrequency - PowerPara.StartFrequency) / PowerPara.StepFrequency)) + 1;
-            }
-            int channel = 0;
-            int point = 0;
-            string Result;
-            double CenterFreq;
-            double[] PowerDelt = new double[PowerPara.FrequencyNumber];
-            Data.Power = new double[PowerPara.FrequencyNumber];
-            Data.Freq = new double[PowerPara.FrequencyNumber];
-            Data.FreqAccuracy = new double[PowerPara.FrequencyNumber];
-            Data.ModulationIndex = new string[PowerPara.FrequencyNumber];
-            Data.MaxFreqOffset = new string[PowerPara.FrequencyNumber];
-            Data.DBMaxFreqOffset = new string[PowerPara.FrequencyNumber];
-
-
-            for (channel = 0; channel < PowerPara.ChannelPara; channel++)
-            {
-                #region 输出功率、频率、电压、电流、调制频偏dB、调制频偏KHz测试
-                //SA.Write("仪器复位"); SA.Query("OPC");
-                //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
-                //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
-                //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
-                //SA.Write("REF", PowerPara.REF); SA.Query("OPC");
-
-                //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
-                //SA.Write("MARK打开", "1"); SA.Query("OPC");
-                //SA.Write("MARK打开", "2"); SA.Query("OPC");
-                //SA.Write("DELT打开", "2"); SA.Query("OPC");
-                for (point = 0; ; point++)
-                {
-                    CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
-                    if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
-                    {
-                        break;
-                    }
-                    //控制
-                    //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
-                    Thread.Sleep(PowerPara.ControlDelay);//单位ms
-
-
-                    #region 电压、电流测试
-                    //Data.VoltVal[point] = DC.Query("读取电压");
-                    //Data.CurrentVal[point] = DC.Query("读取电流");
-                    VoltDataPrint.Test_name = "通道" + (channel+1).ToString() + "-" + "电压测试-" + CenterFreq.ToString() + "MHz";
-                    VoltDataPrint.Lower = PowerPara.VoltLower;
-                    VoltDataPrint.Upper = PowerPara.VoltUpper;
-                    //VoltDataPrint.TestVal = double.Parse(Data.VoltVal[point]);
-                    VoltDataPrint.TestVal = random.Next(2500, 3000) / 100.0;//随机数
-                    Judge(VoltDataPrint.Lower, VoltDataPrint.Upper, VoltDataPrint.TestVal, out Result);
-                    VoltDataPrint.Result = Result;
-
-                    CurrentDataPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "电流测试-" + CenterFreq.ToString() + "MHz";
-                    CurrentDataPrint.Lower = PowerPara.CurrentLower;
-                    CurrentDataPrint.Upper = PowerPara.CurrentUpper;
-                    //CurrentDataPrint.TestVal = double.Parse(Data.CurrentVal[point]);
-                    CurrentDataPrint.TestVal = random.Next(90, 160) / 100.0;
-                    Judge(CurrentDataPrint.Lower, CurrentDataPrint.Upper, CurrentDataPrint.TestVal, out Result);
-                    CurrentDataPrint.Result = Result;
-                    #endregion
-
-                    #region 输出功率、频率测试
-                    //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
-                    //SA.Write("PEAK", "1"); SA.Query("OPC");
-                    //SA.Write("NextPeak", "2"); SA.Query("OPC");
-                    // PsaPeakValue_Tracedata(SA, out y_value, out x_value, true);
-                    // Data.Power[point] = y_value + PowerPara.OutLoss;//功率
-                    Data.Power[point] = random.Next(3000, 4000) / 100.0;//随机数
-
-                    PowerPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "功率测试(W)-" + CenterFreq.ToString() + "MHz";
-                    PowerPrint.Lower = PowerPara.PowerLower;
-                    PowerPrint.Upper = PowerPara.PowerUpper;
-                    PowerPrint.TestVal = Math.Round(Math.Pow(10, (Data.Power[point] / 10)) / 1000, 2);//功率W                  
-                    Judge(PowerPrint.Lower, PowerPrint.Upper, PowerPrint.TestVal, out Result);
-                    PowerPrint.Result = Result;
-
-
-
-                    FreqPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "频率测试(MHz)-" + CenterFreq.ToString() + "MHz";
-                    FreqPrint.Lower = 0 - ((PowerPara.FreqAccuracyUpper * CenterFreq) + CenterFreq);
-                    FreqPrint.Upper = (PowerPara.FreqAccuracyUpper * CenterFreq) + CenterFreq;
-                    // FreqPrint.TestVal = Math.Round(x_value / 1000000, 3);//实测频率
-                    FreqPrint.TestVal = random.Next(-600, 6000) / 100.0 + CenterFreq;//随机数
-                    Judge(FreqPrint.Lower, FreqPrint.Upper, FreqPrint.TestVal, out Result);
-                    FreqPrint.Result = Result;
-
-                    #endregion
-
-                    #region 调制测试
-                    //PowerDelt[point] = double.Parse(SA.Query("读DELT功率", "2")); SA.Query("OPC");
-                    PowerDelt[point] = random.Next(500, 1200) / 100.0;//随机数
-                    double temp = 30;
-                    string RelativeVal = "0";
-                    foreach (KeyValuePair<string, ModulationMatchParameter> kvp in CfigModuParas.ModulaParameters)
-                    {
-                        if ((Math.Abs(PowerDelt[point] - double.Parse(kvp.Value.CfgRelative))) < temp)
-                        {
-                            temp = Math.Abs(PowerDelt[point] - double.Parse(kvp.Value.CfgRelative));
-                            RelativeVal = kvp.Value.CfgRelative;
-                        }
-                    }
-
-                    //Data.ModulationIndex[point] = CfigModuParas.GetModulaParameter(RelativeVal);//调制系数
+        //    Random random = new Random();
+        //    DataType VoltDataPrint = new DataType();
+        //    DataType CurrentDataPrint = new DataType();
+        //    DataType PowerPrint = new DataType();//功率(dBm)
+        //    DataType FreqPrint = new DataType();//实测频率
+        //    DataType FreqAccuracyPrint = new DataType();//频率稳定度
+        //    DataType PowerSumPrint = new DataType();//两路功率总和(w)
+        //    DataType PowerFlatnessPrint = new DataType();//两路功率不平度(dB)
+        //    DataType ModulationIndexPrint = new DataType();
+        //    DataType MaxFreqOffsetPrint = new DataType();
+        //    DataType DBMaxFreqOffsetPrint = new DataType();
+        //    DataType SpuriousSuppressionPrint = new DataType();
+        //    DataType HarmonicSuppressionPrint = new DataType();
+
+        //    //获取仪器
+        //    var SA = this.tps.GetDevice("频谱仪");
+        //    var DC = this.tps.GetDevice("程控电源");
+        //    TransmitterSerialPort SerialClient = new TransmitterSerialPort();
+        //    TestPara Data = new TestPara();
+
+        //    /*
+        //    if (DC == null || SA == null)
+        //    {
+        //        ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
+        //        return false;
+        //    }
+        //    */
+        //    MatchModulaPara CfigModuParas = new MatchModulaPara();
+        //    CfigModuParas = LoadModulationWorkBook();
+
+        //    ConfigParameter PowerPara = new ConfigParameter();
+        //    PowerPara.ComPort = parameters.Parameters.GetParameter<string>("串口");
+        //    PowerPara.OutLoss = parameters.Parameters.GetParameter<double>("输出损耗");
+        //    PowerPara.ChannelPara = parameters.Parameters.GetParameter<int>("通道数");
+        //    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.SPAN = parameters.Parameters.GetParameter<string>("扫描带宽(SPAN)");
+        //    PowerPara.REF = parameters.Parameters.GetParameter<string>("参考电平(REF)");
+        //    PowerPara.SmallSignalREF = parameters.Parameters.GetParameter<string>("小信号参考电平(REF)");
+        //    PowerPara.RBW = parameters.Parameters.GetParameter<string>("分辨率带宽(RBW)");
+        //    PowerPara.VBW = parameters.Parameters.GetParameter<string>("视频带宽(VBW)");
+        //    PowerPara.HarmonicTime = parameters.Parameters.GetParameterToArray<int>("谐波次数");
+        //    PowerPara.ControlDelay = parameters.Parameters.GetParameter<int>("控制延时");
+        //    PowerPara.VoltLower = parameters.Parameters.GetParameter<double>("电压下限");
+        //    PowerPara.VoltUpper = parameters.Parameters.GetParameter<double>("电压上限");
+        //    PowerPara.CurrentLower = parameters.Parameters.GetParameter<double>("电流下限");
+        //    PowerPara.CurrentUpper = parameters.Parameters.GetParameter<double>("电流上限");
+        //    PowerPara.PowerLower = parameters.Parameters.GetParameter<double>("功率下限");
+        //    PowerPara.PowerUpper = parameters.Parameters.GetParameter<double>("功率上限");
+        //    //PowerPara.FreqAccuracyUpper = parameters.Parameters.GetParameter<double>("频率稳定度上限");
+        //   // PowerPara.PowerFlatnessUpper = parameters.Parameters.GetParameter<double>("功率不平度上限");
+        //  //  PowerPara.ModulationIndexLower = parameters.Parameters.GetParameter<double>("调制系数下限");
+        //  //  PowerPara.ModulationIndexUpper = parameters.Parameters.GetParameter<double>("调制系数上限");
+        //    PowerPara.MaxFreqOffsetLower = parameters.Parameters.GetParameter<double>("最大频偏(KHz)下限");
+        //    PowerPara.MaxFreqOffsetUpper = parameters.Parameters.GetParameter<double>("最大频偏(KHz)上限");
+        //    PowerPara.SpuriousSuppressionLower = parameters.Parameters.GetParameter<double>("杂波抑制下限");
+        //    PowerPara.HarmonicSuppressionLower = parameters.Parameters.GetParameter<double>("谐波抑制下限");
+
+
+        //    if ((PowerPara.StartFrequency == 0) ||(PowerPara.ChannelPara == 0) ||((PowerPara.StepFrequency == 0) && (PowerPara.FrequencyNumber == 0)) || (PowerPara.StopFrequency == 0)
+        //        || (PowerPara.SPAN == null) || (PowerPara.REF == null) || (PowerPara.RBW == null) || (PowerPara.VBW == null) || (PowerPara.PowerLower == 0)
+        //        || (PowerPara.PowerUpper == 0) || (PowerPara.MaxFreqOffsetLower == 0) || (PowerPara.MaxFreqOffsetUpper == 0) || (PowerPara.SpuriousSuppressionLower == 0)
+        //        ||(PowerPara.HarmonicSuppressionLower == 0))
+        //    {
+        //        ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行", parameters.Channel, parameters.Name));
+        //        return false;
+        //    }
+        //    if (PowerPara.ControlDelay == 0)
+        //    {
+        //        PowerPara.ControlDelay = 10;
+        //    }
+        //    if ((PowerPara.FrequencyNumber != 0) && (PowerPara.FrequencyNumber != 1) && (PowerPara.StepFrequency == 0))
+        //    {
+        //        PowerPara.StepFrequency = ((int)(((PowerPara.StopFrequency - PowerPara.StartFrequency) / (PowerPara.FrequencyNumber - 1)) * 100)) / 100;
+        //    }
+        //    if (PowerPara.StepFrequency != 0)
+        //    {
+        //        PowerPara.FrequencyNumber = ((int)((PowerPara.StopFrequency - PowerPara.StartFrequency) / PowerPara.StepFrequency)) + 1;
+        //    }
+        //    int channel = 0;
+        //    int point = 0;
+        //    string Result;
+        //    double CenterFreq;
+        //    double[] PowerDelt = new double[PowerPara.FrequencyNumber];
+        //    Data.Power = new double[PowerPara.FrequencyNumber];
+        //    Data.Freq = new double[PowerPara.FrequencyNumber];
+        //    Data.FreqAccuracy = new double[PowerPara.FrequencyNumber];
+        //    Data.ModulationIndex = new string[PowerPara.FrequencyNumber];
+        //    Data.MaxFreqOffset = new string[PowerPara.FrequencyNumber];
+        //    Data.DBMaxFreqOffset = new string[PowerPara.FrequencyNumber];
+
+
+        //    for (channel = 0; channel < PowerPara.ChannelPara; channel++)
+        //    {
+        //        #region 输出功率、频率、电压、电流、调制频偏dB、调制频偏KHz测试
+        //        //SA.Write("仪器复位"); SA.Query("OPC");
+        //        //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
+        //        //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
+        //        //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
+        //        //SA.Write("REF", PowerPara.REF); SA.Query("OPC");
+
+        //        //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
+        //        //SA.Write("MARK打开", "1"); SA.Query("OPC");
+        //        //SA.Write("MARK打开", "2"); SA.Query("OPC");
+        //        //SA.Write("DELT打开", "2"); SA.Query("OPC");
+        //        for (point = 0; ; point++)
+        //        {
+        //            CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
+        //            if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
+        //            {
+        //                break;
+        //            }
+        //            //控制
+        //            //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+        //            Thread.Sleep(PowerPara.ControlDelay);//单位ms
+
+
+        //            #region 电压、电流测试
+        //            //Data.VoltVal[point] = DC.Query("读取电压");
+        //            //Data.CurrentVal[point] = DC.Query("读取电流");
+        //            VoltDataPrint.Test_name = "通道" + (channel+1).ToString() + "-" + "电压测试-" + CenterFreq.ToString() + "MHz";
+        //            VoltDataPrint.Lower = PowerPara.VoltLower;
+        //            VoltDataPrint.Upper = PowerPara.VoltUpper;
+        //            //VoltDataPrint.TestVal = double.Parse(Data.VoltVal[point]);
+        //            VoltDataPrint.TestVal = random.Next(2500, 3000) / 100.0;//随机数
+        //            Judge(VoltDataPrint.Lower, VoltDataPrint.Upper, VoltDataPrint.TestVal, out Result);
+        //            VoltDataPrint.Result = Result;
+
+        //            CurrentDataPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "电流测试-" + CenterFreq.ToString() + "MHz";
+        //            CurrentDataPrint.Lower = PowerPara.CurrentLower;
+        //            CurrentDataPrint.Upper = PowerPara.CurrentUpper;
+        //            //CurrentDataPrint.TestVal = double.Parse(Data.CurrentVal[point]);
+        //            CurrentDataPrint.TestVal = random.Next(90, 160) / 100.0;
+        //            Judge(CurrentDataPrint.Lower, CurrentDataPrint.Upper, CurrentDataPrint.TestVal, out Result);
+        //            CurrentDataPrint.Result = Result;
+        //            #endregion
+
+        //            #region 输出功率、频率测试
+        //            //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
+        //            //SA.Write("PEAK", "1"); SA.Query("OPC");
+        //            //SA.Write("NextPeak", "2"); SA.Query("OPC");
+        //            // PsaPeakValue_Tracedata(SA, out y_value, out x_value, true);
+        //            // Data.Power[point] = y_value + PowerPara.OutLoss;//功率
+        //            Data.Power[point] = random.Next(3000, 4000) / 100.0;//随机数
+
+        //            PowerPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "功率测试(W)-" + CenterFreq.ToString() + "MHz";
+        //            PowerPrint.Lower = PowerPara.PowerLower;
+        //            PowerPrint.Upper = PowerPara.PowerUpper;
+        //            PowerPrint.TestVal = Math.Round(Math.Pow(10, (Data.Power[point] / 10)) / 1000, 2);//功率W                  
+        //            Judge(PowerPrint.Lower, PowerPrint.Upper, PowerPrint.TestVal, out Result);
+        //            PowerPrint.Result = Result;
+
+
+
+        //            FreqPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "频率测试(MHz)-" + CenterFreq.ToString() + "MHz";
+        //            FreqPrint.Lower = 0 - ((PowerPara.FreqAccuracyUpper * CenterFreq) + CenterFreq);
+        //            FreqPrint.Upper = (PowerPara.FreqAccuracyUpper * CenterFreq) + CenterFreq;
+        //            // FreqPrint.TestVal = Math.Round(x_value / 1000000, 3);//实测频率
+        //            FreqPrint.TestVal = random.Next(-600, 6000) / 100.0 + CenterFreq;//随机数
+        //            Judge(FreqPrint.Lower, FreqPrint.Upper, FreqPrint.TestVal, out Result);
+        //            FreqPrint.Result = Result;
+
+        //            #endregion
+
+        //            #region 调制测试
+        //            //PowerDelt[point] = double.Parse(SA.Query("读DELT功率", "2")); SA.Query("OPC");
+        //            PowerDelt[point] = random.Next(500, 1200) / 100.0;//随机数
+        //            double temp = 30;
+        //            string RelativeVal = "0";
+        //            foreach (KeyValuePair<string, ModulationMatchParameter> kvp in CfigModuParas.ModulaParameters)
+        //            {
+        //                if ((Math.Abs(PowerDelt[point] - double.Parse(kvp.Value.CfgRelative))) < temp)
+        //                {
+        //                    temp = Math.Abs(PowerDelt[point] - double.Parse(kvp.Value.CfgRelative));
+        //                    RelativeVal = kvp.Value.CfgRelative;
+        //                }
+        //            }
+
+        //            //Data.ModulationIndex[point] = CfigModuParas.GetModulaParameter(RelativeVal);//调制系数
                  
-                    Data.MaxFreqOffset[point] = CfigModuParas.GetFreqOffsetParameter(RelativeVal);//最大频偏kHz
-                    Data.DBMaxFreqOffset[point] = PowerDelt[point].ToString();//最大频偏dB
-
-
-                    //ModulationIndexPrint.TestVal = double.Parse(Data.ModulationIndex[point]);
-                    //Judge (PowerPara.ModulationIndexLower, PowerPara.ModulationIndexUpper, ModulationIndexPrint.TestVal, out Result);
-                    //ModulationIndexPrint.Result = Result;
-
-                    MaxFreqOffsetPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "调制频偏(KHz)-" + CenterFreq.ToString() + "MHz";
-                    DBMaxFreqOffsetPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "调制频偏(dB)-" + CenterFreq.ToString() + "MHz";
-                    MaxFreqOffsetPrint.Lower = PowerPara.MaxFreqOffsetLower;
-                    MaxFreqOffsetPrint.Upper = PowerPara.MaxFreqOffsetUpper;
-                    MaxFreqOffsetPrint.TestVal = double.Parse(Data.MaxFreqOffset[point]);
-                    DBMaxFreqOffsetPrint.TestVal = double.Parse(Data.DBMaxFreqOffset[point]);
-
-                    Judge(MaxFreqOffsetPrint.Lower, MaxFreqOffsetPrint.Upper, MaxFreqOffsetPrint.TestVal, out Result);
-                    MaxFreqOffsetPrint.Result = Result;
-                    DBMaxFreqOffsetPrint.Result = Result;
-                    tps.TestTableAddCell(VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
-                    tps.TestTableAddCell(CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
-                    tps.TestTableAddCell(FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
-                    tps.TestTableAddCell(DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
-                    tps.TestTableAddCell(MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                    tps.TestTableAddCell(PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
-                    #endregion
-                    if (channel == 0)
-                    {
-                        WriteExcelData(sheet, point + 2 + time * 10, 1, VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
-                        WriteExcelData(sheet, point + 3 + time * 10, 1, CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
-                        WriteExcelData(sheet, point + 4 + time * 10, 1, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
-                        WriteExcelData(sheet, point + 5 + time * 10, 1, DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
-                        WriteExcelData(sheet, point + 6 + time * 10, 1, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                        WriteExcelData(sheet, point + 7 + time * 10, 1, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
-                        //tps.SetTestTableCellValue(point + time, 4, VoltDataPrint.Result, VoltDataPrint.TestVal);//供电电压(V)
-                        //tps.SetTestTableCellValue(point + time, 5, CurrentDataPrint.Result, CurrentDataPrint.TestVal);//消耗电流(A)
-                        //tps.SetTestTableCellValue(point + time, 6, FreqPrint.Result, FreqPrint.TestVal);//输出频率(kHz)
-                        //tps.SetTestTableCellValue(point + time, 7, DBMaxFreqOffsetPrint.Result, DBMaxFreqOffsetPrint.TestVal);//调制频偏(dB)
-                        //tps.SetTestTableCellValue(point + time, 8, MaxFreqOffsetPrint.Result, MaxFreqOffsetPrint.TestVal);//调制频偏(kHz)
-                        //tps.SetTestTableCellValue(point + time, 9, PowerPrint.Result, PowerPrint.TestVal);//输出功率(W)
-
-                    }
-                    else if (channel == 1)
-                    {
-                        WriteExcelData(sheet, point + 2 + time * 10, 2, VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
-                        WriteExcelData(sheet, point + 3 + time * 10, 2, CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
-                        WriteExcelData(sheet, point + 4 + time * 10, 2, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
-                        WriteExcelData(sheet, point + 5 + time * 10, 2, DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
-                        WriteExcelData(sheet, point + 6 + time * 10, 2, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
-                        WriteExcelData(sheet, point + 7 + time * 10, 2, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
-                        //tps.SetTestTableCellValue(point + time + 5, 4, VoltDataPrint.Result, VoltDataPrint.TestVal);//供电电压(V)
-                        //tps.SetTestTableCellValue(point + time + 5, 5, CurrentDataPrint.Result, CurrentDataPrint.TestVal);//消耗电流(A)
-                        //tps.SetTestTableCellValue(point + time + 5, 6, FreqPrint.Result, FreqPrint.TestVal);//输出频率(kHz)
-                        //tps.SetTestTableCellValue(point + time + 5, 7, DBMaxFreqOffsetPrint.Result, DBMaxFreqOffsetPrint.TestVal);//调制频偏(dB)
-                        //tps.SetTestTableCellValue(point + time + 5, 8, MaxFreqOffsetPrint.Result, MaxFreqOffsetPrint.TestVal);//调制频偏(kHz)
-                        //tps.SetTestTableCellValue(point + time + 5, 9, PowerPrint.Result, PowerPrint.TestVal);//输出功率(W)
-
-                    }
-                }
-
-                #endregion
-                #region 杂波抑制
-                //SA.Write("仪器复位"); SA.Query("OPC");
-                //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
-                //SA.Write("REF", PowerPara.SmallSignalREF); SA.Query("OPC");
-                //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
-                //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
-                //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
-                for (point = 0; ; point++)
-                {
-                    CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
-                    if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
-                    {
-                        break;
-                    }
-                    //// 控制
-                    //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
-                    //Thread.Sleep(PowerPara.ControlDelay);//单位ms               
-
-                    //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
-                    //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
-                    //Power = y_value;
-                    ////测主频左侧杂散
-                    //SA.Write("START", PowerPara.LeftStart.ToString()); SA.Query("OPC");
-                    //SA.Write("STOP", (CenterFreq - PowerPara.LeftOffset).ToString()); SA.Query("OPC");
-                    //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
-                    //PowerLeft = Power - y_value;
-                    ////测主频右侧杂散
-                    //SA.Write("START", (CenterFreq + PowerPara.RightOffset).ToString()); SA.Query("OPC");
-                    //SA.Write("STOP", PowerPara.RightStop.ToString()); SA.Query("OPC");
-                    //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
-                    //PowerRigth = Power - y_value;
-                    SpuriousSuppressionPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "杂波抑制测试(KHz)-" + CenterFreq.ToString() + "MHz";
-                    SpuriousSuppressionPrint.Lower = PowerPara.SpuriousSuppressionLower;
-                    //SpuriousSuppressionPrint.TestVal = Math.Round(Math.Min(PowerLeft, PowerRigth), 2);
-                    SpuriousSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
-                    Judge(SpuriousSuppressionPrint.Lower, 201, SpuriousSuppressionPrint.TestVal, out Result);
-                    SpuriousSuppressionPrint.Result = Result;
-                    tps.TestTableAddCell(SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
-                    if (channel == 0)
-                    {
-                        WriteExcelData(sheet, point + 8 + time * 10, 1, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
-                        //tps.SetTestTableCellValue(point + time, 10, SpuriousSuppressionPrint.Result, SpuriousSuppressionPrint.TestVal);//杂波抑制(dBc)
-
-                    }
-                    else if (channel == 1)
-                    {
-                        WriteExcelData(sheet, point + 8 + time * 10, 2, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
-                        //tps.SetTestTableCellValue(point + time + 5, 10, SpuriousSuppressionPrint.Result, SpuriousSuppressionPrint.TestVal);//杂波抑制(dBc)
-
-                    }
-
-                }
-                #endregion
-                #region 谐波抑制
-                //SA.Write("仪器复位"); SA.Query("OPC");
-                //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
-                //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
-                //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
-                //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
-                for (point = 0; ; point++)
-                {
-                    CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
-                    if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
-                    {
-                        break;
-                    }
-                    // 控制
-                    //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
-                    //Thread.Sleep(PowerPara.ControlDelay);//单位ms
-
-
-                    //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
-                    //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
-                    //Power = y_value;
-
-                    double[] HarmonicTimeVal = new double[PowerPara.HarmonicTime.Length];
-                    double HarmonicMinTimeVal = 0;
-
-                    //for ( harmonic_num = 0; harmonic_num < PowerPara.HarmonicTime.Length; harmonic_num++)
-                    //{
-                    //    SA.Write("CENTER", (CenterFreq * PowerPara.HarmonicTime[harmonic_num]).ToString()); SA.Query("OPC");//N次谐波
-                    //    PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
-                    //    Data.HarmonicSuppression[point,harmonic_num] = Math.Round( Power - y_value,2 );
-
-                    //    HarmonicTimeVal[harmonic_num] = Data.HarmonicSuppression[point, harmonic_num];
-                    //}
-
-                    //if (PowerPara.HarmonicTime.Length > 1)//计算几次谐波中的最小值
-                    //{
-                    //    HarmonicMinTimeVal = HarmonicTimeVal.Min();
-                    //}
-                    //else
-                    //{
-                    //    HarmonicMinTimeVal = HarmonicTimeVal[0];
-                    //}
-                    HarmonicSuppressionPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "谐波抑制测试(KHz)-" + CenterFreq.ToString() + "MHz";
-                    HarmonicSuppressionPrint.Lower = PowerPara.HarmonicSuppressionLower;
-                    HarmonicSuppressionPrint.TestVal = HarmonicMinTimeVal;
-                    HarmonicSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
-                    Judge(HarmonicSuppressionPrint.Lower, 201, HarmonicSuppressionPrint.TestVal, out Result);
-                    HarmonicSuppressionPrint.Result = Result;
-                    tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
-                    if (channel == 0)
-                    {
-                         WriteExcelData(sheet, point + 9 + time * 10, 1, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
-                        //tps.SetTestTableCellValue(point + time, 11, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);//谐波抑制(dBc)
-                    }
-                    else if (channel == 1)
-                    {
-                        WriteExcelData(sheet, point + 9 + time * 10, 2, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
-                        //tps.SetTestTableCellValue(point + time + 5, 11, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);//谐波抑制(dBc)
-                    }
-                }
-                #endregion
+        //            Data.MaxFreqOffset[point] = CfigModuParas.GetFreqOffsetParameter(RelativeVal);//最大频偏kHz
+        //            Data.DBMaxFreqOffset[point] = PowerDelt[point].ToString();//最大频偏dB
+
+
+        //            //ModulationIndexPrint.TestVal = double.Parse(Data.ModulationIndex[point]);
+        //            //Judge (PowerPara.ModulationIndexLower, PowerPara.ModulationIndexUpper, ModulationIndexPrint.TestVal, out Result);
+        //            //ModulationIndexPrint.Result = Result;
+
+        //            MaxFreqOffsetPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "调制频偏(KHz)-" + CenterFreq.ToString() + "MHz";
+        //            DBMaxFreqOffsetPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "调制频偏(dB)-" + CenterFreq.ToString() + "MHz";
+        //            MaxFreqOffsetPrint.Lower = PowerPara.MaxFreqOffsetLower;
+        //            MaxFreqOffsetPrint.Upper = PowerPara.MaxFreqOffsetUpper;
+        //            MaxFreqOffsetPrint.TestVal = double.Parse(Data.MaxFreqOffset[point]);
+        //            DBMaxFreqOffsetPrint.TestVal = double.Parse(Data.DBMaxFreqOffset[point]);
+
+        //            Judge(MaxFreqOffsetPrint.Lower, MaxFreqOffsetPrint.Upper, MaxFreqOffsetPrint.TestVal, out Result);
+        //            MaxFreqOffsetPrint.Result = Result;
+        //            DBMaxFreqOffsetPrint.Result = Result;
+        //            tps.TestTableAddCell(VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
+        //            tps.TestTableAddCell(CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
+        //            tps.TestTableAddCell(FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
+        //            tps.TestTableAddCell(DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
+        //            tps.TestTableAddCell(MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+        //            tps.TestTableAddCell(PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+        //            #endregion
+        //            if (channel == 0)
+        //            {
+        //                WriteExcelData(sheet, point + 2 + time * 10, 1, VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
+        //                WriteExcelData(sheet, point + 3 + time * 10, 1, CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
+        //                WriteExcelData(sheet, point + 4 + time * 10, 1, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
+        //                WriteExcelData(sheet, point + 5 + time * 10, 1, DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
+        //                WriteExcelData(sheet, point + 6 + time * 10, 1, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+        //                WriteExcelData(sheet, point + 7 + time * 10, 1, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time, 4, VoltDataPrint.Result, VoltDataPrint.TestVal);//供电电压(V)
+        //                //tps.SetTestTableCellValue(point + time, 5, CurrentDataPrint.Result, CurrentDataPrint.TestVal);//消耗电流(A)
+        //                //tps.SetTestTableCellValue(point + time, 6, FreqPrint.Result, FreqPrint.TestVal);//输出频率(kHz)
+        //                //tps.SetTestTableCellValue(point + time, 7, DBMaxFreqOffsetPrint.Result, DBMaxFreqOffsetPrint.TestVal);//调制频偏(dB)
+        //                //tps.SetTestTableCellValue(point + time, 8, MaxFreqOffsetPrint.Result, MaxFreqOffsetPrint.TestVal);//调制频偏(kHz)
+        //                //tps.SetTestTableCellValue(point + time, 9, PowerPrint.Result, PowerPrint.TestVal);//输出功率(W)
+
+        //            }
+        //            else if (channel == 1)
+        //            {
+        //                WriteExcelData(sheet, point + 2 + time * 10, 2, VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
+        //                WriteExcelData(sheet, point + 3 + time * 10, 2, CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
+        //                WriteExcelData(sheet, point + 4 + time * 10, 2, FreqPrint.Test_name, FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
+        //                WriteExcelData(sheet, point + 5 + time * 10, 2, DBMaxFreqOffsetPrint.Test_name, DBMaxFreqOffsetPrint.Lower.ToString(), DBMaxFreqOffsetPrint.Upper.ToString(), DBMaxFreqOffsetPrint.TestVal.ToString(), DBMaxFreqOffsetPrint.Result);
+        //                WriteExcelData(sheet, point + 6 + time * 10, 2, MaxFreqOffsetPrint.Test_name, MaxFreqOffsetPrint.Lower.ToString(), MaxFreqOffsetPrint.Upper.ToString(), MaxFreqOffsetPrint.TestVal.ToString(), MaxFreqOffsetPrint.Result);
+        //                WriteExcelData(sheet, point + 7 + time * 10, 2, PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time + 5, 4, VoltDataPrint.Result, VoltDataPrint.TestVal);//供电电压(V)
+        //                //tps.SetTestTableCellValue(point + time + 5, 5, CurrentDataPrint.Result, CurrentDataPrint.TestVal);//消耗电流(A)
+        //                //tps.SetTestTableCellValue(point + time + 5, 6, FreqPrint.Result, FreqPrint.TestVal);//输出频率(kHz)
+        //                //tps.SetTestTableCellValue(point + time + 5, 7, DBMaxFreqOffsetPrint.Result, DBMaxFreqOffsetPrint.TestVal);//调制频偏(dB)
+        //                //tps.SetTestTableCellValue(point + time + 5, 8, MaxFreqOffsetPrint.Result, MaxFreqOffsetPrint.TestVal);//调制频偏(kHz)
+        //                //tps.SetTestTableCellValue(point + time + 5, 9, PowerPrint.Result, PowerPrint.TestVal);//输出功率(W)
+
+        //            }
+        //        }
+
+        //        #endregion
+        //        #region 杂波抑制
+        //        //SA.Write("仪器复位"); SA.Query("OPC");
+        //        //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
+        //        //SA.Write("REF", PowerPara.SmallSignalREF); SA.Query("OPC");
+        //        //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
+        //        //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
+        //        //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
+        //        for (point = 0; ; point++)
+        //        {
+        //            CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
+        //            if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
+        //            {
+        //                break;
+        //            }
+        //            //// 控制
+        //            //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+        //            //Thread.Sleep(PowerPara.ControlDelay);//单位ms               
+
+        //            //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
+        //            //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
+        //            //Power = y_value;
+        //            ////测主频左侧杂散
+        //            //SA.Write("START", PowerPara.LeftStart.ToString()); SA.Query("OPC");
+        //            //SA.Write("STOP", (CenterFreq - PowerPara.LeftOffset).ToString()); SA.Query("OPC");
+        //            //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
+        //            //PowerLeft = Power - y_value;
+        //            ////测主频右侧杂散
+        //            //SA.Write("START", (CenterFreq + PowerPara.RightOffset).ToString()); SA.Query("OPC");
+        //            //SA.Write("STOP", PowerPara.RightStop.ToString()); SA.Query("OPC");
+        //            //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
+        //            //PowerRigth = Power - y_value;
+        //            SpuriousSuppressionPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "杂波抑制测试(KHz)-" + CenterFreq.ToString() + "MHz";
+        //            SpuriousSuppressionPrint.Lower = PowerPara.SpuriousSuppressionLower;
+        //            //SpuriousSuppressionPrint.TestVal = Math.Round(Math.Min(PowerLeft, PowerRigth), 2);
+        //            SpuriousSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
+        //            Judge(SpuriousSuppressionPrint.Lower, 201, SpuriousSuppressionPrint.TestVal, out Result);
+        //            SpuriousSuppressionPrint.Result = Result;
+        //            tps.TestTableAddCell(SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+        //            if (channel == 0)
+        //            {
+        //                WriteExcelData(sheet, point + 8 + time * 10, 1, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time, 10, SpuriousSuppressionPrint.Result, SpuriousSuppressionPrint.TestVal);//杂波抑制(dBc)
+
+        //            }
+        //            else if (channel == 1)
+        //            {
+        //                WriteExcelData(sheet, point + 8 + time * 10, 2, SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time + 5, 10, SpuriousSuppressionPrint.Result, SpuriousSuppressionPrint.TestVal);//杂波抑制(dBc)
+
+        //            }
+
+        //        }
+        //        #endregion
+        //        #region 谐波抑制
+        //        //SA.Write("仪器复位"); SA.Query("OPC");
+        //        //SA.Write("SPAN", PowerPara.SPAN); SA.Query("OPC");
+        //        //SA.Write("RBW", PowerPara.RBW); SA.Query("OPC");
+        //        //SA.Write("VBW", PowerPara.VBW); SA.Query("OPC");
+        //        //SA.Write("SingleOrCont", "0"); SA.Query("OPC");
+        //        for (point = 0; ; point++)
+        //        {
+        //            CenterFreq = PowerPara.StartFrequency + PowerPara.StepFrequency * point;
+        //            if (CenterFreq > PowerPara.StopFrequency || (PowerPara.FrequencyNumber == 1 && point == 1))
+        //            {
+        //                break;
+        //            }
+        //            // 控制
+        //            //SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+        //            //Thread.Sleep(PowerPara.ControlDelay);//单位ms
+
+
+        //            //SA.Write("CENTER", CenterFreq.ToString()); SA.Query("OPC");
+        //            //PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
+        //            //Power = y_value;
+
+        //            double[] HarmonicTimeVal = new double[PowerPara.HarmonicTime.Length];
+        //            double HarmonicMinTimeVal = 0;
+
+        //            //for ( harmonic_num = 0; harmonic_num < PowerPara.HarmonicTime.Length; harmonic_num++)
+        //            //{
+        //            //    SA.Write("CENTER", (CenterFreq * PowerPara.HarmonicTime[harmonic_num]).ToString()); SA.Query("OPC");//N次谐波
+        //            //    PsaPeakValue_Tracedata(SA, out y_value, out x_value, false);
+        //            //    Data.HarmonicSuppression[point,harmonic_num] = Math.Round( Power - y_value,2 );
+
+        //            //    HarmonicTimeVal[harmonic_num] = Data.HarmonicSuppression[point, harmonic_num];
+        //            //}
+
+        //            //if (PowerPara.HarmonicTime.Length > 1)//计算几次谐波中的最小值
+        //            //{
+        //            //    HarmonicMinTimeVal = HarmonicTimeVal.Min();
+        //            //}
+        //            //else
+        //            //{
+        //            //    HarmonicMinTimeVal = HarmonicTimeVal[0];
+        //            //}
+        //            HarmonicSuppressionPrint.Test_name = "通道" + (channel + 1).ToString() + "-" + "谐波抑制测试(KHz)-" + CenterFreq.ToString() + "MHz";
+        //            HarmonicSuppressionPrint.Lower = PowerPara.HarmonicSuppressionLower;
+        //            HarmonicSuppressionPrint.TestVal = HarmonicMinTimeVal;
+        //            HarmonicSuppressionPrint.TestVal = random.Next(4000, 12000) / 100.0;//随机数
+        //            Judge(HarmonicSuppressionPrint.Lower, 201, HarmonicSuppressionPrint.TestVal, out Result);
+        //            HarmonicSuppressionPrint.Result = Result;
+        //            tps.TestTableAddCell(HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+        //            if (channel == 0)
+        //            {
+        //                 WriteExcelData(sheet, point + 9 + time * 10, 1, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time, 11, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);//谐波抑制(dBc)
+        //            }
+        //            else if (channel == 1)
+        //            {
+        //                WriteExcelData(sheet, point + 9 + time * 10, 2, HarmonicSuppressionPrint.Test_name, HarmonicSuppressionPrint.Lower.ToString(), HarmonicSuppressionPrint.Upper.ToString(), HarmonicSuppressionPrint.TestVal.ToString(), HarmonicSuppressionPrint.Result);
+        //                //tps.SetTestTableCellValue(point + time + 5, 11, HarmonicSuppressionPrint.Result, HarmonicSuppressionPrint.TestVal);//谐波抑制(dBc)
+        //            }
+        //        }
+        //        #endregion
                 
-            }
+        //    }
             
             return true;
         

+ 3 - 3
tps/TpsLabStudio/models/PhaseNoise.cs

@@ -17,7 +17,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 相位噪声测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double y_value, x_value;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点相位噪声测试开始", parameters.PointIndex));
@@ -176,7 +176,7 @@ namespace Tps_LQ_Transmitter.models
                     {
                         PhaseNoisePrint.Result = "否";
                     }
-                    tps.TestTableAddCell(PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), Data.PhaseNoise[parameters.PointIndex, offset_num].ToString(), PhaseNoisePrint.Result);
+                    tps.TestTableAddCell(tps.Serial,PhaseNoisePrint.Test_name,tps.SystemChofSerial, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString(), Data.PhaseNoise[parameters.PointIndex, offset_num].ToString(), PhaseNoisePrint.Result);
 
                    
                     if (parameters.Channel == "通道1")
@@ -212,7 +212,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     PhaseNoisePrint.Result = "否";
                 }
-                tps.TestTableAddCell(PhaseNoisePrint.Test_name, PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString() ,PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
+                tps.TestTableAddCell(tps.Serial,PhaseNoisePrint.Test_name, tps.SystemChofSerial,PhaseNoisePrint.Lower.ToString(), PhaseNoisePrint.Upper.ToString() ,PhaseNoisePrint.TestVal.ToString(), PhaseNoisePrint.Result);
                 if (parameters.Channel == "通道1")
                 {
 

+ 5 - 5
tps/TpsLabStudio/models/PowerAndFreqStability.cs

@@ -21,7 +21,7 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 功率及频率稳定度测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double y_value, x_value, TestFreq;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点功率及频率稳定度测试开始", parameters.PointIndex));
@@ -247,8 +247,8 @@ namespace Tps_LQ_Transmitter.models
                 {
                     FreqAccuracyPrint.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);
+                tps.TestTableAddCell(tps.Serial,PowerPrint.Test_name,tps.SystemChofSerial, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                tps.TestTableAddCell(tps.Serial,FreqPrint.Test_name, tps.SystemChofSerial,FreqPrint.Lower.ToString(), FreqPrint.Upper.ToString(), FreqPrint.TestVal.ToString(), FreqPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
                     
@@ -304,8 +304,8 @@ namespace Tps_LQ_Transmitter.models
                         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);
+                    tps.TestTableAddCell(tps.Serial,PowerSumPrint.Test_name,tps.SystemChofSerial, PowerSumPrint.Lower.ToString(), PowerSumPrint.Upper.ToString(), PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
+                    tps.TestTableAddCell(tps.Serial,PowerFlatnessPrint.Test_name,tps.SystemChofSerial, "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);

+ 5 - 4
tps/TpsLabStudio/models/PowerTest-PowerMeter.cs

@@ -23,7 +23,7 @@ namespace Tps_LQ_Transmitter.models
         /// </summary>
         /// <param name="parameters"></param>
         /// <returns></returns>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             //获取仪器
             DataType PowerPrint = new DataType();//功率(w)
@@ -130,7 +130,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     PowerPrint.Result = "否";
                 }
-                tps.TestTableAddCell(PowerPrint.Test_name, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
+                tps.TestTableAddCell(tps.Serial,PowerPrint.Test_name,tps.SystemChofSerial, PowerPrint.Lower.ToString(), PowerPrint.Upper.ToString(), PowerPrint.TestVal.ToString(), PowerPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
 
@@ -179,8 +179,9 @@ namespace Tps_LQ_Transmitter.models
                         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);
+                    tps.TestTableAddCell(tps.Serial, PowerSumPrint.Test_name, tps.SystemChofSerial, PowerSumPrint.Lower.ToString(), PowerSumPrint.Upper.ToString(), PowerSumPrint.TestVal.ToString(), PowerSumPrint.Result);
+
+                    tps.TestTableAddCell(tps.Serial,PowerFlatnessPrint.Test_name,tps.SystemChofSerial, "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);

+ 29 - 7
tps/TpsLabStudio/models/SpuriousSuppression.cs

@@ -17,9 +17,10 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 杂波抑制测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             double y_value, x_value;
+            string channel = "";
             ShowMessage(MsgType.Info, string.Format("第{0}个频点杂波抑制测试开始", parameters.PointIndex));
             Random random = new Random();
             //获取仪器
@@ -42,6 +43,23 @@ namespace Tps_LQ_Transmitter.models
                 return false;
             }
 
+            if (nodes.Count == 1 )
+            {
+                channel = nodes[0].Channel;
+            }
+            else if(nodes.Count == 2 ) 
+            {
+                if(parameters.Channel == nodes[0].Channel)
+                {
+                    channel = nodes[1].Channel;
+                }
+                else if (parameters.Channel == nodes[1].Channel)
+                {
+                    channel = nodes[0].Channel;
+                }
+               
+            }
+
             ConfigParameter PowerPara = new ConfigParameter();
             //PowerPara.StepFrequency = 0;
             //PowerPara.ComPort = parameters.Parameters.GetParameter<string>("串口");
@@ -117,7 +135,8 @@ namespace Tps_LQ_Transmitter.models
                 if (true)//需具备仪器
                 {
                     // 控制
-                 //   SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+                    //   SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+                   
                     Thread.Sleep(PowerPara.ControlDelay);//单位ms    
 
                     SA.Write("REF", PowerPara.REF); SA.Query("OPC");
@@ -150,8 +169,9 @@ namespace Tps_LQ_Transmitter.models
                         string val = SA.Query("读MARK功率", "1");
                         double SpecialPower = Power - double.Parse(val);
                         PowerSpecialFreq = Math.Round(SpecialPower, 2);
+                      
+                        specialSpuriousSuppressionPrint.Test_name = channel + "-" + PowerPara.SpecialFreq.ToString() + "MHz杂波抑制测试-" + parameters.CenterFreq.ToString() + "MHz";
                         
-                        specialSpuriousSuppressionPrint.Test_name = parameters.Channel +"-" +PowerPara.SpecialFreq.ToString() + "MHz杂波抑制测试-" + parameters.CenterFreq.ToString() + "MHz";
                         specialSpuriousSuppressionPrint.Lower = PowerPara.SpecialFreqSpuriousSuppressionLower;
                         specialSpuriousSuppressionPrint.Upper = PowerPara.SpecialFreqSpuriousSuppressionUpper;
                         if (((specialSpuriousSuppressionPrint.Lower - PowerPara.LimitOffset) <= PowerSpecialFreq) && (PowerSpecialFreq < specialSpuriousSuppressionPrint.Lower))
@@ -171,12 +191,14 @@ namespace Tps_LQ_Transmitter.models
                         {
                             specialSpuriousSuppressionPrint.Result = "否";
                         }
-                        tps.TestTableAddCell(specialSpuriousSuppressionPrint.Test_name, specialSpuriousSuppressionPrint.Lower.ToString(), specialSpuriousSuppressionPrint.Upper.ToString(), PowerSpecialFreq.ToString(), specialSpuriousSuppressionPrint.Result);
+                        tps.TestTableAddCell(tps.Serial,specialSpuriousSuppressionPrint.Test_name,tps.SystemChofSerial, specialSpuriousSuppressionPrint.Lower.ToString(), specialSpuriousSuppressionPrint.Upper.ToString(), PowerSpecialFreq.ToString(), specialSpuriousSuppressionPrint.Result);
 
                     }
-
+                    
                 }
-                SpuriousSuppressionPrint.Test_name = parameters.Channel + "-杂波抑制测试-" + parameters.CenterFreq.ToString() + "MHz";
+               
+                SpuriousSuppressionPrint.Test_name = channel + "-杂波抑制测试-" + parameters.CenterFreq.ToString() + "MHz";
+               
                 SpuriousSuppressionPrint.Lower = PowerPara.SpuriousSuppressionLower;
                 SpuriousSuppressionPrint.Upper = PowerPara.SpuriousSuppressionUpper;
                 SpuriousSuppressionPrint.TestVal = Math.Round(Math.Min(PowerLeft, PowerRigth), 2);
@@ -198,7 +220,7 @@ namespace Tps_LQ_Transmitter.models
                 {
                     SpuriousSuppressionPrint.Result = "否";
                 }
-                tps.TestTableAddCell(SpuriousSuppressionPrint.Test_name, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
+                tps.TestTableAddCell(tps.Serial,SpuriousSuppressionPrint.Test_name,tps.SystemChofSerial, SpuriousSuppressionPrint.Lower.ToString(), SpuriousSuppressionPrint.Upper.ToString(), SpuriousSuppressionPrint.TestVal.ToString(), SpuriousSuppressionPrint.Result);
                 if (parameters.Channel == "通道1")
                 {
 

+ 19 - 18
tps/TpsLabStudio/models/VoltAndCurrent.cs

@@ -21,17 +21,18 @@ namespace Tps_LQ_Transmitter.models
         /// <summary>
         /// 电压电流测试
         /// </summary>
-        public override bool Run(TestNode parameters)
+        public override bool Run(TestNode parameters, List<TestNode> nodes)
         {
             object[] TableCell;
             ShowMessage(MsgType.Info, string.Format("第{0}个频点电压及电流测试开始", parameters.PointIndex));
             TestParameters result = new TestParameters();
             Random random = new Random();
+            DioControlClass dioControlClass =new DioControlClass();
             //获取仪器
 
-          
-            CommonVisaResource DCPower = new CommonVisaResource();
-            DCPower.Open(tps.DCPowerAddress);//需要取消注释
+
+            //CommonVisaResource DCPower = new CommonVisaResource();
+            //DCPower.Open(tps.DCPowerAddress);//需要取消注释
            // TransmitterSerialPort SerialClient = new TransmitterSerialPort();
             OutData Data = new OutData();
 
@@ -40,11 +41,11 @@ namespace Tps_LQ_Transmitter.models
 
 
             
-            if (DCPower == null)
-            {
-                ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
-                return false;
-            }
+            //if (DCPower == null)
+            //{
+            //    ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行", parameters.Channel, parameters.Name));
+            //    return false;
+            //}
             
 
             OpenExcel("电压及电流", out Spire.Xls.Workbook workbook, out Spire.Xls.Worksheet sheet);
@@ -98,12 +99,13 @@ namespace Tps_LQ_Transmitter.models
                 //}
                 Thread.Sleep(1000);
                 //控制
-         //       SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
-               
-                
-                Data.VoltVal[parameters.PointIndex] = DCPower.Query("MEASure:VOLTage?\n");
-           
-                Data.CurrentVal[parameters.PointIndex] = DCPower.Query("MEASure:CURRent?\n");
+                //       SerialClient.DUT_Transmitter_Ctrol(PowerPara.ComPort, Convert.ToByte(point + 1));
+                Data.VoltVal[parameters.PointIndex] ="12";
+                Data.CurrentVal[parameters.PointIndex] = "1.2";
+                Data.VoltVal[parameters.PointIndex] = dioControlClass.ReadVolt(Convert.ToInt32(tps.SystemChofSerial)).ToString();
+                Data.CurrentVal[parameters.PointIndex] = dioControlClass.ReadCurr(Convert.ToInt32(tps.SystemChofSerial)).ToString();
+                //Data.VoltVal[parameters.PointIndex] = DCPower.Query("MEASure:VOLTage?\n");         
+                //Data.CurrentVal[parameters.PointIndex] = DCPower.Query("MEASure:CURRent?\n");
                 
 
                 VoltDataPrint.Test_name = parameters.Channel + "-电压测试-" + parameters.CenterFreq.ToString()+"MHz";
@@ -134,13 +136,12 @@ namespace Tps_LQ_Transmitter.models
                     CurrentDataPrint.Result = "否";
                 }
 
-                tps.TestTableAddCell(CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
-                tps.TestTableAddCell(VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
+                tps.TestTableAddCell(tps.Serial,CurrentDataPrint.Test_name,tps.SystemChofSerial, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
+                tps.TestTableAddCell(tps.Serial,VoltDataPrint.Test_name, tps.SystemChofSerial, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
                
                 if (parameters.Channel == "通道1")
                 {
                    
-
                     WriteExcelData(sheet, parameters.PointIndex, 3, CurrentDataPrint.Test_name, CurrentDataPrint.Lower.ToString(), CurrentDataPrint.Upper.ToString(), CurrentDataPrint.TestVal.ToString(), CurrentDataPrint.Result);
                     WriteExcelData(sheet, parameters.PointIndex, 1, VoltDataPrint.Test_name, VoltDataPrint.Lower.ToString(), VoltDataPrint.Upper.ToString(), VoltDataPrint.TestVal.ToString(), VoltDataPrint.Result);
                     //tps.SetTestTableCellValue(point, 5, VoltDataPrint.Result, VoltDataPrint.TestVal);