Browse Source

检验模式版本信息、打标确认正常。待完善参数写入和传感器标定检查功能。

Dail 1 year ago
parent
commit
317fdb9006

BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/450706e9-2b6d-4f0a-b6c6-2cb1ebe5d22e.vsidx


BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/7673ec71-ede7-4c6c-ba35-7d3c1d3922f7.vsidx


BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/9246b8b1-75ed-40bf-a334-bfc3870bc610.vsidx


BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/ef310e09-417c-4ef7-9ec8-428edfd3a6b7.vsidx


BIN
.vs/Welling_Motor_Debug_Tool/v17/.suo


+ 4 - 0
Welling_Motor_Debug_Tool/Params.cs

@@ -41,5 +41,9 @@ namespace Welling_Motor_Debug_Tool
                                                              "第一阶段转矩点加载值", "第一阶段转矩点采集值", "第二阶段转矩点加载值", 
                                                              "第二阶段转矩点采集值", "第三阶段转矩点加载值", "第三阶段转矩点采集值", 
                                                              "第四阶段转矩点加载值", "第四阶段转矩点采集值", "踏频传感器一圈脉冲数", "车速传感器一圈脉冲数" };
+        public Dictionary<string, ushort> ConfigCheckReadCmd = new Dictionary<string, ushort>() {{ "[自定义1]", 0x1300 }, {"[自定义2]", 0x1500 }, {"[自定义3]", 0x1700 },
+                                                                                                 { "[生产信息]", 0x1F00}, {"[马达信息]", 0x3A00}, {"[整车参数]", 0x3C00 },
+                                                                                                 {"[控制参数]", 0x3E00}, {"[力矩传感器参数]", 0x4000}, {"[其它传感器参数]", 0x4000}, 
+                                                                                                 {"[助力参数]", 0x4304 }};
     }
 }

+ 241 - 0
Welling_Motor_Debug_Tool/bin/Debug/Format/Test/HUB_NM010-6G-36V-250W_Test_V1.0.0.0.0_20240304_Test_20240318.src

@@ -0,0 +1,241 @@
+#说明
+#0表示命令无效,1开启该命令的参数写入
+
+[型号],0
+电机型号,MIGIC T1
+
+[SN号],0
+电机SN,M220202A0001A
+
+[校验码],0
+校验码,MOTINOVA
+
+[自定义1],0
+自定义字符串1,1111
+
+[自定义2],0
+自定义字符串2,2222
+
+[自定义3],0
+自定义字符串3,3333
+
+[生产信息],1
+生产商,TTIUM
+生产地,WUHAN
+生产日期,20220101
+生产表示,GF_250_1
+
+[马达信息],1
+存储标志,1
+极对数,8
+电阻,1260
+d轴电感,51580
+q轴电感,59220
+永磁体磁链,24000
+Id最大值,0
+Id最最小,-157
+额定转速,860
+额定功率,250
+额定电流,2500
+额定电压,360
+惯量,1000
+最大转矩,95
+预留1,0
+预留2,0
+预留3,0
+预留4,0
+预留5,0
+预留6,0
+
+[整车参数],1
+存储标志,1
+轮胎周长,219
+电控传动比,4419
+助力最大限速,25
+推行模式限速,5
+前牙盘,38
+后牙盘,11
+助力方案1,341
+助力方案2,682
+前后灯参数,9734
+周长微调,0
+启动模式,2
+开关机时间,16399
+预留1,0
+
+[控制参数],1
+存储标志,1
+位置传感器零点,0
+位置传感器当前零点,0
+峰值电流,4200
+过流保护阈值,5000
+最高档位过压保护阈值,460
+最高档位欠压保护阈值,300
+超速保护阈值,6000
+控制器过热保护阈值,105
+控制器过热恢复阈值,90
+控制器过热降额阈值,90
+电机过热保护阈值,110
+电机过热恢复阈值,95
+电机过热降额阈值,95
+预留1,0
+预留2,0
+预留3,0
+
+[力矩传感器参数],0
+存储标志,1
+出厂零点,600
+历史零点1,0
+历史零点2,0
+历史零点3,0
+最新零点,600
+最大转矩,850
+第一阶段加载值,240
+第一阶段采集值,1428
+第二阶段加载值,480
+第二阶段采集值,1986
+第三阶段加载值,720
+第三阶段采集值,2545
+第四阶段加载值,960
+第四阶段采集值,3104
+
+[其它传感器参数],1
+存储标志,1
+踏频一圈脉冲数,38
+车速一圈脉冲数,1
+
+[助力参数],1
+存储标志,1
+空,0
+零速启动增益,4095
+巡航启动增益,4096
+转矩曲线1a,0
+转矩曲线1b,0
+转矩曲线1c,2048
+转矩曲线1d,137
+转矩曲线2a,0
+转矩曲线2b,0
+转矩曲线2c,2458
+转矩曲线2d,137
+转矩曲线3a,0
+转矩曲线3b,0
+转矩曲线3c,2867
+转矩曲线3d,137
+转矩曲线4a,0
+转矩曲线4b,7004
+转矩曲线4c,409
+转矩曲线4d,273
+转矩曲线5a,0
+转矩曲线5b,9216
+转矩曲线5c,409
+转矩曲线5d,273
+转矩曲线6a,0
+转矩曲线6b,12165
+转矩曲线6c,409
+转矩曲线6d,273
+转矩曲线7a,3318
+转矩曲线7b,15852
+转矩曲线7c,0
+转矩曲线7d,137
+转矩曲线8a,9953
+转矩曲线8b,21012
+转矩曲线8c,0
+转矩曲线8d,137
+转矩曲线9a,36495
+转矩曲线9b,22855
+转矩曲线9c,0
+转矩曲线9d,137
+转矩曲线10a,66355
+转矩曲线10b,29491
+转矩曲线10c,0
+转矩曲线10d,137
+转矩曲线11a,132710
+转矩曲线11b,29491
+转矩曲线11c,0
+转矩曲线11d,137
+转矩曲线12a,232243
+转矩曲线12b,29491
+转矩曲线12c,0
+转矩曲线12d,137
+转矩曲线13a,66355
+转矩曲线13b,29491
+转矩曲线13c,0
+转矩曲线13d,-683
+转矩曲线14a,132710
+转矩曲线14b,29491
+转矩曲线14c,0
+转矩曲线14d,-683
+转矩曲线15a,232243
+转矩曲线15b,29491
+转矩曲线15c,0
+转矩曲线15d,-683
+踏频曲线1a,0
+踏频曲线1b,0
+踏频曲线1c,10000
+踏频曲线1d,0
+踏频曲线2a,0
+踏频曲线2b,0
+踏频曲线2c,10000
+踏频曲线2d,0
+踏频曲线3a,0
+踏频曲线3b,0
+踏频曲线3c,10000
+踏频曲线3d,0
+踏频曲线4a,0
+踏频曲线4b,0
+踏频曲线4c,10000
+踏频曲线4d,0
+踏频曲线5a,0
+踏频曲线5b,0
+踏频曲线5c,10000
+踏频曲线5d,0
+助力启动阈值,50
+助力停止阈值,50
+启动时电流增长阶梯,20
+启动踏频脉冲数,700
+转矩滤波脉冲数,64
+待速转速,5
+待速最大电流,500
+车速限幅启动阈值,25
+车速限幅停止阈值,27
+踏频占比,50
+踏频助力Kp,20000
+踏频助力加速限制,-20000
+踏频助力退饱和步进,500
+踏频助力电流步进,1000
+预留1,0
+预留2,0
+预留3,0
+预留4,0
+
+[调试参数],0
+存储标志,1
+整体运行模式,5
+位置获取模式,2
+采样模式,3
+旋转方向,1
+定位电流,1000
+拖拽电压,10
+拖拽电流,1000
+拖拽频率,20
+加速斜率,500
+减速斜率,100
+转速环控制器带宽,8
+转速环控制器m,16
+电流环控制器带宽,200
+电流环控制器m,3
+磁链观测器带宽,10
+磁链观测器m,10
+锁相环带宽,150
+锁相环m,10
+惯量,1000
+PWM 最大占空比,900
+PWM七段式切五段式阈值,700
+功率限幅值,6980
+功率Error,500
+功率限幅Kp,120
+功率限幅Ki,100
+预留1,1
+预留2,2
+预留3,3
+预留4,4

+ 41 - 0
Welling_Motor_Debug_Tool/bin/Debug/Format/Test/HUB_NM010-6G-36V-250W_Test_V1.0.0.0.0_20240304_Test_20240319.ttcfg

@@ -0,0 +1,41 @@
+[生产信息]
+55 AA 07 51 16 22 24 20 54 54 49 55 4D 00 00 00 57 55 48 41 4E 00 00 00 32 30 32 32 30 31 30 31 47 46 5F 32 35 30 5F 31 CB 07 31 1A F0 
+[马达信息]
+55 AA 07 51 16 2A 3B 28 01 00 08 00 EC 04 7C C9 54 E7 C0 5D 00 00 63 FF 5C 03 FA 00 C4 09 68 01 E8 03 5F 00 00 00 00 00 00 00 00 00 00 00 00 00 57 7C 80 B6 F0 
+[整车参数]
+55 AA 07 51 16 1E 3D 1C 01 00 DB 00 43 11 19 00 05 00 26 00 0B 00 55 01 AA 02 06 26 00 00 02 00 0F 40 00 00 83 5C D7 47 F0 
+[控制参数]
+55 AA 07 51 16 24 3F 22 01 00 00 00 00 00 68 10 88 13 CC 01 2C 01 70 17 69 00 5A 00 5A 00 6E 00 5F 00 5F 00 00 00 00 00 00 00 44 D4 8E 3A F0 
+[其它传感器参数]
+55 AA 07 51 16 10 42 0E 01 00 26 00 01 00 00 00 00 00 00 00 00 00 D9 AC 08 2F F0 
+[助力参数]
+[曲线1]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 01 00 01 00 00 00 00 00 00 00 00 00 00 08 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 DA DF AB 71 F0 
+[曲线2]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 02 00 02 00 00 00 00 00 00 00 00 00 9A 09 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 40 65 13 DD F0 
+[曲线3]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 03 00 03 00 00 00 00 00 00 00 00 00 33 0B 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 50 AA BD 2C F0 
+[曲线4]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 04 00 04 00 00 00 00 00 5C 1B 00 00 99 01 00 00 11 01 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 CF 79 37 35 F0 
+[曲线5]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 05 00 05 00 00 00 00 00 00 24 00 00 99 01 00 00 11 01 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 32 D0 21 D2 F0 
+[曲线6]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 06 00 05 00 00 00 00 00 85 2F 00 00 99 01 00 00 11 01 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 0C 35 81 98 F0 
+[曲线7]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 07 00 05 00 F6 0C 00 00 EC 3D 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 BB CB D0 0A F0 
+[曲线8]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 08 00 05 00 E1 26 00 00 14 52 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 69 88 B4 83 F0 
+[曲线9]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 09 00 05 00 8F 8E 00 00 47 59 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 D5 BC DF 1C F0 
+[曲线10]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0A 00 05 00 33 03 01 00 33 73 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 93 9E ED F4 F0 
+[曲线11]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0B 00 05 00 66 06 02 00 33 73 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 8F AD 56 A2 F0 
+[曲线12]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0C 00 05 00 33 8B 03 00 33 73 00 00 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 44 38 8D 16 F0 
+[曲线13]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0D 00 05 00 33 03 01 00 33 73 00 00 00 00 00 00 55 FD FF FF 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 B1 A1 32 E8 F0 
+[曲线14]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0E 00 05 00 66 06 02 00 33 73 00 00 00 00 00 00 55 FD FF FF 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 65 21 1C 29 F0 
+[曲线15]
+55 AA 07 51 16 52 44 50 01 00 00 00 FF 0F 00 10 0F 00 05 00 33 8B 03 00 33 73 00 00 00 00 00 00 55 FD FF FF 00 00 00 00 00 00 00 00 10 27 00 00 00 00 00 00 32 00 32 00 14 00 BC 02 40 00 05 00 F4 01 19 00 1B 00 32 00 20 4E E0 B1 F4 01 E8 03 00 00 00 00 00 00 00 00 F3 A1 64 93 F0 

BIN
Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.exe


BIN
Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.pdb


BIN
Welling_Motor_Debug_Tool/bin/Debug/量产测试.mp4


+ 71 - 33
Welling_Motor_Debug_Tool/mainForm.Designer.cs

@@ -420,7 +420,7 @@ namespace Welling_Motor_Debug_Tool
             this.checkBox_FacModeSysClear = new System.Windows.Forms.CheckBox();
             this.textBox_FacModeScan = new System.Windows.Forms.TextBox();
             this.label112 = new System.Windows.Forms.Label();
-            this.label_FacModeSatus = new System.Windows.Forms.Label();
+            this.label_FacModeStatus = new System.Windows.Forms.Label();
             this.label_FacModeResult = new System.Windows.Forms.Label();
             this.label111 = new System.Windows.Forms.Label();
             this.tabPage_ProductMode_Read = new System.Windows.Forms.TabPage();
@@ -536,6 +536,8 @@ namespace Welling_Motor_Debug_Tool
             this.label107 = new System.Windows.Forms.Label();
             this.label_StarInfo = new System.Windows.Forms.Label();
             this.pictureBox2 = new System.Windows.Forms.PictureBox();
+            this.label_CheckModeBoot = new System.Windows.Forms.Label();
+            this.label121 = new System.Windows.Forms.Label();
             this.menuStrip_Set.SuspendLayout();
             this.statusStrip1.SuspendLayout();
             this.groupBox1.SuspendLayout();
@@ -4234,7 +4236,7 @@ namespace Welling_Motor_Debug_Tool
             this.tabPage_ProductMode_Write.Controls.Add(this.groupBox2);
             this.tabPage_ProductMode_Write.Controls.Add(this.textBox_FacModeScan);
             this.tabPage_ProductMode_Write.Controls.Add(this.label112);
-            this.tabPage_ProductMode_Write.Controls.Add(this.label_FacModeSatus);
+            this.tabPage_ProductMode_Write.Controls.Add(this.label_FacModeStatus);
             this.tabPage_ProductMode_Write.Controls.Add(this.label_FacModeResult);
             this.tabPage_ProductMode_Write.Controls.Add(this.label111);
             this.tabPage_ProductMode_Write.Location = new System.Drawing.Point(4, 30);
@@ -4864,17 +4866,17 @@ namespace Welling_Motor_Debug_Tool
             this.label112.Text = "配置文件";
             this.label112.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
-            // label_FacModeSatus
+            // label_FacModeStatus
             // 
-            this.label_FacModeSatus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
-            this.label_FacModeSatus.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label_FacModeSatus.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
-            this.label_FacModeSatus.Location = new System.Drawing.Point(763, 38);
-            this.label_FacModeSatus.Name = "label_FacModeSatus";
-            this.label_FacModeSatus.Size = new System.Drawing.Size(218, 29);
-            this.label_FacModeSatus.TabIndex = 5;
-            this.label_FacModeSatus.Text = "测试结束";
-            this.label_FacModeSatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            this.label_FacModeStatus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.label_FacModeStatus.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label_FacModeStatus.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
+            this.label_FacModeStatus.Location = new System.Drawing.Point(763, 38);
+            this.label_FacModeStatus.Name = "label_FacModeStatus";
+            this.label_FacModeStatus.Size = new System.Drawing.Size(218, 29);
+            this.label_FacModeStatus.TabIndex = 5;
+            this.label_FacModeStatus.Text = "测试结束";
+            this.label_FacModeStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
             // label_FacModeResult
             // 
@@ -4939,6 +4941,8 @@ namespace Welling_Motor_Debug_Tool
             this.groupBox31.Controls.Add(this.label_CheckModeTorque);
             this.groupBox31.Controls.Add(this.label156);
             this.groupBox31.Controls.Add(this.label_CheckModeCfg);
+            this.groupBox31.Controls.Add(this.label121);
+            this.groupBox31.Controls.Add(this.label_CheckModeBoot);
             this.groupBox31.Controls.Add(this.label160);
             this.groupBox31.Controls.Add(this.label_CheckModeFWVer);
             this.groupBox31.Location = new System.Drawing.Point(823, 72);
@@ -4953,7 +4957,7 @@ namespace Welling_Motor_Debug_Tool
             this.label148.AutoSize = true;
             this.label148.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label148.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label148.Location = new System.Drawing.Point(6, 148);
+            this.label148.Location = new System.Drawing.Point(6, 168);
             this.label148.Name = "label148";
             this.label148.Size = new System.Drawing.Size(74, 21);
             this.label148.TabIndex = 16;
@@ -4965,9 +4969,9 @@ namespace Welling_Motor_Debug_Tool
             this.label_CheckModeSN.BackColor = System.Drawing.Color.Red;
             this.label_CheckModeSN.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label_CheckModeSN.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label_CheckModeSN.Location = new System.Drawing.Point(108, 143);
+            this.label_CheckModeSN.Location = new System.Drawing.Point(108, 168);
             this.label_CheckModeSN.Name = "label_CheckModeSN";
-            this.label_CheckModeSN.Size = new System.Drawing.Size(40, 30);
+            this.label_CheckModeSN.Size = new System.Drawing.Size(40, 20);
             this.label_CheckModeSN.TabIndex = 17;
             this.label_CheckModeSN.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
@@ -4976,11 +4980,11 @@ namespace Welling_Motor_Debug_Tool
             this.label154.AutoSize = true;
             this.label154.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label154.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label154.Location = new System.Drawing.Point(6, 100);
+            this.label154.Location = new System.Drawing.Point(6, 134);
             this.label154.Name = "label154";
-            this.label154.Size = new System.Drawing.Size(90, 42);
+            this.label154.Size = new System.Drawing.Size(74, 21);
             this.label154.TabIndex = 12;
-            this.label154.Text = "力矩传感器\r\n标定";
+            this.label154.Text = "力矩标定";
             this.label154.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
             // label_CheckModeTorque
@@ -4988,9 +4992,9 @@ namespace Welling_Motor_Debug_Tool
             this.label_CheckModeTorque.BackColor = System.Drawing.Color.Red;
             this.label_CheckModeTorque.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label_CheckModeTorque.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label_CheckModeTorque.Location = new System.Drawing.Point(108, 106);
+            this.label_CheckModeTorque.Location = new System.Drawing.Point(108, 134);
             this.label_CheckModeTorque.Name = "label_CheckModeTorque";
-            this.label_CheckModeTorque.Size = new System.Drawing.Size(40, 30);
+            this.label_CheckModeTorque.Size = new System.Drawing.Size(40, 20);
             this.label_CheckModeTorque.TabIndex = 13;
             this.label_CheckModeTorque.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
@@ -4999,7 +5003,7 @@ namespace Welling_Motor_Debug_Tool
             this.label156.AutoSize = true;
             this.label156.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label156.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label156.Location = new System.Drawing.Point(6, 74);
+            this.label156.Location = new System.Drawing.Point(6, 100);
             this.label156.Name = "label156";
             this.label156.Size = new System.Drawing.Size(74, 21);
             this.label156.TabIndex = 12;
@@ -5011,9 +5015,9 @@ namespace Welling_Motor_Debug_Tool
             this.label_CheckModeCfg.BackColor = System.Drawing.Color.Red;
             this.label_CheckModeCfg.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label_CheckModeCfg.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label_CheckModeCfg.Location = new System.Drawing.Point(108, 69);
+            this.label_CheckModeCfg.Location = new System.Drawing.Point(108, 100);
             this.label_CheckModeCfg.Name = "label_CheckModeCfg";
-            this.label_CheckModeCfg.Size = new System.Drawing.Size(40, 30);
+            this.label_CheckModeCfg.Size = new System.Drawing.Size(40, 20);
             this.label_CheckModeCfg.TabIndex = 13;
             this.label_CheckModeCfg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
@@ -5022,7 +5026,7 @@ namespace Welling_Motor_Debug_Tool
             this.label160.AutoSize = true;
             this.label160.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label160.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label160.Location = new System.Drawing.Point(6, 37);
+            this.label160.Location = new System.Drawing.Point(6, 66);
             this.label160.Name = "label160";
             this.label160.Size = new System.Drawing.Size(74, 21);
             this.label160.TabIndex = 8;
@@ -5034,9 +5038,9 @@ namespace Welling_Motor_Debug_Tool
             this.label_CheckModeFWVer.BackColor = System.Drawing.Color.Red;
             this.label_CheckModeFWVer.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.label_CheckModeFWVer.ForeColor = System.Drawing.SystemColors.ControlText;
-            this.label_CheckModeFWVer.Location = new System.Drawing.Point(108, 32);
+            this.label_CheckModeFWVer.Location = new System.Drawing.Point(108, 66);
             this.label_CheckModeFWVer.Name = "label_CheckModeFWVer";
-            this.label_CheckModeFWVer.Size = new System.Drawing.Size(40, 30);
+            this.label_CheckModeFWVer.Size = new System.Drawing.Size(40, 20);
             this.label_CheckModeFWVer.TabIndex = 9;
             this.label_CheckModeFWVer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
@@ -5089,6 +5093,8 @@ namespace Welling_Motor_Debug_Tool
             // checkBox_CheckModeSN
             // 
             this.checkBox_CheckModeSN.AutoSize = true;
+            this.checkBox_CheckModeSN.Checked = true;
+            this.checkBox_CheckModeSN.CheckState = System.Windows.Forms.CheckState.Checked;
             this.checkBox_CheckModeSN.Location = new System.Drawing.Point(6, 139);
             this.checkBox_CheckModeSN.Name = "checkBox_CheckModeSN";
             this.checkBox_CheckModeSN.Size = new System.Drawing.Size(141, 25);
@@ -5099,6 +5105,8 @@ namespace Welling_Motor_Debug_Tool
             // checkBox_CheckModeTorque
             // 
             this.checkBox_CheckModeTorque.AutoSize = true;
+            this.checkBox_CheckModeTorque.Checked = true;
+            this.checkBox_CheckModeTorque.CheckState = System.Windows.Forms.CheckState.Checked;
             this.checkBox_CheckModeTorque.Location = new System.Drawing.Point(7, 102);
             this.checkBox_CheckModeTorque.Name = "checkBox_CheckModeTorque";
             this.checkBox_CheckModeTorque.Size = new System.Drawing.Size(173, 25);
@@ -5109,6 +5117,8 @@ namespace Welling_Motor_Debug_Tool
             // checkBox_CheckModeCfg
             // 
             this.checkBox_CheckModeCfg.AutoSize = true;
+            this.checkBox_CheckModeCfg.Checked = true;
+            this.checkBox_CheckModeCfg.CheckState = System.Windows.Forms.CheckState.Checked;
             this.checkBox_CheckModeCfg.Location = new System.Drawing.Point(7, 65);
             this.checkBox_CheckModeCfg.Name = "checkBox_CheckModeCfg";
             this.checkBox_CheckModeCfg.Size = new System.Drawing.Size(93, 25);
@@ -5119,6 +5129,8 @@ namespace Welling_Motor_Debug_Tool
             // checkBox_CheckModeFWVer
             // 
             this.checkBox_CheckModeFWVer.AutoSize = true;
+            this.checkBox_CheckModeFWVer.Checked = true;
+            this.checkBox_CheckModeFWVer.CheckState = System.Windows.Forms.CheckState.Checked;
             this.checkBox_CheckModeFWVer.Location = new System.Drawing.Point(7, 28);
             this.checkBox_CheckModeFWVer.Name = "checkBox_CheckModeFWVer";
             this.checkBox_CheckModeFWVer.Size = new System.Drawing.Size(125, 25);
@@ -5129,13 +5141,14 @@ namespace Welling_Motor_Debug_Tool
             // button_CheckModeStart
             // 
             this.button_CheckModeStart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
-            this.button_CheckModeStart.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
-            this.button_CheckModeStart.Location = new System.Drawing.Point(512, 37);
+            this.button_CheckModeStart.ForeColor = System.Drawing.Color.White;
+            this.button_CheckModeStart.Location = new System.Drawing.Point(512, 35);
             this.button_CheckModeStart.Name = "button_CheckModeStart";
-            this.button_CheckModeStart.Size = new System.Drawing.Size(126, 31);
+            this.button_CheckModeStart.Size = new System.Drawing.Size(126, 35);
             this.button_CheckModeStart.TabIndex = 17;
             this.button_CheckModeStart.Text = "开始测试";
             this.button_CheckModeStart.UseVisualStyleBackColor = false;
+            this.button_CheckModeStart.Click += new System.EventHandler(this.button_CheckModeStart_Click);
             // 
             // textBox_CheckModeScan
             // 
@@ -5159,9 +5172,9 @@ namespace Welling_Motor_Debug_Tool
             // 
             // label_CheckModeStatus
             // 
-            this.label_CheckModeStatus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
+            this.label_CheckModeStatus.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
             this.label_CheckModeStatus.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label_CheckModeStatus.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label_CheckModeStatus.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
             this.label_CheckModeStatus.Location = new System.Drawing.Point(763, 38);
             this.label_CheckModeStatus.Name = "label_CheckModeStatus";
             this.label_CheckModeStatus.Size = new System.Drawing.Size(218, 29);
@@ -5173,7 +5186,7 @@ namespace Welling_Motor_Debug_Tool
             // 
             this.label_CheckModeResult.BackColor = System.Drawing.Color.Green;
             this.label_CheckModeResult.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label_CheckModeResult.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label_CheckModeResult.ForeColor = System.Drawing.Color.White;
             this.label_CheckModeResult.Location = new System.Drawing.Point(645, 38);
             this.label_CheckModeResult.Name = "label_CheckModeResult";
             this.label_CheckModeResult.Size = new System.Drawing.Size(111, 29);
@@ -6077,6 +6090,29 @@ namespace Welling_Motor_Debug_Tool
             this.pictureBox2.TabIndex = 16;
             this.pictureBox2.TabStop = false;
             // 
+            // label_CheckModeBoot
+            // 
+            this.label_CheckModeBoot.BackColor = System.Drawing.Color.Red;
+            this.label_CheckModeBoot.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label_CheckModeBoot.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label_CheckModeBoot.Location = new System.Drawing.Point(108, 32);
+            this.label_CheckModeBoot.Name = "label_CheckModeBoot";
+            this.label_CheckModeBoot.Size = new System.Drawing.Size(40, 20);
+            this.label_CheckModeBoot.TabIndex = 9;
+            this.label_CheckModeBoot.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            // 
+            // label121
+            // 
+            this.label121.AutoSize = true;
+            this.label121.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label121.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.label121.Location = new System.Drawing.Point(6, 32);
+            this.label121.Name = "label121";
+            this.label121.Size = new System.Drawing.Size(55, 21);
+            this.label121.TabIndex = 8;
+            this.label121.Text = "BOOT";
+            this.label121.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
             // mainForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
@@ -6640,7 +6676,7 @@ namespace Welling_Motor_Debug_Tool
         private ComboBox comboBox_FacModeCfgFile;
         private ComboBox comboBox_FacModeCfgDate;
         private GroupBox groupBox2;
-        private Label label_FacModeSatus;
+        private Label label_FacModeStatus;
         private Label label_FacModeResult;
         private CheckBox checkBox_FacBaseFucTest;
         private CheckBox checkBox_FacModeCfgWrite;
@@ -6713,5 +6749,7 @@ namespace Welling_Motor_Debug_Tool
         private Label label117;
         private Label label_FacModeSpeed;
         private CheckBox checkBox_FacCad;
+        private Label label121;
+        private Label label_CheckModeBoot;
     }
 }

+ 642 - 64
Welling_Motor_Debug_Tool/mainForm.cs

@@ -5502,7 +5502,7 @@ namespace Welling_Motor_Debug_Tool
                     richTextBox_FacModeLog.Text += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试页面上传服务器成功" + "\r\n";
             }
             //测试记录
-            LogSaveFileName = LocalSavePath + "\\" + ProductInfo + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_测试记录" + ".log";
+            LogSaveFileName = LogSavePath + "\\" + ProductInfo + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_测试记录" + ".log";
             string file_str = "";
             file_str += "测试时间:\r\n" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\r\n\r\n";
             file_str += "检验记录:\r\n" + richTextBox_FacModeLog.Text.Replace("\n", "\r\n") + "\r\n\r\n";
@@ -5552,7 +5552,7 @@ namespace Welling_Motor_Debug_Tool
             richTextBox_FacModeLog.AppendText("配置文件:" + comboBox_FacModeCfgDate.Text + " / " + comboBox_FacModeCfgFile.Text + "\r\n");
 
             //检查打标信息格式
-            label_FacModeSatus.Text = "检查扫码信息";
+            label_FacModeStatus.Text = "检查扫码信息";
             Delay_ms(500);
             richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "检查扫码信息" + "\r\n");
             if (textBox_FacModeScan.Text == string.Empty)
@@ -5564,17 +5564,19 @@ namespace Welling_Motor_Debug_Tool
             {
                 if (!textBox_FacModeScan.Text.Contains("  "))
                 {
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "标签格式错误";
+                    button__FacMode_Start.Enabled = true;
                     return;
                 }                
             }
             catch (System.Exception)
             {
-                label_FacModeSatus.Text = "存在故障!";
+                label_FacModeStatus.Text = "存在故障!";
                 label_FacModeResult.BackColor = Color.Red;
                 label_FacModeResult.Text = "标签格式错误";
+                button__FacMode_Start.Enabled = true;
                 return;
             }
 
@@ -5601,9 +5603,9 @@ namespace Welling_Motor_Debug_Tool
             short DataTemp_Int16;
             string ResultPathName = "";
             
-            label_FacModeSatus.Text = "开始测试";
+            label_FacModeStatus.Text = "开始测试";
             Delay_ms(500);
-            label_FacModeSatus.Text = "系统开机";
+            label_FacModeStatus.Text = "系统开机";
 
             //系统开机,确保测试前先关机,发送关机指令再发送开机指令
             BootInfo = "";
@@ -5625,7 +5627,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "开机失败" + BootInfo + "\r\n");
-                label_FacModeSatus.Text = "存在故障!";
+                label_FacModeStatus.Text = "存在故障!";
                 label_FacModeResult.BackColor = Color.Red;
                 label_FacModeResult.Text = "测试异常";                
                 Delay_ms(500);
@@ -5640,7 +5642,7 @@ namespace Welling_Motor_Debug_Tool
                 do
                 {
                     //发送系统清除指令    
-                    label_FacModeSatus.Text = "系统清除";
+                    label_FacModeStatus.Text = "系统清除";
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "系统清除" + "\r\n");
                     Code[0] = (byte)'C';
                     Code[1] = (byte)'L';
@@ -5663,7 +5665,7 @@ namespace Welling_Motor_Debug_Tool
                     else
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "系统清除失败" + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";                        
                         Delay_ms(500);
@@ -5673,7 +5675,7 @@ namespace Welling_Motor_Debug_Tool
                     }
 
                     //系统重新开机
-                    label_FacModeSatus.Text = "重新开机";
+                    label_FacModeStatus.Text = "重新开机";
                     BootInfo = "";
                     Code[0] = 0xF1;
                     mySerialProcess.SendCmd(0x7FF, 0x16, 0x2201, Code);
@@ -5688,7 +5690,7 @@ namespace Welling_Motor_Debug_Tool
                     else
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "重新开机失败"  + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";
                         Delay_ms(500);
@@ -5701,7 +5703,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 label_FacModeSysClear.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过系统清除!";
+                label_FacModeStatus.Text = "跳过系统清除!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过系统清除" + "\r\n");
                 Delay_ms(500);
             }
@@ -5710,7 +5712,7 @@ namespace Welling_Motor_Debug_Tool
             if (textBox_ErrorCode.Text.Contains("H"))
             {
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "故障码:" + textBox_ErrorCode.Text + "\r\n");
-                label_FacModeSatus.Text = "电机存在故障!";
+                label_FacModeStatus.Text = "电机存在故障!";
                 label_FacModeResult.BackColor = Color.Red;
                 label_FacModeResult.Text = "测试异常";
                 Delay_ms(500);
@@ -5722,10 +5724,11 @@ namespace Welling_Motor_Debug_Tool
             //参数写入
             if (checkBox_FacModeCfgWrite.Checked)
             {
-                label_FacModeSatus.Text = "参数写入";
+                label_FacModeStatus.Text = "参数写入";
                 //写入产品型号和SN
                 do
                 {
+                    //根据扫码信息获取型号和SN
                     string ScanInfo = textBox_FacModeScan.Text;
                     string regexInfo = "";
                     string[] InfoList = { "" };
@@ -5742,14 +5745,14 @@ namespace Welling_Motor_Debug_Tool
                             string Model = InfoList[0];
                             string Spec = InfoList[1];
                             string Sn = InfoList[2];
-                            //InfoList[0] = Model.Replace("-", "").Substring(2, 12) + Spec.Substring(Spec.Length - 4);
+                            InfoList[0] = Model.Replace("-", "").Substring(2, 12) + Spec.Substring(Spec.Length - 4);
                             InfoList[1] = Sn;
                         }
                     }
                     catch
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "标签格式错误" + BootInfo + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "标签格式错误";
                         return;
@@ -5761,7 +5764,7 @@ namespace Welling_Motor_Debug_Tool
                         //...
 
                         //写入型号
-                        label_FacModeSatus.Text = "写入型号";
+                        label_FacModeStatus.Text = "写入型号";
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "写入型号" + "\r\n");
                         textBox_FacModeName.Text = InfoList[0];
                         string Mode = textBox_FacModeName.Text;
@@ -5791,7 +5794,7 @@ namespace Welling_Motor_Debug_Tool
                         else
                         {
                             richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "型号写入失败" + "\r\n");
-                            label_FacModeSatus.Text = "存在故障!";
+                            label_FacModeStatus.Text = "存在故障!";
                             label_FacModeResult.BackColor = Color.Red;
                             label_FacModeResult.Text = "测试异常";
                             Delay_ms(500);
@@ -5801,7 +5804,7 @@ namespace Welling_Motor_Debug_Tool
                         }
 
                         //写入SN                    
-                        label_FacModeSatus.Text = "写入SN";
+                        label_FacModeStatus.Text = "写入SN";
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "写入SN" + "\r\n");
                         textBox_FacModeNum.Text = InfoList[1];
                         string SN = textBox_FacModeNum.Text;
@@ -5830,7 +5833,7 @@ namespace Welling_Motor_Debug_Tool
                         else
                         {
                             richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "SN写入失败" + "\r\n");
-                            label_FacModeSatus.Text = "存在故障!";
+                            label_FacModeStatus.Text = "存在故障!";
                             label_FacModeResult.BackColor = Color.Red;
                             label_FacModeResult.Text = "测试异常";
                             Delay_ms(500);
@@ -5849,7 +5852,7 @@ namespace Welling_Motor_Debug_Tool
                 //写入配置文件
                 do
                 {
-                    label_FacModeSatus.Text = "写入配置文件";
+                    label_FacModeStatus.Text = "写入配置文件";
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "读取配置文件" + "\r\n");
                     //配置文件
                     List<byte[]> CmdList = new List<byte[]>();
@@ -5895,7 +5898,7 @@ namespace Welling_Motor_Debug_Tool
                     else
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "参数写入失败" + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";
                         Delay_ms(500);
@@ -5909,7 +5912,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 label_FacMode_CfgWrite.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过参数写入!";
+                label_FacModeStatus.Text = "跳过参数写入!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过参数写入" + "\r\n");
                 Delay_ms(500);
             }
@@ -5919,7 +5922,7 @@ namespace Welling_Motor_Debug_Tool
             {
                 if (label_FacModeBMS.BackColor == Color.Red)
                 {
-                    label_FacModeSatus.Text = "BMS通讯异常!";
+                    label_FacModeStatus.Text = "BMS通讯异常!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -5931,7 +5934,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 label_FacModeBMS.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过BMS通讯检测!";
+                label_FacModeStatus.Text = "跳过BMS通讯检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过BMS通讯检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -5939,7 +5942,7 @@ namespace Welling_Motor_Debug_Tool
             //基础功能检测
             if (checkBox_FacBaseFucTest.Checked)
             {
-                label_FacModeSatus.Text = "基础功能检测";
+                label_FacModeStatus.Text = "基础功能检测";
                 //发送指令进入配置模式
                 do
                 {
@@ -5956,7 +5959,7 @@ namespace Welling_Motor_Debug_Tool
                     else
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式异常" + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";
                         Delay_ms(500);
@@ -5982,7 +5985,7 @@ namespace Welling_Motor_Debug_Tool
                     if (richTextBox_DebugParam.Text == string.Empty)
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "获取调试信息异常" + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";
                         Delay_ms(500);
@@ -6007,7 +6010,7 @@ namespace Welling_Motor_Debug_Tool
                         Code[2 * i + 3] = (byte)(uwDataTemp >> 8);
                     }
                     mySerialProcess.SendCmd((ushort)0x751, (byte)0x16, (ushort)0x463C, Code);
-                    label_FacModeSatus.Text = "启动电机";
+                    label_FacModeStatus.Text = "启动电机";
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "启动电机" + "\r\n");
                     //设置转速100%
                     var Data = new byte[1];
@@ -6025,7 +6028,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "车速传感器异常" + " " + textBox_RunInfo_BikeSpeed.Text + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6044,7 +6047,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "电压测量异常" + " " + textBox_RunInfo_Vol.Text + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6062,7 +6065,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "电流测量异常" + " " + textBox_RunInfo_Current.Text + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6082,7 +6085,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "温度传感器异常" + " " + textBox_RunInfo_T_PCB.Text + " " + textBox_RunInfo_T_MCU.Text + " " + textBox_RunInfo_T_Coil.Text + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6100,7 +6103,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "电机转速异常" + " " + textBox_RunInfo_MotorSpeed.Text + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6121,7 +6124,7 @@ namespace Welling_Motor_Debug_Tool
                     if (richTextBox_DebugParam.Text == string.Empty)
                     {
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "获取调试信息异常" + "\r\n");
-                        label_FacModeSatus.Text = "存在故障!";
+                        label_FacModeStatus.Text = "存在故障!";
                         label_FacModeResult.BackColor = Color.Red;
                         label_FacModeResult.Text = "测试异常";
                         Delay_ms(500);
@@ -6145,7 +6148,7 @@ namespace Welling_Motor_Debug_Tool
                         Code[2 * i + 3] = (byte)(uwDataTemp >> 8);
                     }
                     mySerialProcess.SendCmd((ushort)0x751, (byte)0x16, (ushort)0x463C, Code);
-                    label_FacModeSatus.Text = "停止电机";
+                    label_FacModeStatus.Text = "停止电机";
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "停止电机" + "\r\n");
                     Delay_ms(2000);
                 } while (false);
@@ -6157,7 +6160,7 @@ namespace Welling_Motor_Debug_Tool
                 label_FacModeCurrentTest.BackColor = Color.Yellow;
                 label_FacModeNTC.BackColor = Color.Yellow;
                 label_FacModeMotorSpeed.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过基础功能检测!";
+                label_FacModeStatus.Text = "跳过基础功能检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过基础功能检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6165,7 +6168,37 @@ namespace Welling_Motor_Debug_Tool
             //力矩检测
             if (checkBox_FacTor.Checked)
             {
-                label_FacModeSatus.Text = "力矩传感器检测!";
+                label_FacModeStatus.Text = "力矩传感器检测!";
+                //发送指令进入配置模式
+                do
+                {
+                    if (textBox_RunInfo_Vol.Text != "---") //已进入配置模式,不重新发送
+                    {
+                        break;
+                    }
+                    Code[0] = 0x01;
+                    mySerialProcess.SendCmdWithoutNotice((ushort)0x751, (byte)0x16, (ushort)0x1901, Code);
+                    WriteACK = false;
+                    WriteCnt = 0;
+                    ACK_WaitCnt = 0;
+                    while (ACK_WaitCnt <= 2) ; //1s
+                    if (textBox_RunInfo_Vol.Text != "---")
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式" + "\r\n");
+                        Delay_ms(500);
+                    }
+                    else
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式异常" + "\r\n");
+                        label_FacModeStatus.Text = "存在故障!";
+                        label_FacModeResult.BackColor = Color.Red;
+                        label_FacModeResult.Text = "测试异常";
+                        Delay_ms(500);
+                        //存储异常并上传
+                        FacMode_Stop(false);
+                        return;
+                    }
+                } while (false);
                 ushort Max = 0, Torque = 0;
                 //提示输入力矩信号
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "10s内模拟力矩信号输入" + "\r\n");
@@ -6186,7 +6219,7 @@ namespace Welling_Motor_Debug_Tool
                 if (ACK_WaitCnt >= 20)                
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "力矩传感器异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6199,7 +6232,7 @@ namespace Welling_Motor_Debug_Tool
             {
                 label_FacModeTq.BackColor = Color.Yellow;
                 label_FacModeCad.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过力矩检测!";
+                label_FacModeStatus.Text = "跳过力矩检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过力矩检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6207,7 +6240,37 @@ namespace Welling_Motor_Debug_Tool
             //踏频检测
             if (checkBox_FacCad.Checked)
             {
-                label_FacModeSatus.Text = "踏频传感器检测!";
+                label_FacModeStatus.Text = "踏频传感器检测!";
+                //发送指令进入配置模式
+                do
+                {
+                    if (textBox_RunInfo_Vol.Text != "---") //已进入配置模式,不重新发送
+                    {
+                        break;
+                    }
+                    Code[0] = 0x01;
+                    mySerialProcess.SendCmdWithoutNotice((ushort)0x751, (byte)0x16, (ushort)0x1901, Code);
+                    WriteACK = false;
+                    WriteCnt = 0;
+                    ACK_WaitCnt = 0;
+                    while (ACK_WaitCnt <= 2) ; //1s
+                    if (textBox_RunInfo_Vol.Text != "---")
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式" + "\r\n");
+                        Delay_ms(500);
+                    }
+                    else
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式异常" + "\r\n");
+                        label_FacModeStatus.Text = "存在故障!";
+                        label_FacModeResult.BackColor = Color.Red;
+                        label_FacModeResult.Text = "测试异常";
+                        Delay_ms(500);
+                        //存储异常并上传
+                        FacMode_Stop(false);
+                        return;
+                    }
+                } while (false);
                 ushort Max = 0, Cadence = 0;
                 //提示输入踏频信号
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "10s内模拟踏频信号输入" + "\r\n");
@@ -6228,7 +6291,7 @@ namespace Welling_Motor_Debug_Tool
                 if (ACK_WaitCnt >= 20)
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "踏频传感器异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6241,7 +6304,7 @@ namespace Welling_Motor_Debug_Tool
             {
                 label_FacModeTq.BackColor = Color.Yellow;
                 label_FacModeCad.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过踏频检测!";
+                label_FacModeStatus.Text = "跳过踏频检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过踏频检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6249,9 +6312,39 @@ namespace Welling_Motor_Debug_Tool
             //转把检测
             if (checkBox_FacThrrotleTest.Checked)
             {
-                label_FacModeSatus.Text = "转把检测";
+                label_FacModeStatus.Text = "转把检测";
+                //发送指令进入配置模式
+                do
+                {
+                    if (textBox_RunInfo_Vol.Text != "---") //已进入配置模式,不重新发送
+                    {
+                        break;
+                    }
+                    Code[0] = 0x01;
+                    mySerialProcess.SendCmdWithoutNotice((ushort)0x751, (byte)0x16, (ushort)0x1901, Code);
+                    WriteACK = false;
+                    WriteCnt = 0;
+                    ACK_WaitCnt = 0;
+                    while (ACK_WaitCnt <= 2) ; //1s
+                    if (textBox_RunInfo_Vol.Text != "---")
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式" + "\r\n");
+                        Delay_ms(500);
+                    }
+                    else
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式异常" + "\r\n");
+                        label_FacModeStatus.Text = "存在故障!";
+                        label_FacModeResult.BackColor = Color.Red;
+                        label_FacModeResult.Text = "测试异常";
+                        Delay_ms(500);
+                        //存储异常并上传
+                        FacMode_Stop(false);
+                        return;
+                    }
+                } while (false);
                 //进入TURBO档
-                richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "转把检测,进入TURBO" + "\r\n");
+                richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "转把检测,发送指令进入TURBO" + "\r\n");
                 Code[0] = 0x04;
                 Code[1] = 0xF0;
                 mySerialProcess.SendCmd((ushort)0x751, (byte)0x16, (ushort)0x2802, Code);
@@ -6262,7 +6355,7 @@ namespace Welling_Motor_Debug_Tool
                 if (textBox_RunInfo_GearSt.Text != "TURBO")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入TURBO异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6284,7 +6377,7 @@ namespace Welling_Motor_Debug_Tool
                 if (ACK_WaitCnt >= 20) //转把超时
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "转把功能异常,松开转把" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6296,7 +6389,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 label_FacModeGas.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过转把检测!";
+                label_FacModeStatus.Text = "跳过转把检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过转把检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6304,7 +6397,37 @@ namespace Welling_Motor_Debug_Tool
             //刹车检测
             if (checkBox_FacBreakTest.Checked)
             {
-                label_FacModeSatus.Text = "刹把检测";
+                label_FacModeStatus.Text = "刹把检测";
+                //发送指令进入配置模式
+                do
+                {
+                    if (textBox_RunInfo_Vol.Text != "---") //已进入配置模式,不重新发送
+                    {
+                        break;
+                    }
+                    Code[0] = 0x01;
+                    mySerialProcess.SendCmdWithoutNotice((ushort)0x751, (byte)0x16, (ushort)0x1901, Code);
+                    WriteACK = false;
+                    WriteCnt = 0;
+                    ACK_WaitCnt = 0;
+                    while (ACK_WaitCnt <= 2) ; //1s
+                    if (textBox_RunInfo_Vol.Text != "---")
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式" + "\r\n");
+                        Delay_ms(500);
+                    }
+                    else
+                    {
+                        richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入配置模式异常" + "\r\n");
+                        label_FacModeStatus.Text = "存在故障!";
+                        label_FacModeResult.BackColor = Color.Red;
+                        label_FacModeResult.Text = "测试异常";
+                        Delay_ms(500);
+                        //存储异常并上传
+                        FacMode_Stop(false);
+                        return;
+                    }
+                } while (false);
                 //启动电机进入WALK模式
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "剎把检测,进入WALK" + "\r\n");
                 Code[0] = 0x22;
@@ -6317,7 +6440,7 @@ namespace Welling_Motor_Debug_Tool
                 if (textBox_RunInfo_GearSt.Text != "WALK")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "进入WALK异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6339,7 +6462,7 @@ namespace Welling_Motor_Debug_Tool
                 if (ACK_WaitCnt >= 20) //剎把超时
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "剎把功能异常,松开剎把" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6358,7 +6481,7 @@ namespace Welling_Motor_Debug_Tool
                 if (textBox_RunInfo_GearSt.Text != "OFF")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "退出WALK异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6372,7 +6495,7 @@ namespace Welling_Motor_Debug_Tool
             else
             {
                 label_FacModeBreak.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过刹车检测!";
+                label_FacModeStatus.Text = "跳过刹车检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过刹车检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6381,7 +6504,7 @@ namespace Welling_Motor_Debug_Tool
             if (checkBox_FacLightTest.Checked)
             {
                 //前后灯检测
-                label_FacModeSatus.Text = "前后灯检测";
+                label_FacModeStatus.Text = "前后灯检测";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "发送开灯指令" + "\r\n");
                 //发送指令打开车灯
                 Code[0] = 0x00;
@@ -6394,7 +6517,7 @@ namespace Welling_Motor_Debug_Tool
                 if (textBox_RunInfo_LightSwitch.Text != "ON")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "开灯指令发送异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6415,7 +6538,7 @@ namespace Welling_Motor_Debug_Tool
                 else
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "前后灯异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6435,7 +6558,7 @@ namespace Welling_Motor_Debug_Tool
                 if (textBox_RunInfo_LightSwitch.Text != "OFF")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "关灯指令发送异常" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6450,7 +6573,7 @@ namespace Welling_Motor_Debug_Tool
             {
                 label_FacModeLightF.BackColor = Color.Yellow;
                 label_FacModeLightB.BackColor = Color.Yellow;
-                label_FacModeSatus.Text = "跳过前后灯检测!";
+                label_FacModeStatus.Text = "跳过前后灯检测!";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过前后灯检测" + "\r\n");
                 Delay_ms(500);
             }
@@ -6458,7 +6581,7 @@ namespace Welling_Motor_Debug_Tool
             //软件版本检测
             do
             {
-                label_FacModeSatus.Text = "软件版本确认";
+                label_FacModeStatus.Text = "软件版本确认";
                 richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "发送指令读取版本信息" + "\r\n");
                 //发送指令读取版本                
                 Class_Motor_Ver.Mode = "---";
@@ -6472,7 +6595,7 @@ namespace Welling_Motor_Debug_Tool
                 if (Class_Motor_Ver.Mode == "---")
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "读取版本信息失败" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6496,7 +6619,7 @@ namespace Welling_Motor_Debug_Tool
                 catch (System.Exception)
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "软件版本信息不完整" + "\r\n");                    
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6507,7 +6630,7 @@ namespace Welling_Motor_Debug_Tool
                 if (string.Equals(VerCheck, VerRead) == false) //版本错误,直接结束
                 {
                     richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "软件版本错误" + "\r\n");
-                    label_FacModeSatus.Text = "存在故障!";
+                    label_FacModeStatus.Text = "存在故障!";
                     label_FacModeResult.BackColor = Color.Red;
                     label_FacModeResult.Text = "测试异常";
                     Delay_ms(500);
@@ -6522,7 +6645,7 @@ namespace Welling_Motor_Debug_Tool
 
             //测试合格
             richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试结束" + "\r\n");
-            label_FacModeSatus.Text = "测试结束!";
+            label_FacModeStatus.Text = "测试结束!";
             label_FacModeResult.BackColor = Color.Green;
             label_FacModeResult.Text = "测试合格";
             Delay_ms(500);
@@ -6537,7 +6660,7 @@ namespace Welling_Motor_Debug_Tool
             label_FacModeResult.BackColor = Color.Yellow;
             label_FacModeResult.Text = "测试中";
             //测试过程标签
-            label_FacModeSatus.Text = "测试就绪";
+            label_FacModeStatus.Text = "测试就绪";
             //测试结果标签
             foreach (Control c in groupBox28.Controls)
             {
@@ -6566,5 +6689,460 @@ namespace Welling_Motor_Debug_Tool
             richTextBox_FacModeLog.SelectionStart = richTextBox_FacModeLog.Text.Length;
             richTextBox_FacModeLog.ScrollToCaret();
         }
+
+        /// <summary>
+        /// 参数检验测试停止
+        /// </summary>
+        /// <param name="OK_Flag"></param>
+        private void CheckMode_Stop(bool OK_Flag)
+        {
+            //打开开始按钮
+            button_CheckModeStart.Enabled = true;
+
+            //系统关机
+            var Code = new byte[32];//发送的指令数据 
+            Code[0] = 0xF0;
+            mySerialProcess.SendCmd(0x7FF, 0x16, 0x2201, Code);
+
+            //路径设置
+            string LocalSavePath = "";
+            string ServerSavePath = "";
+            if (OK_Flag)
+            {
+                LocalSavePath = localInfo.LocalDataPath + localInfo.CheckPathName + "OK\\";
+                ServerSavePath = toolStripTextBox_ServerPath + "/qcTest/OK/";
+            }
+            else
+            {
+                LocalSavePath = localInfo.LocalDataPath + localInfo.CheckPathName + "FAIL\\";
+                ServerSavePath = toolStripTextBox_ServerPath + "/qcTest/FAIL/";
+            }
+            if (Directory.Exists(LocalSavePath) == false)
+            {
+                Directory.CreateDirectory(LocalSavePath);
+            }
+
+            //保存和上传
+            string LogSavePath = "";
+            string LogSaveFileName = "";
+            string ProductInfo = textBox_CheckModeScan.Text;
+            LogSavePath = LocalSavePath + DateTime.Now.ToString("yyyy-MM-dd").Replace("/", "-") + "\\" + ProductInfo;
+            if (Directory.Exists(LogSavePath) == false)
+            {
+                Directory.CreateDirectory(LogSavePath);
+            }
+            //测试页面
+            Bitmap bit = new Bitmap(this.Width, this.Height);//实例化一个和窗体一样大的bitmap
+            Graphics g = Graphics.FromImage(bit);
+            g.CopyFromScreen(this.Left, this.Top, 0, 0, new Size(this.Width, this.Height));//保存整个窗体为图片  
+            LogSaveFileName = LogSavePath + "\\" + ProductInfo + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_测试页面" + ".png";
+            bit.Save(LogSaveFileName);
+            //上传测试页面到服务器
+            if (myFtp.IsNetConnected == true)
+            {
+                string DateNow = DateTime.Now.ToString("yyyy-MM-dd");
+                if (myFtp.DirectoryExist(ServerSavePath, DateNow) == false)
+                {
+                    myFtp.MakeDir(ServerSavePath + DateNow);
+                }
+                if (myFtp.DirectoryExist(ServerSavePath + DateNow, ProductInfo) == false)
+                {
+                    myFtp.MakeDir(ServerSavePath + DateNow + "/" + ProductInfo);
+                }
+                bool result = myFtp.UploadFile(LogSaveFileName, ServerSavePath + DateNow + "/" + ProductInfo);
+                if (result == true)
+                    richTextBox_CheckModeLog.Text += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试页面上传服务器成功" + "\r\n";
+            }
+            //测试记录
+            LogSaveFileName = LogSavePath + "\\" + ProductInfo + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_测试记录" + ".log";
+            string file_str = "";
+            file_str += "测试时间:\r\n" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\r\n\r\n";
+            file_str += "检验记录:\r\n" + richTextBox_CheckModeLog.Text.Replace("\n", "\r\n") + "\r\n\r\n";
+            file_str += "检验结果:\r\n" + label_CheckModeResult.Text + "\r\n\r\n";
+            System.IO.File.WriteAllText(LogSaveFileName, file_str);
+            //上传测试记录到服务器
+            if (myFtp.IsNetConnected == true)
+            {
+                string DateNow = DateTime.Now.ToString("yyyy-MM-dd");
+                if (myFtp.DirectoryExist(ServerSavePath, DateNow) == false)
+                {
+                    myFtp.MakeDir(ServerSavePath + DateNow);
+                }
+                if (myFtp.DirectoryExist(ServerSavePath + DateNow, ProductInfo) == false)
+                {
+                    myFtp.MakeDir(ServerSavePath + DateNow + "/" + ProductInfo);
+                }
+                bool result = myFtp.UploadFile(LogSaveFileName, ServerSavePath + DateNow + "/" + ProductInfo);
+                if (result == true)
+                    richTextBox_CheckModeLog.Text += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试记录上传服务器成功" + "\r\n";
+            }
+
+        }
+
+        /// <summary>
+        /// 参数检验开始
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void button_CheckModeStart_Click(object sender, EventArgs e)
+        {
+            CheckTestStart();
+        }
+
+        /// <summary>
+        /// 参数检验测试子函数
+        /// </summary>
+        private void CheckTestStart()
+        {
+            //初始化标签
+            CheckModeLabelInit();
+            richTextBox_CheckModeLog.Clear();
+
+            //按钮禁止操作
+            button_CheckModeStart.Enabled = false;
+
+            //记录配置文件
+            richTextBox_CheckModeLog.AppendText("配置文件:" + comboBox_CheckModeCfgDate.Text + " / " + comboBox_CheckModeCfgFile.Text + "\r\n");
+
+            //检查打标信息
+            label_CheckModeStatus.Text = "检查扫码信息";
+            Delay_ms(500);
+            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "检查扫码信息" + "\r\n");
+            if (textBox_CheckModeScan.Text == string.Empty)
+            {
+                MessageBox.Show("请扫码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                return;
+            }
+            try
+            {
+                if (!textBox_CheckModeScan.Text.Contains("  "))
+                {
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "标签格式错误";
+                    button_CheckModeStart.Enabled = true;
+                    return;
+                }
+            }
+            catch (System.Exception)
+            {
+                label_CheckModeStatus.Text = "存在故障!";
+                label_CheckModeResult.BackColor = Color.Red;
+                label_CheckModeResult.Text = "标签格式错误";
+                button_CheckModeStart.Enabled = true;
+                return;
+            }
+
+            //流水号计数
+            //...
+
+            //创建线程,执行测试任务
+            Thread th = new Thread(CheckModeTest_Task);
+            th.Start();
+
+        }
+
+        /// <summary>
+        /// 执行一次测试任务
+        /// </summary>
+        private void CheckModeTest_Task()
+        {
+            //开始测试
+            richTextBox_CheckModeLog.AppendText("产品标签:" + textBox_CheckModeScan.Text + "\r\n");
+            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "开始测试" + "\r\n");
+
+            //变量定义
+            var Code = new byte[255];//发送的指令数据
+            ushort DataTemp;
+            short DataTemp_Int16;
+            string ResultPathName = "";
+
+            label_CheckModeStatus.Text = "开始测试";
+            Delay_ms(500);
+            label_CheckModeStatus.Text = "系统开机";
+
+            //系统开机,确保测试前先关机,发送关机指令再发送开机指令
+            BootInfo = "";
+            Code[0] = 0xF0;
+            mySerialProcess.SendCmd(0x7FF, 0x16, 0x2201, Code);
+            Delay_ms(1500);
+            Code[0] = 0xF1;
+            mySerialProcess.SendCmd(0x7FF, 0x16, 0x2201, Code);
+            ACK_WaitCnt = 0;
+            while (ACK_WaitCnt <= 2) ; //1s
+
+            //检查BOOT版本
+            if (BootInfo != string.Empty)
+            {
+                label_CheckModeBoot.BackColor = Color.Green;
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "开机成功,Boot版本:" + BootInfo + "\r\n");
+                Delay_ms(500);
+            }
+            else
+            {
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "开机失败" + BootInfo + "\r\n");
+                label_CheckModeStatus.Text = "存在故障!";
+                label_CheckModeResult.BackColor = Color.Red;
+                label_CheckModeResult.Text = "测试异常";
+                Delay_ms(500);
+                //存储异常并上传
+                CheckMode_Stop(false);
+                return;
+            }
+
+            //发送指令读取版本信息
+            do
+            {
+                label_CheckModeStatus.Text = "读取版本信息";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "发送指令读取版本信息" + "\r\n");
+                //发送指令读取版本                
+                Class_Motor_Ver.Mode = "---";
+                Class_Motor_Ver.SN = "---";
+                Class_Motor_Ver.HW = "---";
+                Class_Motor_Ver.FW = "---";
+                Class_Motor_Ver.Special = "---";
+                mySerialProcess.SendCmd((ushort)0x731, (byte)0x11, (ushort)0x3900, null);
+                ACK_WaitCnt = 0;
+                while (ACK_WaitCnt <= 2) ; //1s
+                if (Class_Motor_Ver.Mode == "---")
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "版本信息读取失败" + "\r\n");
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "测试异常";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "版本信息读取成功" + "\r\n");
+                Delay_ms(500);
+            } while (false);
+
+            //软件版本检查
+            if (checkBox_CheckModeFWVer.Checked)
+            {
+                richTextBox_CheckModeLog.AppendText("型号: " + Class_Motor_Ver.Mode + "\r\n");
+                richTextBox_CheckModeLog.AppendText("序列号: " + Class_Motor_Ver.SN + "\r\n");
+                richTextBox_CheckModeLog.AppendText("硬件版本: " + Class_Motor_Ver.HW + "\r\n");
+                richTextBox_CheckModeLog.AppendText("软件版本: " + Class_Motor_Ver.FW + "\r\n");
+                richTextBox_CheckModeLog.AppendText("软件标识: " + Class_Motor_Ver.Special + "\r\n");
+                //判断版本是否正确
+                string VerCheck = comboBox_CheckModeCfgFile.Text.Split('_')[3] + "_" + comboBox_CheckModeCfgFile.Text.Split('_')[4];
+                string VerRead = "";
+                try
+                {
+                    VerRead = Class_Motor_Ver.FW.Split('_')[0] + Class_Motor_Ver.Special.Split('-')[2].Substring(0, 4).Replace('V', '.') + "_" + Class_Motor_Ver.FW.Split('_')[1];
+                }
+                catch (System.Exception)
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "软件版本信息不完整" + "\r\n");
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "测试异常";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                if (string.Equals(VerCheck, VerRead) == false) //版本错误,直接结束
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "软件版本错误" + "\r\n");
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "测试异常";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                label_CheckModeFWVer.BackColor = Color.Green;
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "软件版本正确" + "\r\n");
+                Delay_ms(500);
+            }
+            else
+            {
+                label_CheckModeFWVer.BackColor = Color.Yellow;
+                label_CheckModeStatus.Text = "跳过软件版本查询";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过软件版本查询" + "\r\n");
+                Delay_ms(500);
+            }
+
+            //打标信息核对
+            if (checkBox_CheckModeSN.Checked)
+            {
+                label_CheckModeStatus.Text = "核对打标信息";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "核对打标信息" + "\r\n");
+                //根据扫码信息获取型号和SN
+                string ScanInfo = textBox_CheckModeScan.Text;
+                string regexInfo = "";
+                string[] InfoList = { "" };
+                try
+                {
+                    if (中置电机ToolStripMenuItem.Checked == true)
+                    {
+                        regexInfo = @"[0-9][0-9][V][0-9][0-9][0-9][W]";
+                        InfoList = Regex.Split(ScanInfo, regexInfo, RegexOptions.IgnoreCase);
+                    }
+                    else if (轮毂电机ToolStripMenuItem.Checked == true)
+                    {
+                        InfoList = ScanInfo.Split(new string[] { "  " }, StringSplitOptions.None);
+                        string Model = InfoList[0];
+                        string Spec = InfoList[1];
+                        string Sn = InfoList[2];
+                        InfoList[0] = Model.Replace("-", "").Substring(2, 12) + Spec.Substring(Spec.Length - 4);
+                        InfoList[1] = Sn;
+                    }
+                }
+                catch
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "标签格式错误" + "\r\n");
+                    label_FacModeStatus.Text = "存在故障!";
+                    label_FacModeResult.BackColor = Color.Red;
+                    label_FacModeResult.Text = "标签格式错误";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                //核对型号
+                if (string.Equals(InfoList[0], Class_Motor_Ver.Mode) == false) //型号错误,直接结束
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "型号不一致" + "\r\n");
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "测试异常";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "型号一致" + "\r\n");
+                Delay_ms(500);
+                //核对SN
+                if (string.Equals(InfoList[1], Class_Motor_Ver.SN) == false) //型号错误,直接结束
+                {
+                    richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "SN不一致" + "\r\n");
+                    label_CheckModeStatus.Text = "存在故障!";
+                    label_CheckModeResult.BackColor = Color.Red;
+                    label_CheckModeResult.Text = "测试异常";
+                    Delay_ms(500);
+                    //存储异常并上传
+                    CheckMode_Stop(false);
+                    return;
+                }
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "SN一致" + "\r\n");
+                Delay_ms(500);
+            }
+            else
+            {
+                label_CheckModeFWVer.BackColor = Color.Yellow;
+                label_CheckModeStatus.Text = "跳过打标信息确认";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过打标信息确认" + "\r\n");
+                Delay_ms(500);
+            }
+
+            //参数检验
+            if (checkBox_CheckModeCfg.Checked)
+            {
+                //读取配置文件信息
+                label_CheckModeStatus.Text = "参数检查";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "读取配置文件" + "\r\n");
+                //配置文件
+                List<byte[]> CmdList = new List<byte[]>();
+                //从服务器下载文件
+                string SelectFile = "";
+                SelectFile = comboBox_CheckModeCfgDate.SelectedItem.ToString() + "/" + comboBox_CheckModeCfgFile.SelectedItem.ToString();
+                if (File.Exists(localInfo.LocalPath + comboBox_CheckModeCfgFile.SelectedItem.ToString()))//本地存在选定文件,先删除本地
+                {
+                    File.Delete(localInfo.LocalPath + comboBox_CheckModeCfgFile.SelectedItem.ToString());
+                }
+                myFtp.DownloadFile(toolStripTextBox_ServerPath.Text + "/" + localInfo.CfgPathName + SelectFile, localInfo.LocalPath);
+                //打开文件
+                Dictionary<string, string> ConfigCmd = new Dictionary<string, string>();//配置文件格式
+                StreamReader streamReader = new StreamReader(localInfo.LocalPath + comboBox_CheckModeCfgFile.SelectedItem.ToString());
+                ConfigCmd.Clear();
+                while (streamReader.Peek() != -1)
+                {
+                    string fileLineInfo = streamReader.ReadLine();
+                    if (fileLineInfo.Contains("["))
+                    {
+                        if (fileLineInfo.Contains("助力参数"))
+                        {
+                            fileLineInfo = streamReader.ReadLine();
+                        }                        
+                        ConfigCmd.Add(fileLineInfo, streamReader.ReadLine());
+                    }
+                }
+                streamReader.Close();
+                int CmdNum = ConfigCmd.Count(); //指令个数
+                Delay_ms(500);
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "读取完成," + "共" + CmdNum.ToString() + "条指令," + "\r\n");
+                Delay_ms(500);
+                //逐条读取比较
+                for (int i = 0; i < CmdNum; i++)
+                { 
+                    
+                }
+
+
+
+
+
+
+
+
+            }
+            else
+            {
+                label_CheckModeFWVer.BackColor = Color.Yellow;
+                label_CheckModeStatus.Text = "跳过参数检验";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过参数检验" + "\r\n");
+                Delay_ms(500);
+            }
+
+            //传感器标定检验
+            if (checkBox_CheckModeTorque.Checked)
+            {
+
+            }
+            else
+            {
+                label_CheckModeFWVer.BackColor = Color.Yellow;
+                label_CheckModeStatus.Text = "跳过传感器标定检验";
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过传感器标定检验" + "\r\n");
+                Delay_ms(500);
+            }
+
+            //测试合格
+            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试结束" + "\r\n");
+            label_CheckModeStatus.Text = "测试结束!";
+            label_CheckModeResult.BackColor = Color.Green;
+            label_CheckModeResult.Text = "测试合格";
+            Delay_ms(500);
+            //存储并上传
+            CheckMode_Stop(true);
+            return;
+        }
+
+        private void CheckModeLabelInit()
+        {
+            //测试状态标签
+            label_CheckModeResult.BackColor = Color.Yellow;
+            label_CheckModeResult.Text = "测试中";
+            //测试过程标签
+            label_CheckModeStatus.Text = "测试就绪";
+            //测试结果标签
+            foreach (Control c in groupBox31.Controls)
+            {
+                if (c is Label)
+                {
+                    if (c.Text == string.Empty)
+                        c.BackColor = Color.Red;
+                }
+            }
+        }
+
+
     }
 }

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