diff --git a/HTOLHAST.sln b/HTOLHAST.sln new file mode 100644 index 0000000..6b2ef33 --- /dev/null +++ b/HTOLHAST.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.35826.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HTOLHAST", "HTOLHAST\HTOLHAST.csproj", "{44185918-E63F-4ABD-AB57-116F6F056959}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {44185918-E63F-4ABD-AB57-116F6F056959}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44185918-E63F-4ABD-AB57-116F6F056959}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44185918-E63F-4ABD-AB57-116F6F056959}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44185918-E63F-4ABD-AB57-116F6F056959}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B811FAC8-8014-4A05-B1B1-D9E42899B8CF} + EndGlobalSection +EndGlobal diff --git a/HTOLHAST/App.config b/HTOLHAST/App.config new file mode 100644 index 0000000..24c49e7 --- /dev/null +++ b/HTOLHAST/App.config @@ -0,0 +1,22 @@ + + + + +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HTOLHAST/Class1.cs b/HTOLHAST/Class1.cs new file mode 100644 index 0000000..2e6cbbf --- /dev/null +++ b/HTOLHAST/Class1.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HTOLHAST +{ + class Class1 + { + + } +} diff --git a/HTOLHAST/Form1.Designer.cs b/HTOLHAST/Form1.Designer.cs new file mode 100644 index 0000000..dea9aaa --- /dev/null +++ b/HTOLHAST/Form1.Designer.cs @@ -0,0 +1,1062 @@ + +namespace HTOLHAST +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPageInstruments = new System.Windows.Forms.TabPage(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.label11 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.textBox7 = new System.Windows.Forms.TextBox(); + this.textBox8 = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.button3 = new System.Windows.Forms.Button(); + this.textBox6 = new System.Windows.Forms.TextBox(); + this.textBox5 = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.label3 = new System.Windows.Forms.Label(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.tabPagePSUSettings = new System.Windows.Forms.TabPage(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.label15 = new System.Windows.Forms.Label(); + this.dataGridView3 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridView2 = new System.Windows.Forms.DataGridView(); + this.Channel = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Delay = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label14 = new System.Windows.Forms.Label(); + this.button9 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.Supply = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VSetpoint = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Tolerance = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CurrentLimitTotal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tabPageHeader = new System.Windows.Forms.TabPage(); + this.dataGridView6 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tabPageMeasurement = new System.Windows.Forms.TabPage(); + this.textBox11 = new System.Windows.Forms.TextBox(); + this.textBox10 = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.button17 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.textBox9 = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.dataGridView4 = new System.Windows.Forms.DataGridView(); + this.ID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tabControl1.SuspendLayout(); + this.tabPageInstruments.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.tabPagePSUSettings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.tabPageHeader.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView6)).BeginInit(); + this.tabPageMeasurement.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).BeginInit(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPageInstruments); + this.tabControl1.Controls.Add(this.tabPagePSUSettings); + this.tabControl1.Controls.Add(this.tabPageHeader); + this.tabControl1.Controls.Add(this.tabPageMeasurement); + this.tabControl1.Location = new System.Drawing.Point(9, 10); + this.tabControl1.Margin = new System.Windows.Forms.Padding(2); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1186, 556); + this.tabControl1.TabIndex = 0; + // + // tabPageInstruments + // + this.tabPageInstruments.Controls.Add(this.checkBox4); + this.tabPageInstruments.Controls.Add(this.checkBox3); + this.tabPageInstruments.Controls.Add(this.checkBox2); + this.tabPageInstruments.Controls.Add(this.checkBox1); + this.tabPageInstruments.Controls.Add(this.label11); + this.tabPageInstruments.Controls.Add(this.panel1); + this.tabPageInstruments.Controls.Add(this.textBox4); + this.tabPageInstruments.Controls.Add(this.label8); + this.tabPageInstruments.Controls.Add(this.textBox3); + this.tabPageInstruments.Controls.Add(this.label7); + this.tabPageInstruments.Controls.Add(this.textBox2); + this.tabPageInstruments.Controls.Add(this.label6); + this.tabPageInstruments.Controls.Add(this.textBox1); + this.tabPageInstruments.Controls.Add(this.label5); + this.tabPageInstruments.Controls.Add(this.label4); + this.tabPageInstruments.Controls.Add(this.pictureBox4); + this.tabPageInstruments.Controls.Add(this.label3); + this.tabPageInstruments.Controls.Add(this.pictureBox3); + this.tabPageInstruments.Controls.Add(this.label2); + this.tabPageInstruments.Controls.Add(this.pictureBox2); + this.tabPageInstruments.Controls.Add(this.label1); + this.tabPageInstruments.Controls.Add(this.pictureBox1); + this.tabPageInstruments.Location = new System.Drawing.Point(4, 22); + this.tabPageInstruments.Margin = new System.Windows.Forms.Padding(2); + this.tabPageInstruments.Name = "tabPageInstruments"; + this.tabPageInstruments.Padding = new System.Windows.Forms.Padding(2); + this.tabPageInstruments.Size = new System.Drawing.Size(1178, 530); + this.tabPageInstruments.TabIndex = 0; + this.tabPageInstruments.Text = "Instruments"; + this.tabPageInstruments.UseVisualStyleBackColor = true; + // + // checkBox4 + // + this.checkBox4.AutoSize = true; + this.checkBox4.Location = new System.Drawing.Point(618, 271); + this.checkBox4.Margin = new System.Windows.Forms.Padding(2); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(59, 17); + this.checkBox4.TabIndex = 22; + this.checkBox4.Text = "Enable"; + this.checkBox4.UseVisualStyleBackColor = true; + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Location = new System.Drawing.Point(262, 271); + this.checkBox3.Margin = new System.Windows.Forms.Padding(2); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(59, 17); + this.checkBox3.TabIndex = 21; + this.checkBox3.Text = "Enable"; + this.checkBox3.UseVisualStyleBackColor = true; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(618, 24); + this.checkBox2.Margin = new System.Windows.Forms.Padding(2); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(59, 17); + this.checkBox2.TabIndex = 20; + this.checkBox2.Text = "Enable"; + this.checkBox2.UseVisualStyleBackColor = true; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(262, 24); + this.checkBox1.Margin = new System.Windows.Forms.Padding(2); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(59, 17); + this.checkBox1.TabIndex = 19; + this.checkBox1.Text = "Enable"; + this.checkBox1.UseVisualStyleBackColor = true; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(772, 28); + this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(91, 13); + this.label11.TabIndex = 18; + this.label11.Text = "CURRENT LIMIT"; + // + // panel1 + // + this.panel1.Controls.Add(this.textBox7); + this.panel1.Controls.Add(this.textBox8); + this.panel1.Controls.Add(this.label13); + this.panel1.Controls.Add(this.label10); + this.panel1.Controls.Add(this.label12); + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.textBox6); + this.panel1.Controls.Add(this.textBox5); + this.panel1.Controls.Add(this.label9); + this.panel1.Location = new System.Drawing.Point(774, 44); + this.panel1.Margin = new System.Windows.Forms.Padding(2); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(348, 149); + this.panel1.TabIndex = 17; + // + // textBox7 + // + this.textBox7.Location = new System.Drawing.Point(266, 63); + this.textBox7.Margin = new System.Windows.Forms.Padding(2); + this.textBox7.Name = "textBox7"; + this.textBox7.Size = new System.Drawing.Size(76, 20); + this.textBox7.TabIndex = 23; + // + // textBox8 + // + this.textBox8.Location = new System.Drawing.Point(266, 40); + this.textBox8.Margin = new System.Windows.Forms.Padding(2); + this.textBox8.Name = "textBox8"; + this.textBox8.Size = new System.Drawing.Size(76, 20); + this.textBox8.TabIndex = 22; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(290, 15); + this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(30, 13); + this.label13.TabIndex = 21; + this.label13.Text = "MAX"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(194, 15); + this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(27, 13); + this.label10.TabIndex = 20; + this.label10.Text = "MIN"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(2, 63); + this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(136, 13); + this.label12.TabIndex = 19; + this.label12.Text = "PICOAM MAX CURRENT: "; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(266, 110); + this.button3.Margin = new System.Windows.Forms.Padding(2); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 28); + this.button3.TabIndex = 18; + this.button3.Text = "CONFIG"; + this.button3.UseVisualStyleBackColor = true; + // + // textBox6 + // + this.textBox6.Location = new System.Drawing.Point(170, 63); + this.textBox6.Margin = new System.Windows.Forms.Padding(2); + this.textBox6.Name = "textBox6"; + this.textBox6.Size = new System.Drawing.Size(76, 20); + this.textBox6.TabIndex = 3; + // + // textBox5 + // + this.textBox5.Location = new System.Drawing.Point(170, 40); + this.textBox5.Margin = new System.Windows.Forms.Padding(2); + this.textBox5.Name = "textBox5"; + this.textBox5.Size = new System.Drawing.Size(76, 20); + this.textBox5.TabIndex = 2; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(2, 40); + this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(169, 13); + this.label9.TabIndex = 0; + this.label9.Text = "DATALOGGER MAX CURRENT: "; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(490, 465); + this.textBox4.Margin = new System.Windows.Forms.Padding(2); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(184, 20); + this.textBox4.TabIndex = 15; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(394, 465); + this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(86, 13); + this.label8.TabIndex = 14; + this.label8.Text = "VISA ADDRESS"; + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(490, 216); + this.textBox3.Margin = new System.Windows.Forms.Padding(2); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(184, 20); + this.textBox3.TabIndex = 13; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(394, 216); + this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(86, 13); + this.label7.TabIndex = 12; + this.label7.Text = "VISA ADDRESS"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(134, 465); + this.textBox2.Margin = new System.Windows.Forms.Padding(2); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(184, 20); + this.textBox2.TabIndex = 11; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(38, 465); + this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(86, 13); + this.label6.TabIndex = 10; + this.label6.Text = "VISA ADDRESS"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(134, 216); + this.textBox1.Margin = new System.Windows.Forms.Padding(2); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(184, 20); + this.textBox1.TabIndex = 9; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(38, 216); + this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(86, 13); + this.label5.TabIndex = 8; + this.label5.Text = "VISA ADDRESS"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(394, 276); + this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(86, 13); + this.label4.TabIndex = 7; + this.label4.Text = "PICOAMMETER"; + // + // pictureBox4 + // + this.pictureBox4.Image = global::HTOLHAST.Properties.Resources.Keithley6485; + this.pictureBox4.Location = new System.Drawing.Point(396, 292); + this.pictureBox4.Margin = new System.Windows.Forms.Padding(2); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new System.Drawing.Size(278, 170); + this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox4.TabIndex = 6; + this.pictureBox4.TabStop = false; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(394, 28); + this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(81, 13); + this.label3.TabIndex = 5; + this.label3.Text = "DATALOGGER"; + // + // pictureBox3 + // + this.pictureBox3.Image = global::HTOLHAST.Properties.Resources.Agilent34970A; + this.pictureBox3.Location = new System.Drawing.Point(396, 44); + this.pictureBox3.Margin = new System.Windows.Forms.Padding(2); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(278, 170); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox3.TabIndex = 4; + this.pictureBox3.TabStop = false; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(38, 276); + this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(96, 13); + this.label2.TabIndex = 3; + this.label2.Text = "POWERSUPPLY2"; + // + // pictureBox2 + // + this.pictureBox2.Image = global::HTOLHAST.Properties.Resources.HMP4040; + this.pictureBox2.Location = new System.Drawing.Point(40, 292); + this.pictureBox2.Margin = new System.Windows.Forms.Padding(2); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(278, 170); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 2; + this.pictureBox2.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(38, 28); + this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(96, 13); + this.label1.TabIndex = 1; + this.label1.Text = "POWERSUPPLY1"; + // + // pictureBox1 + // + this.pictureBox1.Image = global::HTOLHAST.Properties.Resources.HMP4040; + this.pictureBox1.Location = new System.Drawing.Point(40, 44); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(2); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(278, 170); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // tabPagePSUSettings + // + this.tabPagePSUSettings.Controls.Add(this.button12); + this.tabPagePSUSettings.Controls.Add(this.button13); + this.tabPagePSUSettings.Controls.Add(this.button11); + this.tabPagePSUSettings.Controls.Add(this.button10); + this.tabPagePSUSettings.Controls.Add(this.button2); + this.tabPagePSUSettings.Controls.Add(this.button1); + this.tabPagePSUSettings.Controls.Add(this.label15); + this.tabPagePSUSettings.Controls.Add(this.dataGridView3); + this.tabPagePSUSettings.Controls.Add(this.dataGridView2); + this.tabPagePSUSettings.Controls.Add(this.label14); + this.tabPagePSUSettings.Controls.Add(this.button9); + this.tabPagePSUSettings.Controls.Add(this.button8); + this.tabPagePSUSettings.Controls.Add(this.button7); + this.tabPagePSUSettings.Controls.Add(this.button6); + this.tabPagePSUSettings.Controls.Add(this.button5); + this.tabPagePSUSettings.Controls.Add(this.button4); + this.tabPagePSUSettings.Controls.Add(this.dataGridView1); + this.tabPagePSUSettings.Location = new System.Drawing.Point(4, 22); + this.tabPagePSUSettings.Margin = new System.Windows.Forms.Padding(2); + this.tabPagePSUSettings.Name = "tabPagePSUSettings"; + this.tabPagePSUSettings.Padding = new System.Windows.Forms.Padding(2); + this.tabPagePSUSettings.Size = new System.Drawing.Size(1178, 530); + this.tabPagePSUSettings.TabIndex = 1; + this.tabPagePSUSettings.Text = "PSUSettings"; + this.tabPagePSUSettings.UseVisualStyleBackColor = true; + // + // button12 + // + this.button12.Location = new System.Drawing.Point(1045, 384); + this.button12.Margin = new System.Windows.Forms.Padding(2); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(49, 30); + this.button12.TabIndex = 33; + this.button12.Text = "Down"; + this.button12.UseVisualStyleBackColor = true; + // + // button13 + // + this.button13.Location = new System.Drawing.Point(1045, 349); + this.button13.Margin = new System.Windows.Forms.Padding(2); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(49, 30); + this.button13.TabIndex = 32; + this.button13.Text = "Up"; + this.button13.UseVisualStyleBackColor = true; + // + // button11 + // + this.button11.Location = new System.Drawing.Point(719, 384); + this.button11.Margin = new System.Windows.Forms.Padding(2); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(49, 30); + this.button11.TabIndex = 31; + this.button11.Text = "Down"; + this.button11.UseVisualStyleBackColor = true; + // + // button10 + // + this.button10.Location = new System.Drawing.Point(719, 349); + this.button10.Margin = new System.Windows.Forms.Padding(2); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(49, 30); + this.button10.TabIndex = 30; + this.button10.Text = "Up"; + this.button10.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.Enabled = false; + this.button2.Location = new System.Drawing.Point(904, 102); + this.button2.Margin = new System.Windows.Forms.Padding(2); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(136, 68); + this.button2.TabIndex = 29; + this.button2.Text = "CH8"; + this.button2.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.Enabled = false; + this.button1.Location = new System.Drawing.Point(764, 102); + this.button1.Margin = new System.Windows.Forms.Padding(2); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(136, 68); + this.button1.TabIndex = 28; + this.button1.Text = "CH7"; + this.button1.UseVisualStyleBackColor = true; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(809, 230); + this.label15.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(148, 13); + this.label15.TabIndex = 27; + this.label15.Text = "POWER-DOWN SEQUENCE"; + // + // dataGridView3 + // + this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2}); + this.dataGridView3.Location = new System.Drawing.Point(812, 257); + this.dataGridView3.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView3.Name = "dataGridView3"; + this.dataGridView3.RowHeadersWidth = 51; + this.dataGridView3.RowTemplate.Height = 24; + this.dataGridView3.Size = new System.Drawing.Size(229, 157); + this.dataGridView3.TabIndex = 26; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.HeaderText = "Channel"; + this.dataGridViewTextBoxColumn1.MinimumWidth = 6; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.Width = 125; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "Delay"; + this.dataGridViewTextBoxColumn2.MinimumWidth = 6; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.Width = 125; + // + // dataGridView2 + // + this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Channel, + this.Delay}); + this.dataGridView2.Location = new System.Drawing.Point(486, 257); + this.dataGridView2.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView2.Name = "dataGridView2"; + this.dataGridView2.RowHeadersWidth = 51; + this.dataGridView2.RowTemplate.Height = 24; + this.dataGridView2.Size = new System.Drawing.Size(229, 157); + this.dataGridView2.TabIndex = 25; + // + // Channel + // + this.Channel.HeaderText = "Channel"; + this.Channel.MinimumWidth = 6; + this.Channel.Name = "Channel"; + this.Channel.Width = 125; + // + // Delay + // + this.Delay.HeaderText = "Delay"; + this.Delay.MinimumWidth = 6; + this.Delay.Name = "Delay"; + this.Delay.Width = 125; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(484, 230); + this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(128, 13); + this.label14.TabIndex = 24; + this.label14.Text = "POWER-UP SEQUENCE"; + // + // button9 + // + this.button9.Location = new System.Drawing.Point(624, 102); + this.button9.Margin = new System.Windows.Forms.Padding(2); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(136, 68); + this.button9.TabIndex = 23; + this.button9.Text = "CH6"; + this.button9.UseVisualStyleBackColor = true; + // + // button8 + // + this.button8.Location = new System.Drawing.Point(484, 102); + this.button8.Margin = new System.Windows.Forms.Padding(2); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(136, 68); + this.button8.TabIndex = 22; + this.button8.Text = "CH5"; + this.button8.UseVisualStyleBackColor = true; + // + // button7 + // + this.button7.Location = new System.Drawing.Point(904, 15); + this.button7.Margin = new System.Windows.Forms.Padding(2); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(136, 68); + this.button7.TabIndex = 21; + this.button7.Text = "CH4"; + this.button7.UseVisualStyleBackColor = true; + // + // button6 + // + this.button6.Location = new System.Drawing.Point(764, 15); + this.button6.Margin = new System.Windows.Forms.Padding(2); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(136, 68); + this.button6.TabIndex = 20; + this.button6.Text = "CH3"; + this.button6.UseVisualStyleBackColor = true; + // + // button5 + // + this.button5.Location = new System.Drawing.Point(624, 15); + this.button5.Margin = new System.Windows.Forms.Padding(2); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(136, 68); + this.button5.TabIndex = 19; + this.button5.Text = "CH2"; + this.button5.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(484, 15); + this.button4.Margin = new System.Windows.Forms.Padding(2); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(136, 68); + this.button4.TabIndex = 18; + this.button4.Text = "CH1"; + this.button4.UseVisualStyleBackColor = true; + // + // dataGridView1 + // + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Supply, + this.Description, + this.VSetpoint, + this.Tolerance, + this.CurrentLimitTotal}); + this.dataGridView1.Location = new System.Drawing.Point(11, 15); + this.dataGridView1.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowHeadersWidth = 51; + this.dataGridView1.RowTemplate.Height = 24; + this.dataGridView1.Size = new System.Drawing.Size(417, 399); + this.dataGridView1.TabIndex = 0; + // + // Supply + // + this.Supply.HeaderText = "Channel"; + this.Supply.MinimumWidth = 6; + this.Supply.Name = "Supply"; + this.Supply.Width = 125; + // + // Description + // + this.Description.HeaderText = "Description"; + this.Description.MinimumWidth = 6; + this.Description.Name = "Description"; + this.Description.Width = 125; + // + // VSetpoint + // + this.VSetpoint.HeaderText = "VSetpoint"; + this.VSetpoint.MinimumWidth = 6; + this.VSetpoint.Name = "VSetpoint"; + this.VSetpoint.Width = 125; + // + // Tolerance + // + this.Tolerance.HeaderText = "Tolerance"; + this.Tolerance.MinimumWidth = 6; + this.Tolerance.Name = "Tolerance"; + this.Tolerance.Width = 125; + // + // CurrentLimitTotal + // + this.CurrentLimitTotal.HeaderText = "CurrentLimitTotal"; + this.CurrentLimitTotal.MinimumWidth = 6; + this.CurrentLimitTotal.Name = "CurrentLimitTotal"; + this.CurrentLimitTotal.Width = 125; + // + // tabPageHeader + // + this.tabPageHeader.Controls.Add(this.dataGridView6); + this.tabPageHeader.Location = new System.Drawing.Point(4, 22); + this.tabPageHeader.Margin = new System.Windows.Forms.Padding(2); + this.tabPageHeader.Name = "tabPageHeader"; + this.tabPageHeader.Padding = new System.Windows.Forms.Padding(2); + this.tabPageHeader.Size = new System.Drawing.Size(1178, 530); + this.tabPageHeader.TabIndex = 3; + this.tabPageHeader.Text = "Header"; + this.tabPageHeader.UseVisualStyleBackColor = true; + // + // dataGridView6 + // + this.dataGridView6.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView6.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6}); + this.dataGridView6.Location = new System.Drawing.Point(4, 5); + this.dataGridView6.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView6.Name = "dataGridView6"; + this.dataGridView6.RowHeadersWidth = 51; + this.dataGridView6.RowTemplate.Height = 24; + this.dataGridView6.Size = new System.Drawing.Size(418, 522); + this.dataGridView6.TabIndex = 1; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.HeaderText = "HeaderPin"; + this.dataGridViewTextBoxColumn3.MinimumWidth = 6; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.Width = 125; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.HeaderText = "Description"; + this.dataGridViewTextBoxColumn4.MinimumWidth = 6; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.Width = 125; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.HeaderText = "Setpoint"; + this.dataGridViewTextBoxColumn5.MinimumWidth = 6; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.Width = 125; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.HeaderText = "Tolerance"; + this.dataGridViewTextBoxColumn6.MinimumWidth = 6; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.Width = 125; + // + // tabPageMeasurement + // + this.tabPageMeasurement.Controls.Add(this.textBox11); + this.tabPageMeasurement.Controls.Add(this.textBox10); + this.tabPageMeasurement.Controls.Add(this.label18); + this.tabPageMeasurement.Controls.Add(this.label17); + this.tabPageMeasurement.Controls.Add(this.button17); + this.tabPageMeasurement.Controls.Add(this.button16); + this.tabPageMeasurement.Controls.Add(this.button15); + this.tabPageMeasurement.Controls.Add(this.button14); + this.tabPageMeasurement.Controls.Add(this.textBox9); + this.tabPageMeasurement.Controls.Add(this.label16); + this.tabPageMeasurement.Controls.Add(this.dataGridView4); + this.tabPageMeasurement.Location = new System.Drawing.Point(4, 22); + this.tabPageMeasurement.Margin = new System.Windows.Forms.Padding(2); + this.tabPageMeasurement.Name = "tabPageMeasurement"; + this.tabPageMeasurement.Size = new System.Drawing.Size(1178, 530); + this.tabPageMeasurement.TabIndex = 2; + this.tabPageMeasurement.Text = "Measurement"; + this.tabPageMeasurement.UseVisualStyleBackColor = true; + // + // textBox11 + // + this.textBox11.Location = new System.Drawing.Point(1075, 3); + this.textBox11.Name = "textBox11"; + this.textBox11.Size = new System.Drawing.Size(100, 20); + this.textBox11.TabIndex = 10; + // + // textBox10 + // + this.textBox10.Location = new System.Drawing.Point(857, 3); + this.textBox10.Name = "textBox10"; + this.textBox10.Size = new System.Drawing.Size(100, 20); + this.textBox10.TabIndex = 9; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(744, 10); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(94, 13); + this.label18.TabIndex = 8; + this.label18.Text = "Position Increment"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(989, 10); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(81, 13); + this.label17.TabIndex = 7; + this.label17.Text = "Current Position"; + // + // button17 + // + this.button17.Location = new System.Drawing.Point(689, 426); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(164, 79); + this.button17.TabIndex = 6; + this.button17.Text = "ABORT"; + this.button17.UseVisualStyleBackColor = true; + // + // button16 + // + this.button16.Location = new System.Drawing.Point(992, 426); + this.button16.Margin = new System.Windows.Forms.Padding(2); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(166, 79); + this.button16.TabIndex = 5; + this.button16.Text = "SAVE"; + this.button16.UseVisualStyleBackColor = true; + // + // button15 + // + this.button15.Location = new System.Drawing.Point(516, 426); + this.button15.Margin = new System.Windows.Forms.Padding(2); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(166, 79); + this.button15.TabIndex = 4; + this.button15.Text = "NEXT POSITION"; + this.button15.UseVisualStyleBackColor = true; + // + // button14 + // + this.button14.Location = new System.Drawing.Point(346, 426); + this.button14.Margin = new System.Windows.Forms.Padding(2); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(166, 79); + this.button14.TabIndex = 3; + this.button14.Text = "MEASURE"; + this.button14.UseVisualStyleBackColor = true; + // + // textBox9 + // + this.textBox9.Location = new System.Drawing.Point(15, 44); + this.textBox9.Margin = new System.Windows.Forms.Padding(2); + this.textBox9.Name = "textBox9"; + this.textBox9.Size = new System.Drawing.Size(76, 20); + this.textBox9.TabIndex = 2; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(13, 27); + this.label16.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(40, 13); + this.label16.TabIndex = 1; + this.label16.Text = "Project"; + // + // dataGridView4 + // + this.dataGridView4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.ID}); + this.dataGridView4.Location = new System.Drawing.Point(346, 27); + this.dataGridView4.Margin = new System.Windows.Forms.Padding(2); + this.dataGridView4.Name = "dataGridView4"; + this.dataGridView4.RowHeadersWidth = 51; + this.dataGridView4.RowTemplate.Height = 24; + this.dataGridView4.Size = new System.Drawing.Size(812, 358); + this.dataGridView4.TabIndex = 0; + // + // ID + // + this.ID.HeaderText = "ID"; + this.ID.MinimumWidth = 6; + this.ID.Name = "ID"; + this.ID.Width = 125; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1204, 575); + this.Controls.Add(this.tabControl1); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "Form1"; + this.Text = "Form1"; + this.tabControl1.ResumeLayout(false); + this.tabPageInstruments.ResumeLayout(false); + this.tabPageInstruments.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.tabPagePSUSettings.ResumeLayout(false); + this.tabPagePSUSettings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.tabPageHeader.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView6)).EndInit(); + this.tabPageMeasurement.ResumeLayout(false); + this.tabPageMeasurement.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPageInstruments; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.PictureBox pictureBox4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.PictureBox pictureBox3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.TabPage tabPagePSUSettings; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.TextBox textBox5; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox textBox7; + private System.Windows.Forms.TextBox textBox8; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox textBox6; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.DataGridView dataGridView3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridView dataGridView2; + private System.Windows.Forms.DataGridViewTextBoxColumn Channel; + private System.Windows.Forms.DataGridViewTextBoxColumn Delay; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.TabPage tabPageMeasurement; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.TextBox textBox9; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.DataGridView dataGridView4; + private System.Windows.Forms.TabPage tabPageHeader; + private System.Windows.Forms.DataGridView dataGridView6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn Supply; + private System.Windows.Forms.DataGridViewTextBoxColumn Description; + private System.Windows.Forms.DataGridViewTextBoxColumn VSetpoint; + private System.Windows.Forms.DataGridViewTextBoxColumn Tolerance; + private System.Windows.Forms.DataGridViewTextBoxColumn CurrentLimitTotal; + private System.Windows.Forms.TextBox textBox11; + private System.Windows.Forms.TextBox textBox10; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.DataGridViewTextBoxColumn ID; + } +} + diff --git a/HTOLHAST/Form1.cs b/HTOLHAST/Form1.cs new file mode 100644 index 0000000..501fb43 --- /dev/null +++ b/HTOLHAST/Form1.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Threading; + +namespace HTOLHAST +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + public void HamegValidationOfMethods() + { + string resourceString = "ASRL4::INSTR"; // Replace with your instrument's resource string + HMP4040 hameg = new HMP4040(resourceString); + hameg.GetID(); + string voltageResponse = hameg.MeasureVolt(1); + Console.WriteLine($"Measured Voltage: {voltageResponse} V"); + + string currentResponse = hameg.MeasureCurrent(1); + Console.WriteLine($"Measured Current: {currentResponse} A"); + + + string voltageSetpoint = hameg.SetVoltage(1.1, 1); + Console.WriteLine($"Voltage Setpoint: {currentResponse} V"); + + string currentSetpoint = hameg.SetCurrent(0.1, 1); + Console.WriteLine($"Current Setpoint: {currentResponse} A"); + + hameg.PowerUpSequence(hameg.GenerateSimulationPowerUpSequence()); + hameg.PowerDownSequence(hameg.GenerateSimulationPowerUpSequence()); + } + public void KeithleyValidationOfMethods() + { + // Example usage + string resourceString = "ASRL3::INSTR"; // Replace with your instrument's resource string + Keithley6485 keithley = new Keithley6485(resourceString); + + // Query the instrument ID + keithley.Reset(); + string idnResponse = keithley.GetID(); + Console.WriteLine($"Instrument ID: {idnResponse}"); + + // Measure DC current + keithley.PerformZeroCheck(); + string currentResponse = keithley.MeasureDCCurrent(); + Console.WriteLine($"Measured Current: {currentResponse}"); + + // Close the instrument connection + keithley.Close(); + + } + } +} diff --git a/HTOLHAST/Form1.resx b/HTOLHAST/Form1.resx new file mode 100644 index 0000000..f1196cb --- /dev/null +++ b/HTOLHAST/Form1.resx @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/HTOLHAST/HMP4040.cs b/HTOLHAST/HMP4040.cs new file mode 100644 index 0000000..bfdf288 --- /dev/null +++ b/HTOLHAST/HMP4040.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; + +namespace HTOLHAST +{ + public class HMP4040 : SCPIInstrument + { + public HMP4040(string resourceString) : base(resourceString) { } + public string MeasureCurrent(int channel) + { + string Channel = channel.ToString(); + WriteCommand($"INST:NSEL {Channel}"); + WriteCommand("MEAS:CURR?"); + return ReadResponse(); + } + public string MeasureVolt(int channel) + { + string Channel = channel.ToString(); + WriteCommand($"INST:NSEL {Channel}"); + WriteCommand("MEAS:VOLT?"); + return ReadResponse(); + } + public string SetVoltage (double setpoint, int channel) + { + WriteCommand($"INST:NSEL {channel}"); + WriteCommand($"VOLT {setpoint}"); + WriteCommand($"VOLT?"); + return ReadResponse(); + } + public string SetCurrent(double setpoint, int channel) + { + WriteCommand($"INST:NSEL {channel}"); + WriteCommand($"CURR {setpoint}"); + WriteCommand($"CURR?"); + return ReadResponse(); + } + public void SetOutputChannel (int channel, bool enabled) + { + WriteCommand($"INST:NSEL {channel}"); + + if (enabled) + { + WriteCommand("OUTP ON"); + } + else + { + WriteCommand("OUTP OFF"); + } + + } + public void SetGeneralOutputState(bool enabled) + { + if (enabled) + { + WriteCommand("OUTP:GEN ON"); + } + else + { + WriteCommand("OUTP:GEN OFF"); + } + } + public void PowerUpSequence(List powerUpSequence) + { + foreach (var sequence in powerUpSequence) + { + SetOutputChannel(sequence.Channel,true); + Thread.Sleep(sequence.Delay); + } + } + public void PowerDownSequence(List powerUpSequence) + { + foreach (var sequence in powerUpSequence) + { + SetOutputChannel(sequence.Channel, false); + Thread.Sleep(sequence.Delay); + } + } + public List GenerateSimulationPowerUpSequence() + { + List powerUpSequence = new List { + new PowerUpSequence { Channel = 1, Delay = 1000}, + new PowerUpSequence { Channel = 3, Delay = 1000}, + new PowerUpSequence { Channel = 4, Delay = 1000}, + new PowerUpSequence { Channel = 2, Delay = 1000}, + }; + + return powerUpSequence; + + } + public override Sample CreateSample(string response) + { + throw new NotImplementedException(); + } + } +} + + diff --git a/HTOLHAST/HTOLHAST.csproj b/HTOLHAST/HTOLHAST.csproj new file mode 100644 index 0000000..1f09c99 --- /dev/null +++ b/HTOLHAST/HTOLHAST.csproj @@ -0,0 +1,142 @@ + + + + + + Debug + AnyCPU + {44185918-E63F-4ABD-AB57-116F6F056959} + WinExe + HTOLHAST + HTOLHAST + v4.7.2 + 512 + true + true + + + + + x64 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + {DB8CBF00-D6D3-11D4-AA51-00A024EE30BD} + 5 + 14 + 0 + primary + False + True + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + \ No newline at end of file diff --git a/HTOLHAST/Keithley6485.cs b/HTOLHAST/Keithley6485.cs new file mode 100644 index 0000000..7d5064b --- /dev/null +++ b/HTOLHAST/Keithley6485.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HTOLHAST +{ + public class Keithley6485 : SCPIInstrument + { + public Keithley6485(string resourceString) : base(resourceString) { } + public void PerformZeroCheck() + { + try + { + // Step 1. Reset + // Step 2. Enable zero check + // step 3. Perform zero correction + // step 4. Select AUTO range + + // step 5. Connect current to be measured + // step 6. Disable zero check + + WriteCommand("*RST"); // Reset Instrument + WriteCommand("SYST:ZCH ON"); // Enable zero check + WriteCommand("RANG 2E-9"); // Set lowest range + WriteCommand("INIT"); // Trigger reading to be used as zero correction + + WriteCommand("SYST:ZCOR:ACQ"); // Use last reading taken as zero correct value. + WriteCommand("SYST:ZCOR ON"); // Perform zero correction + WriteCommand("RANG:AUTO ON"); // Enable AUTO range + WriteCommand("SYST:ZCH OFF"); // Disable zero check + + Console.WriteLine("ZeroCheck Performed"); + } + catch (Exception e) + { + throw new InvalidOperationException("ZeroCheck operation failed.", e); + } + + } + private void InitiateRead() + { + WriteCommand("SYST:ZCH OFF"); // Enable zero check + WriteCommand("INIT"); // Trigger reading to be used as zero correction + WriteCommand("RANG:AUTO ON"); // Enable AUTO range + WriteCommand("READ?"); // trigger and return one reading + Console.WriteLine("Read Command Initiated"); + } + public string MeasureDCCurrent() + { + InitiateRead(); + string response = ReadResponse(); + CreateSample(response); + return response; + } + public override Sample CreateSample(string response) + { + string Response = response; + + // Parse the Keithley output + string[] parts = Response.Split(','); + + if (parts.Length >= 1 && double.TryParse(parts[0].Replace("A", ""), out double current)) + { + Keithley6485Sample sample = new Keithley6485Sample(DateTime.Now, current, "A"); + + // Optionally, store or process the sample here + Console.WriteLine($"[Keithley] Sample Created, Value: {sample.Value} {sample.Unit}"); + return sample; + } + + throw new InvalidOperationException("Unsupported instrument type."); + } + + // Add more specific methods for Keithley 6485 as needed + } +} diff --git a/HTOLHAST/PowerUpSequence.cs b/HTOLHAST/PowerUpSequence.cs new file mode 100644 index 0000000..7191fa9 --- /dev/null +++ b/HTOLHAST/PowerUpSequence.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HTOLHAST +{ + public class PowerUpSequence + { + public int Channel { get; set; } + public int Delay { get; set; } + + public PowerUpSequence() + { + + } + } +} diff --git a/HTOLHAST/Program.cs b/HTOLHAST/Program.cs new file mode 100644 index 0000000..e3a4f1a --- /dev/null +++ b/HTOLHAST/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace HTOLHAST +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/HTOLHAST/Properties/AssemblyInfo.cs b/HTOLHAST/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cc0419d --- /dev/null +++ b/HTOLHAST/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HTOLHAST")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HTOLHAST")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("44185918-e63f-4abd-ab57-116f6f056959")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HTOLHAST/Properties/Resources.Designer.cs b/HTOLHAST/Properties/Resources.Designer.cs new file mode 100644 index 0000000..796b7d5 --- /dev/null +++ b/HTOLHAST/Properties/Resources.Designer.cs @@ -0,0 +1,93 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HTOLHAST.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HTOLHAST.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Agilent34970A { + get { + object obj = ResourceManager.GetObject("Agilent34970A", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HMP4040 { + get { + object obj = ResourceManager.GetObject("HMP4040", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Keithley6485 { + get { + object obj = ResourceManager.GetObject("Keithley6485", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/HTOLHAST/Properties/Resources.resx b/HTOLHAST/Properties/Resources.resx new file mode 100644 index 0000000..8cb6f1a --- /dev/null +++ b/HTOLHAST/Properties/Resources.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\34970A.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HMP4040.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Keithley6485.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/HTOLHAST/Properties/Settings.Designer.cs b/HTOLHAST/Properties/Settings.Designer.cs new file mode 100644 index 0000000..545c377 --- /dev/null +++ b/HTOLHAST/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace HTOLHAST.Properties +{ + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/HTOLHAST/Properties/Settings.settings b/HTOLHAST/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/HTOLHAST/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/HTOLHAST/Resources/34970A.png b/HTOLHAST/Resources/34970A.png new file mode 100644 index 0000000..93d7029 Binary files /dev/null and b/HTOLHAST/Resources/34970A.png differ diff --git a/HTOLHAST/Resources/HMP4040.jpg b/HTOLHAST/Resources/HMP4040.jpg new file mode 100644 index 0000000..1266d7e Binary files /dev/null and b/HTOLHAST/Resources/HMP4040.jpg differ diff --git a/HTOLHAST/Resources/Keithley6485.jpg b/HTOLHAST/Resources/Keithley6485.jpg new file mode 100644 index 0000000..4544891 Binary files /dev/null and b/HTOLHAST/Resources/Keithley6485.jpg differ diff --git a/HTOLHAST/SQLiteDbHelper.cs b/HTOLHAST/SQLiteDbHelper.cs new file mode 100644 index 0000000..95864a9 --- /dev/null +++ b/HTOLHAST/SQLiteDbHelper.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HTOLHAST +{ + class SQLiteDbHelper + { + } +} diff --git a/HTOLHAST/Sample.cs b/HTOLHAST/Sample.cs new file mode 100644 index 0000000..597285b --- /dev/null +++ b/HTOLHAST/Sample.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HTOLHAST +{ + public abstract class Sample + { + public DateTime TimeStamp { get; set; } + public string Unit { get; set; } + + public Sample(DateTime timeStamp, string unit) + { + TimeStamp = timeStamp; + Unit = unit; + } + } + + // Derived class for Data Logger Sample + public class Hameg4040Sample : Sample + { + public double Value { get; set; } + public int Channel { get; set; } + + public Hameg4040Sample(DateTime timeStamp, string unit, double value, int channel ) : base(timeStamp , unit) + { + Value = value; + Channel = channel; + } + } + + public class Keithley6485Sample : Sample + { + public double Value { get; set; } + + public Keithley6485Sample(DateTime timeStamp, double value, string unit) : base(timeStamp, unit) + { + Value = value; + } + } + + public class HMP4040Sample : Sample + { + public double Value { get; set; } + + public HMP4040Sample(DateTime timeStamp, double value, string unit) : base(timeStamp, unit) + { + Value = value; + } + } +} diff --git a/HTOLHAST/ScpiInstrument.cs b/HTOLHAST/ScpiInstrument.cs new file mode 100644 index 0000000..955f72b --- /dev/null +++ b/HTOLHAST/ScpiInstrument.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ivi.Visa; +using Ivi.Visa.Interop; + +namespace HTOLHAST +{ + // Base class for SCPI instruments + public abstract class SCPIInstrument + { + protected ResourceManager resourceManager; + protected Ivi.Visa.Interop.FormattedIO488 instrument; + public abstract Sample CreateSample(string response); + protected SCPIInstrument(string resourceString) + { + resourceManager = new ResourceManager(); + instrument = new FormattedIO488(); + instrument.IO = (IMessage)resourceManager.Open(resourceString, AccessMode.NO_LOCK, 2000, ""); + } + + public void WriteCommand(string command) + { + try + { + instrument.WriteString(command, true); + } + catch (Exception ex) + { + Console.WriteLine($"Error writing command: {ex.Message}"); + } + } + + public string ReadResponse() + { + try + { + string response = instrument.ReadString(); // Read from the instrument + return response; + } + catch (Exception ex) + { + Console.WriteLine($"Error reading response: {ex.Message}"); + return string.Empty; + } + } + + public string GetID() + { + WriteCommand("*IDN?"); + return ReadResponse(); + } + + public void Reset() + { + WriteCommand("*RST"); + } + + public void Close() + { + instrument.IO.Close(); + } + } +} diff --git a/HTOLHAST/packages.config b/HTOLHAST/packages.config new file mode 100644 index 0000000..1146e4e --- /dev/null +++ b/HTOLHAST/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file