Просмотр исходного кода

1,增加位置校准,支持手动校准和量产测试中自动校准;
2,参数检验时,控制参数中零点不比较;
3,增加启动时网络选择;
4,解决ftp服务器获取文件夹列表不能包含空格的问题;
5,参数校验结束后读出电机参数并存储。

Dail 9 месяцев назад
Родитель
Сommit
1016915de7

BIN
.vs/Welling_Motor_Debug_Tool/v17/.suo


+ 41 - 21
Welling_Motor_Debug_Tool/GenerateParams.cs

@@ -24,6 +24,8 @@ namespace Welling_Motor_Debug_Tool
         LocalInfo localInfo = new LocalInfo();
         //服务器配置
         string IP, Port, User, PassWD, ModelPath, CfgPath;
+        //离线标志
+        bool Offline_Flag = false;
         //FTP
         ftp myFtp = new ftp();
         //高级参数修改标志
@@ -683,6 +685,8 @@ namespace Welling_Motor_Debug_Tool
                 //解析配置文件
                 try
                 {
+                    //离线标志
+                    Offline_Flag = array_CfgInfo[9].ToString().Split(':')[1] == "True";
                     //Server Set IP, Port, User, PassWS, ModelPath;
                     IP = array_CfgInfo[12].ToString().Split(':')[1];
                     Port = array_CfgInfo[13].ToString().Split(':')[1];
@@ -703,31 +707,44 @@ namespace Welling_Motor_Debug_Tool
             }
 
             //检查网络
-            if (myFtp.CheckFtp() == false)
+            if (Offline_Flag != true)
             {
-                label_Server_ComStatus.Text = "网络已断开";
-                label_ServerStatus.BackColor = Color.Red;
-                MessageBox.Show("网络断开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
-                this.Close();
-            }
-            else
-            {
-                label_Server_ComStatus.Text = "网络已连接: " + IP;
-                label_ServerStatus.BackColor = Color.Green;
-            }
+                if (myFtp.CheckFtp() == false)
+                {
+                    label_Server_ComStatus.Text = "网络已断开";
+                    label_ServerStatus.BackColor = Color.Red;
+                    MessageBox.Show("网络断开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                    this.Close();
+                }
+                else
+                {
+                    label_Server_ComStatus.Text = "网络已连接: " + IP;
+                    label_ServerStatus.BackColor = Color.Green;
+                }
 
-            //加载模板文件
-            comboBox_ModelFile.Items.Clear();
-            string[] FileList = { "" };            
-            FileList = myFtp.GetFileNameList(ModelPath);
-            comboBox_ModelFile.Items.Clear();            
-            foreach (var file in FileList)
-            {
-                if (file.Contains(".src"))
+                //加载模板文件
+                comboBox_ModelFile.Items.Clear();
+                string[] FileList = { "" };
+                FileList = myFtp.GetFileNameList(ModelPath);
+                comboBox_ModelFile.Items.Clear();
+                foreach (var file in FileList)
                 {
-                    comboBox_ModelFile.Items.Add(file.Substring(file.LastIndexOf("\\") + 1));
+                    if (file.Contains(".src"))
+                    {
+                        comboBox_ModelFile.Items.Add(file.Substring(file.LastIndexOf("\\") + 1));
+                    }
                 }
             }
+            else //离线状态仅支持本地
+            {
+                comboBox_ModelFile.Enabled = false;
+                button_ModeRefresh.Enabled = false;
+                button_GenerateModelFile.Enabled = false;
+                button_DeletModelFile.Enabled = false;
+                button_ChangeModelFile.Enabled = false;
+                checkBox_SyncFac.Checked = true;
+                tabPage_Note.Parent = null;
+            }
 
         }
 
@@ -755,6 +772,9 @@ namespace Welling_Motor_Debug_Tool
             pictureBox1.Image = global::Welling_Motor_Debug_Tool.Properties.Resources.Lock;
             WriteLockStatus = true;
 
+            if (comboBox_ModelFile.SelectedIndex < 0)
+                return;
+
             //下载文件
             if (System.IO.File.Exists(localInfo.LocalPath + "\\" + comboBox_ModelFile.Text))//本地存在选定文件,先删除本地
             {
@@ -1227,7 +1247,7 @@ namespace Welling_Motor_Debug_Tool
                 DialogResult result = saveFileDialog.ShowDialog();
                 if (result == DialogResult.OK)
                 {
-                    string filePath = saveFileDialog.FileName + "_" + DateTime.Now.ToString("yyyyMMddHHmmss");
+                    string filePath = saveFileDialog.FileName.Split('.')[0] + "_" + DateTime.Now.ToString("yyyyMMddHHmmss");
                     //保存src文件
                     System.IO.File.WriteAllText(filePath + ".src", richTextBox_AdvanceParams.Text);                    
                     //检查是否存在转换工具

BIN
Welling_Motor_Debug_Tool/Images/MainIcon.ico


+ 2 - 1
Welling_Motor_Debug_Tool/LocalInfo.cs

@@ -12,7 +12,7 @@ namespace Welling_Motor_Debug_Tool
         public string LocalDataPath = "C:\\Temp\\MotorTestTool\\DataLog\\"; //本地数据文件路径
         public string LocalLogPath = "C:\\Temp\\MotorTestTool\\Log\\"; //本地日志文件路径
         public string PC_InfoFileName = "PC_Info.txt";//计算机信息
-        public string ConfigFileName = "Config3.ttcfg"; //配置文件
+        public string ConfigFileName = "Config4.ttcfg"; //配置文件
         public string NoteFileName = "Note.txt";
         public string SerialNumFileName1 = "serial1";//测试流水号
         public string SerialNumFileName2 = "serial2";//检验流水号
@@ -24,5 +24,6 @@ namespace Welling_Motor_Debug_Tool
         public string CheckPathName = "qcTest\\"; //检验目录
         public string SampleFileName = "Samples\\";//样机提交记录
         public string VersionPathName = "version\\"; //版本信息
+        public string ServerCfgFileName = "server.ttcfg"; //服务器配置文件
     }
 }

+ 3 - 1
Welling_Motor_Debug_Tool/Login.Designer.cs

@@ -41,14 +41,15 @@
             // 
             // comboBox_User
             // 
+            this.comboBox_User.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.comboBox_User.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.comboBox_User.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
             this.comboBox_User.FormattingEnabled = true;
-            this.comboBox_User.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;            
             this.comboBox_User.Location = new System.Drawing.Point(89, 65);
             this.comboBox_User.Name = "comboBox_User";
             this.comboBox_User.Size = new System.Drawing.Size(171, 35);
             this.comboBox_User.TabIndex = 43;
+            this.comboBox_User.SelectedIndexChanged += new System.EventHandler(this.comboBox_User_SelectedIndexChanged);
             // 
             // button_keyboard
             // 
@@ -84,6 +85,7 @@
             this.label1.Size = new System.Drawing.Size(52, 27);
             this.label1.TabIndex = 39;
             this.label1.Text = "账户";
+            this.label1.Click += new System.EventHandler(this.label1_Click);
             // 
             // textBox_Passwd
             // 

+ 10 - 0
Welling_Motor_Debug_Tool/Login.cs

@@ -97,5 +97,15 @@ namespace Welling_Motor_Debug_Tool
             if (e.KeyCode == Keys.Enter)
                 this.Close();
         }
+
+        private void comboBox_User_SelectedIndexChanged(object sender, EventArgs e)
+        {
+
+        }
+
+        private void label1_Click(object sender, EventArgs e)
+        {
+
+        }
     }
 }

+ 2 - 4
Welling_Motor_Debug_Tool/Scan.Designer.cs

@@ -42,7 +42,7 @@
             this.label1.AutoSize = true;
             this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
-            this.label1.Location = new System.Drawing.Point(11, 23);
+            this.label1.Location = new System.Drawing.Point(15, 9);
             this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(74, 21);
@@ -114,7 +114,6 @@
             this.MaximizeBox = false;
             this.Name = "Scan";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-            this.Text = "输入";
             this.Load += new System.EventHandler(this.Scan_Load);
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
             this.ResumeLayout(false);
@@ -123,11 +122,10 @@
         }
 
         #endregion
-
-        private System.Windows.Forms.Label label1;
         private System.Windows.Forms.Button button_Enter;
         public System.Windows.Forms.TextBox textBox_Scan;
         private System.Windows.Forms.Button button_keyboard;
         private System.Windows.Forms.PictureBox pictureBox1;
+        public System.Windows.Forms.Label label1;
     }
 }

+ 15 - 6
Welling_Motor_Debug_Tool/Version.cs

@@ -17,34 +17,42 @@ namespace Welling_Motor_Debug_Tool
         //修改记录
         string ChangeLog = "修改记录:\r\n" +
             "V" + mainForm.Version + "\r\n" +
+            "" +
+            "\r\n" +
+            "V2.2.2\r\n" +
             "1,增加自动更新按钮,解决离线使用时打开慢的问题;\r\n" +
             "2,删除发送进入5S协议指令,新版本UART控制器不需要配置协议,考虑还原提高兼容性;\r\n" +
             "3,部分工序增加延时,解决通信异常问题;\r\n" +
             "4,量产测试和检验模式增加重发机制;\r\n" +
             "5,控制参数预留1低8位作为转把定速巡航开关,仪表用户参数增加转把定速巡航开关;\r\n" +
             "6, 增加指令窗口,可显示接收和发送的数据;\r\n" +
-            "7,解决导入本地记录文件时,自定义字符串以\\0结尾高级参数界面异常问题,目前关闭自定义字符串指令。\r\n\r\n" +
+            "7,解决导入本地记录文件时,自定义字符串以\\0结尾高级参数界面异常问题,目前关闭自定义字符串指令。\r\n" +
+            "\r\n"+
             "V2.2.1\r\n" +
             "1,优化修改配置模式时重复发送指令的问题;\r\n" +
             "2,解决刹车检测报错的问题;\r\n" +
-            "3, 解决力矩传感器测试结果不显示问题。\r\n\r\n" +
+            "3, 解决力矩传感器测试结果不显示问题。\r\n" +
+            "\r\n" +
             "V2.2.0\r\n" +
             "1,优化新增协议内容;\r\n" +
             "2,增加协议类型选择,支持CAN和UART;\r\n" +
             "3,针对UART控制器在量产测试过程中增加5S协议设定和联动装置盒波特率设定,以正确接收UART控制器数据和Boot版本信息;\r\n" +
             "4,基础功能测试控制电机启动由修改运行模式改为Walk模式;\r\n" +
             "5,量产功能测试增加MOS内阻校准环节,支持可选;\r\n" +
-            "6,增加流水号记录。\r\n\r\n" +
+            "6,增加流水号记录。\r\n" +
+            "\r\n" +
             "V2.1.9\r\n" +
             "1,增加整车信息2、用户骑行参数界面,支持上位机读写;\r\n" +
             "2,增加车架ODO里程写入和读取;\r\n" +
             "3,增加产品标签写入,支持32位字符;\r\n" +
             "4,生成参数界面可选择HUB_FCT,支持仅导出到本地;\r\n" +
             "5,FCT治具测试账户登录后,测试路径自动改为HUB_FCT_Test;\r\n" +
-            "6,增加删除指定配置文件和样机测试记录文件,支持文件夹递归删除。\r\n\r\n" +
+            "6,增加删除指定配置文件和样机测试记录文件,支持文件夹递归删除。\r\n" +
+            "\r\n" +
             "V2.1.8\r\n" +
             "1,限制FCT治具测试账户需要联网使用;\r\n" +
-            "2,量产测试和检验模式下,双击配置文件可删除选中的配置文件。\r\n\r\n" +
+            "2,量产测试和检验模式下,双击配置文件可删除选中的配置文件。\r\n" +
+            "\r\n" +
             "V2.1.7\r\n" +
             "1,解决系统显示缩放后,截图显示不完全的问题;\r\n" +
             "2,允许离线使用是关闭网络定时检测;\r\n" +
@@ -52,7 +60,8 @@ namespace Welling_Motor_Debug_Tool
             "4,启动登录密码错误时不自动关闭,重新进入登录;\r\n" +
             "5,部分提示框修改为自动关闭;\r\n" +
             "6,增加读取本机信息功能;\r\n" +
-            "7,启动时自动上传登录日志,包含本机信息。\r\n\r\n" +
+            "7,启动时自动上传登录日志,包含本机信息。\r\n" +
+            "\r\n" +
             "V2.1.6\r\n" +
             "1,修改控制器内阻校准指令,增加写入存储标志;\r\n" +
             "2,参数生成界面增加导入样机测试记录的文件功能;\r\n" +

+ 9 - 0
Welling_Motor_Debug_Tool/Welling_Motor_Debug_Tool.csproj

@@ -81,6 +81,12 @@
     <Compile Include="Info.cs" />
     <Compile Include="MessageBoxTimeOut.cs" />
     <Compile Include="PC_Information.cs" />
+    <Compile Include="ServerSelect.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ServerSelect.Designer.cs">
+      <DependentUpon>ServerSelect.cs</DependentUpon>
+    </Compile>
     <Compile Include="TorqueParams.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -142,6 +148,9 @@
     <EmbeddedResource Include="Scan.resx">
       <DependentUpon>Scan.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="ServerSelect.resx">
+      <DependentUpon>ServerSelect.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="TorqueParams.resx">
       <DependentUpon>TorqueParams.cs</DependentUpon>
     </EmbeddedResource>

+ 7 - 4
Welling_Motor_Debug_Tool/ftp.cs

@@ -286,7 +286,7 @@ namespace Welling_Motor_Debug_Tool
                 Uri uri = new Uri("ftp://" + serverIP + ":" + serverPort + "/" + ServerPath);
                 ftp = (FtpWebRequest)FtpWebRequest.Create(uri);
                 ftp.Credentials = new NetworkCredential(userId,passWord);
-                ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
+                ftp.Method = WRMethods;
                 ftp.UsePassive = true;
                 response = ftp.GetResponse();
                 reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
@@ -363,10 +363,13 @@ namespace Welling_Motor_Debug_Tool
                 {
                     if (str.Trim().Length == 0)
                         continue;
-                    //drwxrwxrwx开头
-                    if (str.Trim().Substring(0, 1) == "d")
+                    if (str.Contains("<DIR>")) //Windows服务器
+                    { 
+                    
+                    }
+                    else if (str.Trim().Substring(0, 1) == "d") //Linux服务器
                     {
-                        strList.Add(str.Split(' ')[str.Split(' ').Length - 1].Trim());
+                        strList.Add(str.Split(':')[1].Split(' ')[1]);
                     }
                 }
             }

+ 543 - 36
Welling_Motor_Debug_Tool/mainForm.Designer.cs

@@ -31,6 +31,9 @@ namespace Welling_Motor_Debug_Tool
         private void InitializeComponent()
         {
             this.components = new System.ComponentModel.Container();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(mainForm));
             this.menuStrip_Set = new System.Windows.Forms.MenuStrip();
             this.端口连接ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -141,6 +144,7 @@ namespace Welling_Motor_Debug_Tool
             this.statusStrip1 = new System.Windows.Forms.StatusStrip();
             this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
             this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.textBox_MotorSpeedPercent = new System.Windows.Forms.TextBox();
             this.label69 = new System.Windows.Forms.Label();
             this.button_SpeedAdd10 = new System.Windows.Forms.Button();
             this.button_SpeedAdd1 = new System.Windows.Forms.Button();
@@ -434,8 +438,41 @@ namespace Welling_Motor_Debug_Tool
             this.label119 = new System.Windows.Forms.Label();
             this.groupBox19 = new System.Windows.Forms.GroupBox();
             this.button_FacModeInit = new System.Windows.Forms.Button();
+            this.tabPage_AngleCal = new System.Windows.Forms.TabPage();
+            this.label153 = new System.Windows.Forms.Label();
+            this.label151 = new System.Windows.Forms.Label();
+            this.label150 = new System.Windows.Forms.Label();
+            this.textBox_AngleDiffAvg = new System.Windows.Forms.TextBox();
+            this.label149 = new System.Windows.Forms.Label();
+            this.textBox_AngleDiffMax = new System.Windows.Forms.TextBox();
+            this.label147 = new System.Windows.Forms.Label();
+            this.textBox_AngleDiffMin = new System.Windows.Forms.TextBox();
+            this.label146 = new System.Windows.Forms.Label();
+            this.textBox_AngleZeroDiff = new System.Windows.Forms.TextBox();
+            this.label144 = new System.Windows.Forms.Label();
+            this.textBox_AngleZeroCur = new System.Windows.Forms.TextBox();
+            this.label142 = new System.Windows.Forms.Label();
+            this.textBox_AngleZeroInit = new System.Windows.Forms.TextBox();
+            this.label140 = new System.Windows.Forms.Label();
+            this.textBox_AngleZeroTh = new System.Windows.Forms.TextBox();
+            this.label139 = new System.Windows.Forms.Label();
+            this.textBox_AngleDiffTh = new System.Windows.Forms.TextBox();
+            this.button_AngleWrite = new System.Windows.Forms.Button();
+            this.button_AngleExportData = new System.Windows.Forms.Button();
+            this.button_AngleCalStart = new System.Windows.Forms.Button();
+            this.groupBox32 = new System.Windows.Forms.GroupBox();
+            this.dataGridView_AngleCal = new System.Windows.Forms.DataGridView();
+            this.Pole = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_60 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_120 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_180 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_240 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_300 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Angle_360 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.tabPage_ProductMode_Write = new System.Windows.Forms.TabPage();
             this.groupBox28 = new System.Windows.Forms.GroupBox();
+            this.label67 = new System.Windows.Forms.Label();
+            this.label_FacModeAngleCal = new System.Windows.Forms.Label();
             this.label130 = new System.Windows.Forms.Label();
             this.label_FacModeMosCal = new System.Windows.Forms.Label();
             this.label117 = new System.Windows.Forms.Label();
@@ -476,6 +513,7 @@ namespace Welling_Motor_Debug_Tool
             this.comboBox_FacModeCfgFile = new System.Windows.Forms.ComboBox();
             this.comboBox_FacModeCfgDate = new System.Windows.Forms.ComboBox();
             this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.checkBox_FacMode_AngleCal = new System.Windows.Forms.CheckBox();
             this.checkBox_FacMode_MosCal = new System.Windows.Forms.CheckBox();
             this.pictureBox_WriteLock = new System.Windows.Forms.PictureBox();
             this.checkBox_FacCad = new System.Windows.Forms.CheckBox();
@@ -531,7 +569,7 @@ namespace Welling_Motor_Debug_Tool
             this.label141 = new System.Windows.Forms.Label();
             this.label23 = new System.Windows.Forms.Label();
             this.label_RecCount = new System.Windows.Forms.Label();
-            this.timer_1s = new System.Windows.Forms.Timer(this.components);
+            this.timer_500ms = new System.Windows.Forms.Timer(this.components);
             this.label_BuildTime = new System.Windows.Forms.Label();
             this.label_SystemTime = new System.Windows.Forms.Label();
             this.label_COM_Sta = new System.Windows.Forms.Label();
@@ -586,6 +624,8 @@ namespace Welling_Motor_Debug_Tool
             this.label11 = new System.Windows.Forms.Label();
             this.label5 = new System.Windows.Forms.Label();
             this.tabPage_DebugInfo = new System.Windows.Forms.TabPage();
+            this.textBox_DebugInfo_ThrottlePer = new System.Windows.Forms.TextBox();
+            this.label152 = new System.Windows.Forms.Label();
             this.textBox_DebugInfo_SysFun = new System.Windows.Forms.TextBox();
             this.textBox_DebugInfo_SecondFun = new System.Windows.Forms.TextBox();
             this.textBox_DebugInfo_MotorFun = new System.Windows.Forms.TextBox();
@@ -619,7 +659,8 @@ namespace Welling_Motor_Debug_Tool
             this.label124 = new System.Windows.Forms.Label();
             this.label46 = new System.Windows.Forms.Label();
             this.pictureBox2 = new System.Windows.Forms.PictureBox();
-            this.textBox_MotorSpeedPercent = new System.Windows.Forms.TextBox();
+            this.重置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
             this.menuStrip_Set.SuspendLayout();
             this.statusStrip1.SuspendLayout();
             this.groupBox1.SuspendLayout();
@@ -664,6 +705,9 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox20.SuspendLayout();
             this.groupBox24.SuspendLayout();
             this.groupBox19.SuspendLayout();
+            this.tabPage_AngleCal.SuspendLayout();
+            this.groupBox32.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView_AngleCal)).BeginInit();
             this.tabPage_ProductMode_Write.SuspendLayout();
             this.groupBox28.SuspendLayout();
             this.groupBox27.SuspendLayout();
@@ -880,7 +924,7 @@ namespace Welling_Motor_Debug_Tool
             // 允许ToolStripMenuItem
             // 
             this.允许ToolStripMenuItem.Name = "允许ToolStripMenuItem";
-            this.允许ToolStripMenuItem.Size = new System.Drawing.Size(128, 26);
+            this.允许ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
             this.允许ToolStripMenuItem.Text = "允许";
             this.允许ToolStripMenuItem.Click += new System.EventHandler(this.允许ToolStripMenuItem_Click);
             // 
@@ -889,7 +933,7 @@ namespace Welling_Motor_Debug_Tool
             this.不允许ToolStripMenuItem.Checked = true;
             this.不允许ToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
             this.不允许ToolStripMenuItem.Name = "不允许ToolStripMenuItem";
-            this.不允许ToolStripMenuItem.Size = new System.Drawing.Size(128, 26);
+            this.不允许ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
             this.不允许ToolStripMenuItem.Text = "不允许";
             this.不允许ToolStripMenuItem.Click += new System.EventHandler(this.不允许ToolStripMenuItem_Click);
             // 
@@ -900,7 +944,9 @@ namespace Welling_Motor_Debug_Tool
             this.端口ToolStripMenuItem,
             this.用户名ToolStripMenuItem,
             this.密码ToolStripMenuItem,
-            this.存储路径ToolStripMenuItem});
+            this.存储路径ToolStripMenuItem,
+            this.toolStripSeparator6,
+            this.重置ToolStripMenuItem});
             this.服务器配置ToolStripMenuItem.Name = "服务器配置ToolStripMenuItem";
             this.服务器配置ToolStripMenuItem.Size = new System.Drawing.Size(214, 26);
             this.服务器配置ToolStripMenuItem.Text = "FTP服务器配置";
@@ -1293,7 +1339,7 @@ namespace Welling_Motor_Debug_Tool
             this.mOS1ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripTextBox_MOS1});
             this.mOS1ToolStripMenuItem.Name = "mOS1ToolStripMenuItem";
-            this.mOS1ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.mOS1ToolStripMenuItem.Size = new System.Drawing.Size(127, 26);
             this.mOS1ToolStripMenuItem.Text = "MOS1";
             // 
             // toolStripTextBox_MOS1
@@ -1309,7 +1355,7 @@ namespace Welling_Motor_Debug_Tool
             this.mOS2ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripTextBox_MOS2});
             this.mOS2ToolStripMenuItem.Name = "mOS2ToolStripMenuItem";
-            this.mOS2ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.mOS2ToolStripMenuItem.Size = new System.Drawing.Size(127, 26);
             this.mOS2ToolStripMenuItem.Text = "MOS2";
             // 
             // toolStripTextBox_MOS2
@@ -1325,7 +1371,7 @@ namespace Welling_Motor_Debug_Tool
             this.mOS3ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripTextBox_MOS3});
             this.mOS3ToolStripMenuItem.Name = "mOS3ToolStripMenuItem";
-            this.mOS3ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.mOS3ToolStripMenuItem.Size = new System.Drawing.Size(127, 26);
             this.mOS3ToolStripMenuItem.Text = "MOS3";
             // 
             // toolStripTextBox_MOS3
@@ -1355,14 +1401,14 @@ namespace Welling_Motor_Debug_Tool
             this.cANToolStripMenuItem.Checked = true;
             this.cANToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
             this.cANToolStripMenuItem.Name = "cANToolStripMenuItem";
-            this.cANToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.cANToolStripMenuItem.Size = new System.Drawing.Size(122, 26);
             this.cANToolStripMenuItem.Text = "CAN";
             this.cANToolStripMenuItem.Click += new System.EventHandler(this.cANToolStripMenuItem_Click);
             // 
             // uARTToolStripMenuItem
             // 
             this.uARTToolStripMenuItem.Name = "uARTToolStripMenuItem";
-            this.uARTToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.uARTToolStripMenuItem.Size = new System.Drawing.Size(122, 26);
             this.uARTToolStripMenuItem.Text = "UART";
             this.uARTToolStripMenuItem.Click += new System.EventHandler(this.uARTToolStripMenuItem_Click);
             // 
@@ -1446,7 +1492,7 @@ namespace Welling_Motor_Debug_Tool
             this.生产配置文件ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripTextBox_DelCfgFile});
             this.生产配置文件ToolStripMenuItem.Name = "生产配置文件ToolStripMenuItem";
-            this.生产配置文件ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.生产配置文件ToolStripMenuItem.Size = new System.Drawing.Size(176, 26);
             this.生产配置文件ToolStripMenuItem.Text = "生产配置文件";
             // 
             // toolStripTextBox_DelCfgFile
@@ -1462,7 +1508,7 @@ namespace Welling_Motor_Debug_Tool
             this.样机测试记录ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripTextBox_DelLogFile});
             this.样机测试记录ToolStripMenuItem.Name = "样机测试记录ToolStripMenuItem";
-            this.样机测试记录ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.样机测试记录ToolStripMenuItem.Size = new System.Drawing.Size(176, 26);
             this.样机测试记录ToolStripMenuItem.Text = "样机测试记录";
             // 
             // toolStripTextBox_DelLogFile
@@ -1581,7 +1627,7 @@ namespace Welling_Motor_Debug_Tool
             // toolStripMenuItem_RunTime
             // 
             this.toolStripMenuItem_RunTime.Name = "toolStripMenuItem_RunTime";
-            this.toolStripMenuItem_RunTime.Size = new System.Drawing.Size(142, 26);
+            this.toolStripMenuItem_RunTime.Size = new System.Drawing.Size(180, 26);
             this.toolStripMenuItem_RunTime.Text = "00:00:00";
             // 
             // statusStrip1
@@ -1627,6 +1673,17 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox1.Text = "电机控制";
             this.groupBox1.Visible = false;
             // 
+            // textBox_MotorSpeedPercent
+            // 
+            this.textBox_MotorSpeedPercent.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
+            this.textBox_MotorSpeedPercent.Location = new System.Drawing.Point(85, 124);
+            this.textBox_MotorSpeedPercent.Name = "textBox_MotorSpeedPercent";
+            this.textBox_MotorSpeedPercent.ReadOnly = true;
+            this.textBox_MotorSpeedPercent.Size = new System.Drawing.Size(70, 28);
+            this.textBox_MotorSpeedPercent.TabIndex = 17;
+            this.textBox_MotorSpeedPercent.Text = "0";
+            this.textBox_MotorSpeedPercent.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
             // label69
             // 
             this.label69.BackColor = System.Drawing.Color.Silver;
@@ -1807,6 +1864,7 @@ namespace Welling_Motor_Debug_Tool
             this.tabControl1.Controls.Add(this.tabPage_OBC);
             this.tabControl1.Controls.Add(this.tabPage_RAMorFLASH);
             this.tabControl1.Controls.Add(this.tabPage_FactoryMode);
+            this.tabControl1.Controls.Add(this.tabPage_AngleCal);
             this.tabControl1.Controls.Add(this.tabPage_ProductMode_Write);
             this.tabControl1.Controls.Add(this.tabPage_ProductMode_Read);
             this.tabControl1.Location = new System.Drawing.Point(10, 27);
@@ -3354,6 +3412,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonSet
             // 
             this.button_OBC_ButtonSet.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonSet.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonSet.Location = new System.Drawing.Point(6, 264);
             this.button_OBC_ButtonSet.Name = "button_OBC_ButtonSet";
             this.button_OBC_ButtonSet.Size = new System.Drawing.Size(60, 35);
@@ -3365,6 +3424,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonLight
             // 
             this.button_OBC_ButtonLight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonLight.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonLight.Location = new System.Drawing.Point(6, 216);
             this.button_OBC_ButtonLight.Name = "button_OBC_ButtonLight";
             this.button_OBC_ButtonLight.Size = new System.Drawing.Size(60, 35);
@@ -3376,6 +3436,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonWalk
             // 
             this.button_OBC_ButtonWalk.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonWalk.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonWalk.Location = new System.Drawing.Point(6, 169);
             this.button_OBC_ButtonWalk.Name = "button_OBC_ButtonWalk";
             this.button_OBC_ButtonWalk.Size = new System.Drawing.Size(60, 35);
@@ -3387,6 +3448,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonDec
             // 
             this.button_OBC_ButtonDec.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonDec.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonDec.Location = new System.Drawing.Point(6, 122);
             this.button_OBC_ButtonDec.Name = "button_OBC_ButtonDec";
             this.button_OBC_ButtonDec.Size = new System.Drawing.Size(60, 35);
@@ -3398,6 +3460,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonAcc
             // 
             this.button_OBC_ButtonAcc.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonAcc.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonAcc.Location = new System.Drawing.Point(6, 75);
             this.button_OBC_ButtonAcc.Name = "button_OBC_ButtonAcc";
             this.button_OBC_ButtonAcc.Size = new System.Drawing.Size(60, 35);
@@ -3409,6 +3472,7 @@ namespace Welling_Motor_Debug_Tool
             // button_OBC_ButtonPower
             // 
             this.button_OBC_ButtonPower.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_OBC_ButtonPower.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.button_OBC_ButtonPower.Location = new System.Drawing.Point(6, 27);
             this.button_OBC_ButtonPower.Name = "button_OBC_ButtonPower";
             this.button_OBC_ButtonPower.Size = new System.Drawing.Size(60, 35);
@@ -4890,6 +4954,345 @@ namespace Welling_Motor_Debug_Tool
             this.button_FacModeInit.UseVisualStyleBackColor = false;
             this.button_FacModeInit.Click += new System.EventHandler(this.button_FacModeInit_Click);
             // 
+            // tabPage_AngleCal
+            // 
+            this.tabPage_AngleCal.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.tabPage_AngleCal.Controls.Add(this.label153);
+            this.tabPage_AngleCal.Controls.Add(this.label151);
+            this.tabPage_AngleCal.Controls.Add(this.label150);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleDiffAvg);
+            this.tabPage_AngleCal.Controls.Add(this.label149);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleDiffMax);
+            this.tabPage_AngleCal.Controls.Add(this.label147);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleDiffMin);
+            this.tabPage_AngleCal.Controls.Add(this.label146);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleZeroDiff);
+            this.tabPage_AngleCal.Controls.Add(this.label144);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleZeroCur);
+            this.tabPage_AngleCal.Controls.Add(this.label142);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleZeroInit);
+            this.tabPage_AngleCal.Controls.Add(this.label140);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleZeroTh);
+            this.tabPage_AngleCal.Controls.Add(this.label139);
+            this.tabPage_AngleCal.Controls.Add(this.textBox_AngleDiffTh);
+            this.tabPage_AngleCal.Controls.Add(this.button_AngleWrite);
+            this.tabPage_AngleCal.Controls.Add(this.button_AngleExportData);
+            this.tabPage_AngleCal.Controls.Add(this.button_AngleCalStart);
+            this.tabPage_AngleCal.Controls.Add(this.groupBox32);
+            this.tabPage_AngleCal.Location = new System.Drawing.Point(4, 30);
+            this.tabPage_AngleCal.Name = "tabPage_AngleCal";
+            this.tabPage_AngleCal.Size = new System.Drawing.Size(990, 315);
+            this.tabPage_AngleCal.TabIndex = 15;
+            this.tabPage_AngleCal.Text = "位置校准";
+            // 
+            // label153
+            // 
+            this.label153.BackColor = System.Drawing.Color.Silver;
+            this.label153.Location = new System.Drawing.Point(761, 202);
+            this.label153.Name = "label153";
+            this.label153.Size = new System.Drawing.Size(206, 1);
+            this.label153.TabIndex = 62;
+            // 
+            // label151
+            // 
+            this.label151.BackColor = System.Drawing.Color.Silver;
+            this.label151.Location = new System.Drawing.Point(761, 88);
+            this.label151.Name = "label151";
+            this.label151.Size = new System.Drawing.Size(206, 1);
+            this.label151.TabIndex = 61;
+            // 
+            // label150
+            // 
+            this.label150.AutoSize = true;
+            this.label150.Location = new System.Drawing.Point(758, 287);
+            this.label150.Name = "label150";
+            this.label150.Size = new System.Drawing.Size(74, 21);
+            this.label150.TabIndex = 59;
+            this.label150.Text = "平均偏差";
+            // 
+            // textBox_AngleDiffAvg
+            // 
+            this.textBox_AngleDiffAvg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleDiffAvg.Location = new System.Drawing.Point(881, 283);
+            this.textBox_AngleDiffAvg.Name = "textBox_AngleDiffAvg";
+            this.textBox_AngleDiffAvg.ReadOnly = true;
+            this.textBox_AngleDiffAvg.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleDiffAvg.TabIndex = 60;
+            this.textBox_AngleDiffAvg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label149
+            // 
+            this.label149.AutoSize = true;
+            this.label149.Location = new System.Drawing.Point(758, 249);
+            this.label149.Name = "label149";
+            this.label149.Size = new System.Drawing.Size(74, 21);
+            this.label149.TabIndex = 57;
+            this.label149.Text = "最大偏差";
+            // 
+            // textBox_AngleDiffMax
+            // 
+            this.textBox_AngleDiffMax.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleDiffMax.Location = new System.Drawing.Point(881, 245);
+            this.textBox_AngleDiffMax.Name = "textBox_AngleDiffMax";
+            this.textBox_AngleDiffMax.ReadOnly = true;
+            this.textBox_AngleDiffMax.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleDiffMax.TabIndex = 58;
+            this.textBox_AngleDiffMax.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label147
+            // 
+            this.label147.AutoSize = true;
+            this.label147.Location = new System.Drawing.Point(758, 211);
+            this.label147.Name = "label147";
+            this.label147.Size = new System.Drawing.Size(74, 21);
+            this.label147.TabIndex = 55;
+            this.label147.Text = "最小偏差";
+            // 
+            // textBox_AngleDiffMin
+            // 
+            this.textBox_AngleDiffMin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleDiffMin.Location = new System.Drawing.Point(881, 207);
+            this.textBox_AngleDiffMin.Name = "textBox_AngleDiffMin";
+            this.textBox_AngleDiffMin.ReadOnly = true;
+            this.textBox_AngleDiffMin.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleDiffMin.TabIndex = 56;
+            this.textBox_AngleDiffMin.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label146
+            // 
+            this.label146.AutoSize = true;
+            this.label146.Location = new System.Drawing.Point(758, 173);
+            this.label146.Name = "label146";
+            this.label146.Size = new System.Drawing.Size(74, 21);
+            this.label146.TabIndex = 53;
+            this.label146.Text = "零点误差";
+            // 
+            // textBox_AngleZeroDiff
+            // 
+            this.textBox_AngleZeroDiff.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleZeroDiff.Location = new System.Drawing.Point(881, 169);
+            this.textBox_AngleZeroDiff.Name = "textBox_AngleZeroDiff";
+            this.textBox_AngleZeroDiff.ReadOnly = true;
+            this.textBox_AngleZeroDiff.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleZeroDiff.TabIndex = 54;
+            this.textBox_AngleZeroDiff.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label144
+            // 
+            this.label144.AutoSize = true;
+            this.label144.Location = new System.Drawing.Point(758, 135);
+            this.label144.Name = "label144";
+            this.label144.Size = new System.Drawing.Size(106, 21);
+            this.label144.TabIndex = 51;
+            this.label144.Text = "当前零点位置";
+            // 
+            // textBox_AngleZeroCur
+            // 
+            this.textBox_AngleZeroCur.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleZeroCur.Location = new System.Drawing.Point(881, 131);
+            this.textBox_AngleZeroCur.Name = "textBox_AngleZeroCur";
+            this.textBox_AngleZeroCur.ReadOnly = true;
+            this.textBox_AngleZeroCur.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleZeroCur.TabIndex = 52;
+            this.textBox_AngleZeroCur.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label142
+            // 
+            this.label142.AutoSize = true;
+            this.label142.Location = new System.Drawing.Point(758, 97);
+            this.label142.Name = "label142";
+            this.label142.Size = new System.Drawing.Size(106, 21);
+            this.label142.TabIndex = 49;
+            this.label142.Text = "历史零点位置";
+            // 
+            // textBox_AngleZeroInit
+            // 
+            this.textBox_AngleZeroInit.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleZeroInit.Location = new System.Drawing.Point(881, 93);
+            this.textBox_AngleZeroInit.Name = "textBox_AngleZeroInit";
+            this.textBox_AngleZeroInit.ReadOnly = true;
+            this.textBox_AngleZeroInit.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleZeroInit.TabIndex = 50;
+            this.textBox_AngleZeroInit.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label140
+            // 
+            this.label140.AutoSize = true;
+            this.label140.Location = new System.Drawing.Point(758, 59);
+            this.label140.Name = "label140";
+            this.label140.Size = new System.Drawing.Size(106, 21);
+            this.label140.TabIndex = 47;
+            this.label140.Text = "零点允许偏差";
+            // 
+            // textBox_AngleZeroTh
+            // 
+            this.textBox_AngleZeroTh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleZeroTh.Location = new System.Drawing.Point(881, 55);
+            this.textBox_AngleZeroTh.Name = "textBox_AngleZeroTh";
+            this.textBox_AngleZeroTh.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleZeroTh.TabIndex = 48;
+            this.textBox_AngleZeroTh.Text = "5";
+            this.textBox_AngleZeroTh.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.textBox_AngleZeroTh.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox_AngleZeroTh_KeyDown);
+            // 
+            // label139
+            // 
+            this.label139.AutoSize = true;
+            this.label139.Location = new System.Drawing.Point(758, 25);
+            this.label139.Name = "label139";
+            this.label139.Size = new System.Drawing.Size(106, 21);
+            this.label139.TabIndex = 46;
+            this.label139.Text = "最大允许偏差";
+            // 
+            // textBox_AngleDiffTh
+            // 
+            this.textBox_AngleDiffTh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_AngleDiffTh.Location = new System.Drawing.Point(881, 21);
+            this.textBox_AngleDiffTh.Name = "textBox_AngleDiffTh";
+            this.textBox_AngleDiffTh.Size = new System.Drawing.Size(85, 28);
+            this.textBox_AngleDiffTh.TabIndex = 46;
+            this.textBox_AngleDiffTh.Text = "10";
+            this.textBox_AngleDiffTh.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.textBox_AngleDiffTh.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox_AngleDiffTh_KeyDown);
+            // 
+            // button_AngleWrite
+            // 
+            this.button_AngleWrite.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_AngleWrite.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.button_AngleWrite.ForeColor = System.Drawing.Color.Black;
+            this.button_AngleWrite.Location = new System.Drawing.Point(620, 261);
+            this.button_AngleWrite.Name = "button_AngleWrite";
+            this.button_AngleWrite.Size = new System.Drawing.Size(120, 50);
+            this.button_AngleWrite.TabIndex = 28;
+            this.button_AngleWrite.Text = "校准历史零点";
+            this.button_AngleWrite.UseVisualStyleBackColor = false;
+            this.button_AngleWrite.Click += new System.EventHandler(this.button_AngleWrite_Click);
+            // 
+            // button_AngleExportData
+            // 
+            this.button_AngleExportData.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_AngleExportData.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.button_AngleExportData.ForeColor = System.Drawing.Color.Black;
+            this.button_AngleExportData.Location = new System.Drawing.Point(620, 141);
+            this.button_AngleExportData.Name = "button_AngleExportData";
+            this.button_AngleExportData.Size = new System.Drawing.Size(120, 50);
+            this.button_AngleExportData.TabIndex = 27;
+            this.button_AngleExportData.Text = "导出数据";
+            this.button_AngleExportData.UseVisualStyleBackColor = false;
+            this.button_AngleExportData.Click += new System.EventHandler(this.button_AngleExportData_Click);
+            // 
+            // button_AngleCalStart
+            // 
+            this.button_AngleCalStart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.button_AngleCalStart.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.button_AngleCalStart.ForeColor = System.Drawing.Color.Black;
+            this.button_AngleCalStart.Location = new System.Drawing.Point(620, 21);
+            this.button_AngleCalStart.Name = "button_AngleCalStart";
+            this.button_AngleCalStart.Size = new System.Drawing.Size(120, 50);
+            this.button_AngleCalStart.TabIndex = 26;
+            this.button_AngleCalStart.Text = "开始位置传感器测试";
+            this.button_AngleCalStart.UseVisualStyleBackColor = false;
+            this.button_AngleCalStart.Click += new System.EventHandler(this.button_AngleCalStart_Click);
+            // 
+            // groupBox32
+            // 
+            this.groupBox32.Controls.Add(this.dataGridView_AngleCal);
+            this.groupBox32.Location = new System.Drawing.Point(4, 4);
+            this.groupBox32.Name = "groupBox32";
+            this.groupBox32.Size = new System.Drawing.Size(606, 308);
+            this.groupBox32.TabIndex = 1;
+            this.groupBox32.TabStop = false;
+            this.groupBox32.Text = "位置校准数据";
+            // 
+            // dataGridView_AngleCal
+            // 
+            this.dataGridView_AngleCal.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.dataGridView_AngleCal.BorderStyle = System.Windows.Forms.BorderStyle.None;
+            this.dataGridView_AngleCal.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
+            dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.dataGridView_AngleCal.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+            this.dataGridView_AngleCal.ColumnHeadersHeight = 36;
+            this.dataGridView_AngleCal.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.Pole,
+            this.Angle_60,
+            this.Angle_120,
+            this.Angle_180,
+            this.Angle_240,
+            this.Angle_300,
+            this.Angle_360});
+            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
+            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView_AngleCal.DefaultCellStyle = dataGridViewCellStyle2;
+            this.dataGridView_AngleCal.Location = new System.Drawing.Point(6, 27);
+            this.dataGridView_AngleCal.Name = "dataGridView_AngleCal";
+            this.dataGridView_AngleCal.ReadOnly = true;
+            this.dataGridView_AngleCal.RowHeadersWidth = 23;
+            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            this.dataGridView_AngleCal.RowsDefaultCellStyle = dataGridViewCellStyle3;
+            this.dataGridView_AngleCal.RowTemplate.Height = 33;
+            this.dataGridView_AngleCal.Size = new System.Drawing.Size(586, 272);
+            this.dataGridView_AngleCal.TabIndex = 0;
+            // 
+            // Pole
+            // 
+            this.Pole.HeaderText = "电周期";
+            this.Pole.Name = "Pole";
+            this.Pole.ReadOnly = true;
+            this.Pole.Width = 80;
+            // 
+            // Angle_60
+            // 
+            this.Angle_60.HeaderText = "60°";
+            this.Angle_60.Name = "Angle_60";
+            this.Angle_60.ReadOnly = true;
+            this.Angle_60.Width = 80;
+            // 
+            // Angle_120
+            // 
+            this.Angle_120.HeaderText = "120°";
+            this.Angle_120.Name = "Angle_120";
+            this.Angle_120.ReadOnly = true;
+            this.Angle_120.Width = 80;
+            // 
+            // Angle_180
+            // 
+            this.Angle_180.HeaderText = "180°";
+            this.Angle_180.Name = "Angle_180";
+            this.Angle_180.ReadOnly = true;
+            this.Angle_180.Width = 80;
+            // 
+            // Angle_240
+            // 
+            this.Angle_240.HeaderText = "240°";
+            this.Angle_240.Name = "Angle_240";
+            this.Angle_240.ReadOnly = true;
+            this.Angle_240.Width = 80;
+            // 
+            // Angle_300
+            // 
+            this.Angle_300.HeaderText = "300°";
+            this.Angle_300.Name = "Angle_300";
+            this.Angle_300.ReadOnly = true;
+            this.Angle_300.Width = 80;
+            // 
+            // Angle_360
+            // 
+            this.Angle_360.HeaderText = "360°";
+            this.Angle_360.Name = "Angle_360";
+            this.Angle_360.ReadOnly = true;
+            this.Angle_360.Width = 80;
+            // 
             // tabPage_ProductMode_Write
             // 
             this.tabPage_ProductMode_Write.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
@@ -4915,6 +5318,8 @@ namespace Welling_Motor_Debug_Tool
             // 
             // groupBox28
             // 
+            this.groupBox28.Controls.Add(this.label67);
+            this.groupBox28.Controls.Add(this.label_FacModeAngleCal);
             this.groupBox28.Controls.Add(this.label130);
             this.groupBox28.Controls.Add(this.label_FacModeMosCal);
             this.groupBox28.Controls.Add(this.label117);
@@ -4956,6 +5361,29 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox28.TabStop = false;
             this.groupBox28.Text = "测试状态";
             // 
+            // label67
+            // 
+            this.label67.AutoSize = true;
+            this.label67.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label67.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label67.Location = new System.Drawing.Point(123, 216);
+            this.label67.Name = "label67";
+            this.label67.Size = new System.Drawing.Size(56, 17);
+            this.label67.TabIndex = 28;
+            this.label67.Text = "位置校准";
+            this.label67.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // label_FacModeAngleCal
+            // 
+            this.label_FacModeAngleCal.BackColor = System.Drawing.Color.Red;
+            this.label_FacModeAngleCal.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label_FacModeAngleCal.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label_FacModeAngleCal.Location = new System.Drawing.Point(208, 218);
+            this.label_FacModeAngleCal.Name = "label_FacModeAngleCal";
+            this.label_FacModeAngleCal.Size = new System.Drawing.Size(12, 12);
+            this.label_FacModeAngleCal.TabIndex = 29;
+            this.label_FacModeAngleCal.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            // 
             // label130
             // 
             this.label130.AutoSize = true;
@@ -5350,9 +5778,9 @@ namespace Welling_Motor_Debug_Tool
             // groupBox27
             // 
             this.groupBox27.Controls.Add(this.richTextBox_FacModeLog);
-            this.groupBox27.Location = new System.Drawing.Point(169, 72);
+            this.groupBox27.Location = new System.Drawing.Point(218, 72);
             this.groupBox27.Name = "groupBox27";
-            this.groupBox27.Size = new System.Drawing.Size(568, 240);
+            this.groupBox27.Size = new System.Drawing.Size(519, 240);
             this.groupBox27.TabIndex = 8;
             this.groupBox27.TabStop = false;
             this.groupBox27.Text = "测试记录";
@@ -5362,10 +5790,10 @@ namespace Welling_Motor_Debug_Tool
             this.richTextBox_FacModeLog.BackColor = System.Drawing.SystemColors.ControlLight;
             this.richTextBox_FacModeLog.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.richTextBox_FacModeLog.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
-            this.richTextBox_FacModeLog.Location = new System.Drawing.Point(9, 25);
+            this.richTextBox_FacModeLog.Location = new System.Drawing.Point(7, 28);
             this.richTextBox_FacModeLog.Name = "richTextBox_FacModeLog";
             this.richTextBox_FacModeLog.ReadOnly = true;
-            this.richTextBox_FacModeLog.Size = new System.Drawing.Size(553, 206);
+            this.richTextBox_FacModeLog.Size = new System.Drawing.Size(506, 206);
             this.richTextBox_FacModeLog.TabIndex = 0;
             this.richTextBox_FacModeLog.Text = "";
             this.richTextBox_FacModeLog.TextChanged += new System.EventHandler(this.richTextBox_FacModeLog_TextChanged);
@@ -5410,6 +5838,7 @@ namespace Welling_Motor_Debug_Tool
             // 
             // groupBox2
             // 
+            this.groupBox2.Controls.Add(this.checkBox_FacMode_AngleCal);
             this.groupBox2.Controls.Add(this.checkBox_FacMode_MosCal);
             this.groupBox2.Controls.Add(this.pictureBox_WriteLock);
             this.groupBox2.Controls.Add(this.checkBox_FacCad);
@@ -5423,11 +5852,25 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox2.Controls.Add(this.checkBox_FacModeSysClear);
             this.groupBox2.Location = new System.Drawing.Point(12, 72);
             this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(151, 240);
+            this.groupBox2.Size = new System.Drawing.Size(200, 240);
             this.groupBox2.TabIndex = 7;
             this.groupBox2.TabStop = false;
             this.groupBox2.Text = "测试项目";
             // 
+            // checkBox_FacMode_AngleCal
+            // 
+            this.checkBox_FacMode_AngleCal.AutoSize = true;
+            this.checkBox_FacMode_AngleCal.Checked = true;
+            this.checkBox_FacMode_AngleCal.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.checkBox_FacMode_AngleCal.Enabled = false;
+            this.checkBox_FacMode_AngleCal.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.checkBox_FacMode_AngleCal.Location = new System.Drawing.Point(94, 54);
+            this.checkBox_FacMode_AngleCal.Name = "checkBox_FacMode_AngleCal";
+            this.checkBox_FacMode_AngleCal.Size = new System.Drawing.Size(75, 21);
+            this.checkBox_FacMode_AngleCal.TabIndex = 9;
+            this.checkBox_FacMode_AngleCal.Text = "位置校准";
+            this.checkBox_FacMode_AngleCal.UseVisualStyleBackColor = true;
+            // 
             // checkBox_FacMode_MosCal
             // 
             this.checkBox_FacMode_MosCal.AutoSize = true;
@@ -5445,9 +5888,9 @@ namespace Welling_Motor_Debug_Tool
             // pictureBox_WriteLock
             // 
             this.pictureBox_WriteLock.Image = global::Welling_Motor_Debug_Tool.Properties.Resources.Lock;
-            this.pictureBox_WriteLock.Location = new System.Drawing.Point(100, 28);
+            this.pictureBox_WriteLock.Location = new System.Drawing.Point(159, 15);
             this.pictureBox_WriteLock.Name = "pictureBox_WriteLock";
-            this.pictureBox_WriteLock.Size = new System.Drawing.Size(45, 45);
+            this.pictureBox_WriteLock.Size = new System.Drawing.Size(35, 35);
             this.pictureBox_WriteLock.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox_WriteLock.TabIndex = 7;
             this.pictureBox_WriteLock.TabStop = false;
@@ -5974,9 +6417,9 @@ namespace Welling_Motor_Debug_Tool
             // pictureBox_ReadLock
             // 
             this.pictureBox_ReadLock.Image = global::Welling_Motor_Debug_Tool.Properties.Resources.Lock;
-            this.pictureBox_ReadLock.Location = new System.Drawing.Point(149, 28);
+            this.pictureBox_ReadLock.Location = new System.Drawing.Point(159, 15);
             this.pictureBox_ReadLock.Name = "pictureBox_ReadLock";
-            this.pictureBox_ReadLock.Size = new System.Drawing.Size(45, 45);
+            this.pictureBox_ReadLock.Size = new System.Drawing.Size(35, 35);
             this.pictureBox_ReadLock.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
             this.pictureBox_ReadLock.TabIndex = 8;
             this.pictureBox_ReadLock.TabStop = false;
@@ -6134,11 +6577,11 @@ namespace Welling_Motor_Debug_Tool
             this.label_RecCount.TabIndex = 8;
             this.label_RecCount.Text = "0";
             // 
-            // timer_1s
+            // timer_500ms
             // 
-            this.timer_1s.Enabled = true;
-            this.timer_1s.Interval = 500;
-            this.timer_1s.Tick += new System.EventHandler(this.timer_1s_Tick);
+            this.timer_500ms.Enabled = true;
+            this.timer_500ms.Interval = 500;
+            this.timer_500ms.Tick += new System.EventHandler(this.timer_1s_Tick);
             // 
             // label_BuildTime
             // 
@@ -6678,6 +7121,8 @@ namespace Welling_Motor_Debug_Tool
             // tabPage_DebugInfo
             // 
             this.tabPage_DebugInfo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.tabPage_DebugInfo.Controls.Add(this.textBox_DebugInfo_ThrottlePer);
+            this.tabPage_DebugInfo.Controls.Add(this.label152);
             this.tabPage_DebugInfo.Controls.Add(this.textBox_DebugInfo_SysFun);
             this.tabPage_DebugInfo.Controls.Add(this.textBox_DebugInfo_SecondFun);
             this.tabPage_DebugInfo.Controls.Add(this.textBox_DebugInfo_MotorFun);
@@ -6713,6 +7158,24 @@ namespace Welling_Motor_Debug_Tool
             this.tabPage_DebugInfo.TabIndex = 1;
             this.tabPage_DebugInfo.Text = "调试信息";
             // 
+            // textBox_DebugInfo_ThrottlePer
+            // 
+            this.textBox_DebugInfo_ThrottlePer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_DebugInfo_ThrottlePer.Location = new System.Drawing.Point(634, 78);
+            this.textBox_DebugInfo_ThrottlePer.Name = "textBox_DebugInfo_ThrottlePer";
+            this.textBox_DebugInfo_ThrottlePer.ReadOnly = true;
+            this.textBox_DebugInfo_ThrottlePer.Size = new System.Drawing.Size(60, 28);
+            this.textBox_DebugInfo_ThrottlePer.TabIndex = 67;
+            // 
+            // label152
+            // 
+            this.label152.AutoSize = true;
+            this.label152.Location = new System.Drawing.Point(522, 82);
+            this.label152.Name = "label152";
+            this.label152.Size = new System.Drawing.Size(90, 21);
+            this.label152.TabIndex = 66;
+            this.label152.Text = "转把百分比";
+            // 
             // textBox_DebugInfo_SysFun
             // 
             this.textBox_DebugInfo_SysFun.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
@@ -7019,16 +7482,18 @@ namespace Welling_Motor_Debug_Tool
             this.pictureBox2.TabIndex = 16;
             this.pictureBox2.TabStop = false;
             // 
-            // textBox_MotorSpeedPercent
+            // 重置ToolStripMenuItem
             // 
-            this.textBox_MotorSpeedPercent.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
-            this.textBox_MotorSpeedPercent.Location = new System.Drawing.Point(85, 124);
-            this.textBox_MotorSpeedPercent.Name = "textBox_MotorSpeedPercent";
-            this.textBox_MotorSpeedPercent.ReadOnly = true;
-            this.textBox_MotorSpeedPercent.Size = new System.Drawing.Size(70, 28);
-            this.textBox_MotorSpeedPercent.TabIndex = 17;
-            this.textBox_MotorSpeedPercent.Text = "0";
-            this.textBox_MotorSpeedPercent.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.重置ToolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.重置ToolStripMenuItem.Name = "重置ToolStripMenuItem";
+            this.重置ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
+            this.重置ToolStripMenuItem.Text = "重置";
+            this.重置ToolStripMenuItem.Click += new System.EventHandler(this.重置ToolStripMenuItem_Click);
+            // 
+            // toolStripSeparator6
+            // 
+            this.toolStripSeparator6.Name = "toolStripSeparator6";
+            this.toolStripSeparator6.Size = new System.Drawing.Size(177, 6);
             // 
             // mainForm
             // 
@@ -7140,6 +7605,10 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox24.ResumeLayout(false);
             this.groupBox24.PerformLayout();
             this.groupBox19.ResumeLayout(false);
+            this.tabPage_AngleCal.ResumeLayout(false);
+            this.tabPage_AngleCal.PerformLayout();
+            this.groupBox32.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView_AngleCal)).EndInit();
             this.tabPage_ProductMode_Write.ResumeLayout(false);
             this.tabPage_ProductMode_Write.PerformLayout();
             this.groupBox28.ResumeLayout(false);
@@ -7197,7 +7666,7 @@ namespace Welling_Motor_Debug_Tool
         public ComboBox comboBox_GearSt;
         private Label label23;
         private Label label_RecCount;
-        private Timer timer_1s;
+        private Timer timer_500ms;
         private Label label24;
         private TabControl tabControl1;
         private TabPage tabPage_MotorParam;
@@ -7756,5 +8225,43 @@ namespace Welling_Motor_Debug_Tool
         public ToolStripMenuItem 指令调试ToolStripMenuItem;
         private ToolStripMenuItem 发送指令ToolStripMenuItem;
         private TextBox textBox_MotorSpeedPercent;
+        private CheckBox checkBox_FacMode_AngleCal;
+        private Label label67;
+        private Label label_FacModeAngleCal;
+        private TabPage tabPage_AngleCal;
+        private DataGridView dataGridView_AngleCal;
+        private GroupBox groupBox32;
+        private Label label139;
+        private TextBox textBox_AngleDiffTh;
+        private Button button_AngleWrite;
+        private Button button_AngleExportData;
+        private Button button_AngleCalStart;
+        private DataGridViewTextBoxColumn Pole;
+        private DataGridViewTextBoxColumn Angle_60;
+        private DataGridViewTextBoxColumn Angle_120;
+        private DataGridViewTextBoxColumn Angle_180;
+        private DataGridViewTextBoxColumn Angle_240;
+        private DataGridViewTextBoxColumn Angle_300;
+        private DataGridViewTextBoxColumn Angle_360;
+        private Label label150;
+        private TextBox textBox_AngleDiffAvg;
+        private Label label149;
+        private TextBox textBox_AngleDiffMax;
+        private Label label147;
+        private TextBox textBox_AngleDiffMin;
+        private Label label146;
+        private TextBox textBox_AngleZeroDiff;
+        private Label label144;
+        private TextBox textBox_AngleZeroCur;
+        private Label label142;
+        private TextBox textBox_AngleZeroInit;
+        private Label label140;
+        private TextBox textBox_AngleZeroTh;
+        private Label label151;
+        private TextBox textBox_DebugInfo_ThrottlePer;
+        private Label label152;
+        private Label label153;
+        private ToolStripMenuItem 重置ToolStripMenuItem;
+        private ToolStripSeparator toolStripSeparator6;
     }
 }

Разница между файлами не показана из-за своего большого размера
+ 288 - 135
Welling_Motor_Debug_Tool/mainForm.cs


+ 23 - 2
Welling_Motor_Debug_Tool/mainForm.resx

@@ -123,11 +123,32 @@
   <metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>154, 17</value>
   </metadata>
-  <metadata name="timer_1s.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="Pole.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_60.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_120.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_180.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_240.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_300.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Angle_360.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="timer_500ms.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>275, 17</value>
   </metadata>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>46</value>
+    <value>59</value>
   </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

BIN
Welling_Motor_Debug_Tool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


BIN
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.AssemblyReference.cache


+ 1 - 1
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-78a282fe404e6fe5afb89767c481f4b194a9c157db24aa161a297111cab76ee1
+58d3cb272047d5072673ad501420abcc76397cc9aa216011137f3a7027cd45a3

+ 1 - 0
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.FileListAbsolute.txt

@@ -85,3 +85,4 @@ D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_
 D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.pdb
 C:\Users\hero\Documents\Work\SoftDesign\Welling-MidMotor\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.Version.resources
 D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.DebugForm.resources
+D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.ServerSelect.resources

BIN
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.GenerateResource.cache


BIN
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.exe


BIN
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.pdb


Некоторые файлы не были показаны из-за большого количества измененных файлов