From e3840a840aea2eda198ba4bbaf2c3ea4c2390ee4 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期四, 02 七月 2020 17:28:53 +0800
Subject: [PATCH] 板卡组件化

---
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx             |  120 +++++
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs    |   10 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs      |  478 +++++++++++++++++++
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.Designer.cs |  496 -------------------
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.cs          |   23 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs                |   20 
 src/Bro.UI.Device.Winform/Bro.UI.Device.Winform.csproj                       |   28 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.resx              |  120 +++++
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs               |   20 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs       |   94 +++
 10 files changed, 908 insertions(+), 501 deletions(-)

diff --git a/src/Bro.UI.Device.Winform/Bro.UI.Device.Winform.csproj b/src/Bro.UI.Device.Winform/Bro.UI.Device.Winform.csproj
index 8f76288..68c7b28 100644
--- a/src/Bro.UI.Device.Winform/Bro.UI.Device.Winform.csproj
+++ b/src/Bro.UI.Device.Winform/Bro.UI.Device.Winform.csproj
@@ -89,6 +89,18 @@
     <Compile Include="CtrlCameraRunBase.Designer.cs">
       <DependentUpon>CtrlCameraRunBase.cs</DependentUpon>
     </Compile>
+    <Compile Include="MotionCard\CtrlMotionCardAxisStatus.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MotionCard\CtrlMotionCardAxisStatus.Designer.cs">
+      <DependentUpon>CtrlMotionCardAxisStatus.cs</DependentUpon>
+    </Compile>
+    <Compile Include="MotionCard\CtrlMotionCardIOStatus.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MotionCard\CtrlMotionCardIOStatus.Designer.cs">
+      <DependentUpon>CtrlMotionCardIOStatus.cs</DependentUpon>
+    </Compile>
     <Compile Include="MotionCard\CtrlMotionCardOperationBase.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -101,11 +113,11 @@
     <Compile Include="CtrlPLCRunBase.Designer.cs">
       <DependentUpon>CtrlPLCRunBase.cs</DependentUpon>
     </Compile>
-    <Compile Include="MotionCard\CtrlMotionCardAxisStatus.cs">
+    <Compile Include="MotionCard\CtrlMotionCardRunBase.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="MotionCard\CtrlMotionCardAxisStatus.Designer.cs">
-      <DependentUpon>CtrlMotionCardAxisStatus.cs</DependentUpon>
+    <Compile Include="MotionCard\CtrlMotionCardRunBase.Designer.cs">
+      <DependentUpon>CtrlMotionCardRunBase.cs</DependentUpon>
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Properties\Resources.Designer.cs">
@@ -118,14 +130,20 @@
     <EmbeddedResource Include="CtrlCameraRunBase.resx">
       <DependentUpon>CtrlCameraRunBase.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="MotionCard\CtrlMotionCardAxisStatus.resx">
+      <DependentUpon>CtrlMotionCardAxisStatus.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="MotionCard\CtrlMotionCardIOStatus.resx">
+      <DependentUpon>CtrlMotionCardIOStatus.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="MotionCard\CtrlMotionCardOperationBase.resx">
       <DependentUpon>CtrlMotionCardOperationBase.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="CtrlPLCRunBase.resx">
       <DependentUpon>CtrlPLCRunBase.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="MotionCard\CtrlMotionCardAxisStatus.resx">
-      <DependentUpon>CtrlMotionCardAxisStatus.cs</DependentUpon>
+    <EmbeddedResource Include="MotionCard\CtrlMotionCardRunBase.resx">
+      <DependentUpon>CtrlMotionCardRunBase.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
index 5ab7756..d9e4122 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
@@ -67,8 +67,8 @@
             this.groupBoxAxisStatus.Dock = System.Windows.Forms.DockStyle.Fill;
             this.groupBoxAxisStatus.Location = new System.Drawing.Point(0, 0);
             this.groupBoxAxisStatus.Name = "groupBoxAxisStatus";
-            this.groupBoxAxisStatus.Size = new System.Drawing.Size(580, 141);
-            this.groupBoxAxisStatus.TabIndex = 4;
+            this.groupBoxAxisStatus.Size = new System.Drawing.Size(580, 148);
+            this.groupBoxAxisStatus.TabIndex = 5;
             this.groupBoxAxisStatus.TabStop = false;
             this.groupBoxAxisStatus.Text = "杞寸姸鎬�";
             // 
@@ -202,13 +202,13 @@
             this.label2.TabIndex = 2;
             this.label2.Text = "瑙勫垝浣嶇疆锛�";
             // 
-            // CtrlMotionCardRunStatus
+            // CtrlMotionCardAxisStatus
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.Controls.Add(this.groupBoxAxisStatus);
-            this.Name = "CtrlMotionCardRunStatus";
-            this.Size = new System.Drawing.Size(580, 141);
+            this.Name = "CtrlMotionCardAxisStatus";
+            this.Size = new System.Drawing.Size(580, 148);
             this.groupBoxAxisStatus.ResumeLayout(false);
             this.groupBoxAxisStatus.PerformLayout();
             this.ResumeLayout(false);
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs
new file mode 100644
index 0000000..3806600
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs
@@ -0,0 +1,478 @@
+锘縩amespace Bro.UI.Device.Winform.MotionCard
+{
+    partial class CtrlMotionCardIOStatus
+    {
+        /// <summary> 
+        /// 蹇呴渶鐨勮璁″櫒鍙橀噺銆�
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 娓呯悊鎵�鏈夋鍦ㄤ娇鐢ㄧ殑璧勬簮銆�
+        /// </summary>
+        /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 缁勪欢璁捐鍣ㄧ敓鎴愮殑浠g爜
+
+        /// <summary> 
+        /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈淇敼
+        /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广��
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+            this.groupBox5 = new System.Windows.Forms.GroupBox();
+            this.ioIndicatorCtrl14 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl13 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl12 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl26 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl25 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl24 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl17 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl16 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl20 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl19 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl23 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl22 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl21 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl18 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl15 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl11 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.groupBox6 = new System.Windows.Forms.GroupBox();
+            this.ioIndicatorCtrl27 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl28 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl29 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl30 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl31 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl32 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl33 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl34 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl35 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl36 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl37 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl38 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl39 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl40 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl41 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIndicatorCtrl42 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.tableLayoutPanel1.SuspendLayout();
+            this.groupBox5.SuspendLayout();
+            this.groupBox6.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 1;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.Controls.Add(this.groupBox6, 0, 1);
+            this.tableLayoutPanel1.Controls.Add(this.groupBox5, 0, 0);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 2;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(580, 288);
+            this.tableLayoutPanel1.TabIndex = 0;
+            // 
+            // groupBox5
+            // 
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl14);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl13);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl12);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl26);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl25);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl24);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl17);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl16);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl20);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl19);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl23);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl22);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl21);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl18);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl15);
+            this.groupBox5.Controls.Add(this.ioIndicatorCtrl11);
+            this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox5.Location = new System.Drawing.Point(3, 3);
+            this.groupBox5.Name = "groupBox5";
+            this.groupBox5.Size = new System.Drawing.Size(574, 138);
+            this.groupBox5.TabIndex = 7;
+            this.groupBox5.TabStop = false;
+            this.groupBox5.Text = "鏁板瓧閲忚緭鍏�";
+            // 
+            // ioIndicatorCtrl14
+            // 
+            this.ioIndicatorCtrl14.Desc = "IN 4";
+            this.ioIndicatorCtrl14.IsOn = null;
+            this.ioIndicatorCtrl14.Location = new System.Drawing.Point(477, 18);
+            this.ioIndicatorCtrl14.Name = "ioIndicatorCtrl14";
+            this.ioIndicatorCtrl14.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl14.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl13
+            // 
+            this.ioIndicatorCtrl13.Desc = "IN 3";
+            this.ioIndicatorCtrl13.IsOn = null;
+            this.ioIndicatorCtrl13.Location = new System.Drawing.Point(306, 18);
+            this.ioIndicatorCtrl13.Name = "ioIndicatorCtrl13";
+            this.ioIndicatorCtrl13.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl13.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl12
+            // 
+            this.ioIndicatorCtrl12.Desc = "IN 2";
+            this.ioIndicatorCtrl12.IsOn = null;
+            this.ioIndicatorCtrl12.Location = new System.Drawing.Point(145, 18);
+            this.ioIndicatorCtrl12.Name = "ioIndicatorCtrl12";
+            this.ioIndicatorCtrl12.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl12.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl26
+            // 
+            this.ioIndicatorCtrl26.Desc = "IN 16";
+            this.ioIndicatorCtrl26.IsOn = null;
+            this.ioIndicatorCtrl26.Location = new System.Drawing.Point(477, 107);
+            this.ioIndicatorCtrl26.Name = "ioIndicatorCtrl26";
+            this.ioIndicatorCtrl26.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl26.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl25
+            // 
+            this.ioIndicatorCtrl25.Desc = "IN 15";
+            this.ioIndicatorCtrl25.IsOn = null;
+            this.ioIndicatorCtrl25.Location = new System.Drawing.Point(306, 107);
+            this.ioIndicatorCtrl25.Name = "ioIndicatorCtrl25";
+            this.ioIndicatorCtrl25.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl25.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl24
+            // 
+            this.ioIndicatorCtrl24.Desc = "IN 14";
+            this.ioIndicatorCtrl24.IsOn = null;
+            this.ioIndicatorCtrl24.Location = new System.Drawing.Point(145, 107);
+            this.ioIndicatorCtrl24.Name = "ioIndicatorCtrl24";
+            this.ioIndicatorCtrl24.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl24.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl17
+            // 
+            this.ioIndicatorCtrl17.Desc = "IN 13";
+            this.ioIndicatorCtrl17.IsOn = null;
+            this.ioIndicatorCtrl17.Location = new System.Drawing.Point(9, 106);
+            this.ioIndicatorCtrl17.Name = "ioIndicatorCtrl17";
+            this.ioIndicatorCtrl17.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl17.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl16
+            // 
+            this.ioIndicatorCtrl16.Desc = "IN 9";
+            this.ioIndicatorCtrl16.IsOn = null;
+            this.ioIndicatorCtrl16.Location = new System.Drawing.Point(9, 77);
+            this.ioIndicatorCtrl16.Name = "ioIndicatorCtrl16";
+            this.ioIndicatorCtrl16.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl16.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl20
+            // 
+            this.ioIndicatorCtrl20.Desc = "IN 8";
+            this.ioIndicatorCtrl20.IsOn = null;
+            this.ioIndicatorCtrl20.Location = new System.Drawing.Point(477, 48);
+            this.ioIndicatorCtrl20.Name = "ioIndicatorCtrl20";
+            this.ioIndicatorCtrl20.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl20.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl19
+            // 
+            this.ioIndicatorCtrl19.Desc = "IN 7";
+            this.ioIndicatorCtrl19.IsOn = null;
+            this.ioIndicatorCtrl19.Location = new System.Drawing.Point(306, 48);
+            this.ioIndicatorCtrl19.Name = "ioIndicatorCtrl19";
+            this.ioIndicatorCtrl19.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl19.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl23
+            // 
+            this.ioIndicatorCtrl23.Desc = "IN 12";
+            this.ioIndicatorCtrl23.IsOn = null;
+            this.ioIndicatorCtrl23.Location = new System.Drawing.Point(477, 77);
+            this.ioIndicatorCtrl23.Name = "ioIndicatorCtrl23";
+            this.ioIndicatorCtrl23.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl23.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl22
+            // 
+            this.ioIndicatorCtrl22.Desc = "IN 11";
+            this.ioIndicatorCtrl22.IsOn = null;
+            this.ioIndicatorCtrl22.Location = new System.Drawing.Point(306, 77);
+            this.ioIndicatorCtrl22.Name = "ioIndicatorCtrl22";
+            this.ioIndicatorCtrl22.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl22.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl21
+            // 
+            this.ioIndicatorCtrl21.Desc = "IN 10";
+            this.ioIndicatorCtrl21.IsOn = null;
+            this.ioIndicatorCtrl21.Location = new System.Drawing.Point(145, 77);
+            this.ioIndicatorCtrl21.Name = "ioIndicatorCtrl21";
+            this.ioIndicatorCtrl21.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl21.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl18
+            // 
+            this.ioIndicatorCtrl18.Desc = "IN 6";
+            this.ioIndicatorCtrl18.IsOn = null;
+            this.ioIndicatorCtrl18.Location = new System.Drawing.Point(145, 48);
+            this.ioIndicatorCtrl18.Name = "ioIndicatorCtrl18";
+            this.ioIndicatorCtrl18.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl18.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl15
+            // 
+            this.ioIndicatorCtrl15.Desc = "IN 5";
+            this.ioIndicatorCtrl15.IsOn = null;
+            this.ioIndicatorCtrl15.Location = new System.Drawing.Point(9, 48);
+            this.ioIndicatorCtrl15.Name = "ioIndicatorCtrl15";
+            this.ioIndicatorCtrl15.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl15.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl11
+            // 
+            this.ioIndicatorCtrl11.Desc = "IN 1";
+            this.ioIndicatorCtrl11.IsOn = null;
+            this.ioIndicatorCtrl11.Location = new System.Drawing.Point(9, 18);
+            this.ioIndicatorCtrl11.Name = "ioIndicatorCtrl11";
+            this.ioIndicatorCtrl11.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl11.TabIndex = 4;
+            // 
+            // groupBox6
+            // 
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl27);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl28);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl29);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl30);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl31);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl32);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl33);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl34);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl35);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl36);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl37);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl38);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl39);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl40);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl41);
+            this.groupBox6.Controls.Add(this.ioIndicatorCtrl42);
+            this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox6.Location = new System.Drawing.Point(3, 147);
+            this.groupBox6.Name = "groupBox6";
+            this.groupBox6.Size = new System.Drawing.Size(574, 138);
+            this.groupBox6.TabIndex = 8;
+            this.groupBox6.TabStop = false;
+            this.groupBox6.Text = "鏁板瓧閲忚緭鍑�";
+            // 
+            // ioIndicatorCtrl27
+            // 
+            this.ioIndicatorCtrl27.Desc = "OUT 4";
+            this.ioIndicatorCtrl27.IsOn = null;
+            this.ioIndicatorCtrl27.Location = new System.Drawing.Point(477, 18);
+            this.ioIndicatorCtrl27.Name = "ioIndicatorCtrl27";
+            this.ioIndicatorCtrl27.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl27.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl28
+            // 
+            this.ioIndicatorCtrl28.Desc = "OUT 3";
+            this.ioIndicatorCtrl28.IsOn = null;
+            this.ioIndicatorCtrl28.Location = new System.Drawing.Point(306, 18);
+            this.ioIndicatorCtrl28.Name = "ioIndicatorCtrl28";
+            this.ioIndicatorCtrl28.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl28.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl29
+            // 
+            this.ioIndicatorCtrl29.Desc = "OUT 2";
+            this.ioIndicatorCtrl29.IsOn = null;
+            this.ioIndicatorCtrl29.Location = new System.Drawing.Point(145, 18);
+            this.ioIndicatorCtrl29.Name = "ioIndicatorCtrl29";
+            this.ioIndicatorCtrl29.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl29.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl30
+            // 
+            this.ioIndicatorCtrl30.Desc = "OUT 16";
+            this.ioIndicatorCtrl30.IsOn = null;
+            this.ioIndicatorCtrl30.Location = new System.Drawing.Point(477, 107);
+            this.ioIndicatorCtrl30.Name = "ioIndicatorCtrl30";
+            this.ioIndicatorCtrl30.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl30.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl31
+            // 
+            this.ioIndicatorCtrl31.Desc = "OUT 15";
+            this.ioIndicatorCtrl31.IsOn = null;
+            this.ioIndicatorCtrl31.Location = new System.Drawing.Point(306, 107);
+            this.ioIndicatorCtrl31.Name = "ioIndicatorCtrl31";
+            this.ioIndicatorCtrl31.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl31.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl32
+            // 
+            this.ioIndicatorCtrl32.Desc = "OUT 14";
+            this.ioIndicatorCtrl32.IsOn = null;
+            this.ioIndicatorCtrl32.Location = new System.Drawing.Point(145, 107);
+            this.ioIndicatorCtrl32.Name = "ioIndicatorCtrl32";
+            this.ioIndicatorCtrl32.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl32.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl33
+            // 
+            this.ioIndicatorCtrl33.Desc = "OUT 13";
+            this.ioIndicatorCtrl33.IsOn = null;
+            this.ioIndicatorCtrl33.Location = new System.Drawing.Point(9, 106);
+            this.ioIndicatorCtrl33.Name = "ioIndicatorCtrl33";
+            this.ioIndicatorCtrl33.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl33.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl34
+            // 
+            this.ioIndicatorCtrl34.Desc = "OUT 9";
+            this.ioIndicatorCtrl34.IsOn = null;
+            this.ioIndicatorCtrl34.Location = new System.Drawing.Point(9, 77);
+            this.ioIndicatorCtrl34.Name = "ioIndicatorCtrl34";
+            this.ioIndicatorCtrl34.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl34.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl35
+            // 
+            this.ioIndicatorCtrl35.Desc = "OUT 8";
+            this.ioIndicatorCtrl35.IsOn = null;
+            this.ioIndicatorCtrl35.Location = new System.Drawing.Point(477, 48);
+            this.ioIndicatorCtrl35.Name = "ioIndicatorCtrl35";
+            this.ioIndicatorCtrl35.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl35.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl36
+            // 
+            this.ioIndicatorCtrl36.Desc = "OUT 7";
+            this.ioIndicatorCtrl36.IsOn = null;
+            this.ioIndicatorCtrl36.Location = new System.Drawing.Point(306, 48);
+            this.ioIndicatorCtrl36.Name = "ioIndicatorCtrl36";
+            this.ioIndicatorCtrl36.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl36.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl37
+            // 
+            this.ioIndicatorCtrl37.Desc = "OUT 12";
+            this.ioIndicatorCtrl37.IsOn = null;
+            this.ioIndicatorCtrl37.Location = new System.Drawing.Point(477, 77);
+            this.ioIndicatorCtrl37.Name = "ioIndicatorCtrl37";
+            this.ioIndicatorCtrl37.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl37.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl38
+            // 
+            this.ioIndicatorCtrl38.Desc = "OUT 11";
+            this.ioIndicatorCtrl38.IsOn = null;
+            this.ioIndicatorCtrl38.Location = new System.Drawing.Point(306, 77);
+            this.ioIndicatorCtrl38.Name = "ioIndicatorCtrl38";
+            this.ioIndicatorCtrl38.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl38.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl39
+            // 
+            this.ioIndicatorCtrl39.Desc = "OUT 10";
+            this.ioIndicatorCtrl39.IsOn = null;
+            this.ioIndicatorCtrl39.Location = new System.Drawing.Point(145, 77);
+            this.ioIndicatorCtrl39.Name = "ioIndicatorCtrl39";
+            this.ioIndicatorCtrl39.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl39.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl40
+            // 
+            this.ioIndicatorCtrl40.Desc = "OUT 6";
+            this.ioIndicatorCtrl40.IsOn = null;
+            this.ioIndicatorCtrl40.Location = new System.Drawing.Point(145, 48);
+            this.ioIndicatorCtrl40.Name = "ioIndicatorCtrl40";
+            this.ioIndicatorCtrl40.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl40.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl41
+            // 
+            this.ioIndicatorCtrl41.Desc = "OUT 5";
+            this.ioIndicatorCtrl41.IsOn = null;
+            this.ioIndicatorCtrl41.Location = new System.Drawing.Point(9, 48);
+            this.ioIndicatorCtrl41.Name = "ioIndicatorCtrl41";
+            this.ioIndicatorCtrl41.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl41.TabIndex = 4;
+            // 
+            // ioIndicatorCtrl42
+            // 
+            this.ioIndicatorCtrl42.Desc = "OUT 1";
+            this.ioIndicatorCtrl42.IsOn = null;
+            this.ioIndicatorCtrl42.Location = new System.Drawing.Point(9, 18);
+            this.ioIndicatorCtrl42.Name = "ioIndicatorCtrl42";
+            this.ioIndicatorCtrl42.Size = new System.Drawing.Size(90, 24);
+            this.ioIndicatorCtrl42.TabIndex = 4;
+            // 
+            // CtrlMotionCardIOStatus
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.tableLayoutPanel1);
+            this.Name = "CtrlMotionCardIOStatus";
+            this.Size = new System.Drawing.Size(580, 288);
+            this.tableLayoutPanel1.ResumeLayout(false);
+            this.groupBox5.ResumeLayout(false);
+            this.groupBox6.ResumeLayout(false);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+        private System.Windows.Forms.GroupBox groupBox5;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl14;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl13;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl12;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl26;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl25;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl24;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl17;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl16;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl20;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl19;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl23;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl22;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl21;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl18;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl15;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl11;
+        private System.Windows.Forms.GroupBox groupBox6;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl27;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl28;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl29;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl30;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl31;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl32;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl33;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl34;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl35;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl36;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl37;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl38;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl39;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl40;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl41;
+        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl42;
+    }
+}
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
new file mode 100644
index 0000000..4114ea6
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Bro.UI.Device.Winform.MotionCard
+{
+    public partial class CtrlMotionCardIOStatus : UserControl
+    {
+        public CtrlMotionCardIOStatus()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.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/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.Designer.cs
index e61e4f4..99ab3ff 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.Designer.cs
@@ -31,8 +31,6 @@
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CtrlMotionCardOperationBase));
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
             this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
-            this.groupBox2 = new System.Windows.Forms.GroupBox();
-            this.listBoxMsg = new System.Windows.Forms.ListBox();
             this.groupBoxPara = new System.Windows.Forms.GroupBox();
             this.propGrid = new System.Windows.Forms.PropertyGrid();
             this.groupBoxMoveModel = new System.Windows.Forms.GroupBox();
@@ -47,50 +45,11 @@
             this.buttonSmoothStop = new System.Windows.Forms.Button();
             this.buttonPositionReset = new System.Windows.Forms.Button();
             this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
-            this.groupBox5 = new System.Windows.Forms.GroupBox();
-            this.ioIndicatorCtrl14 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl13 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl12 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl26 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl25 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl24 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl17 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl16 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl20 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl19 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl23 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl22 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl21 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl18 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl15 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl11 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.groupBox6 = new System.Windows.Forms.GroupBox();
-            this.ioIndicatorCtrl27 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl28 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl29 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl30 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl31 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl32 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl33 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl34 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl35 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl36 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl37 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl38 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl39 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl40 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl41 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl42 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.flowLayoutPanelRunStatus = new System.Windows.Forms.FlowLayoutPanel();
             this.tableLayoutPanel1.SuspendLayout();
             this.tableLayoutPanel2.SuspendLayout();
-            this.groupBox2.SuspendLayout();
             this.groupBoxPara.SuspendLayout();
             this.groupBoxMoveModel.SuspendLayout();
             this.groupBoxCommBtn.SuspendLayout();
-            this.tableLayoutPanel3.SuspendLayout();
-            this.groupBox5.SuspendLayout();
-            this.groupBox6.SuspendLayout();
             this.SuspendLayout();
             // 
             // tableLayoutPanel1
@@ -112,50 +71,27 @@
             // 
             this.tableLayoutPanel2.ColumnCount = 1;
             this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
-            this.tableLayoutPanel2.Controls.Add(this.groupBox2, 0, 3);
             this.tableLayoutPanel2.Controls.Add(this.groupBoxPara, 0, 2);
             this.tableLayoutPanel2.Controls.Add(this.groupBoxMoveModel, 0, 1);
             this.tableLayoutPanel2.Controls.Add(this.groupBoxCommBtn, 0, 0);
             this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
             this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3);
             this.tableLayoutPanel2.Name = "tableLayoutPanel2";
-            this.tableLayoutPanel2.RowCount = 4;
-            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
+            this.tableLayoutPanel2.RowCount = 3;
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 100F));
             this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
             this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
-            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F));
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
             this.tableLayoutPanel2.Size = new System.Drawing.Size(386, 714);
             this.tableLayoutPanel2.TabIndex = 0;
-            // 
-            // groupBox2
-            // 
-            this.groupBox2.Controls.Add(this.listBoxMsg);
-            this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox2.Location = new System.Drawing.Point(3, 607);
-            this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(380, 104);
-            this.groupBox2.TabIndex = 7;
-            this.groupBox2.TabStop = false;
-            this.groupBox2.Text = "娑堟伅妗�";
-            // 
-            // listBoxMsg
-            // 
-            this.listBoxMsg.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.listBoxMsg.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
-            this.listBoxMsg.FormattingEnabled = true;
-            this.listBoxMsg.ItemHeight = 15;
-            this.listBoxMsg.Location = new System.Drawing.Point(3, 17);
-            this.listBoxMsg.Name = "listBoxMsg";
-            this.listBoxMsg.Size = new System.Drawing.Size(374, 84);
-            this.listBoxMsg.TabIndex = 1;
             // 
             // groupBoxPara
             // 
             this.groupBoxPara.Controls.Add(this.propGrid);
             this.groupBoxPara.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBoxPara.Location = new System.Drawing.Point(3, 143);
+            this.groupBoxPara.Location = new System.Drawing.Point(3, 153);
             this.groupBoxPara.Name = "groupBoxPara";
-            this.groupBoxPara.Size = new System.Drawing.Size(380, 458);
+            this.groupBoxPara.Size = new System.Drawing.Size(380, 558);
             this.groupBoxPara.TabIndex = 6;
             this.groupBoxPara.TabStop = false;
             this.groupBoxPara.Text = "鍙傛暟";
@@ -166,7 +102,7 @@
             this.propGrid.Location = new System.Drawing.Point(3, 17);
             this.propGrid.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.propGrid.Name = "propGrid";
-            this.propGrid.Size = new System.Drawing.Size(374, 438);
+            this.propGrid.Size = new System.Drawing.Size(374, 538);
             this.propGrid.TabIndex = 1;
             // 
             // groupBoxMoveModel
@@ -175,7 +111,7 @@
             this.groupBoxMoveModel.Controls.Add(this.radioJog);
             this.groupBoxMoveModel.Controls.Add(this.radioP2P);
             this.groupBoxMoveModel.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBoxMoveModel.Location = new System.Drawing.Point(3, 93);
+            this.groupBoxMoveModel.Location = new System.Drawing.Point(3, 103);
             this.groupBoxMoveModel.Name = "groupBoxMoveModel";
             this.groupBoxMoveModel.Size = new System.Drawing.Size(380, 44);
             this.groupBoxMoveModel.TabIndex = 5;
@@ -228,7 +164,7 @@
             this.groupBoxCommBtn.Dock = System.Windows.Forms.DockStyle.Fill;
             this.groupBoxCommBtn.Location = new System.Drawing.Point(3, 3);
             this.groupBoxCommBtn.Name = "groupBoxCommBtn";
-            this.groupBoxCommBtn.Size = new System.Drawing.Size(380, 84);
+            this.groupBoxCommBtn.Size = new System.Drawing.Size(380, 94);
             this.groupBoxCommBtn.TabIndex = 0;
             this.groupBoxCommBtn.TabStop = false;
             this.groupBoxCommBtn.Text = "鍏叡鎿嶄綔";
@@ -242,7 +178,7 @@
             this.btnStart.Font = new System.Drawing.Font("瀹嬩綋", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.btnStart.Image = ((System.Drawing.Image)(resources.GetObject("btnStart.Image")));
             this.btnStart.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
-            this.btnStart.Location = new System.Drawing.Point(248, 20);
+            this.btnStart.Location = new System.Drawing.Point(248, 23);
             this.btnStart.Name = "btnStart";
             this.btnStart.Size = new System.Drawing.Size(126, 54);
             this.btnStart.TabIndex = 5;
@@ -253,7 +189,7 @@
             // 
             // buttonClearStatus
             // 
-            this.buttonClearStatus.Location = new System.Drawing.Point(6, 18);
+            this.buttonClearStatus.Location = new System.Drawing.Point(6, 21);
             this.buttonClearStatus.Name = "buttonClearStatus";
             this.buttonClearStatus.Size = new System.Drawing.Size(70, 25);
             this.buttonClearStatus.TabIndex = 4;
@@ -263,7 +199,7 @@
             // 
             // buttonEmergencyStop
             // 
-            this.buttonEmergencyStop.Location = new System.Drawing.Point(86, 53);
+            this.buttonEmergencyStop.Location = new System.Drawing.Point(86, 56);
             this.buttonEmergencyStop.Name = "buttonEmergencyStop";
             this.buttonEmergencyStop.Size = new System.Drawing.Size(70, 25);
             this.buttonEmergencyStop.TabIndex = 4;
@@ -273,7 +209,7 @@
             // 
             // buttonServoEnable
             // 
-            this.buttonServoEnable.Location = new System.Drawing.Point(86, 18);
+            this.buttonServoEnable.Location = new System.Drawing.Point(86, 21);
             this.buttonServoEnable.Name = "buttonServoEnable";
             this.buttonServoEnable.Size = new System.Drawing.Size(70, 25);
             this.buttonServoEnable.TabIndex = 4;
@@ -283,7 +219,7 @@
             // 
             // buttonSmoothStop
             // 
-            this.buttonSmoothStop.Location = new System.Drawing.Point(6, 53);
+            this.buttonSmoothStop.Location = new System.Drawing.Point(6, 56);
             this.buttonSmoothStop.Name = "buttonSmoothStop";
             this.buttonSmoothStop.Size = new System.Drawing.Size(70, 25);
             this.buttonSmoothStop.TabIndex = 4;
@@ -293,7 +229,7 @@
             // 
             // buttonPositionReset
             // 
-            this.buttonPositionReset.Location = new System.Drawing.Point(168, 18);
+            this.buttonPositionReset.Location = new System.Drawing.Point(168, 21);
             this.buttonPositionReset.Name = "buttonPositionReset";
             this.buttonPositionReset.Size = new System.Drawing.Size(70, 25);
             this.buttonPositionReset.TabIndex = 4;
@@ -305,385 +241,30 @@
             // 
             this.tableLayoutPanel3.ColumnCount = 1;
             this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
-            this.tableLayoutPanel3.Controls.Add(this.groupBox5, 0, 1);
-            this.tableLayoutPanel3.Controls.Add(this.groupBox6, 0, 2);
-            this.tableLayoutPanel3.Controls.Add(this.flowLayoutPanelRunStatus, 0, 0);
             this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
             this.tableLayoutPanel3.Location = new System.Drawing.Point(395, 3);
             this.tableLayoutPanel3.Name = "tableLayoutPanel3";
-            this.tableLayoutPanel3.RowCount = 3;
-            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60F));
-            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
-            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
+            this.tableLayoutPanel3.RowCount = 1;
+            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
             this.tableLayoutPanel3.Size = new System.Drawing.Size(584, 714);
             this.tableLayoutPanel3.TabIndex = 1;
             // 
-            // groupBox5
-            // 
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl14);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl13);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl12);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl26);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl25);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl24);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl17);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl16);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl20);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl19);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl23);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl22);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl21);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl18);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl15);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl11);
-            this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox5.Location = new System.Drawing.Point(3, 431);
-            this.groupBox5.Name = "groupBox5";
-            this.groupBox5.Size = new System.Drawing.Size(578, 136);
-            this.groupBox5.TabIndex = 6;
-            this.groupBox5.TabStop = false;
-            this.groupBox5.Text = "鏁板瓧閲忚緭鍏�";
-            // 
-            // ioIndicatorCtrl14
-            // 
-            this.ioIndicatorCtrl14.Desc = "IN 4";
-            this.ioIndicatorCtrl14.IsOn = null;
-            this.ioIndicatorCtrl14.Location = new System.Drawing.Point(477, 18);
-            this.ioIndicatorCtrl14.Name = "ioIndicatorCtrl14";
-            this.ioIndicatorCtrl14.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl14.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl13
-            // 
-            this.ioIndicatorCtrl13.Desc = "IN 3";
-            this.ioIndicatorCtrl13.IsOn = null;
-            this.ioIndicatorCtrl13.Location = new System.Drawing.Point(306, 18);
-            this.ioIndicatorCtrl13.Name = "ioIndicatorCtrl13";
-            this.ioIndicatorCtrl13.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl13.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl12
-            // 
-            this.ioIndicatorCtrl12.Desc = "IN 2";
-            this.ioIndicatorCtrl12.IsOn = null;
-            this.ioIndicatorCtrl12.Location = new System.Drawing.Point(145, 18);
-            this.ioIndicatorCtrl12.Name = "ioIndicatorCtrl12";
-            this.ioIndicatorCtrl12.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl12.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl26
-            // 
-            this.ioIndicatorCtrl26.Desc = "IN 16";
-            this.ioIndicatorCtrl26.IsOn = null;
-            this.ioIndicatorCtrl26.Location = new System.Drawing.Point(477, 107);
-            this.ioIndicatorCtrl26.Name = "ioIndicatorCtrl26";
-            this.ioIndicatorCtrl26.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl26.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl25
-            // 
-            this.ioIndicatorCtrl25.Desc = "IN 15";
-            this.ioIndicatorCtrl25.IsOn = null;
-            this.ioIndicatorCtrl25.Location = new System.Drawing.Point(306, 107);
-            this.ioIndicatorCtrl25.Name = "ioIndicatorCtrl25";
-            this.ioIndicatorCtrl25.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl25.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl24
-            // 
-            this.ioIndicatorCtrl24.Desc = "IN 14";
-            this.ioIndicatorCtrl24.IsOn = null;
-            this.ioIndicatorCtrl24.Location = new System.Drawing.Point(145, 107);
-            this.ioIndicatorCtrl24.Name = "ioIndicatorCtrl24";
-            this.ioIndicatorCtrl24.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl24.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl17
-            // 
-            this.ioIndicatorCtrl17.Desc = "IN 13";
-            this.ioIndicatorCtrl17.IsOn = null;
-            this.ioIndicatorCtrl17.Location = new System.Drawing.Point(9, 106);
-            this.ioIndicatorCtrl17.Name = "ioIndicatorCtrl17";
-            this.ioIndicatorCtrl17.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl17.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl16
-            // 
-            this.ioIndicatorCtrl16.Desc = "IN 9";
-            this.ioIndicatorCtrl16.IsOn = null;
-            this.ioIndicatorCtrl16.Location = new System.Drawing.Point(9, 77);
-            this.ioIndicatorCtrl16.Name = "ioIndicatorCtrl16";
-            this.ioIndicatorCtrl16.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl16.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl20
-            // 
-            this.ioIndicatorCtrl20.Desc = "IN 8";
-            this.ioIndicatorCtrl20.IsOn = null;
-            this.ioIndicatorCtrl20.Location = new System.Drawing.Point(477, 48);
-            this.ioIndicatorCtrl20.Name = "ioIndicatorCtrl20";
-            this.ioIndicatorCtrl20.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl20.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl19
-            // 
-            this.ioIndicatorCtrl19.Desc = "IN 7";
-            this.ioIndicatorCtrl19.IsOn = null;
-            this.ioIndicatorCtrl19.Location = new System.Drawing.Point(306, 48);
-            this.ioIndicatorCtrl19.Name = "ioIndicatorCtrl19";
-            this.ioIndicatorCtrl19.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl19.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl23
-            // 
-            this.ioIndicatorCtrl23.Desc = "IN 12";
-            this.ioIndicatorCtrl23.IsOn = null;
-            this.ioIndicatorCtrl23.Location = new System.Drawing.Point(477, 77);
-            this.ioIndicatorCtrl23.Name = "ioIndicatorCtrl23";
-            this.ioIndicatorCtrl23.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl23.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl22
-            // 
-            this.ioIndicatorCtrl22.Desc = "IN 11";
-            this.ioIndicatorCtrl22.IsOn = null;
-            this.ioIndicatorCtrl22.Location = new System.Drawing.Point(306, 77);
-            this.ioIndicatorCtrl22.Name = "ioIndicatorCtrl22";
-            this.ioIndicatorCtrl22.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl22.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl21
-            // 
-            this.ioIndicatorCtrl21.Desc = "IN 10";
-            this.ioIndicatorCtrl21.IsOn = null;
-            this.ioIndicatorCtrl21.Location = new System.Drawing.Point(145, 77);
-            this.ioIndicatorCtrl21.Name = "ioIndicatorCtrl21";
-            this.ioIndicatorCtrl21.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl21.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl18
-            // 
-            this.ioIndicatorCtrl18.Desc = "IN 6";
-            this.ioIndicatorCtrl18.IsOn = null;
-            this.ioIndicatorCtrl18.Location = new System.Drawing.Point(145, 48);
-            this.ioIndicatorCtrl18.Name = "ioIndicatorCtrl18";
-            this.ioIndicatorCtrl18.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl18.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl15
-            // 
-            this.ioIndicatorCtrl15.Desc = "IN 5";
-            this.ioIndicatorCtrl15.IsOn = null;
-            this.ioIndicatorCtrl15.Location = new System.Drawing.Point(9, 48);
-            this.ioIndicatorCtrl15.Name = "ioIndicatorCtrl15";
-            this.ioIndicatorCtrl15.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl15.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl11
-            // 
-            this.ioIndicatorCtrl11.Desc = "IN 1";
-            this.ioIndicatorCtrl11.IsOn = null;
-            this.ioIndicatorCtrl11.Location = new System.Drawing.Point(9, 18);
-            this.ioIndicatorCtrl11.Name = "ioIndicatorCtrl11";
-            this.ioIndicatorCtrl11.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl11.TabIndex = 4;
-            // 
-            // groupBox6
-            // 
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl27);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl28);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl29);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl30);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl31);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl32);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl33);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl34);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl35);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl36);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl37);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl38);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl39);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl40);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl41);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl42);
-            this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox6.Location = new System.Drawing.Point(3, 573);
-            this.groupBox6.Name = "groupBox6";
-            this.groupBox6.Size = new System.Drawing.Size(578, 138);
-            this.groupBox6.TabIndex = 7;
-            this.groupBox6.TabStop = false;
-            this.groupBox6.Text = "鏁板瓧閲忚緭鍑�";
-            // 
-            // ioIndicatorCtrl27
-            // 
-            this.ioIndicatorCtrl27.Desc = "OUT 4";
-            this.ioIndicatorCtrl27.IsOn = null;
-            this.ioIndicatorCtrl27.Location = new System.Drawing.Point(477, 18);
-            this.ioIndicatorCtrl27.Name = "ioIndicatorCtrl27";
-            this.ioIndicatorCtrl27.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl27.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl28
-            // 
-            this.ioIndicatorCtrl28.Desc = "OUT 3";
-            this.ioIndicatorCtrl28.IsOn = null;
-            this.ioIndicatorCtrl28.Location = new System.Drawing.Point(306, 18);
-            this.ioIndicatorCtrl28.Name = "ioIndicatorCtrl28";
-            this.ioIndicatorCtrl28.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl28.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl29
-            // 
-            this.ioIndicatorCtrl29.Desc = "OUT 2";
-            this.ioIndicatorCtrl29.IsOn = null;
-            this.ioIndicatorCtrl29.Location = new System.Drawing.Point(145, 18);
-            this.ioIndicatorCtrl29.Name = "ioIndicatorCtrl29";
-            this.ioIndicatorCtrl29.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl29.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl30
-            // 
-            this.ioIndicatorCtrl30.Desc = "OUT 16";
-            this.ioIndicatorCtrl30.IsOn = null;
-            this.ioIndicatorCtrl30.Location = new System.Drawing.Point(477, 107);
-            this.ioIndicatorCtrl30.Name = "ioIndicatorCtrl30";
-            this.ioIndicatorCtrl30.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl30.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl31
-            // 
-            this.ioIndicatorCtrl31.Desc = "OUT 15";
-            this.ioIndicatorCtrl31.IsOn = null;
-            this.ioIndicatorCtrl31.Location = new System.Drawing.Point(306, 107);
-            this.ioIndicatorCtrl31.Name = "ioIndicatorCtrl31";
-            this.ioIndicatorCtrl31.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl31.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl32
-            // 
-            this.ioIndicatorCtrl32.Desc = "OUT 14";
-            this.ioIndicatorCtrl32.IsOn = null;
-            this.ioIndicatorCtrl32.Location = new System.Drawing.Point(145, 107);
-            this.ioIndicatorCtrl32.Name = "ioIndicatorCtrl32";
-            this.ioIndicatorCtrl32.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl32.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl33
-            // 
-            this.ioIndicatorCtrl33.Desc = "OUT 13";
-            this.ioIndicatorCtrl33.IsOn = null;
-            this.ioIndicatorCtrl33.Location = new System.Drawing.Point(9, 106);
-            this.ioIndicatorCtrl33.Name = "ioIndicatorCtrl33";
-            this.ioIndicatorCtrl33.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl33.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl34
-            // 
-            this.ioIndicatorCtrl34.Desc = "OUT 9";
-            this.ioIndicatorCtrl34.IsOn = null;
-            this.ioIndicatorCtrl34.Location = new System.Drawing.Point(9, 77);
-            this.ioIndicatorCtrl34.Name = "ioIndicatorCtrl34";
-            this.ioIndicatorCtrl34.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl34.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl35
-            // 
-            this.ioIndicatorCtrl35.Desc = "OUT 8";
-            this.ioIndicatorCtrl35.IsOn = null;
-            this.ioIndicatorCtrl35.Location = new System.Drawing.Point(477, 48);
-            this.ioIndicatorCtrl35.Name = "ioIndicatorCtrl35";
-            this.ioIndicatorCtrl35.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl35.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl36
-            // 
-            this.ioIndicatorCtrl36.Desc = "OUT 7";
-            this.ioIndicatorCtrl36.IsOn = null;
-            this.ioIndicatorCtrl36.Location = new System.Drawing.Point(306, 48);
-            this.ioIndicatorCtrl36.Name = "ioIndicatorCtrl36";
-            this.ioIndicatorCtrl36.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl36.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl37
-            // 
-            this.ioIndicatorCtrl37.Desc = "OUT 12";
-            this.ioIndicatorCtrl37.IsOn = null;
-            this.ioIndicatorCtrl37.Location = new System.Drawing.Point(477, 77);
-            this.ioIndicatorCtrl37.Name = "ioIndicatorCtrl37";
-            this.ioIndicatorCtrl37.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl37.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl38
-            // 
-            this.ioIndicatorCtrl38.Desc = "OUT 11";
-            this.ioIndicatorCtrl38.IsOn = null;
-            this.ioIndicatorCtrl38.Location = new System.Drawing.Point(306, 77);
-            this.ioIndicatorCtrl38.Name = "ioIndicatorCtrl38";
-            this.ioIndicatorCtrl38.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl38.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl39
-            // 
-            this.ioIndicatorCtrl39.Desc = "OUT 10";
-            this.ioIndicatorCtrl39.IsOn = null;
-            this.ioIndicatorCtrl39.Location = new System.Drawing.Point(145, 77);
-            this.ioIndicatorCtrl39.Name = "ioIndicatorCtrl39";
-            this.ioIndicatorCtrl39.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl39.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl40
-            // 
-            this.ioIndicatorCtrl40.Desc = "OUT 6";
-            this.ioIndicatorCtrl40.IsOn = null;
-            this.ioIndicatorCtrl40.Location = new System.Drawing.Point(145, 48);
-            this.ioIndicatorCtrl40.Name = "ioIndicatorCtrl40";
-            this.ioIndicatorCtrl40.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl40.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl41
-            // 
-            this.ioIndicatorCtrl41.Desc = "OUT 5";
-            this.ioIndicatorCtrl41.IsOn = null;
-            this.ioIndicatorCtrl41.Location = new System.Drawing.Point(9, 48);
-            this.ioIndicatorCtrl41.Name = "ioIndicatorCtrl41";
-            this.ioIndicatorCtrl41.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl41.TabIndex = 4;
-            // 
-            // ioIndicatorCtrl42
-            // 
-            this.ioIndicatorCtrl42.Desc = "OUT 1";
-            this.ioIndicatorCtrl42.IsOn = null;
-            this.ioIndicatorCtrl42.Location = new System.Drawing.Point(9, 18);
-            this.ioIndicatorCtrl42.Name = "ioIndicatorCtrl42";
-            this.ioIndicatorCtrl42.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl42.TabIndex = 4;
-            // 
-            // flowLayoutPanelRunStatus
-            // 
-            this.flowLayoutPanelRunStatus.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.flowLayoutPanelRunStatus.Location = new System.Drawing.Point(3, 3);
-            this.flowLayoutPanelRunStatus.Name = "flowLayoutPanelRunStatus";
-            this.flowLayoutPanelRunStatus.Size = new System.Drawing.Size(578, 422);
-            this.flowLayoutPanelRunStatus.TabIndex = 8;
-            // 
-            // CtrlMotionCardOperation
+            // CtrlMotionCardOperationBase
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.Controls.Add(this.tableLayoutPanel1);
-            this.Name = "CtrlMotionCardOperation";
+            this.Name = "CtrlMotionCardOperationBase";
             this.Size = new System.Drawing.Size(982, 720);
             this.tableLayoutPanel1.ResumeLayout(false);
             this.tableLayoutPanel2.ResumeLayout(false);
-            this.groupBox2.ResumeLayout(false);
             this.groupBoxPara.ResumeLayout(false);
             this.groupBoxMoveModel.ResumeLayout(false);
             this.groupBoxMoveModel.PerformLayout();
             this.groupBoxCommBtn.ResumeLayout(false);
             this.groupBoxCommBtn.PerformLayout();
-            this.tableLayoutPanel3.ResumeLayout(false);
-            this.groupBox5.ResumeLayout(false);
-            this.groupBox6.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
@@ -700,48 +281,11 @@
         private System.Windows.Forms.Button buttonServoEnable;
         private System.Windows.Forms.Button buttonSmoothStop;
         private System.Windows.Forms.Button buttonPositionReset;
-        private System.Windows.Forms.GroupBox groupBox2;
-        private System.Windows.Forms.ListBox listBoxMsg;
         private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
-        private System.Windows.Forms.GroupBox groupBox5;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl14;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl13;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl12;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl26;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl25;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl24;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl17;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl16;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl20;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl19;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl23;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl22;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl21;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl18;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl15;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl11;
-        private System.Windows.Forms.GroupBox groupBox6;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl27;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl28;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl29;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl30;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl31;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl32;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl33;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl34;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl35;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl36;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl37;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl38;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl39;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl40;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl41;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl42;
         private System.Windows.Forms.RadioButton radioGoHome;
         private System.Windows.Forms.RadioButton radioJog;
         private System.Windows.Forms.RadioButton radioP2P;
         private System.Windows.Forms.PropertyGrid propGrid;
         private System.Windows.Forms.Button btnStart;
-        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelRunStatus;
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.cs
index 2d90199..ba0363c 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardOperationBase.cs
@@ -14,7 +14,6 @@
         public CtrlMotionCardOperationBase()
         {
             InitializeComponent();
-            GTSCardOperationConfig = new GTSCardOperationConfig();
         }
 
         public IDevice Device { get; set; }
@@ -24,23 +23,17 @@
         //    get => Device as CameraBase;
         //}
 
-        GTSCardOperationConfig GTSCardOperationConfig = null;
-        MovingOption movingConfig = null;
-
-        private IProcess process = null;
-        public IProcess Process
+        public CtrlMotionCardOperationBase(IDevice device)
         {
-            get => process;
-            set
-            {
-                if (process != value)
-                {
-                    process = value;
-                    OnProcessUpdated();
-                }
-            }
+            InitializeComponent();
+
+            Device = device;
+
+
         }
 
+        MovingOption movingConfig = null;
+
         #region ILogoutput
         public Action<LogMsg> OnLogMsgOutput { get; set; }
 
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs
new file mode 100644
index 0000000..5dd77d9
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs
@@ -0,0 +1,94 @@
+锘縩amespace Bro.UI.Device.Winform.MotionCard
+{
+    partial class CtrlMotionCardRunBase
+    {
+        /// <summary> 
+        /// 蹇呴渶鐨勮璁″櫒鍙橀噺銆�
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 娓呯悊鎵�鏈夋鍦ㄤ娇鐢ㄧ殑璧勬簮銆�
+        /// </summary>
+        /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 缁勪欢璁捐鍣ㄧ敓鎴愮殑浠g爜
+
+        /// <summary> 
+        /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈淇敼
+        /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广��
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.listBoxMsg = new System.Windows.Forms.ListBox();
+            this.tableLayoutPanel1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 1;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+            this.tableLayoutPanel1.Controls.Add(this.groupBox2, 0, 2);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 3;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(615, 511);
+            this.tableLayoutPanel1.TabIndex = 5;
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.listBoxMsg);
+            this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBox2.Location = new System.Drawing.Point(3, 403);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(609, 105);
+            this.groupBox2.TabIndex = 10;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "娑堟伅妗�";
+            // 
+            // listBoxMsg
+            // 
+            this.listBoxMsg.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listBoxMsg.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+            this.listBoxMsg.FormattingEnabled = true;
+            this.listBoxMsg.ItemHeight = 15;
+            this.listBoxMsg.Location = new System.Drawing.Point(3, 17);
+            this.listBoxMsg.Name = "listBoxMsg";
+            this.listBoxMsg.Size = new System.Drawing.Size(603, 85);
+            this.listBoxMsg.TabIndex = 1;
+            // 
+            // CtrlMotionCardRunBase
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.tableLayoutPanel1);
+            this.Name = "CtrlMotionCardRunBase";
+            this.Size = new System.Drawing.Size(615, 511);
+            this.tableLayoutPanel1.ResumeLayout(false);
+            this.groupBox2.ResumeLayout(false);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.ListBox listBoxMsg;
+    }
+}
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
new file mode 100644
index 0000000..e2f5227
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Bro.UI.Device.Winform.MotionCard
+{
+    public partial class CtrlMotionCardRunBase : UserControl
+    {
+        public CtrlMotionCardRunBase()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.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

--
Gitblit v1.8.0