From 87e93aeb179ab7995537cde70cafd4f5b9fa585c Mon Sep 17 00:00:00 2001
From: 장정호 <jjgkfla@naver.com>
Date: 화, 15 12월 2020 16:28:52 +0900
Subject: [PATCH] DLL_Test_Program Source 추가

---
 DLL_Test_Program/DLL_Test_Program/Test_Form.cs                          |   37 
 DLL_Test_Program/DLL_Test_Program.sln                                   |   28 
 DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.resx            |  120 +
 DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.cs              |  165 ++
 DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.Designer.cs |  192 +++
 DLL_Test_Program/DLL_Test_Program/Test_Form.resx                        |  120 +
 DLL_Test_Program/DLL_Test_Program/Properties/Resources.Designer.cs      |   71 +
 DLL_Test_Program/DLL_Test_Program/App.config                            |    6 
 DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.resx            |  120 +
 DLL_Test_Program/DLL_Test_Program/dll/DIT.Framework.Module.dll          |    0 
 DLL_Test_Program/DLL_Test_Program/dll/log4net.dll                       |    0 
 DLL_Test_Program/DLL_Test_Program/DLL_Test_Program.csproj               |  126 ++
 DLL_Test_Program/DLL_Test_Program/Properties/Resources.resx             |  117 +
 DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.Designer.cs     |  304 ++++
 DLL_Test_Program/DLL_Test_Program/Properties/Settings.Designer.cs       |   30 
 DLL_Test_Program/DLL_Test_Program/Properties/AssemblyInfo.cs            |   36 
 DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.Designer.cs     | 1505 +++++++++++++++++++++++
 DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.cs              |  322 +++++
 DLL_Test_Program/DLL_Test_Program/Program.cs                            |   22 
 DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.cs          |  166 ++
 DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.resx        |  120 +
 DLL_Test_Program/DLL_Test_Program/Properties/Settings.settings          |    7 
 DLL_Test_Program/DLL_Test_Program/Test_Form.Designer.cs                 |  120 +
 23 files changed, 3,734 insertions(+), 0 deletions(-)

diff --git a/DLL_Test_Program/DLL_Test_Program.sln b/DLL_Test_Program/DLL_Test_Program.sln
new file mode 100644
index 0000000..d25be2a
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program.sln
@@ -0,0 +1,28 @@
+癤�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DLL_Test_Program", "DLL_Test_Program\DLL_Test_Program.csproj", "{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DIT.Framework.Module", "..\DIT.Framework.Module\DIT.Framework.Module\DIT.Framework.Module.csproj", "{7D46C166-1691-4AD7-BC95-4F505EF0AD60}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7D46C166-1691-4AD7-BC95-4F505EF0AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7D46C166-1691-4AD7-BC95-4F505EF0AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7D46C166-1691-4AD7-BC95-4F505EF0AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7D46C166-1691-4AD7-BC95-4F505EF0AD60}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/DLL_Test_Program/DLL_Test_Program/App.config b/DLL_Test_Program/DLL_Test_Program/App.config
new file mode 100644
index 0000000..88fa402
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/App.config
@@ -0,0 +1,6 @@
+癤�<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.Designer.cs b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.Designer.cs
new file mode 100644
index 0000000..8eb4417
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.Designer.cs
@@ -0,0 +1,1505 @@
+癤퓆amespace DLL_Test_Program
+{
+    partial class Autonics_PMC_2HS_Form
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox15 = new System.Windows.Forms.GroupBox();
+            this.rb_Speed_3 = new System.Windows.Forms.RadioButton();
+            this.rb_Speed_5 = new System.Windows.Forms.RadioButton();
+            this.rb_Speed_2 = new System.Windows.Forms.RadioButton();
+            this.rb_Speed_4 = new System.Windows.Forms.RadioButton();
+            this.rb_Speed_1 = new System.Windows.Forms.RadioButton();
+            this.groupBox14 = new System.Windows.Forms.GroupBox();
+            this.cb_Proc_Y = new System.Windows.Forms.CheckBox();
+            this.cb_Proc_X = new System.Windows.Forms.CheckBox();
+            this.btn_Proc_Stop = new System.Windows.Forms.Button();
+            this.btn_Proc_Step = new System.Windows.Forms.Button();
+            this.btn_Proc_Run = new System.Windows.Forms.Button();
+            this.label42 = new System.Windows.Forms.Label();
+            this.nud_Reg = new System.Windows.Forms.NumericUpDown();
+            this.groupBox11 = new System.Windows.Forms.GroupBox();
+            this.groupBox12 = new System.Windows.Forms.GroupBox();
+            this.lb_CN5_Out0 = new System.Windows.Forms.Label();
+            this.groupBox13 = new System.Windows.Forms.GroupBox();
+            this.lb_CN5_Limit_P = new System.Windows.Forms.Label();
+            this.lb_CN5_Limit_M = new System.Windows.Forms.Label();
+            this.lb_CN5_EMG = new System.Windows.Forms.Label();
+            this.lb_CN5_Stop2 = new System.Windows.Forms.Label();
+            this.lb_CN5_Stop1 = new System.Windows.Forms.Label();
+            this.lb_CN5_Stop0 = new System.Windows.Forms.Label();
+            this.lb_CN5_Inpos = new System.Windows.Forms.Label();
+            this.lb_CN5_Alarm = new System.Windows.Forms.Label();
+            this.groupBox4 = new System.Windows.Forms.GroupBox();
+            this.groupBox7 = new System.Windows.Forms.GroupBox();
+            this.lb_CN3_X_Drive = new System.Windows.Forms.Label();
+            this.lb_CN3_Y_Error = new System.Windows.Forms.Label();
+            this.lb_CN3_Y_Drive = new System.Windows.Forms.Label();
+            this.lb_CN3_X_Error = new System.Windows.Forms.Label();
+            this.groupBox10 = new System.Windows.Forms.GroupBox();
+            this.lb_CN3_RegSL4 = new System.Windows.Forms.Label();
+            this.lb_CN3_Mode1 = new System.Windows.Forms.Label();
+            this.lb_CN3_RegSL5 = new System.Windows.Forms.Label();
+            this.lb_CN3_Mode0 = new System.Windows.Forms.Label();
+            this.lb_CN3_RegSL0 = new System.Windows.Forms.Label();
+            this.lb_CN3_RegSL3 = new System.Windows.Forms.Label();
+            this.lb_CN3_RegSL1 = new System.Windows.Forms.Label();
+            this.lb_CN3_RegSL2 = new System.Windows.Forms.Label();
+            this.lb_CN3_Home = new System.Windows.Forms.Label();
+            this.lb_CN3_Y = new System.Windows.Forms.Label();
+            this.lb_CN3_Strobe = new System.Windows.Forms.Label();
+            this.lb_CN3_X = new System.Windows.Forms.Label();
+            this.groupBox6 = new System.Windows.Forms.GroupBox();
+            this.groupBox9 = new System.Windows.Forms.GroupBox();
+            this.lb_CN4_Out0 = new System.Windows.Forms.Label();
+            this.groupBox8 = new System.Windows.Forms.GroupBox();
+            this.lb_CN4_Limit_P = new System.Windows.Forms.Label();
+            this.lb_CN4_Limit_M = new System.Windows.Forms.Label();
+            this.lb_CN4_EMG = new System.Windows.Forms.Label();
+            this.lb_CN4_Stop2 = new System.Windows.Forms.Label();
+            this.lb_CN4_Stop1 = new System.Windows.Forms.Label();
+            this.lb_CN4_Stop0 = new System.Windows.Forms.Label();
+            this.lb_CN4_Inpos = new System.Windows.Forms.Label();
+            this.lb_CN4_Alarm = new System.Windows.Forms.Label();
+            this.groupBox5 = new System.Windows.Forms.GroupBox();
+            this.btn_Y_Setting_Apply = new System.Windows.Forms.Button();
+            this.label7 = new System.Windows.Forms.Label();
+            this.btn_X_Setting_Apply = new System.Windows.Forms.Button();
+            this.btn_Y_Preset_Move = new System.Windows.Forms.Button();
+            this.label8 = new System.Windows.Forms.Label();
+            this.nud_Y_Speed = new System.Windows.Forms.NumericUpDown();
+            this.label9 = new System.Windows.Forms.Label();
+            this.nud_X_Speed = new System.Windows.Forms.NumericUpDown();
+            this.btn_X_Preset_Move = new System.Windows.Forms.Button();
+            this.label10 = new System.Windows.Forms.Label();
+            this.tb_Y_Move = new System.Windows.Forms.TextBox();
+            this.tb_X_Move = new System.Windows.Forms.TextBox();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.btn_Cur_Y_Pos_Clr = new System.Windows.Forms.Button();
+            this.btn_Cur_X_Pos_Clr = new System.Windows.Forms.Button();
+            this.btn_Y_Home_Stop = new System.Windows.Forms.Button();
+            this.btn_X_Home_Stop = new System.Windows.Forms.Button();
+            this.rb_Motor_Continue = new System.Windows.Forms.RadioButton();
+            this.rb_Motor_Scan = new System.Windows.Forms.RadioButton();
+            this.btn_Y_Stop = new System.Windows.Forms.Button();
+            this.btn_X_Stop = new System.Windows.Forms.Button();
+            this.btn_Y_Home = new System.Windows.Forms.Button();
+            this.btn_X_Home = new System.Windows.Forms.Button();
+            this.btn_Y_Plus = new System.Windows.Forms.Button();
+            this.btn_X_Plus = new System.Windows.Forms.Button();
+            this.btn_Y_Minus = new System.Windows.Forms.Button();
+            this.btn_X_Minus = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.tb_Current_Y_Speed = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.tb_Current_X_Speed = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.tb_Current_Y_Pos = new System.Windows.Forms.TextBox();
+            this.tb_Current_X_Pos = new System.Windows.Forms.TextBox();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.lb_PortState = new System.Windows.Forms.Label();
+            this.cbb_Ports = new System.Windows.Forms.ComboBox();
+            this.lb_Port = new System.Windows.Forms.Label();
+            this.btn_PortOpen = new System.Windows.Forms.Button();
+            this.btn_PortClose = new System.Windows.Forms.Button();
+            this.groupBox16 = new System.Windows.Forms.GroupBox();
+            this.btn_Angle_Stop = new System.Windows.Forms.Button();
+            this.btn_Angle_Run = new System.Windows.Forms.Button();
+            this.nud_Angle = new System.Windows.Forms.NumericUpDown();
+            this.label5 = new System.Windows.Forms.Label();
+            this.groupBox15.SuspendLayout();
+            this.groupBox14.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Reg)).BeginInit();
+            this.groupBox11.SuspendLayout();
+            this.groupBox12.SuspendLayout();
+            this.groupBox13.SuspendLayout();
+            this.groupBox4.SuspendLayout();
+            this.groupBox7.SuspendLayout();
+            this.groupBox10.SuspendLayout();
+            this.groupBox6.SuspendLayout();
+            this.groupBox9.SuspendLayout();
+            this.groupBox8.SuspendLayout();
+            this.groupBox5.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Y_Speed)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_X_Speed)).BeginInit();
+            this.groupBox2.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.groupBox16.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Angle)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox15
+            // 
+            this.groupBox15.Controls.Add(this.rb_Speed_3);
+            this.groupBox15.Controls.Add(this.rb_Speed_5);
+            this.groupBox15.Controls.Add(this.rb_Speed_2);
+            this.groupBox15.Controls.Add(this.rb_Speed_4);
+            this.groupBox15.Controls.Add(this.rb_Speed_1);
+            this.groupBox15.Location = new System.Drawing.Point(284, 302);
+            this.groupBox15.Name = "groupBox15";
+            this.groupBox15.Size = new System.Drawing.Size(99, 100);
+            this.groupBox15.TabIndex = 39;
+            this.groupBox15.TabStop = false;
+            this.groupBox15.Text = "Speed Select";
+            // 
+            // rb_Speed_3
+            // 
+            this.rb_Speed_3.AutoSize = true;
+            this.rb_Speed_3.Location = new System.Drawing.Point(13, 62);
+            this.rb_Speed_3.Name = "rb_Speed_3";
+            this.rb_Speed_3.Size = new System.Drawing.Size(29, 16);
+            this.rb_Speed_3.TabIndex = 4;
+            this.rb_Speed_3.TabStop = true;
+            this.rb_Speed_3.Text = "3";
+            this.rb_Speed_3.UseVisualStyleBackColor = true;
+            this.rb_Speed_3.CheckedChanged += new System.EventHandler(this.rb_Speed_CheckedChanged);
+            // 
+            // rb_Speed_5
+            // 
+            this.rb_Speed_5.AutoSize = true;
+            this.rb_Speed_5.Location = new System.Drawing.Point(48, 39);
+            this.rb_Speed_5.Name = "rb_Speed_5";
+            this.rb_Speed_5.Size = new System.Drawing.Size(29, 16);
+            this.rb_Speed_5.TabIndex = 3;
+            this.rb_Speed_5.TabStop = true;
+            this.rb_Speed_5.Text = "5";
+            this.rb_Speed_5.UseVisualStyleBackColor = true;
+            this.rb_Speed_5.CheckedChanged += new System.EventHandler(this.rb_Speed_CheckedChanged);
+            // 
+            // rb_Speed_2
+            // 
+            this.rb_Speed_2.AutoSize = true;
+            this.rb_Speed_2.Location = new System.Drawing.Point(13, 40);
+            this.rb_Speed_2.Name = "rb_Speed_2";
+            this.rb_Speed_2.Size = new System.Drawing.Size(29, 16);
+            this.rb_Speed_2.TabIndex = 2;
+            this.rb_Speed_2.TabStop = true;
+            this.rb_Speed_2.Text = "2";
+            this.rb_Speed_2.UseVisualStyleBackColor = true;
+            this.rb_Speed_2.CheckedChanged += new System.EventHandler(this.rb_Speed_CheckedChanged);
+            // 
+            // rb_Speed_4
+            // 
+            this.rb_Speed_4.AutoSize = true;
+            this.rb_Speed_4.Location = new System.Drawing.Point(48, 19);
+            this.rb_Speed_4.Name = "rb_Speed_4";
+            this.rb_Speed_4.Size = new System.Drawing.Size(29, 16);
+            this.rb_Speed_4.TabIndex = 1;
+            this.rb_Speed_4.TabStop = true;
+            this.rb_Speed_4.Text = "4";
+            this.rb_Speed_4.UseVisualStyleBackColor = true;
+            this.rb_Speed_4.CheckedChanged += new System.EventHandler(this.rb_Speed_CheckedChanged);
+            // 
+            // rb_Speed_1
+            // 
+            this.rb_Speed_1.AutoSize = true;
+            this.rb_Speed_1.Location = new System.Drawing.Point(13, 18);
+            this.rb_Speed_1.Name = "rb_Speed_1";
+            this.rb_Speed_1.Size = new System.Drawing.Size(29, 16);
+            this.rb_Speed_1.TabIndex = 0;
+            this.rb_Speed_1.TabStop = true;
+            this.rb_Speed_1.Text = "1";
+            this.rb_Speed_1.UseVisualStyleBackColor = true;
+            this.rb_Speed_1.CheckedChanged += new System.EventHandler(this.rb_Speed_CheckedChanged);
+            // 
+            // groupBox14
+            // 
+            this.groupBox14.Controls.Add(this.cb_Proc_Y);
+            this.groupBox14.Controls.Add(this.cb_Proc_X);
+            this.groupBox14.Controls.Add(this.btn_Proc_Stop);
+            this.groupBox14.Controls.Add(this.btn_Proc_Step);
+            this.groupBox14.Controls.Add(this.btn_Proc_Run);
+            this.groupBox14.Controls.Add(this.label42);
+            this.groupBox14.Controls.Add(this.nud_Reg);
+            this.groupBox14.Location = new System.Drawing.Point(12, 302);
+            this.groupBox14.Name = "groupBox14";
+            this.groupBox14.Size = new System.Drawing.Size(249, 100);
+            this.groupBox14.TabIndex = 38;
+            this.groupBox14.TabStop = false;
+            this.groupBox14.Text = "Program";
+            // 
+            // cb_Proc_Y
+            // 
+            this.cb_Proc_Y.AutoSize = true;
+            this.cb_Proc_Y.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.cb_Proc_Y.Location = new System.Drawing.Point(172, 18);
+            this.cb_Proc_Y.Name = "cb_Proc_Y";
+            this.cb_Proc_Y.Size = new System.Drawing.Size(32, 16);
+            this.cb_Proc_Y.TabIndex = 6;
+            this.cb_Proc_Y.Text = "Y";
+            this.cb_Proc_Y.UseVisualStyleBackColor = true;
+            // 
+            // cb_Proc_X
+            // 
+            this.cb_Proc_X.AutoSize = true;
+            this.cb_Proc_X.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.cb_Proc_X.Location = new System.Drawing.Point(134, 19);
+            this.cb_Proc_X.Name = "cb_Proc_X";
+            this.cb_Proc_X.Size = new System.Drawing.Size(32, 16);
+            this.cb_Proc_X.TabIndex = 5;
+            this.cb_Proc_X.Text = "X";
+            this.cb_Proc_X.UseVisualStyleBackColor = true;
+            // 
+            // btn_Proc_Stop
+            // 
+            this.btn_Proc_Stop.Location = new System.Drawing.Point(164, 54);
+            this.btn_Proc_Stop.Name = "btn_Proc_Stop";
+            this.btn_Proc_Stop.Size = new System.Drawing.Size(75, 23);
+            this.btn_Proc_Stop.TabIndex = 4;
+            this.btn_Proc_Stop.Text = "Stop";
+            this.btn_Proc_Stop.UseVisualStyleBackColor = true;
+            // 
+            // btn_Proc_Step
+            // 
+            this.btn_Proc_Step.Location = new System.Drawing.Point(87, 54);
+            this.btn_Proc_Step.Name = "btn_Proc_Step";
+            this.btn_Proc_Step.Size = new System.Drawing.Size(75, 23);
+            this.btn_Proc_Step.TabIndex = 3;
+            this.btn_Proc_Step.Text = "Step";
+            this.btn_Proc_Step.UseVisualStyleBackColor = true;
+            // 
+            // btn_Proc_Run
+            // 
+            this.btn_Proc_Run.Location = new System.Drawing.Point(10, 54);
+            this.btn_Proc_Run.Name = "btn_Proc_Run";
+            this.btn_Proc_Run.Size = new System.Drawing.Size(75, 23);
+            this.btn_Proc_Run.TabIndex = 2;
+            this.btn_Proc_Run.Text = "Run";
+            this.btn_Proc_Run.UseVisualStyleBackColor = true;
+            // 
+            // label42
+            // 
+            this.label42.AutoSize = true;
+            this.label42.Font = new System.Drawing.Font("Gulim", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label42.Location = new System.Drawing.Point(7, 20);
+            this.label42.Name = "label42";
+            this.label42.Size = new System.Drawing.Size(40, 15);
+            this.label42.TabIndex = 1;
+            this.label42.Text = "REG";
+            // 
+            // nud_Reg
+            // 
+            this.nud_Reg.Location = new System.Drawing.Point(52, 19);
+            this.nud_Reg.Name = "nud_Reg";
+            this.nud_Reg.Size = new System.Drawing.Size(61, 21);
+            this.nud_Reg.TabIndex = 0;
+            this.nud_Reg.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // groupBox11
+            // 
+            this.groupBox11.Controls.Add(this.groupBox12);
+            this.groupBox11.Controls.Add(this.groupBox13);
+            this.groupBox11.Location = new System.Drawing.Point(357, 201);
+            this.groupBox11.Name = "groupBox11";
+            this.groupBox11.Size = new System.Drawing.Size(260, 86);
+            this.groupBox11.TabIndex = 35;
+            this.groupBox11.TabStop = false;
+            this.groupBox11.Text = "CN5 Yaxis";
+            // 
+            // groupBox12
+            // 
+            this.groupBox12.Controls.Add(this.lb_CN5_Out0);
+            this.groupBox12.Location = new System.Drawing.Point(191, 13);
+            this.groupBox12.Name = "groupBox12";
+            this.groupBox12.Size = new System.Drawing.Size(63, 69);
+            this.groupBox12.TabIndex = 12;
+            this.groupBox12.TabStop = false;
+            this.groupBox12.Text = "Input";
+            // 
+            // lb_CN5_Out0
+            // 
+            this.lb_CN5_Out0.AutoSize = true;
+            this.lb_CN5_Out0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Out0.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN5_Out0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Out0.Name = "lb_CN5_Out0";
+            this.lb_CN5_Out0.Size = new System.Drawing.Size(31, 11);
+            this.lb_CN5_Out0.TabIndex = 0;
+            this.lb_CN5_Out0.Text = "Out0";
+            // 
+            // groupBox13
+            // 
+            this.groupBox13.Controls.Add(this.lb_CN5_Limit_P);
+            this.groupBox13.Controls.Add(this.lb_CN5_Limit_M);
+            this.groupBox13.Controls.Add(this.lb_CN5_EMG);
+            this.groupBox13.Controls.Add(this.lb_CN5_Stop2);
+            this.groupBox13.Controls.Add(this.lb_CN5_Stop1);
+            this.groupBox13.Controls.Add(this.lb_CN5_Stop0);
+            this.groupBox13.Controls.Add(this.lb_CN5_Inpos);
+            this.groupBox13.Controls.Add(this.lb_CN5_Alarm);
+            this.groupBox13.Location = new System.Drawing.Point(6, 13);
+            this.groupBox13.Name = "groupBox13";
+            this.groupBox13.Size = new System.Drawing.Size(178, 69);
+            this.groupBox13.TabIndex = 4;
+            this.groupBox13.TabStop = false;
+            this.groupBox13.Text = "Input";
+            // 
+            // lb_CN5_Limit_P
+            // 
+            this.lb_CN5_Limit_P.AutoSize = true;
+            this.lb_CN5_Limit_P.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Limit_P.Location = new System.Drawing.Point(118, 14);
+            this.lb_CN5_Limit_P.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Limit_P.Name = "lb_CN5_Limit_P";
+            this.lb_CN5_Limit_P.Size = new System.Drawing.Size(35, 11);
+            this.lb_CN5_Limit_P.TabIndex = 8;
+            this.lb_CN5_Limit_P.Text = "Limit+";
+            // 
+            // lb_CN5_Limit_M
+            // 
+            this.lb_CN5_Limit_M.AutoSize = true;
+            this.lb_CN5_Limit_M.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Limit_M.Location = new System.Drawing.Point(118, 27);
+            this.lb_CN5_Limit_M.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Limit_M.Name = "lb_CN5_Limit_M";
+            this.lb_CN5_Limit_M.Size = new System.Drawing.Size(35, 11);
+            this.lb_CN5_Limit_M.TabIndex = 9;
+            this.lb_CN5_Limit_M.Text = "Limit-";
+            // 
+            // lb_CN5_EMG
+            // 
+            this.lb_CN5_EMG.AutoSize = true;
+            this.lb_CN5_EMG.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_EMG.Location = new System.Drawing.Point(118, 40);
+            this.lb_CN5_EMG.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_EMG.Name = "lb_CN5_EMG";
+            this.lb_CN5_EMG.Size = new System.Drawing.Size(30, 11);
+            this.lb_CN5_EMG.TabIndex = 10;
+            this.lb_CN5_EMG.Text = "EMG";
+            // 
+            // lb_CN5_Stop2
+            // 
+            this.lb_CN5_Stop2.AutoSize = true;
+            this.lb_CN5_Stop2.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Stop2.Location = new System.Drawing.Point(62, 15);
+            this.lb_CN5_Stop2.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Stop2.Name = "lb_CN5_Stop2";
+            this.lb_CN5_Stop2.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN5_Stop2.TabIndex = 4;
+            this.lb_CN5_Stop2.Text = "Stop2";
+            // 
+            // lb_CN5_Stop1
+            // 
+            this.lb_CN5_Stop1.AutoSize = true;
+            this.lb_CN5_Stop1.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Stop1.Location = new System.Drawing.Point(62, 28);
+            this.lb_CN5_Stop1.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Stop1.Name = "lb_CN5_Stop1";
+            this.lb_CN5_Stop1.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN5_Stop1.TabIndex = 5;
+            this.lb_CN5_Stop1.Text = "Stop1";
+            // 
+            // lb_CN5_Stop0
+            // 
+            this.lb_CN5_Stop0.AutoSize = true;
+            this.lb_CN5_Stop0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Stop0.Location = new System.Drawing.Point(62, 41);
+            this.lb_CN5_Stop0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Stop0.Name = "lb_CN5_Stop0";
+            this.lb_CN5_Stop0.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN5_Stop0.TabIndex = 6;
+            this.lb_CN5_Stop0.Text = "Stop0";
+            // 
+            // lb_CN5_Inpos
+            // 
+            this.lb_CN5_Inpos.AutoSize = true;
+            this.lb_CN5_Inpos.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Inpos.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN5_Inpos.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Inpos.Name = "lb_CN5_Inpos";
+            this.lb_CN5_Inpos.Size = new System.Drawing.Size(36, 11);
+            this.lb_CN5_Inpos.TabIndex = 0;
+            this.lb_CN5_Inpos.Text = "Inpos";
+            // 
+            // lb_CN5_Alarm
+            // 
+            this.lb_CN5_Alarm.AutoSize = true;
+            this.lb_CN5_Alarm.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN5_Alarm.Location = new System.Drawing.Point(7, 28);
+            this.lb_CN5_Alarm.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN5_Alarm.Name = "lb_CN5_Alarm";
+            this.lb_CN5_Alarm.Size = new System.Drawing.Size(36, 11);
+            this.lb_CN5_Alarm.TabIndex = 1;
+            this.lb_CN5_Alarm.Text = "Alarm";
+            // 
+            // groupBox4
+            // 
+            this.groupBox4.Controls.Add(this.groupBox7);
+            this.groupBox4.Controls.Add(this.groupBox10);
+            this.groupBox4.Location = new System.Drawing.Point(357, 12);
+            this.groupBox4.Name = "groupBox4";
+            this.groupBox4.Size = new System.Drawing.Size(260, 86);
+            this.groupBox4.TabIndex = 36;
+            this.groupBox4.TabStop = false;
+            this.groupBox4.Text = "CN3 Parallel";
+            // 
+            // groupBox7
+            // 
+            this.groupBox7.Controls.Add(this.lb_CN3_X_Drive);
+            this.groupBox7.Controls.Add(this.lb_CN3_Y_Error);
+            this.groupBox7.Controls.Add(this.lb_CN3_Y_Drive);
+            this.groupBox7.Controls.Add(this.lb_CN3_X_Error);
+            this.groupBox7.Location = new System.Drawing.Point(191, 13);
+            this.groupBox7.Name = "groupBox7";
+            this.groupBox7.Size = new System.Drawing.Size(63, 69);
+            this.groupBox7.TabIndex = 12;
+            this.groupBox7.TabStop = false;
+            this.groupBox7.Text = "Input";
+            // 
+            // lb_CN3_X_Drive
+            // 
+            this.lb_CN3_X_Drive.AutoSize = true;
+            this.lb_CN3_X_Drive.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_X_Drive.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN3_X_Drive.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_X_Drive.Name = "lb_CN3_X_Drive";
+            this.lb_CN3_X_Drive.Size = new System.Drawing.Size(46, 11);
+            this.lb_CN3_X_Drive.TabIndex = 0;
+            this.lb_CN3_X_Drive.Text = "X Drive";
+            // 
+            // lb_CN3_Y_Error
+            // 
+            this.lb_CN3_Y_Error.AutoSize = true;
+            this.lb_CN3_Y_Error.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Y_Error.Location = new System.Drawing.Point(7, 54);
+            this.lb_CN3_Y_Error.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Y_Error.Name = "lb_CN3_Y_Error";
+            this.lb_CN3_Y_Error.Size = new System.Drawing.Size(43, 11);
+            this.lb_CN3_Y_Error.TabIndex = 3;
+            this.lb_CN3_Y_Error.Text = "Y Error";
+            // 
+            // lb_CN3_Y_Drive
+            // 
+            this.lb_CN3_Y_Drive.AutoSize = true;
+            this.lb_CN3_Y_Drive.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Y_Drive.Location = new System.Drawing.Point(7, 28);
+            this.lb_CN3_Y_Drive.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Y_Drive.Name = "lb_CN3_Y_Drive";
+            this.lb_CN3_Y_Drive.Size = new System.Drawing.Size(46, 11);
+            this.lb_CN3_Y_Drive.TabIndex = 1;
+            this.lb_CN3_Y_Drive.Text = "Y Drive";
+            // 
+            // lb_CN3_X_Error
+            // 
+            this.lb_CN3_X_Error.AutoSize = true;
+            this.lb_CN3_X_Error.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_X_Error.Location = new System.Drawing.Point(7, 41);
+            this.lb_CN3_X_Error.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_X_Error.Name = "lb_CN3_X_Error";
+            this.lb_CN3_X_Error.Size = new System.Drawing.Size(43, 11);
+            this.lb_CN3_X_Error.TabIndex = 2;
+            this.lb_CN3_X_Error.Text = "X Error";
+            // 
+            // groupBox10
+            // 
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL4);
+            this.groupBox10.Controls.Add(this.lb_CN3_Mode1);
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL5);
+            this.groupBox10.Controls.Add(this.lb_CN3_Mode0);
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL0);
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL3);
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL1);
+            this.groupBox10.Controls.Add(this.lb_CN3_RegSL2);
+            this.groupBox10.Controls.Add(this.lb_CN3_Home);
+            this.groupBox10.Controls.Add(this.lb_CN3_Y);
+            this.groupBox10.Controls.Add(this.lb_CN3_Strobe);
+            this.groupBox10.Controls.Add(this.lb_CN3_X);
+            this.groupBox10.Location = new System.Drawing.Point(6, 13);
+            this.groupBox10.Name = "groupBox10";
+            this.groupBox10.Size = new System.Drawing.Size(178, 69);
+            this.groupBox10.TabIndex = 4;
+            this.groupBox10.TabStop = false;
+            this.groupBox10.Text = "Input";
+            // 
+            // lb_CN3_RegSL4
+            // 
+            this.lb_CN3_RegSL4.AutoSize = true;
+            this.lb_CN3_RegSL4.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL4.Location = new System.Drawing.Point(118, 14);
+            this.lb_CN3_RegSL4.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL4.Name = "lb_CN3_RegSL4";
+            this.lb_CN3_RegSL4.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL4.TabIndex = 8;
+            this.lb_CN3_RegSL4.Text = "RegSL4";
+            // 
+            // lb_CN3_Mode1
+            // 
+            this.lb_CN3_Mode1.AutoSize = true;
+            this.lb_CN3_Mode1.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Mode1.Location = new System.Drawing.Point(118, 53);
+            this.lb_CN3_Mode1.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Mode1.Name = "lb_CN3_Mode1";
+            this.lb_CN3_Mode1.Size = new System.Drawing.Size(41, 11);
+            this.lb_CN3_Mode1.TabIndex = 11;
+            this.lb_CN3_Mode1.Text = "Mode1";
+            // 
+            // lb_CN3_RegSL5
+            // 
+            this.lb_CN3_RegSL5.AutoSize = true;
+            this.lb_CN3_RegSL5.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL5.Location = new System.Drawing.Point(118, 27);
+            this.lb_CN3_RegSL5.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL5.Name = "lb_CN3_RegSL5";
+            this.lb_CN3_RegSL5.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL5.TabIndex = 9;
+            this.lb_CN3_RegSL5.Text = "RegSL5";
+            // 
+            // lb_CN3_Mode0
+            // 
+            this.lb_CN3_Mode0.AutoSize = true;
+            this.lb_CN3_Mode0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Mode0.Location = new System.Drawing.Point(118, 40);
+            this.lb_CN3_Mode0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Mode0.Name = "lb_CN3_Mode0";
+            this.lb_CN3_Mode0.Size = new System.Drawing.Size(41, 11);
+            this.lb_CN3_Mode0.TabIndex = 10;
+            this.lb_CN3_Mode0.Text = "Mode0";
+            // 
+            // lb_CN3_RegSL0
+            // 
+            this.lb_CN3_RegSL0.AutoSize = true;
+            this.lb_CN3_RegSL0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL0.Location = new System.Drawing.Point(62, 15);
+            this.lb_CN3_RegSL0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL0.Name = "lb_CN3_RegSL0";
+            this.lb_CN3_RegSL0.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL0.TabIndex = 4;
+            this.lb_CN3_RegSL0.Text = "RegSL0";
+            // 
+            // lb_CN3_RegSL3
+            // 
+            this.lb_CN3_RegSL3.AutoSize = true;
+            this.lb_CN3_RegSL3.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL3.Location = new System.Drawing.Point(62, 54);
+            this.lb_CN3_RegSL3.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL3.Name = "lb_CN3_RegSL3";
+            this.lb_CN3_RegSL3.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL3.TabIndex = 7;
+            this.lb_CN3_RegSL3.Text = "RegSL3";
+            // 
+            // lb_CN3_RegSL1
+            // 
+            this.lb_CN3_RegSL1.AutoSize = true;
+            this.lb_CN3_RegSL1.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL1.Location = new System.Drawing.Point(62, 28);
+            this.lb_CN3_RegSL1.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL1.Name = "lb_CN3_RegSL1";
+            this.lb_CN3_RegSL1.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL1.TabIndex = 5;
+            this.lb_CN3_RegSL1.Text = "RegSL1";
+            // 
+            // lb_CN3_RegSL2
+            // 
+            this.lb_CN3_RegSL2.AutoSize = true;
+            this.lb_CN3_RegSL2.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_RegSL2.Location = new System.Drawing.Point(62, 41);
+            this.lb_CN3_RegSL2.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_RegSL2.Name = "lb_CN3_RegSL2";
+            this.lb_CN3_RegSL2.Size = new System.Drawing.Size(47, 11);
+            this.lb_CN3_RegSL2.TabIndex = 6;
+            this.lb_CN3_RegSL2.Text = "RegSL2";
+            // 
+            // lb_CN3_Home
+            // 
+            this.lb_CN3_Home.AutoSize = true;
+            this.lb_CN3_Home.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Home.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN3_Home.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Home.Name = "lb_CN3_Home";
+            this.lb_CN3_Home.Size = new System.Drawing.Size(36, 11);
+            this.lb_CN3_Home.TabIndex = 0;
+            this.lb_CN3_Home.Text = "Home";
+            // 
+            // lb_CN3_Y
+            // 
+            this.lb_CN3_Y.AutoSize = true;
+            this.lb_CN3_Y.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Y.Location = new System.Drawing.Point(7, 54);
+            this.lb_CN3_Y.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Y.Name = "lb_CN3_Y";
+            this.lb_CN3_Y.Size = new System.Drawing.Size(13, 11);
+            this.lb_CN3_Y.TabIndex = 3;
+            this.lb_CN3_Y.Text = "Y";
+            // 
+            // lb_CN3_Strobe
+            // 
+            this.lb_CN3_Strobe.AutoSize = true;
+            this.lb_CN3_Strobe.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_Strobe.Location = new System.Drawing.Point(7, 28);
+            this.lb_CN3_Strobe.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_Strobe.Name = "lb_CN3_Strobe";
+            this.lb_CN3_Strobe.Size = new System.Drawing.Size(42, 11);
+            this.lb_CN3_Strobe.TabIndex = 1;
+            this.lb_CN3_Strobe.Text = "Strobe";
+            // 
+            // lb_CN3_X
+            // 
+            this.lb_CN3_X.AutoSize = true;
+            this.lb_CN3_X.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN3_X.Location = new System.Drawing.Point(7, 41);
+            this.lb_CN3_X.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN3_X.Name = "lb_CN3_X";
+            this.lb_CN3_X.Size = new System.Drawing.Size(13, 11);
+            this.lb_CN3_X.TabIndex = 2;
+            this.lb_CN3_X.Text = "X";
+            // 
+            // groupBox6
+            // 
+            this.groupBox6.Controls.Add(this.groupBox9);
+            this.groupBox6.Controls.Add(this.groupBox8);
+            this.groupBox6.Location = new System.Drawing.Point(357, 107);
+            this.groupBox6.Name = "groupBox6";
+            this.groupBox6.Size = new System.Drawing.Size(260, 86);
+            this.groupBox6.TabIndex = 33;
+            this.groupBox6.TabStop = false;
+            this.groupBox6.Text = "CN4 Xaxis";
+            // 
+            // groupBox9
+            // 
+            this.groupBox9.Controls.Add(this.lb_CN4_Out0);
+            this.groupBox9.Location = new System.Drawing.Point(191, 13);
+            this.groupBox9.Name = "groupBox9";
+            this.groupBox9.Size = new System.Drawing.Size(63, 69);
+            this.groupBox9.TabIndex = 12;
+            this.groupBox9.TabStop = false;
+            this.groupBox9.Text = "Input";
+            // 
+            // lb_CN4_Out0
+            // 
+            this.lb_CN4_Out0.AutoSize = true;
+            this.lb_CN4_Out0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Out0.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN4_Out0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Out0.Name = "lb_CN4_Out0";
+            this.lb_CN4_Out0.Size = new System.Drawing.Size(31, 11);
+            this.lb_CN4_Out0.TabIndex = 0;
+            this.lb_CN4_Out0.Text = "Out0";
+            // 
+            // groupBox8
+            // 
+            this.groupBox8.Controls.Add(this.lb_CN4_Limit_P);
+            this.groupBox8.Controls.Add(this.lb_CN4_Limit_M);
+            this.groupBox8.Controls.Add(this.lb_CN4_EMG);
+            this.groupBox8.Controls.Add(this.lb_CN4_Stop2);
+            this.groupBox8.Controls.Add(this.lb_CN4_Stop1);
+            this.groupBox8.Controls.Add(this.lb_CN4_Stop0);
+            this.groupBox8.Controls.Add(this.lb_CN4_Inpos);
+            this.groupBox8.Controls.Add(this.lb_CN4_Alarm);
+            this.groupBox8.Location = new System.Drawing.Point(6, 13);
+            this.groupBox8.Name = "groupBox8";
+            this.groupBox8.Size = new System.Drawing.Size(178, 69);
+            this.groupBox8.TabIndex = 4;
+            this.groupBox8.TabStop = false;
+            this.groupBox8.Text = "Input";
+            // 
+            // lb_CN4_Limit_P
+            // 
+            this.lb_CN4_Limit_P.AutoSize = true;
+            this.lb_CN4_Limit_P.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Limit_P.Location = new System.Drawing.Point(118, 14);
+            this.lb_CN4_Limit_P.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Limit_P.Name = "lb_CN4_Limit_P";
+            this.lb_CN4_Limit_P.Size = new System.Drawing.Size(35, 11);
+            this.lb_CN4_Limit_P.TabIndex = 8;
+            this.lb_CN4_Limit_P.Text = "Limit+";
+            // 
+            // lb_CN4_Limit_M
+            // 
+            this.lb_CN4_Limit_M.AutoSize = true;
+            this.lb_CN4_Limit_M.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Limit_M.Location = new System.Drawing.Point(118, 27);
+            this.lb_CN4_Limit_M.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Limit_M.Name = "lb_CN4_Limit_M";
+            this.lb_CN4_Limit_M.Size = new System.Drawing.Size(35, 11);
+            this.lb_CN4_Limit_M.TabIndex = 9;
+            this.lb_CN4_Limit_M.Text = "Limit-";
+            // 
+            // lb_CN4_EMG
+            // 
+            this.lb_CN4_EMG.AutoSize = true;
+            this.lb_CN4_EMG.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_EMG.Location = new System.Drawing.Point(118, 40);
+            this.lb_CN4_EMG.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_EMG.Name = "lb_CN4_EMG";
+            this.lb_CN4_EMG.Size = new System.Drawing.Size(30, 11);
+            this.lb_CN4_EMG.TabIndex = 10;
+            this.lb_CN4_EMG.Text = "EMG";
+            // 
+            // lb_CN4_Stop2
+            // 
+            this.lb_CN4_Stop2.AutoSize = true;
+            this.lb_CN4_Stop2.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Stop2.Location = new System.Drawing.Point(62, 15);
+            this.lb_CN4_Stop2.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Stop2.Name = "lb_CN4_Stop2";
+            this.lb_CN4_Stop2.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN4_Stop2.TabIndex = 4;
+            this.lb_CN4_Stop2.Text = "Stop2";
+            // 
+            // lb_CN4_Stop1
+            // 
+            this.lb_CN4_Stop1.AutoSize = true;
+            this.lb_CN4_Stop1.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Stop1.Location = new System.Drawing.Point(62, 28);
+            this.lb_CN4_Stop1.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Stop1.Name = "lb_CN4_Stop1";
+            this.lb_CN4_Stop1.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN4_Stop1.TabIndex = 5;
+            this.lb_CN4_Stop1.Text = "Stop1";
+            // 
+            // lb_CN4_Stop0
+            // 
+            this.lb_CN4_Stop0.AutoSize = true;
+            this.lb_CN4_Stop0.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Stop0.Location = new System.Drawing.Point(62, 41);
+            this.lb_CN4_Stop0.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Stop0.Name = "lb_CN4_Stop0";
+            this.lb_CN4_Stop0.Size = new System.Drawing.Size(37, 11);
+            this.lb_CN4_Stop0.TabIndex = 6;
+            this.lb_CN4_Stop0.Text = "Stop0";
+            // 
+            // lb_CN4_Inpos
+            // 
+            this.lb_CN4_Inpos.AutoSize = true;
+            this.lb_CN4_Inpos.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Inpos.Location = new System.Drawing.Point(7, 15);
+            this.lb_CN4_Inpos.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Inpos.Name = "lb_CN4_Inpos";
+            this.lb_CN4_Inpos.Size = new System.Drawing.Size(36, 11);
+            this.lb_CN4_Inpos.TabIndex = 0;
+            this.lb_CN4_Inpos.Text = "Inpos";
+            // 
+            // lb_CN4_Alarm
+            // 
+            this.lb_CN4_Alarm.AutoSize = true;
+            this.lb_CN4_Alarm.Font = new System.Drawing.Font("Gulim", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.lb_CN4_Alarm.Location = new System.Drawing.Point(7, 28);
+            this.lb_CN4_Alarm.Margin = new System.Windows.Forms.Padding(0);
+            this.lb_CN4_Alarm.Name = "lb_CN4_Alarm";
+            this.lb_CN4_Alarm.Size = new System.Drawing.Size(36, 11);
+            this.lb_CN4_Alarm.TabIndex = 1;
+            this.lb_CN4_Alarm.Text = "Alarm";
+            // 
+            // groupBox5
+            // 
+            this.groupBox5.Controls.Add(this.btn_Y_Setting_Apply);
+            this.groupBox5.Controls.Add(this.label7);
+            this.groupBox5.Controls.Add(this.btn_X_Setting_Apply);
+            this.groupBox5.Controls.Add(this.btn_Y_Preset_Move);
+            this.groupBox5.Controls.Add(this.label8);
+            this.groupBox5.Controls.Add(this.nud_Y_Speed);
+            this.groupBox5.Controls.Add(this.label9);
+            this.groupBox5.Controls.Add(this.nud_X_Speed);
+            this.groupBox5.Controls.Add(this.btn_X_Preset_Move);
+            this.groupBox5.Controls.Add(this.label10);
+            this.groupBox5.Controls.Add(this.tb_Y_Move);
+            this.groupBox5.Controls.Add(this.tb_X_Move);
+            this.groupBox5.Location = new System.Drawing.Point(12, 189);
+            this.groupBox5.Name = "groupBox5";
+            this.groupBox5.Size = new System.Drawing.Size(326, 98);
+            this.groupBox5.TabIndex = 34;
+            this.groupBox5.TabStop = false;
+            this.groupBox5.Text = "Motor Setting";
+            // 
+            // btn_Y_Setting_Apply
+            // 
+            this.btn_Y_Setting_Apply.Location = new System.Drawing.Point(255, 62);
+            this.btn_Y_Setting_Apply.Name = "btn_Y_Setting_Apply";
+            this.btn_Y_Setting_Apply.Size = new System.Drawing.Size(59, 23);
+            this.btn_Y_Setting_Apply.TabIndex = 24;
+            this.btn_Y_Setting_Apply.Text = "Apply";
+            this.btn_Y_Setting_Apply.UseVisualStyleBackColor = true;
+            this.btn_Y_Setting_Apply.Click += new System.EventHandler(this.btn_Y_Setting_Apply_Click);
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(173, 19);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(76, 12);
+            this.label7.TabIndex = 24;
+            this.label7.Text = "Move Speed";
+            // 
+            // btn_X_Setting_Apply
+            // 
+            this.btn_X_Setting_Apply.Location = new System.Drawing.Point(255, 33);
+            this.btn_X_Setting_Apply.Name = "btn_X_Setting_Apply";
+            this.btn_X_Setting_Apply.Size = new System.Drawing.Size(59, 23);
+            this.btn_X_Setting_Apply.TabIndex = 23;
+            this.btn_X_Setting_Apply.Text = "Apply";
+            this.btn_X_Setting_Apply.UseVisualStyleBackColor = true;
+            this.btn_X_Setting_Apply.Click += new System.EventHandler(this.btn_X_Setting_Apply_Click);
+            // 
+            // btn_Y_Preset_Move
+            // 
+            this.btn_Y_Preset_Move.Location = new System.Drawing.Point(89, 63);
+            this.btn_Y_Preset_Move.Name = "btn_Y_Preset_Move";
+            this.btn_Y_Preset_Move.Size = new System.Drawing.Size(60, 23);
+            this.btn_Y_Preset_Move.TabIndex = 23;
+            this.btn_Y_Preset_Move.Text = "Y �씠�룞";
+            this.btn_Y_Preset_Move.UseVisualStyleBackColor = true;
+            this.btn_Y_Preset_Move.Click += new System.EventHandler(this.btn_Y_Preset_Move_Click);
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(27, 20);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(50, 12);
+            this.label8.TabIndex = 22;
+            this.label8.Text = "Position";
+            // 
+            // nud_Y_Speed
+            // 
+            this.nud_Y_Speed.Location = new System.Drawing.Point(171, 62);
+            this.nud_Y_Speed.Name = "nud_Y_Speed";
+            this.nud_Y_Speed.Size = new System.Drawing.Size(78, 21);
+            this.nud_Y_Speed.TabIndex = 21;
+            this.nud_Y_Speed.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            this.nud_Y_Speed.Value = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label9.Location = new System.Drawing.Point(5, 40);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(14, 12);
+            this.label9.TabIndex = 20;
+            this.label9.Text = "X";
+            // 
+            // nud_X_Speed
+            // 
+            this.nud_X_Speed.Location = new System.Drawing.Point(171, 34);
+            this.nud_X_Speed.Name = "nud_X_Speed";
+            this.nud_X_Speed.Size = new System.Drawing.Size(78, 21);
+            this.nud_X_Speed.TabIndex = 20;
+            this.nud_X_Speed.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            this.nud_X_Speed.Value = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            // 
+            // btn_X_Preset_Move
+            // 
+            this.btn_X_Preset_Move.Location = new System.Drawing.Point(89, 34);
+            this.btn_X_Preset_Move.Name = "btn_X_Preset_Move";
+            this.btn_X_Preset_Move.Size = new System.Drawing.Size(60, 23);
+            this.btn_X_Preset_Move.TabIndex = 22;
+            this.btn_X_Preset_Move.Text = "X �씠�룞";
+            this.btn_X_Preset_Move.UseVisualStyleBackColor = true;
+            this.btn_X_Preset_Move.Click += new System.EventHandler(this.btn_X_Preset_Move_Click);
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label10.Location = new System.Drawing.Point(5, 68);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(14, 12);
+            this.label10.TabIndex = 21;
+            this.label10.Text = "Y";
+            // 
+            // tb_Y_Move
+            // 
+            this.tb_Y_Move.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_Y_Move.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.tb_Y_Move.Location = new System.Drawing.Point(21, 62);
+            this.tb_Y_Move.Name = "tb_Y_Move";
+            this.tb_Y_Move.Size = new System.Drawing.Size(62, 21);
+            this.tb_Y_Move.TabIndex = 21;
+            this.tb_Y_Move.Text = "0";
+            this.tb_Y_Move.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // tb_X_Move
+            // 
+            this.tb_X_Move.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_X_Move.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.tb_X_Move.Location = new System.Drawing.Point(21, 35);
+            this.tb_X_Move.Name = "tb_X_Move";
+            this.tb_X_Move.Size = new System.Drawing.Size(62, 21);
+            this.tb_X_Move.TabIndex = 20;
+            this.tb_X_Move.Text = "0";
+            this.tb_X_Move.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.btn_Cur_Y_Pos_Clr);
+            this.groupBox2.Controls.Add(this.btn_Cur_X_Pos_Clr);
+            this.groupBox2.Controls.Add(this.btn_Y_Home_Stop);
+            this.groupBox2.Controls.Add(this.btn_X_Home_Stop);
+            this.groupBox2.Controls.Add(this.rb_Motor_Continue);
+            this.groupBox2.Controls.Add(this.rb_Motor_Scan);
+            this.groupBox2.Controls.Add(this.btn_Y_Stop);
+            this.groupBox2.Controls.Add(this.btn_X_Stop);
+            this.groupBox2.Controls.Add(this.btn_Y_Home);
+            this.groupBox2.Controls.Add(this.btn_X_Home);
+            this.groupBox2.Controls.Add(this.btn_Y_Plus);
+            this.groupBox2.Controls.Add(this.btn_X_Plus);
+            this.groupBox2.Controls.Add(this.btn_Y_Minus);
+            this.groupBox2.Controls.Add(this.btn_X_Minus);
+            this.groupBox2.Controls.Add(this.label1);
+            this.groupBox2.Controls.Add(this.label2);
+            this.groupBox2.Controls.Add(this.tb_Current_Y_Speed);
+            this.groupBox2.Controls.Add(this.label3);
+            this.groupBox2.Controls.Add(this.tb_Current_X_Speed);
+            this.groupBox2.Controls.Add(this.label4);
+            this.groupBox2.Controls.Add(this.tb_Current_Y_Pos);
+            this.groupBox2.Controls.Add(this.tb_Current_X_Pos);
+            this.groupBox2.Location = new System.Drawing.Point(12, 93);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(326, 89);
+            this.groupBox2.TabIndex = 32;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "Motor Control";
+            // 
+            // btn_Cur_Y_Pos_Clr
+            // 
+            this.btn_Cur_Y_Pos_Clr.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Cur_Y_Pos_Clr.Location = new System.Drawing.Point(21, 59);
+            this.btn_Cur_Y_Pos_Clr.Name = "btn_Cur_Y_Pos_Clr";
+            this.btn_Cur_Y_Pos_Clr.Size = new System.Drawing.Size(23, 23);
+            this.btn_Cur_Y_Pos_Clr.TabIndex = 25;
+            this.btn_Cur_Y_Pos_Clr.Text = "C";
+            this.btn_Cur_Y_Pos_Clr.UseVisualStyleBackColor = true;
+            this.btn_Cur_Y_Pos_Clr.Click += new System.EventHandler(this.btn_Cur_Y_Pos_Clr_Click);
+            // 
+            // btn_Cur_X_Pos_Clr
+            // 
+            this.btn_Cur_X_Pos_Clr.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Cur_X_Pos_Clr.Location = new System.Drawing.Point(21, 30);
+            this.btn_Cur_X_Pos_Clr.Name = "btn_Cur_X_Pos_Clr";
+            this.btn_Cur_X_Pos_Clr.Size = new System.Drawing.Size(23, 23);
+            this.btn_Cur_X_Pos_Clr.TabIndex = 24;
+            this.btn_Cur_X_Pos_Clr.Text = "C";
+            this.btn_Cur_X_Pos_Clr.UseVisualStyleBackColor = true;
+            this.btn_Cur_X_Pos_Clr.Click += new System.EventHandler(this.btn_Cur_X_Pos_Clr_Click);
+            // 
+            // btn_Y_Home_Stop
+            // 
+            this.btn_Y_Home_Stop.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Y_Home_Stop.Location = new System.Drawing.Point(300, 59);
+            this.btn_Y_Home_Stop.Name = "btn_Y_Home_Stop";
+            this.btn_Y_Home_Stop.Size = new System.Drawing.Size(23, 23);
+            this.btn_Y_Home_Stop.TabIndex = 23;
+            this.btn_Y_Home_Stop.Text = "�뼚";
+            this.btn_Y_Home_Stop.UseVisualStyleBackColor = true;
+            this.btn_Y_Home_Stop.Click += new System.EventHandler(this.btn_Y_Home_Stop_Click);
+            // 
+            // btn_X_Home_Stop
+            // 
+            this.btn_X_Home_Stop.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_X_Home_Stop.Location = new System.Drawing.Point(300, 31);
+            this.btn_X_Home_Stop.Name = "btn_X_Home_Stop";
+            this.btn_X_Home_Stop.Size = new System.Drawing.Size(23, 23);
+            this.btn_X_Home_Stop.TabIndex = 22;
+            this.btn_X_Home_Stop.Text = "�뼚";
+            this.btn_X_Home_Stop.UseVisualStyleBackColor = true;
+            this.btn_X_Home_Stop.Click += new System.EventHandler(this.btn_X_Home_Stop_Click);
+            // 
+            // rb_Motor_Continue
+            // 
+            this.rb_Motor_Continue.AutoSize = true;
+            this.rb_Motor_Continue.Location = new System.Drawing.Point(229, 10);
+            this.rb_Motor_Continue.Name = "rb_Motor_Continue";
+            this.rb_Motor_Continue.Size = new System.Drawing.Size(73, 16);
+            this.rb_Motor_Continue.TabIndex = 21;
+            this.rb_Motor_Continue.Text = "Continue";
+            this.rb_Motor_Continue.UseVisualStyleBackColor = true;
+            // 
+            // rb_Motor_Scan
+            // 
+            this.rb_Motor_Scan.AutoSize = true;
+            this.rb_Motor_Scan.Checked = true;
+            this.rb_Motor_Scan.Location = new System.Drawing.Point(169, 10);
+            this.rb_Motor_Scan.Name = "rb_Motor_Scan";
+            this.rb_Motor_Scan.Size = new System.Drawing.Size(52, 16);
+            this.rb_Motor_Scan.TabIndex = 20;
+            this.rb_Motor_Scan.TabStop = true;
+            this.rb_Motor_Scan.Text = "Scan";
+            this.rb_Motor_Scan.UseVisualStyleBackColor = true;
+            // 
+            // btn_Y_Stop
+            // 
+            this.btn_Y_Stop.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Y_Stop.Location = new System.Drawing.Point(192, 59);
+            this.btn_Y_Stop.Name = "btn_Y_Stop";
+            this.btn_Y_Stop.Size = new System.Drawing.Size(23, 23);
+            this.btn_Y_Stop.TabIndex = 19;
+            this.btn_Y_Stop.Text = "�뼚";
+            this.btn_Y_Stop.UseVisualStyleBackColor = true;
+            this.btn_Y_Stop.Click += new System.EventHandler(this.btn_Y_Stop_Click);
+            // 
+            // btn_X_Stop
+            // 
+            this.btn_X_Stop.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_X_Stop.Location = new System.Drawing.Point(192, 31);
+            this.btn_X_Stop.Name = "btn_X_Stop";
+            this.btn_X_Stop.Size = new System.Drawing.Size(23, 23);
+            this.btn_X_Stop.TabIndex = 18;
+            this.btn_X_Stop.Text = "�뼚";
+            this.btn_X_Stop.UseVisualStyleBackColor = true;
+            this.btn_X_Stop.Click += new System.EventHandler(this.btn_X_Stop_Click);
+            // 
+            // btn_Y_Home
+            // 
+            this.btn_Y_Home.Location = new System.Drawing.Point(245, 59);
+            this.btn_Y_Home.Name = "btn_Y_Home";
+            this.btn_Y_Home.Size = new System.Drawing.Size(54, 23);
+            this.btn_Y_Home.TabIndex = 17;
+            this.btn_Y_Home.Text = "Home";
+            this.btn_Y_Home.UseVisualStyleBackColor = true;
+            this.btn_Y_Home.Click += new System.EventHandler(this.btn_Y_Home_Click);
+            // 
+            // btn_X_Home
+            // 
+            this.btn_X_Home.Location = new System.Drawing.Point(245, 31);
+            this.btn_X_Home.Name = "btn_X_Home";
+            this.btn_X_Home.Size = new System.Drawing.Size(54, 23);
+            this.btn_X_Home.TabIndex = 16;
+            this.btn_X_Home.Text = "Home";
+            this.btn_X_Home.UseVisualStyleBackColor = true;
+            this.btn_X_Home.Click += new System.EventHandler(this.btn_X_Home_Click);
+            // 
+            // btn_Y_Plus
+            // 
+            this.btn_Y_Plus.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Y_Plus.Location = new System.Drawing.Point(216, 59);
+            this.btn_Y_Plus.Name = "btn_Y_Plus";
+            this.btn_Y_Plus.Size = new System.Drawing.Size(23, 23);
+            this.btn_Y_Plus.TabIndex = 15;
+            this.btn_Y_Plus.Text = "+";
+            this.btn_Y_Plus.UseVisualStyleBackColor = true;
+            this.btn_Y_Plus.Click += new System.EventHandler(this.btn_Y_Plus_Click);
+            // 
+            // btn_X_Plus
+            // 
+            this.btn_X_Plus.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_X_Plus.Location = new System.Drawing.Point(216, 31);
+            this.btn_X_Plus.Name = "btn_X_Plus";
+            this.btn_X_Plus.Size = new System.Drawing.Size(23, 23);
+            this.btn_X_Plus.TabIndex = 14;
+            this.btn_X_Plus.Text = "+";
+            this.btn_X_Plus.UseVisualStyleBackColor = true;
+            this.btn_X_Plus.Click += new System.EventHandler(this.btn_X_Plus_Click);
+            // 
+            // btn_Y_Minus
+            // 
+            this.btn_Y_Minus.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_Y_Minus.Location = new System.Drawing.Point(168, 59);
+            this.btn_Y_Minus.Name = "btn_Y_Minus";
+            this.btn_Y_Minus.Size = new System.Drawing.Size(23, 23);
+            this.btn_Y_Minus.TabIndex = 13;
+            this.btn_Y_Minus.Text = "-";
+            this.btn_Y_Minus.UseVisualStyleBackColor = true;
+            this.btn_Y_Minus.Click += new System.EventHandler(this.btn_Y_Minus_Click);
+            // 
+            // btn_X_Minus
+            // 
+            this.btn_X_Minus.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.btn_X_Minus.Location = new System.Drawing.Point(168, 31);
+            this.btn_X_Minus.Name = "btn_X_Minus";
+            this.btn_X_Minus.Size = new System.Drawing.Size(23, 23);
+            this.btn_X_Minus.TabIndex = 12;
+            this.btn_X_Minus.Text = "-";
+            this.btn_X_Minus.UseVisualStyleBackColor = true;
+            this.btn_X_Minus.Click += new System.EventHandler(this.btn_X_Minus_Click);
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(51, 15);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(50, 12);
+            this.label1.TabIndex = 6;
+            this.label1.Text = "Position";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label2.Location = new System.Drawing.Point(5, 36);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(14, 12);
+            this.label2.TabIndex = 4;
+            this.label2.Text = "X";
+            // 
+            // tb_Current_Y_Speed
+            // 
+            this.tb_Current_Y_Speed.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_Current_Y_Speed.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.tb_Current_Y_Speed.Location = new System.Drawing.Point(108, 60);
+            this.tb_Current_Y_Speed.Name = "tb_Current_Y_Speed";
+            this.tb_Current_Y_Speed.ReadOnly = true;
+            this.tb_Current_Y_Speed.Size = new System.Drawing.Size(55, 21);
+            this.tb_Current_Y_Speed.TabIndex = 11;
+            this.tb_Current_Y_Speed.Text = "0";
+            this.tb_Current_Y_Speed.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("Gulim", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label3.Location = new System.Drawing.Point(5, 64);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(14, 12);
+            this.label3.TabIndex = 5;
+            this.label3.Text = "Y";
+            // 
+            // tb_Current_X_Speed
+            // 
+            this.tb_Current_X_Speed.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_Current_X_Speed.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.tb_Current_X_Speed.Location = new System.Drawing.Point(108, 31);
+            this.tb_Current_X_Speed.Name = "tb_Current_X_Speed";
+            this.tb_Current_X_Speed.ReadOnly = true;
+            this.tb_Current_X_Speed.Size = new System.Drawing.Size(55, 21);
+            this.tb_Current_X_Speed.TabIndex = 10;
+            this.tb_Current_X_Speed.Text = "0";
+            this.tb_Current_X_Speed.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(116, 15);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(41, 12);
+            this.label4.TabIndex = 7;
+            this.label4.Text = "Speed";
+            // 
+            // tb_Current_Y_Pos
+            // 
+            this.tb_Current_Y_Pos.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_Current_Y_Pos.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.tb_Current_Y_Pos.Location = new System.Drawing.Point(46, 60);
+            this.tb_Current_Y_Pos.Name = "tb_Current_Y_Pos";
+            this.tb_Current_Y_Pos.ReadOnly = true;
+            this.tb_Current_Y_Pos.Size = new System.Drawing.Size(57, 21);
+            this.tb_Current_Y_Pos.TabIndex = 9;
+            this.tb_Current_Y_Pos.Text = "0";
+            this.tb_Current_Y_Pos.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // tb_Current_X_Pos
+            // 
+            this.tb_Current_X_Pos.BackColor = System.Drawing.SystemColors.Control;
+            this.tb_Current_X_Pos.Location = new System.Drawing.Point(46, 31);
+            this.tb_Current_X_Pos.Name = "tb_Current_X_Pos";
+            this.tb_Current_X_Pos.ReadOnly = true;
+            this.tb_Current_X_Pos.Size = new System.Drawing.Size(57, 21);
+            this.tb_Current_X_Pos.TabIndex = 8;
+            this.tb_Current_X_Pos.Text = "0";
+            this.tb_Current_X_Pos.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.lb_PortState);
+            this.groupBox1.Controls.Add(this.cbb_Ports);
+            this.groupBox1.Controls.Add(this.lb_Port);
+            this.groupBox1.Controls.Add(this.btn_PortOpen);
+            this.groupBox1.Controls.Add(this.btn_PortClose);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(326, 75);
+            this.groupBox1.TabIndex = 31;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Port";
+            // 
+            // lb_PortState
+            // 
+            this.lb_PortState.AutoSize = true;
+            this.lb_PortState.BackColor = System.Drawing.Color.Red;
+            this.lb_PortState.Location = new System.Drawing.Point(11, 16);
+            this.lb_PortState.Name = "lb_PortState";
+            this.lb_PortState.Size = new System.Drawing.Size(77, 12);
+            this.lb_PortState.TabIndex = 15;
+            this.lb_PortState.Text = "DisConncted";
+            // 
+            // cbb_Ports
+            // 
+            this.cbb_Ports.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbb_Ports.FormattingEnabled = true;
+            this.cbb_Ports.Location = new System.Drawing.Point(41, 31);
+            this.cbb_Ports.Name = "cbb_Ports";
+            this.cbb_Ports.Size = new System.Drawing.Size(121, 20);
+            this.cbb_Ports.TabIndex = 0;
+            // 
+            // lb_Port
+            // 
+            this.lb_Port.AutoSize = true;
+            this.lb_Port.BackColor = System.Drawing.SystemColors.Control;
+            this.lb_Port.Location = new System.Drawing.Point(8, 34);
+            this.lb_Port.Name = "lb_Port";
+            this.lb_Port.Size = new System.Drawing.Size(27, 12);
+            this.lb_Port.TabIndex = 1;
+            this.lb_Port.Text = "Port";
+            // 
+            // btn_PortOpen
+            // 
+            this.btn_PortOpen.Location = new System.Drawing.Point(168, 29);
+            this.btn_PortOpen.Name = "btn_PortOpen";
+            this.btn_PortOpen.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortOpen.TabIndex = 2;
+            this.btn_PortOpen.Text = "Open";
+            this.btn_PortOpen.UseVisualStyleBackColor = true;
+            this.btn_PortOpen.Click += new System.EventHandler(this.btn_PortOpen_Click);
+            // 
+            // btn_PortClose
+            // 
+            this.btn_PortClose.Enabled = false;
+            this.btn_PortClose.Location = new System.Drawing.Point(227, 29);
+            this.btn_PortClose.Name = "btn_PortClose";
+            this.btn_PortClose.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortClose.TabIndex = 3;
+            this.btn_PortClose.Text = "Close";
+            this.btn_PortClose.UseVisualStyleBackColor = true;
+            this.btn_PortClose.Click += new System.EventHandler(this.btn_PortClose_Click);
+            // 
+            // groupBox16
+            // 
+            this.groupBox16.Controls.Add(this.btn_Angle_Stop);
+            this.groupBox16.Controls.Add(this.btn_Angle_Run);
+            this.groupBox16.Controls.Add(this.nud_Angle);
+            this.groupBox16.Controls.Add(this.label5);
+            this.groupBox16.Location = new System.Drawing.Point(401, 302);
+            this.groupBox16.Name = "groupBox16";
+            this.groupBox16.Size = new System.Drawing.Size(200, 100);
+            this.groupBox16.TabIndex = 40;
+            this.groupBox16.TabStop = false;
+            this.groupBox16.Text = "Angle Setting";
+            // 
+            // btn_Angle_Stop
+            // 
+            this.btn_Angle_Stop.Location = new System.Drawing.Point(110, 54);
+            this.btn_Angle_Stop.Name = "btn_Angle_Stop";
+            this.btn_Angle_Stop.Size = new System.Drawing.Size(75, 23);
+            this.btn_Angle_Stop.TabIndex = 27;
+            this.btn_Angle_Stop.Text = "Stop";
+            this.btn_Angle_Stop.UseVisualStyleBackColor = true;
+            // 
+            // btn_Angle_Run
+            // 
+            this.btn_Angle_Run.Location = new System.Drawing.Point(9, 54);
+            this.btn_Angle_Run.Name = "btn_Angle_Run";
+            this.btn_Angle_Run.Size = new System.Drawing.Size(75, 23);
+            this.btn_Angle_Run.TabIndex = 26;
+            this.btn_Angle_Run.Text = "Run";
+            this.btn_Angle_Run.UseVisualStyleBackColor = true;
+            // 
+            // nud_Angle
+            // 
+            this.nud_Angle.Location = new System.Drawing.Point(62, 21);
+            this.nud_Angle.Maximum = new decimal(new int[] {
+            1000,
+            0,
+            0,
+            0});
+            this.nud_Angle.Minimum = new decimal(new int[] {
+            1000,
+            0,
+            0,
+            -2147483648});
+            this.nud_Angle.Name = "nud_Angle";
+            this.nud_Angle.Size = new System.Drawing.Size(78, 21);
+            this.nud_Angle.TabIndex = 25;
+            this.nud_Angle.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Font = new System.Drawing.Font("Gulim", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label5.Location = new System.Drawing.Point(6, 25);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(48, 15);
+            this.label5.TabIndex = 7;
+            this.label5.Text = "Angle";
+            // 
+            // Autonics_PMC_2HS_Form
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(625, 418);
+            this.Controls.Add(this.groupBox15);
+            this.Controls.Add(this.groupBox14);
+            this.Controls.Add(this.groupBox11);
+            this.Controls.Add(this.groupBox4);
+            this.Controls.Add(this.groupBox6);
+            this.Controls.Add(this.groupBox5);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.groupBox16);
+            this.Name = "Autonics_PMC_2HS_Form";
+            this.Text = "Autonics_PMC_2HS";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Autonics_PMC_2HS_Form_FormClosing);
+            this.groupBox15.ResumeLayout(false);
+            this.groupBox15.PerformLayout();
+            this.groupBox14.ResumeLayout(false);
+            this.groupBox14.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Reg)).EndInit();
+            this.groupBox11.ResumeLayout(false);
+            this.groupBox12.ResumeLayout(false);
+            this.groupBox12.PerformLayout();
+            this.groupBox13.ResumeLayout(false);
+            this.groupBox13.PerformLayout();
+            this.groupBox4.ResumeLayout(false);
+            this.groupBox7.ResumeLayout(false);
+            this.groupBox7.PerformLayout();
+            this.groupBox10.ResumeLayout(false);
+            this.groupBox10.PerformLayout();
+            this.groupBox6.ResumeLayout(false);
+            this.groupBox9.ResumeLayout(false);
+            this.groupBox9.PerformLayout();
+            this.groupBox8.ResumeLayout(false);
+            this.groupBox8.PerformLayout();
+            this.groupBox5.ResumeLayout(false);
+            this.groupBox5.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Y_Speed)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_X_Speed)).EndInit();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox16.ResumeLayout(false);
+            this.groupBox16.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_Angle)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox15;
+        private System.Windows.Forms.RadioButton rb_Speed_3;
+        private System.Windows.Forms.RadioButton rb_Speed_5;
+        private System.Windows.Forms.RadioButton rb_Speed_2;
+        private System.Windows.Forms.RadioButton rb_Speed_4;
+        private System.Windows.Forms.RadioButton rb_Speed_1;
+        private System.Windows.Forms.GroupBox groupBox14;
+        private System.Windows.Forms.CheckBox cb_Proc_Y;
+        private System.Windows.Forms.CheckBox cb_Proc_X;
+        private System.Windows.Forms.Button btn_Proc_Stop;
+        private System.Windows.Forms.Button btn_Proc_Step;
+        private System.Windows.Forms.Button btn_Proc_Run;
+        private System.Windows.Forms.Label label42;
+        private System.Windows.Forms.NumericUpDown nud_Reg;
+        private System.Windows.Forms.GroupBox groupBox11;
+        private System.Windows.Forms.GroupBox groupBox12;
+        private System.Windows.Forms.Label lb_CN5_Out0;
+        private System.Windows.Forms.GroupBox groupBox13;
+        private System.Windows.Forms.Label lb_CN5_Limit_P;
+        private System.Windows.Forms.Label lb_CN5_Limit_M;
+        private System.Windows.Forms.Label lb_CN5_EMG;
+        private System.Windows.Forms.Label lb_CN5_Stop2;
+        private System.Windows.Forms.Label lb_CN5_Stop1;
+        private System.Windows.Forms.Label lb_CN5_Stop0;
+        private System.Windows.Forms.Label lb_CN5_Inpos;
+        private System.Windows.Forms.Label lb_CN5_Alarm;
+        private System.Windows.Forms.GroupBox groupBox4;
+        private System.Windows.Forms.GroupBox groupBox7;
+        private System.Windows.Forms.Label lb_CN3_X_Drive;
+        private System.Windows.Forms.Label lb_CN3_Y_Error;
+        private System.Windows.Forms.Label lb_CN3_Y_Drive;
+        private System.Windows.Forms.Label lb_CN3_X_Error;
+        private System.Windows.Forms.GroupBox groupBox10;
+        private System.Windows.Forms.Label lb_CN3_RegSL4;
+        private System.Windows.Forms.Label lb_CN3_Mode1;
+        private System.Windows.Forms.Label lb_CN3_RegSL5;
+        private System.Windows.Forms.Label lb_CN3_Mode0;
+        private System.Windows.Forms.Label lb_CN3_RegSL0;
+        private System.Windows.Forms.Label lb_CN3_RegSL3;
+        private System.Windows.Forms.Label lb_CN3_RegSL1;
+        private System.Windows.Forms.Label lb_CN3_RegSL2;
+        private System.Windows.Forms.Label lb_CN3_Home;
+        private System.Windows.Forms.Label lb_CN3_Y;
+        private System.Windows.Forms.Label lb_CN3_Strobe;
+        private System.Windows.Forms.Label lb_CN3_X;
+        private System.Windows.Forms.GroupBox groupBox6;
+        private System.Windows.Forms.GroupBox groupBox9;
+        private System.Windows.Forms.Label lb_CN4_Out0;
+        private System.Windows.Forms.GroupBox groupBox8;
+        private System.Windows.Forms.Label lb_CN4_Limit_P;
+        private System.Windows.Forms.Label lb_CN4_Limit_M;
+        private System.Windows.Forms.Label lb_CN4_EMG;
+        private System.Windows.Forms.Label lb_CN4_Stop2;
+        private System.Windows.Forms.Label lb_CN4_Stop1;
+        private System.Windows.Forms.Label lb_CN4_Stop0;
+        private System.Windows.Forms.Label lb_CN4_Inpos;
+        private System.Windows.Forms.Label lb_CN4_Alarm;
+        private System.Windows.Forms.GroupBox groupBox5;
+        private System.Windows.Forms.Button btn_Y_Setting_Apply;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.Button btn_X_Setting_Apply;
+        private System.Windows.Forms.Button btn_Y_Preset_Move;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.NumericUpDown nud_Y_Speed;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.NumericUpDown nud_X_Speed;
+        private System.Windows.Forms.Button btn_X_Preset_Move;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox tb_Y_Move;
+        private System.Windows.Forms.TextBox tb_X_Move;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Button btn_Cur_Y_Pos_Clr;
+        private System.Windows.Forms.Button btn_Cur_X_Pos_Clr;
+        private System.Windows.Forms.Button btn_Y_Home_Stop;
+        private System.Windows.Forms.Button btn_X_Home_Stop;
+        private System.Windows.Forms.RadioButton rb_Motor_Continue;
+        private System.Windows.Forms.RadioButton rb_Motor_Scan;
+        private System.Windows.Forms.Button btn_Y_Stop;
+        private System.Windows.Forms.Button btn_X_Stop;
+        private System.Windows.Forms.Button btn_Y_Home;
+        private System.Windows.Forms.Button btn_X_Home;
+        private System.Windows.Forms.Button btn_Y_Plus;
+        private System.Windows.Forms.Button btn_X_Plus;
+        private System.Windows.Forms.Button btn_Y_Minus;
+        private System.Windows.Forms.Button btn_X_Minus;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox tb_Current_Y_Speed;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.TextBox tb_Current_X_Speed;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox tb_Current_Y_Pos;
+        private System.Windows.Forms.TextBox tb_Current_X_Pos;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label lb_PortState;
+        private System.Windows.Forms.ComboBox cbb_Ports;
+        private System.Windows.Forms.Label lb_Port;
+        private System.Windows.Forms.Button btn_PortOpen;
+        private System.Windows.Forms.Button btn_PortClose;
+        private System.Windows.Forms.GroupBox groupBox16;
+        private System.Windows.Forms.Button btn_Angle_Stop;
+        private System.Windows.Forms.Button btn_Angle_Run;
+        private System.Windows.Forms.NumericUpDown nud_Angle;
+        private System.Windows.Forms.Label label5;
+    }
+}
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.cs b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.cs
new file mode 100644
index 0000000..c2e70ee
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.cs
@@ -0,0 +1,322 @@
+癤퓎sing DIT.Framework.Module;
+
+using System.Windows.Forms;
+using System.Threading;
+using System;
+using System.Drawing;
+
+namespace DLL_Test_Program
+{
+    delegate void UpdateUIDelegate();
+    public partial class Autonics_PMC_2HS_Form : Form
+    {
+        public Autonics_PMC_2HS_Form()
+        {
+            InitializeComponent();
+            Port_Set();
+        }
+
+        #region Member
+        Autonics_PMC_2HS autonics;
+        Thread UpdateUITh;
+        Thread UpdateDataTh;
+        #endregion
+
+        #region Thread
+        private void ThreadInit()
+        {
+            UpdateUITh = new Thread(Update_UI);
+            UpdateDataTh = new Thread(Update_Data);
+        }
+
+        private void ThreadStart()
+        {
+            UpdateUITh.Start();
+            UpdateDataTh.Start();
+        }
+
+        private void ThreadEnd()
+        {
+            UpdateUITh.Abort();
+            UpdateDataTh.Abort();
+        }
+
+        private void Update_UI()
+        {
+            while (autonics.isOpen)
+            {
+                lock (this)
+                {
+                    Thread.Sleep(10);
+
+                    try
+                    {
+                        if (InvokeRequired)
+                        {
+                            BeginInvoke(new UpdateUIDelegate(Update_UI));
+                            return;
+                        }
+
+                        ChangeXStatus();
+                        ChangeYStatus();
+                        ChangeParallelStatus();
+
+                        ChangeCurPosStatus();
+                        ChageCurSpdStatus();
+
+                        lb_PortState.BackColor = autonics.isOpen ? Color.Lime : Color.Red;
+                        lb_PortState.Text = autonics.isOpen ? "Connected" : "Disconnect";
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                }
+            }
+        }
+
+        public void Update_Data()
+        {
+            while (autonics.isOpen)
+            {
+                Thread.Sleep(10);
+                lock (this)
+                {
+                    try
+                    {
+                        autonics.Request_State_X();
+                        autonics.Request_State_Y();
+                        autonics.Request_Error_X();
+                        autonics.Request_Error_Y();
+                        autonics.Request_Pos();
+                        autonics.Request_Speed();
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                }
+            }
+        }
+
+        public void ChangeXStatus()
+        {
+            lb_CN4_Out0.BackColor = autonics.Status_X.OUT0 ? Color.Lime : Color.Red;
+            lb_CN4_Limit_P.BackColor = autonics.Status_X.Lmt_Plus ? Color.Lime : Color.Red;
+            lb_CN4_Limit_M.BackColor = autonics.Status_X.Lmt_Minus ? Color.Lime : Color.Red;
+            lb_CN4_EMG.BackColor = autonics.Status_X.EMG ? Color.Lime : Color.Red;
+            lb_CN4_Stop2.BackColor = autonics.Status_X.Stop2 ? Color.Lime : Color.Red;
+            lb_CN4_Stop1.BackColor = autonics.Status_X.Stop1 ? Color.Lime : Color.Red;
+            lb_CN4_Stop0.BackColor = autonics.Status_X.Stop0 ? Color.Lime : Color.Red;
+            lb_CN4_Inpos.BackColor = autonics.Status_X.Inpos ? Color.Lime : Color.Red;
+            lb_CN4_Alarm.BackColor = autonics.Status_X.Alarm ? Color.Lime : Color.Red;
+        }
+
+        public void ChangeYStatus()
+        {
+            lb_CN5_Out0.BackColor = autonics.Status_Y.OUT0 ? Color.Lime : Color.Red;
+            lb_CN5_Limit_P.BackColor = autonics.Status_Y.Lmt_Plus ? Color.Lime : Color.Red;
+            lb_CN5_Limit_M.BackColor = autonics.Status_Y.Lmt_Minus ? Color.Lime : Color.Red;
+            lb_CN5_EMG.BackColor = autonics.Status_Y.EMG ? Color.Lime : Color.Red;
+            lb_CN5_Stop2.BackColor = autonics.Status_Y.Stop2 ? Color.Lime : Color.Red;
+            lb_CN5_Stop1.BackColor = autonics.Status_Y.Stop1 ? Color.Lime : Color.Red;
+            lb_CN5_Stop0.BackColor = autonics.Status_Y.Stop0 ? Color.Lime : Color.Red;
+            lb_CN5_Inpos.BackColor = autonics.Status_Y.Inpos ? Color.Lime : Color.Red;
+            lb_CN5_Alarm.BackColor = autonics.Status_Y.Alarm ? Color.Lime : Color.Red;
+        }
+
+        public void ChangeParallelStatus()
+        {
+            lb_CN3_Home.BackColor = autonics.Status_Parallel.Home ? Color.Lime : Color.Red;
+            lb_CN3_Strobe.BackColor = autonics.Status_Parallel.Strobe ? Color.Lime : Color.Red;
+            lb_CN3_X.BackColor = autonics.Status_Parallel.X ? Color.Lime : Color.Red;
+            lb_CN3_Y.BackColor = autonics.Status_Parallel.Y ? Color.Lime : Color.Red;
+            lb_CN3_RegSL0.BackColor = autonics.Status_Parallel.RegSL0 ? Color.Lime : Color.Red;
+            lb_CN3_RegSL1.BackColor = autonics.Status_Parallel.RegSL1 ? Color.Lime : Color.Red;
+            lb_CN3_RegSL2.BackColor = autonics.Status_Parallel.RegSL2 ? Color.Lime : Color.Red;
+            lb_CN3_RegSL3.BackColor = autonics.Status_Parallel.RegSL3 ? Color.Lime : Color.Red;
+            lb_CN3_RegSL4.BackColor = autonics.Status_Parallel.RegSL4 ? Color.Lime : Color.Red;
+            lb_CN3_RegSL5.BackColor = autonics.Status_Parallel.RegSL5 ? Color.Lime : Color.Red;
+            lb_CN3_Mode0.BackColor = autonics.Status_Parallel.Mode0 ? Color.Lime : Color.Red;
+            lb_CN3_Mode1.BackColor = autonics.Status_Parallel.Mode1 ? Color.Lime : Color.Red;
+            lb_CN3_X_Drive.BackColor = autonics.Status_X.DRIVE ? Color.Lime : Color.Red;
+            lb_CN3_Y_Drive.BackColor = autonics.Status_Y.DRIVE ? Color.Lime : Color.Red;
+            lb_CN3_X_Error.BackColor = autonics.Status_X.ERROR ? Color.Lime : Color.Red;
+            lb_CN3_Y_Error.BackColor = autonics.Status_Y.ERROR ? Color.Lime : Color.Red;
+        }
+
+        public void ChangeCurPosStatus()
+        {
+            tb_Current_X_Pos.Text = autonics.PosX.ToString();
+            tb_Current_Y_Pos.Text = autonics.PosY.ToString();
+        }
+
+        public void ChageCurSpdStatus()
+        {
+            tb_Current_X_Speed.Text = autonics.SpeedX.ToString();
+            tb_Current_Y_Speed.Text = autonics.SpeedY.ToString();
+        }
+        #endregion
+
+        #region Function
+        /// <summary>
+        /// Serial Port �꽕�젙
+        /// </summary>
+        private void Port_Set()
+        {
+            string[] ports = SerialModule.GetPorts();
+
+            if (ports == null)
+                return;
+
+            cbb_Ports.Items.Clear();
+
+            foreach (string port in ports)
+                cbb_Ports.Items.Add(port);
+        }
+
+        #endregion
+
+        #region Button Event
+        private void btn_PortOpen_Click(object sender, System.EventArgs e)
+        {
+            string port = cbb_Ports.SelectedItem.ToString();
+            autonics = new Autonics_PMC_2HS(port, 9600);
+            autonics.Open();
+            ThreadInit();
+            ThreadStart();
+        }
+
+        private void btn_PortClose_Click(object sender, EventArgs e)
+        {
+            autonics.Close();
+        }
+
+        private void btn_Cur_X_Pos_Clr_Click(object sender, EventArgs e)
+        {
+            autonics.X_Pos_Clear();
+        }
+
+        private void btn_Cur_Y_Pos_Clr_Click(object sender, EventArgs e)
+        {
+            autonics.Y_Pos_Clear();
+        }
+
+        private void btn_X_Home_Click(object sender, EventArgs e)
+        {
+            autonics.Home_X_Stop();
+        }
+
+        private void btn_Y_Home_Click(object sender, EventArgs e)
+        {
+            autonics.Home_Y();
+        }
+        
+        private void btn_X_Stop_Click(object sender, EventArgs e)
+        {
+            autonics.Home_X_Stop();
+        }
+
+        private void btn_Y_Stop_Click(object sender, EventArgs e)
+        {
+            autonics.Home_Y_Stop();
+        }
+
+        private void btn_X_Plus_Click(object sender, EventArgs e)
+        {
+            if (!rb_Motor_Scan.Checked)
+            {
+                autonics.Move_X_Plus();
+            }
+        }
+
+        private void btn_Y_Plus_Click(object sender, EventArgs e)
+        {
+            if (!rb_Motor_Scan.Checked)
+            {
+                autonics.Move_Y_Plus();
+            }
+        }
+
+        private void btn_X_Minus_Click(object sender, EventArgs e)
+        {
+            if (!rb_Motor_Scan.Checked)
+            {
+                autonics.Move_X_Minus();
+            }
+        }
+
+        private void btn_Y_Minus_Click(object sender, EventArgs e)
+        {
+            if (!rb_Motor_Scan.Checked)
+            {
+                autonics.Move_Y_Minus();
+            }
+        }
+
+        private void btn_X_Home_Stop_Click(object sender, EventArgs e)
+        {
+            autonics.Home_X();
+        }
+        
+        private void btn_Y_Home_Stop_Click(object sender, EventArgs e)
+        {
+            autonics.Home_Y_Stop();
+        }
+
+        private void btn_X_Setting_Apply_Click(object sender, EventArgs e)
+        {
+            int value = (int)nud_X_Speed.Value;
+            autonics.Set_Speed_X(value);
+        }
+
+        private void btn_Y_Setting_Apply_Click(object sender, EventArgs e)
+        {
+            int value = int.Parse(tb_Y_Move.Text);
+
+            autonics.Move_Y_ABS(value);
+        }
+        
+        private void btn_X_Preset_Move_Click(object sender, EventArgs e)
+        {
+            int value = int.Parse(tb_X_Move.Text);
+
+            autonics.Move_X_ABS(value);
+        }
+
+        private void btn_Y_Preset_Move_Click(object sender, EventArgs e)
+        {
+            int value = (int)nud_Y_Speed.Value;
+            autonics.Set_Speed_Y(value);
+        }
+
+        private void rb_Speed_CheckedChanged(object sender, EventArgs e)
+        {
+            RadioButton rb = (RadioButton)sender;
+
+            switch (int.Parse(rb.Text))
+            {
+                case 1:
+                case 2:
+                case 3:
+                case 4:
+                    autonics.Speed_Setting(int.Parse(rb.Text));
+                    break;
+                case 5:
+                    autonics.Speed_Setting(int.Parse(rb.Text));
+                    autonics.Speed_Setting((int)nud_X_Speed.Value, (int)nud_Y_Speed.Value);
+                    break;
+            }
+        }
+        #endregion
+
+        #region Form Event
+        private void Autonics_PMC_2HS_Form_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (autonics == null) return;
+
+            autonics.Close();
+        }
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.resx b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Autonics_PMC_2HS_Form.resx
@@ -0,0 +1,120 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/DLL_Test_Program.csproj b/DLL_Test_Program/DLL_Test_Program/DLL_Test_Program.csproj
new file mode 100644
index 0000000..f5cb44a
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/DLL_Test_Program.csproj
@@ -0,0 +1,126 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{E670692F-CF4C-4948-83BC-53B7EC6E6B2B}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>DLL_Test_Program</RootNamespace>
+    <AssemblyName>DLL_Test_Program</AssemblyName>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="log4net">
+      <HintPath>dll\log4net.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Autonics_PMC_2HS_Form.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Autonics_PMC_2HS_Form.Designer.cs">
+      <DependentUpon>Autonics_PMC_2HS_Form.cs</DependentUpon>
+    </Compile>
+    <Compile Include="EnergyMax_PowerMeter_Form.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="EnergyMax_PowerMeter_Form.Designer.cs">
+      <DependentUpon>EnergyMax_PowerMeter_Form.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Ophir_StarBright_Form.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Ophir_StarBright_Form.Designer.cs">
+      <DependentUpon>Ophir_StarBright_Form.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Test_Form.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Test_Form.Designer.cs">
+      <DependentUpon>Test_Form.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Autonics_PMC_2HS_Form.resx">
+      <DependentUpon>Autonics_PMC_2HS_Form.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="EnergyMax_PowerMeter_Form.resx">
+      <DependentUpon>EnergyMax_PowerMeter_Form.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Ophir_StarBright_Form.resx">
+      <DependentUpon>Ophir_StarBright_Form.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Test_Form.resx">
+      <DependentUpon>Test_Form.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\DIT.Framework.Module\DIT.Framework.Module\DIT.Framework.Module.csproj">
+      <Project>{7D46C166-1691-4AD7-BC95-4F505EF0AD60}</Project>
+      <Name>DIT.Framework.Module</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.Designer.cs b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.Designer.cs
new file mode 100644
index 0000000..4e7115f
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.Designer.cs
@@ -0,0 +1,192 @@
+癤퓆amespace DLL_Test_Program
+{
+    partial class EnergyMax_PowerMeter_Form
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.lb_PortState = new System.Windows.Forms.Label();
+            this.cbb_Ports = new System.Windows.Forms.ComboBox();
+            this.lb_Port = new System.Windows.Forms.Label();
+            this.btn_PortOpen = new System.Windows.Forms.Button();
+            this.btn_PortClose = new System.Windows.Forms.Button();
+            this.btn_ReadEnergy = new System.Windows.Forms.Button();
+            this.label2 = new System.Windows.Forms.Label();
+            this.tb_Energy = new System.Windows.Forms.TextBox();
+            this.btn_Initial = new System.Windows.Forms.Button();
+            this.button2 = new System.Windows.Forms.Button();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.lb_PortState);
+            this.groupBox1.Controls.Add(this.cbb_Ports);
+            this.groupBox1.Controls.Add(this.lb_Port);
+            this.groupBox1.Controls.Add(this.btn_PortOpen);
+            this.groupBox1.Controls.Add(this.btn_PortClose);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(299, 75);
+            this.groupBox1.TabIndex = 32;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Port";
+            // 
+            // lb_PortState
+            // 
+            this.lb_PortState.AutoSize = true;
+            this.lb_PortState.BackColor = System.Drawing.Color.Red;
+            this.lb_PortState.Location = new System.Drawing.Point(11, 16);
+            this.lb_PortState.Name = "lb_PortState";
+            this.lb_PortState.Size = new System.Drawing.Size(77, 12);
+            this.lb_PortState.TabIndex = 15;
+            this.lb_PortState.Text = "DisConncted";
+            // 
+            // cbb_Ports
+            // 
+            this.cbb_Ports.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbb_Ports.FormattingEnabled = true;
+            this.cbb_Ports.Location = new System.Drawing.Point(41, 31);
+            this.cbb_Ports.Name = "cbb_Ports";
+            this.cbb_Ports.Size = new System.Drawing.Size(121, 20);
+            this.cbb_Ports.TabIndex = 0;
+            // 
+            // lb_Port
+            // 
+            this.lb_Port.AutoSize = true;
+            this.lb_Port.BackColor = System.Drawing.SystemColors.Control;
+            this.lb_Port.Location = new System.Drawing.Point(8, 34);
+            this.lb_Port.Name = "lb_Port";
+            this.lb_Port.Size = new System.Drawing.Size(27, 12);
+            this.lb_Port.TabIndex = 1;
+            this.lb_Port.Text = "Port";
+            // 
+            // btn_PortOpen
+            // 
+            this.btn_PortOpen.Location = new System.Drawing.Point(168, 29);
+            this.btn_PortOpen.Name = "btn_PortOpen";
+            this.btn_PortOpen.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortOpen.TabIndex = 2;
+            this.btn_PortOpen.Text = "Open";
+            this.btn_PortOpen.UseVisualStyleBackColor = true;
+            this.btn_PortOpen.Click += new System.EventHandler(this.btn_PortOpen_Click);
+            // 
+            // btn_PortClose
+            // 
+            this.btn_PortClose.Enabled = false;
+            this.btn_PortClose.Location = new System.Drawing.Point(227, 29);
+            this.btn_PortClose.Name = "btn_PortClose";
+            this.btn_PortClose.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortClose.TabIndex = 3;
+            this.btn_PortClose.Text = "Close";
+            this.btn_PortClose.UseVisualStyleBackColor = true;
+            this.btn_PortClose.Click += new System.EventHandler(this.btn_PortClose_Click);
+            // 
+            // btn_ReadEnergy
+            // 
+            this.btn_ReadEnergy.Location = new System.Drawing.Point(197, 99);
+            this.btn_ReadEnergy.Name = "btn_ReadEnergy";
+            this.btn_ReadEnergy.Size = new System.Drawing.Size(109, 23);
+            this.btn_ReadEnergy.TabIndex = 43;
+            this.btn_ReadEnergy.Text = "Read Energy";
+            this.btn_ReadEnergy.UseVisualStyleBackColor = true;
+            this.btn_ReadEnergy.Click += new System.EventHandler(this.btn_ReadEnergy_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(20, 105);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(45, 12);
+            this.label2.TabIndex = 42;
+            this.label2.Text = "Energy";
+            // 
+            // tb_Energy
+            // 
+            this.tb_Energy.Location = new System.Drawing.Point(82, 101);
+            this.tb_Energy.Name = "tb_Energy";
+            this.tb_Energy.ReadOnly = true;
+            this.tb_Energy.Size = new System.Drawing.Size(100, 21);
+            this.tb_Energy.TabIndex = 41;
+            // 
+            // btn_Initial
+            // 
+            this.btn_Initial.Location = new System.Drawing.Point(22, 279);
+            this.btn_Initial.Name = "btn_Initial";
+            this.btn_Initial.Size = new System.Drawing.Size(78, 23);
+            this.btn_Initial.TabIndex = 44;
+            this.btn_Initial.Text = "Init";
+            this.btn_Initial.UseVisualStyleBackColor = true;
+            this.btn_Initial.Click += new System.EventHandler(this.btn_Initial_Click);
+            // 
+            // button2
+            // 
+            this.button2.Enabled = false;
+            this.button2.Location = new System.Drawing.Point(258, 279);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(53, 23);
+            this.button2.TabIndex = 45;
+            this.button2.Text = "Close";
+            this.button2.UseVisualStyleBackColor = true;
+            // 
+            // EnergyMax_PowerMeter_Form
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(351, 314);
+            this.Controls.Add(this.btn_Initial);
+            this.Controls.Add(this.button2);
+            this.Controls.Add(this.btn_ReadEnergy);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.tb_Energy);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "EnergyMax_PowerMeter_Form";
+            this.Text = "EnergyMax_PowerMeter_Form";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.EnergyMax_PowerMeter_Form_FormClosing);
+            this.Load += new System.EventHandler(this.EnergyMax_PowerMeter_Form_Load);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label lb_PortState;
+        private System.Windows.Forms.ComboBox cbb_Ports;
+        private System.Windows.Forms.Label lb_Port;
+        private System.Windows.Forms.Button btn_PortOpen;
+        private System.Windows.Forms.Button btn_PortClose;
+        private System.Windows.Forms.Button btn_ReadEnergy;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox tb_Energy;
+        private System.Windows.Forms.Button btn_Initial;
+        private System.Windows.Forms.Button button2;
+    }
+}
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.cs b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.cs
new file mode 100644
index 0000000..0d5bc21
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.cs
@@ -0,0 +1,166 @@
+癤퓎sing DIT.Framework.Module._01_SerialModules;
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO.Ports;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Windows.Forms;
+
+namespace DLL_Test_Program
+{
+    public partial class EnergyMax_PowerMeter_Form : Form
+    {
+        #region Define
+
+        #endregion
+
+        #region Field
+        Thread m_DisplayThread;
+        Thread m_DataThread;
+        private EnergyMax_PowerMeter m_powermeter;
+        #endregion
+
+        #region Property
+        public EnergyMax_PowerMeter PowerMeter
+        {
+            get { return m_powermeter; }
+            set { m_powermeter = value; }
+        }
+        #endregion
+
+        #region Constructor
+        public EnergyMax_PowerMeter_Form()
+        {
+            InitializeComponent();
+            this.PowerMeter = new EnergyMax_PowerMeter();
+            this.cbb_Ports.DataSource = SerialPort.GetPortNames();
+
+            this.ThreadInit();
+        }
+        #endregion
+
+        #region Thread
+        private void ThreadInit()
+        {
+            m_DisplayThread = new Thread(UpdateDisplay);
+            m_DataThread = new Thread(UpdateData);
+        }
+
+        private void ThreadStart()
+        {
+            m_DisplayThread.Start();
+            m_DataThread.Start();
+        }
+
+        private void ThreadEnd()
+        {
+            m_DisplayThread.Abort();
+            m_DataThread.Abort();
+        }
+        #endregion
+
+        #region Method
+        private void UpdateDisplay()
+        {
+            while (this.Visible)
+            {
+                lock (this)
+                {
+                    Thread.Sleep(100);
+                    Application.DoEvents();
+
+                    if (InvokeRequired)
+                    {
+                        BeginInvoke(new UpdateUIDelegate(UpdateDisplay));
+                        return;
+                    }
+
+                    try
+                    {
+                        if (this.PowerMeter.SerialPort.IsOpen)
+                        {
+                            lb_PortState.Text = "Connected";
+                            lb_PortState.BackColor = Color.Lime;
+                            btn_PortClose.Enabled = true;
+                            btn_PortOpen.Enabled = false;
+                        }
+                        else
+                        {
+                            lb_PortState.Text = "Disconnect";
+                            lb_PortState.BackColor = Color.Red;
+                            btn_PortClose.Enabled = false;
+                            btn_PortOpen.Enabled = true;
+                        }
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                }
+            }
+        }
+
+        private void UpdateData()
+        {
+            // Check..
+        }
+
+        #endregion
+
+        #region Event
+        private void btn_PortOpen_Click(object sender, EventArgs e)
+        {
+            string port;
+            int timeout;
+
+            if (this.cbb_Ports.Text == "") return;
+
+            port = this.cbb_Ports.Text;
+            timeout = 500;
+
+            if (this.PowerMeter.Connect(port, timeout) == false)
+            {
+                MessageBox.Show("Connect Fail...");
+            }
+        }
+
+        private void btn_PortClose_Click(object sender, EventArgs e)
+        {
+            this.PowerMeter.DisConnect();
+        }
+
+        private void btn_ReadEnergy_Click(object sender, EventArgs e)
+        {
+            if (this.PowerMeter.SendWaitReceive("READ?") == false)
+            {
+                MessageBox.Show("Send Fail...");
+            }
+
+            this.tb_Energy.Text = this.PowerMeter.RecvData;
+        }
+
+        private void btn_Initial_Click(object sender, EventArgs e)
+        {
+            if (this.PowerMeter.Send("*RST") == false)
+            {
+                MessageBox.Show("Send Fail...");
+            }
+        }
+
+        private void EnergyMax_PowerMeter_Form_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            this.ThreadEnd();
+        }
+
+        private void EnergyMax_PowerMeter_Form_Load(object sender, EventArgs e)
+        {
+            this.ThreadStart();
+        }
+        #endregion
+    }
+}
diff --git a/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.resx b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/EnergyMax_PowerMeter_Form.resx
@@ -0,0 +1,120 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.Designer.cs b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.Designer.cs
new file mode 100644
index 0000000..aef1d7b
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.Designer.cs
@@ -0,0 +1,304 @@
+癤퓆amespace DLL_Test_Program
+{
+    partial class Ophir_StarBright_Form
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.lb_PortState = new System.Windows.Forms.Label();
+            this.cbb_Ports = new System.Windows.Forms.ComboBox();
+            this.lb_Port = new System.Windows.Forms.Label();
+            this.btn_PortOpen = new System.Windows.Forms.Button();
+            this.btn_PortClose = new System.Windows.Forms.Button();
+            this.cb_ThreadStart = new System.Windows.Forms.CheckBox();
+            this.tb_Flag = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.tb_Energy = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.tb_Count = new System.Windows.Forms.TextBox();
+            this.btn_ReadEnergy = new System.Windows.Forms.Button();
+            this.btn_ReadFlag = new System.Windows.Forms.Button();
+            this.label4 = new System.Windows.Forms.Label();
+            this.nud_CheckTime = new System.Windows.Forms.NumericUpDown();
+            this.btn_SetEnergy = new System.Windows.Forms.Button();
+            this.btn_SetPower = new System.Windows.Forms.Button();
+            this.groupBox1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_CheckTime)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.lb_PortState);
+            this.groupBox1.Controls.Add(this.cbb_Ports);
+            this.groupBox1.Controls.Add(this.lb_Port);
+            this.groupBox1.Controls.Add(this.btn_PortOpen);
+            this.groupBox1.Controls.Add(this.btn_PortClose);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(294, 75);
+            this.groupBox1.TabIndex = 32;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Port";
+            // 
+            // lb_PortState
+            // 
+            this.lb_PortState.AutoSize = true;
+            this.lb_PortState.BackColor = System.Drawing.Color.Red;
+            this.lb_PortState.Location = new System.Drawing.Point(11, 16);
+            this.lb_PortState.Name = "lb_PortState";
+            this.lb_PortState.Size = new System.Drawing.Size(77, 12);
+            this.lb_PortState.TabIndex = 15;
+            this.lb_PortState.Text = "DisConncted";
+            // 
+            // cbb_Ports
+            // 
+            this.cbb_Ports.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbb_Ports.FormattingEnabled = true;
+            this.cbb_Ports.Location = new System.Drawing.Point(41, 31);
+            this.cbb_Ports.Name = "cbb_Ports";
+            this.cbb_Ports.Size = new System.Drawing.Size(121, 20);
+            this.cbb_Ports.TabIndex = 0;
+            // 
+            // lb_Port
+            // 
+            this.lb_Port.AutoSize = true;
+            this.lb_Port.BackColor = System.Drawing.SystemColors.Control;
+            this.lb_Port.Location = new System.Drawing.Point(8, 34);
+            this.lb_Port.Name = "lb_Port";
+            this.lb_Port.Size = new System.Drawing.Size(27, 12);
+            this.lb_Port.TabIndex = 1;
+            this.lb_Port.Text = "Port";
+            // 
+            // btn_PortOpen
+            // 
+            this.btn_PortOpen.Location = new System.Drawing.Point(168, 29);
+            this.btn_PortOpen.Name = "btn_PortOpen";
+            this.btn_PortOpen.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortOpen.TabIndex = 2;
+            this.btn_PortOpen.Text = "Open";
+            this.btn_PortOpen.UseVisualStyleBackColor = true;
+            this.btn_PortOpen.Click += new System.EventHandler(this.btn_PortOpen_Click);
+            // 
+            // btn_PortClose
+            // 
+            this.btn_PortClose.Enabled = false;
+            this.btn_PortClose.Location = new System.Drawing.Point(227, 29);
+            this.btn_PortClose.Name = "btn_PortClose";
+            this.btn_PortClose.Size = new System.Drawing.Size(53, 23);
+            this.btn_PortClose.TabIndex = 3;
+            this.btn_PortClose.Text = "Close";
+            this.btn_PortClose.UseVisualStyleBackColor = true;
+            this.btn_PortClose.Click += new System.EventHandler(this.btn_PortClose_Click);
+            // 
+            // cb_ThreadStart
+            // 
+            this.cb_ThreadStart.Appearance = System.Windows.Forms.Appearance.Button;
+            this.cb_ThreadStart.AutoSize = true;
+            this.cb_ThreadStart.Location = new System.Drawing.Point(189, 204);
+            this.cb_ThreadStart.Name = "cb_ThreadStart";
+            this.cb_ThreadStart.Size = new System.Drawing.Size(109, 22);
+            this.cb_ThreadStart.TabIndex = 33;
+            this.cb_ThreadStart.Text = "Auto Check Start";
+            this.cb_ThreadStart.UseVisualStyleBackColor = true;
+            this.cb_ThreadStart.CheckedChanged += new System.EventHandler(this.cb_ThreadStart_CheckedChanged);
+            // 
+            // tb_Flag
+            // 
+            this.tb_Flag.Location = new System.Drawing.Point(74, 98);
+            this.tb_Flag.Name = "tb_Flag";
+            this.tb_Flag.ReadOnly = true;
+            this.tb_Flag.Size = new System.Drawing.Size(100, 21);
+            this.tb_Flag.TabIndex = 34;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(12, 102);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(29, 12);
+            this.label1.TabIndex = 35;
+            this.label1.Text = "Flag";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(12, 139);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(45, 12);
+            this.label2.TabIndex = 37;
+            this.label2.Text = "Energy";
+            // 
+            // tb_Energy
+            // 
+            this.tb_Energy.Location = new System.Drawing.Point(74, 135);
+            this.tb_Energy.Name = "tb_Energy";
+            this.tb_Energy.ReadOnly = true;
+            this.tb_Energy.Size = new System.Drawing.Size(100, 21);
+            this.tb_Energy.TabIndex = 36;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(12, 176);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(38, 12);
+            this.label3.TabIndex = 39;
+            this.label3.Text = "Count";
+            // 
+            // tb_Count
+            // 
+            this.tb_Count.Location = new System.Drawing.Point(74, 172);
+            this.tb_Count.Name = "tb_Count";
+            this.tb_Count.ReadOnly = true;
+            this.tb_Count.Size = new System.Drawing.Size(100, 21);
+            this.tb_Count.TabIndex = 38;
+            // 
+            // btn_ReadEnergy
+            // 
+            this.btn_ReadEnergy.Location = new System.Drawing.Point(189, 133);
+            this.btn_ReadEnergy.Name = "btn_ReadEnergy";
+            this.btn_ReadEnergy.Size = new System.Drawing.Size(109, 23);
+            this.btn_ReadEnergy.TabIndex = 40;
+            this.btn_ReadEnergy.Text = "Read Energy";
+            this.btn_ReadEnergy.UseVisualStyleBackColor = true;
+            this.btn_ReadEnergy.Click += new System.EventHandler(this.btn_ReadEnergy_Click);
+            // 
+            // btn_ReadFlag
+            // 
+            this.btn_ReadFlag.Location = new System.Drawing.Point(189, 96);
+            this.btn_ReadFlag.Name = "btn_ReadFlag";
+            this.btn_ReadFlag.Size = new System.Drawing.Size(109, 23);
+            this.btn_ReadFlag.TabIndex = 41;
+            this.btn_ReadFlag.Text = "Read Flag";
+            this.btn_ReadFlag.UseVisualStyleBackColor = true;
+            this.btn_ReadFlag.Click += new System.EventHandler(this.btn_ReadFlag_Click);
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(12, 208);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(62, 12);
+            this.label4.TabIndex = 43;
+            this.label4.Text = "Time(ms)";
+            // 
+            // nud_CheckTime
+            // 
+            this.nud_CheckTime.Location = new System.Drawing.Point(74, 205);
+            this.nud_CheckTime.Maximum = new decimal(new int[] {
+            500,
+            0,
+            0,
+            0});
+            this.nud_CheckTime.Minimum = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            this.nud_CheckTime.Name = "nud_CheckTime";
+            this.nud_CheckTime.Size = new System.Drawing.Size(100, 21);
+            this.nud_CheckTime.TabIndex = 44;
+            this.nud_CheckTime.Value = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            // 
+            // btn_SetEnergy
+            // 
+            this.btn_SetEnergy.Location = new System.Drawing.Point(38, 250);
+            this.btn_SetEnergy.Name = "btn_SetEnergy";
+            this.btn_SetEnergy.Size = new System.Drawing.Size(109, 23);
+            this.btn_SetEnergy.TabIndex = 45;
+            this.btn_SetEnergy.Text = "ENERGY MODE";
+            this.btn_SetEnergy.UseVisualStyleBackColor = true;
+            this.btn_SetEnergy.Click += new System.EventHandler(this.btn_SetEnergy_Click);
+            // 
+            // btn_SetPower
+            // 
+            this.btn_SetPower.Location = new System.Drawing.Point(174, 250);
+            this.btn_SetPower.Name = "btn_SetPower";
+            this.btn_SetPower.Size = new System.Drawing.Size(109, 23);
+            this.btn_SetPower.TabIndex = 46;
+            this.btn_SetPower.Text = "POWER MODE";
+            this.btn_SetPower.UseVisualStyleBackColor = true;
+            this.btn_SetPower.Click += new System.EventHandler(this.btn_SetPower_Click);
+            // 
+            // Ophir_StarBright_Form
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(334, 285);
+            this.Controls.Add(this.btn_SetPower);
+            this.Controls.Add(this.btn_SetEnergy);
+            this.Controls.Add(this.nud_CheckTime);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.btn_ReadFlag);
+            this.Controls.Add(this.btn_ReadEnergy);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.tb_Count);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.tb_Energy);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.tb_Flag);
+            this.Controls.Add(this.cb_ThreadStart);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "Ophir_StarBright_Form";
+            this.Text = "Ophir_StarBright_Form";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Ophir_StarBright_Form_FormClosing);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.nud_CheckTime)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label lb_PortState;
+        private System.Windows.Forms.ComboBox cbb_Ports;
+        private System.Windows.Forms.Label lb_Port;
+        private System.Windows.Forms.Button btn_PortOpen;
+        private System.Windows.Forms.Button btn_PortClose;
+        private System.Windows.Forms.CheckBox cb_ThreadStart;
+        private System.Windows.Forms.TextBox tb_Flag;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox tb_Energy;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.TextBox tb_Count;
+        private System.Windows.Forms.Button btn_ReadEnergy;
+        private System.Windows.Forms.Button btn_ReadFlag;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.NumericUpDown nud_CheckTime;
+        private System.Windows.Forms.Button btn_SetEnergy;
+        private System.Windows.Forms.Button btn_SetPower;
+    }
+}
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.cs b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.cs
new file mode 100644
index 0000000..13facb9
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.cs
@@ -0,0 +1,165 @@
+癤퓎sing DIT.Framework.Module;
+
+using System;
+using System.Drawing;
+using System.Threading;
+using System.Windows.Forms;
+
+namespace DLL_Test_Program
+{
+    public partial class Ophir_StarBright_Form : Form
+    {
+        public Ophir_StarBright_Form()
+        {
+            InitializeComponent();
+            Port_Set();
+            count = 0;
+            AutoCheckRun = false;
+        }
+        delegate void DelUpdateData();
+
+        Ophir_StarBright Ophir;
+        Thread UpdateUITh;
+        Thread UpdateDataTh;
+        bool AutoCheckRun;
+        int count;
+        private void Port_Set()
+        {
+            string[] ports = SerialModule.GetPorts();
+
+            if (ports == null)
+                return;
+
+            cbb_Ports.Items.Clear();
+
+            foreach (string port in ports)
+                cbb_Ports.Items.Add(port);
+        }
+        
+        private void ThreadInit()
+        {
+            UpdateUITh = new Thread(Update_UI);
+        }
+
+        private void ThreadStart()
+        {
+            UpdateUITh.Start();
+        }
+
+        private void Update_UI()
+        {
+            while (Ophir.isOpen)
+            {
+                lock (this)
+                {
+                    Thread.Sleep(100);
+                    Application.DoEvents();
+                    try
+                    {
+                        if (InvokeRequired)
+                        {
+                            BeginInvoke(new UpdateUIDelegate(Update_UI));
+                            return;
+                        }
+                        
+                        if(Ophir.isOpen)
+                        {
+                            lb_PortState.Text = "Connected";
+                            lb_PortState.BackColor = Color.Lime;
+                            btn_PortClose.Enabled = true;
+                            btn_PortOpen.Enabled = false;
+                        }
+                        else
+                        {
+                            lb_PortState.Text = "Disconnect";
+                            lb_PortState.BackColor = Color.Red;
+                            btn_PortClose.Enabled = false;
+                            btn_PortOpen.Enabled = true;
+                        }
+                        tb_Flag.Text = Ophir.Flag.ToString();
+                        tb_Energy.Text = Ophir.Energy.ToString();
+                        tb_Count.Text = $"count";
+
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                }
+            }
+        }
+
+        public void Update_Data()
+        {
+            try
+            {
+                if (InvokeRequired)
+                {
+                    BeginInvoke(new DelUpdateData(Update_Data));
+                    return;
+                }
+                else
+                {
+                    if (Ophir.Read_Flag())
+                    {
+                        count++;
+                        Ophir.Read_Energy();
+                    }
+                }
+            }
+            catch (Exception)
+            {
+
+            }
+        }
+
+        private void btn_PortOpen_Click(object sender, System.EventArgs e)
+        {
+            string port = cbb_Ports.SelectedItem.ToString();
+            Ophir = new Ophir_StarBright(port, 115200);
+            Ophir.Open();
+            ThreadInit();
+            ThreadStart();
+        }
+
+        private void btn_PortClose_Click(object sender, System.EventArgs e)
+        {
+            Ophir.Close();
+        }
+
+        private void btn_ReadFlag_Click(object sender, EventArgs e)
+        {
+            Ophir.Read_Flag();
+        }
+
+        private void btn_ReadEnergy_Click(object sender, EventArgs e)
+        {
+            Ophir.Read_Energy();
+        }
+
+        private void cb_ThreadStart_CheckedChanged(object sender, EventArgs e)
+        {
+            CheckBox check = (CheckBox)sender;
+            if (check.Checked) { AutoCheckRun = true; UpdateDataTh = new Thread(() => { while (AutoCheckRun) { try { Thread.Sleep((int)(nud_CheckTime.Value)); while ((int)(nud_CheckTime.Value) > 100) { } Update_Data(); } catch (Exception) { } } }); UpdateDataTh.Start(); }
+            else { AutoCheckRun = false; }
+        }
+
+
+        private void Ophir_StarBright_Form_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (Ophir == null) return;
+
+            Ophir.Close();
+        }
+
+        private void btn_SetEnergy_Click(object sender, EventArgs e)
+        {
+            Ophir.Set_Measurement_Mode(3);
+        }
+
+        private void btn_SetPower_Click(object sender, EventArgs e)
+        {
+            Ophir.Set_Measurement_Mode(2);
+        }
+    }
+}
diff --git a/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.resx b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Ophir_StarBright_Form.resx
@@ -0,0 +1,120 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Program.cs b/DLL_Test_Program/DLL_Test_Program/Program.cs
new file mode 100644
index 0000000..1164908
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Program.cs
@@ -0,0 +1,22 @@
+癤퓎sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace DLL_Test_Program
+{
+    static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new Test_Form());
+        }
+    }
+}
diff --git a/DLL_Test_Program/DLL_Test_Program/Properties/AssemblyInfo.cs b/DLL_Test_Program/DLL_Test_Program/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..11fd7b7
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+癤퓎sing 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("DLL_Test_Program")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("DLL_Test_Program")]
+[assembly: AssemblyCopyright("Copyright 짤  2020")]
+[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("e670692f-cf4c-4948-83bc-53b7ec6e6b2b")]
+
+// 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/DLL_Test_Program/DLL_Test_Program/Properties/Resources.Designer.cs b/DLL_Test_Program/DLL_Test_Program/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..14ce6c4
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+癤�//------------------------------------------------------------------------------
+// <auto-generated>
+//     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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace DLL_Test_Program.Properties
+{
+
+
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // 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", "4.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()
+        {
+        }
+
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DLL_Test_Program.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/DLL_Test_Program/DLL_Test_Program/Properties/Resources.resx b/DLL_Test_Program/DLL_Test_Program/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Properties/Resources.resx
@@ -0,0 +1,117 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/Properties/Settings.Designer.cs b/DLL_Test_Program/DLL_Test_Program/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..d492a24
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+癤�//------------------------------------------------------------------------------
+// <auto-generated>
+//     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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace DLL_Test_Program.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/DLL_Test_Program/DLL_Test_Program/Properties/Settings.settings b/DLL_Test_Program/DLL_Test_Program/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Properties/Settings.settings
@@ -0,0 +1,7 @@
+癤�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
diff --git a/DLL_Test_Program/DLL_Test_Program/Test_Form.Designer.cs b/DLL_Test_Program/DLL_Test_Program/Test_Form.Designer.cs
new file mode 100644
index 0000000..d51ece9
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Test_Form.Designer.cs
@@ -0,0 +1,120 @@
+癤퓆amespace DLL_Test_Program
+{
+    partial class Test_Form
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btn_Autonics = new System.Windows.Forms.Button();
+            this.btn_Ophir_StarBright = new System.Windows.Forms.Button();
+            this.btn_Pulse_Generater = new System.Windows.Forms.Button();
+            this.btn_IVC3000 = new System.Windows.Forms.Button();
+            this.btn_ESC_Supply = new System.Windows.Forms.Button();
+            this.btn_EnergyMax = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // btn_Autonics
+            // 
+            this.btn_Autonics.Location = new System.Drawing.Point(12, 12);
+            this.btn_Autonics.Name = "btn_Autonics";
+            this.btn_Autonics.Size = new System.Drawing.Size(130, 37);
+            this.btn_Autonics.TabIndex = 0;
+            this.btn_Autonics.Text = "Autonics_PMC_2HS";
+            this.btn_Autonics.UseVisualStyleBackColor = true;
+            this.btn_Autonics.Click += new System.EventHandler(this.btn_Autonics_Click);
+            // 
+            // btn_Ophir_StarBright
+            // 
+            this.btn_Ophir_StarBright.Location = new System.Drawing.Point(161, 12);
+            this.btn_Ophir_StarBright.Name = "btn_Ophir_StarBright";
+            this.btn_Ophir_StarBright.Size = new System.Drawing.Size(130, 37);
+            this.btn_Ophir_StarBright.TabIndex = 1;
+            this.btn_Ophir_StarBright.Text = "Ophir_StarBright";
+            this.btn_Ophir_StarBright.UseVisualStyleBackColor = true;
+            this.btn_Ophir_StarBright.Click += new System.EventHandler(this.btn_Ophir_StarBright_Click);
+            // 
+            // btn_Pulse_Generater
+            // 
+            this.btn_Pulse_Generater.Location = new System.Drawing.Point(12, 65);
+            this.btn_Pulse_Generater.Name = "btn_Pulse_Generater";
+            this.btn_Pulse_Generater.Size = new System.Drawing.Size(130, 37);
+            this.btn_Pulse_Generater.TabIndex = 2;
+            this.btn_Pulse_Generater.Text = "Pulse_Generater";
+            this.btn_Pulse_Generater.UseVisualStyleBackColor = true;
+            // 
+            // btn_IVC3000
+            // 
+            this.btn_IVC3000.Location = new System.Drawing.Point(161, 65);
+            this.btn_IVC3000.Name = "btn_IVC3000";
+            this.btn_IVC3000.Size = new System.Drawing.Size(130, 37);
+            this.btn_IVC3000.TabIndex = 3;
+            this.btn_IVC3000.Text = "IVC3000";
+            this.btn_IVC3000.UseVisualStyleBackColor = true;
+            // 
+            // btn_ESC_Supply
+            // 
+            this.btn_ESC_Supply.Location = new System.Drawing.Point(12, 121);
+            this.btn_ESC_Supply.Name = "btn_ESC_Supply";
+            this.btn_ESC_Supply.Size = new System.Drawing.Size(130, 37);
+            this.btn_ESC_Supply.TabIndex = 4;
+            this.btn_ESC_Supply.Text = "ESC_Supply";
+            this.btn_ESC_Supply.UseVisualStyleBackColor = true;
+            // 
+            this.btn_EnergyMax.Location = new System.Drawing.Point(161, 121);
+            this.btn_EnergyMax.Name = "btn_EnergyMax";
+            this.btn_EnergyMax.Size = new System.Drawing.Size(130, 37);
+            this.btn_EnergyMax.TabIndex = 5;
+            this.btn_EnergyMax.Text = "EnergyMax";
+            this.btn_EnergyMax.UseVisualStyleBackColor = true;
+            this.btn_EnergyMax.Click += new System.EventHandler(this.btn_EnergyMax_Click);
+            // Test_Form
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(656, 424);
+            this.Controls.Add(this.btn_EnergyMax);
+            this.Controls.Add(this.btn_ESC_Supply);
+            this.Controls.Add(this.btn_IVC3000);
+            this.Controls.Add(this.btn_Pulse_Generater);
+            this.Controls.Add(this.btn_Ophir_StarBright);
+            this.Controls.Add(this.btn_Autonics);
+            this.Name = "Test_Form";
+            this.Text = "Test Form";
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btn_Autonics;
+        private System.Windows.Forms.Button btn_Ophir_StarBright;
+        private System.Windows.Forms.Button btn_Pulse_Generater;
+        private System.Windows.Forms.Button btn_IVC3000;
+        private System.Windows.Forms.Button btn_ESC_Supply;
+        private System.Windows.Forms.Button btn_EnergyMax;
+    }
+}
+
diff --git a/DLL_Test_Program/DLL_Test_Program/Test_Form.cs b/DLL_Test_Program/DLL_Test_Program/Test_Form.cs
new file mode 100644
index 0000000..bfd0c9b
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Test_Form.cs
@@ -0,0 +1,37 @@
+癤퓎sing 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;
+
+namespace DLL_Test_Program
+{
+    public partial class Test_Form : Form
+    {
+        public Test_Form()
+        {
+            InitializeComponent();
+        }
+
+        private void btn_Autonics_Click(object sender, EventArgs e)
+        {
+            Autonics_PMC_2HS_Form form = new Autonics_PMC_2HS_Form();
+            form.Show();
+        }
+
+        private void btn_Ophir_StarBright_Click(object sender, EventArgs e)
+        {
+            Ophir_StarBright_Form form = new Ophir_StarBright_Form();
+            form.Show();
+        }
+        private void btn_EnergyMax_Click(object sender, EventArgs e)
+        {
+            EnergyMax_PowerMeter_Form form = new EnergyMax_PowerMeter_Form();
+            form.Show();
+        }
+    }
+}
diff --git a/DLL_Test_Program/DLL_Test_Program/Test_Form.resx b/DLL_Test_Program/DLL_Test_Program/Test_Form.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/Test_Form.resx
@@ -0,0 +1,120 @@
+癤�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/DLL_Test_Program/DLL_Test_Program/dll/DIT.Framework.Module.dll b/DLL_Test_Program/DLL_Test_Program/dll/DIT.Framework.Module.dll
new file mode 100644
index 0000000..0418895
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/dll/DIT.Framework.Module.dll
Binary files differ
diff --git a/DLL_Test_Program/DLL_Test_Program/dll/log4net.dll b/DLL_Test_Program/DLL_Test_Program/dll/log4net.dll
new file mode 100644
index 0000000..ffc57e1
--- /dev/null
+++ b/DLL_Test_Program/DLL_Test_Program/dll/log4net.dll
Binary files differ

--
Gitblit v1.9.3