Dail 1 vuosi sitten
vanhempi
sitoutus
e8f2ee2d96
24 muutettua tiedostoa jossa 1180 lisäystä ja 975 poistoa
  1. BIN
      .vs/Welling_Motor_Debug_Tool/FileContentIndex/450706e9-2b6d-4f0a-b6c6-2cb1ebe5d22e.vsidx
  2. BIN
      .vs/Welling_Motor_Debug_Tool/FileContentIndex/7b216d5c-d0ea-401d-a6f0-d84f965484ad.vsidx
  3. BIN
      .vs/Welling_Motor_Debug_Tool/FileContentIndex/9246b8b1-75ed-40bf-a334-bfc3870bc610.vsidx
  4. BIN
      .vs/Welling_Motor_Debug_Tool/FileContentIndex/cf5e28a9-2a18-4d4b-8a93-4a11cd91ae84.vsidx
  5. BIN
      .vs/Welling_Motor_Debug_Tool/v17/.suo
  6. 1 0
      Welling_Motor_Debug_Tool/LocalInfo.cs
  7. 3 3
      Welling_Motor_Debug_Tool/Params.cs
  8. 347 0
      Welling_Motor_Debug_Tool/TorqueParams.Designer.cs
  9. 153 0
      Welling_Motor_Debug_Tool/TorqueParams.cs
  10. 120 0
      Welling_Motor_Debug_Tool/TorqueParams.resx
  11. 10 0
      Welling_Motor_Debug_Tool/Welling_Motor_Debug_Tool.csproj
  12. BIN
      Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.exe
  13. BIN
      Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.pdb
  14. 140 507
      Welling_Motor_Debug_Tool/mainForm.Designer.cs
  15. 404 464
      Welling_Motor_Debug_Tool/mainForm.cs
  16. BIN
      Welling_Motor_Debug_Tool/obj/Debug/DesignTimeResolveAssemblyReferences.cache
  17. BIN
      Welling_Motor_Debug_Tool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  18. BIN
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.TorqueParams.resources
  19. BIN
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.AssemblyReference.cache
  20. 1 1
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.CoreCompileInputs.cache
  21. 1 0
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.FileListAbsolute.txt
  22. BIN
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.csproj.GenerateResource.cache
  23. BIN
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.exe
  24. BIN
      Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.pdb

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


BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/7b216d5c-d0ea-401d-a6f0-d84f965484ad.vsidx


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


BIN
.vs/Welling_Motor_Debug_Tool/FileContentIndex/cf5e28a9-2a18-4d4b-8a93-4a11cd91ae84.vsidx


BIN
.vs/Welling_Motor_Debug_Tool/v17/.suo


+ 1 - 0
Welling_Motor_Debug_Tool/LocalInfo.cs

@@ -11,6 +11,7 @@ namespace Welling_Motor_Debug_Tool
         public string LocalPath = "C:\\Temp\\MotorTestTool\\"; //本地配置文件路径
         public string LocalDataPath = "C:\\Temp\\MotorTestTool\\DataLog\\"; //本地数据文件路径
         public string ConfigFileName = "Config.ttcfg"; //配置文件
+        public string TorqueSensorFileName = "TorqueSensor.ttcfg"; //配置文件
         public string UsrFileName = "UserAccount"; //登录配置文件
         public string CfgPathName = "cfg\\"; //配置目录
         public string WalkLogPathName = "funcTest\\"; //推行测试目录

+ 3 - 3
Welling_Motor_Debug_Tool/Params.cs

@@ -11,7 +11,7 @@ namespace Welling_Motor_Debug_Tool
         public List<string> MotorParma = new List<string> { "极对数","电阻","d轴电感","q轴电感","永磁体磁链","Id最大值","Id最小值",
                                                             "额定转速","额定功率","额定电流","额定电压","惯量","最大转矩",
                                                             "预留1","预留2","预留3","预留4","预留5","预留6"};
-        public List<string> BikeParma = new List<string> { "轮胎周长", "电控传动比", "助力模式限速", "推行模式限速", "前牙盘T数", "后牙盘T数",
+        public List<string> BikeParma = new List<string> { "轮胎周长", "电控传动比", "转把模式限速", "推行模式限速", "前牙盘T数", "后牙盘T数",
                                                            "助力方案1", "助力方案2", "前后灯参数","轮胎周长微调","启动模式","开关机参数",
                                                            "预留1"};
         public List<string> ControlParma = new List<string> {"位置传感器零点","位置传感器当前零点","峰值电流","电流保护阈值","最高档电压保护阈值","最高档欠压保护阈值",
@@ -43,7 +43,7 @@ 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 }};
+                                                                                                 {"[控制参数]", 0x3E00}, {"[力矩传感器参数]", 0x4000}, {"[其它传感器参数]", 0x4000},
+                                                                                                 {"[助力参数]", 0x4304},{ "[调试参数]",0x4500} };
     }
 }

+ 347 - 0
Welling_Motor_Debug_Tool/TorqueParams.Designer.cs

@@ -0,0 +1,347 @@
+namespace Welling_Motor_Debug_Tool
+{
+    partial class TorqueParams
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label1 = new System.Windows.Forms.Label();
+            this.textBox_Torque_Zero = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_Zero_Min = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_Zero_Max = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.textBox_Torque_1 = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_1_Min = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_1_Max = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.textBox_Torque_2 = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_2_Min = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_2_Max = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.textBox_Torque_3 = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_3_Min = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_3_Max = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.textBox_Torque_4 = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_4_Min = new System.Windows.Forms.TextBox();
+            this.textBox_Torque_4_Max = new System.Windows.Forms.TextBox();
+            this.button_Change = new System.Windows.Forms.Button();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label7 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(27, 65);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(42, 21);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "零点";
+            // 
+            // textBox_Torque_Zero
+            // 
+            this.textBox_Torque_Zero.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_Zero.Location = new System.Drawing.Point(98, 61);
+            this.textBox_Torque_Zero.Name = "textBox_Torque_Zero";
+            this.textBox_Torque_Zero.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_Zero.TabIndex = 1;
+            this.textBox_Torque_Zero.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_Zero_Min
+            // 
+            this.textBox_Torque_Zero_Min.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_Zero_Min.Location = new System.Drawing.Point(193, 61);
+            this.textBox_Torque_Zero_Min.Name = "textBox_Torque_Zero_Min";
+            this.textBox_Torque_Zero_Min.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_Zero_Min.TabIndex = 1;
+            this.textBox_Torque_Zero_Min.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_Zero_Max
+            // 
+            this.textBox_Torque_Zero_Max.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_Zero_Max.Location = new System.Drawing.Point(288, 61);
+            this.textBox_Torque_Zero_Max.Name = "textBox_Torque_Zero_Max";
+            this.textBox_Torque_Zero_Max.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_Zero_Max.TabIndex = 1;
+            this.textBox_Torque_Zero_Max.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(27, 101);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(51, 21);
+            this.label2.TabIndex = 0;
+            this.label2.Text = "校准1";
+            // 
+            // textBox_Torque_1
+            // 
+            this.textBox_Torque_1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_1.Location = new System.Drawing.Point(98, 97);
+            this.textBox_Torque_1.Name = "textBox_Torque_1";
+            this.textBox_Torque_1.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_1.TabIndex = 1;
+            this.textBox_Torque_1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_1_Min
+            // 
+            this.textBox_Torque_1_Min.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_1_Min.Location = new System.Drawing.Point(193, 97);
+            this.textBox_Torque_1_Min.Name = "textBox_Torque_1_Min";
+            this.textBox_Torque_1_Min.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_1_Min.TabIndex = 1;
+            this.textBox_Torque_1_Min.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_1_Max
+            // 
+            this.textBox_Torque_1_Max.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_1_Max.Location = new System.Drawing.Point(288, 97);
+            this.textBox_Torque_1_Max.Name = "textBox_Torque_1_Max";
+            this.textBox_Torque_1_Max.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_1_Max.TabIndex = 1;
+            this.textBox_Torque_1_Max.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(27, 137);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(51, 21);
+            this.label3.TabIndex = 0;
+            this.label3.Text = "校准2";
+            // 
+            // textBox_Torque_2
+            // 
+            this.textBox_Torque_2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_2.Location = new System.Drawing.Point(98, 133);
+            this.textBox_Torque_2.Name = "textBox_Torque_2";
+            this.textBox_Torque_2.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_2.TabIndex = 1;
+            this.textBox_Torque_2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_2_Min
+            // 
+            this.textBox_Torque_2_Min.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_2_Min.Location = new System.Drawing.Point(193, 133);
+            this.textBox_Torque_2_Min.Name = "textBox_Torque_2_Min";
+            this.textBox_Torque_2_Min.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_2_Min.TabIndex = 1;
+            this.textBox_Torque_2_Min.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_2_Max
+            // 
+            this.textBox_Torque_2_Max.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_2_Max.Location = new System.Drawing.Point(288, 133);
+            this.textBox_Torque_2_Max.Name = "textBox_Torque_2_Max";
+            this.textBox_Torque_2_Max.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_2_Max.TabIndex = 1;
+            this.textBox_Torque_2_Max.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(27, 173);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(51, 21);
+            this.label4.TabIndex = 0;
+            this.label4.Text = "校准3";
+            // 
+            // textBox_Torque_3
+            // 
+            this.textBox_Torque_3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_3.Location = new System.Drawing.Point(98, 169);
+            this.textBox_Torque_3.Name = "textBox_Torque_3";
+            this.textBox_Torque_3.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_3.TabIndex = 1;
+            this.textBox_Torque_3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_3_Min
+            // 
+            this.textBox_Torque_3_Min.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_3_Min.Location = new System.Drawing.Point(193, 169);
+            this.textBox_Torque_3_Min.Name = "textBox_Torque_3_Min";
+            this.textBox_Torque_3_Min.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_3_Min.TabIndex = 1;
+            this.textBox_Torque_3_Min.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_3_Max
+            // 
+            this.textBox_Torque_3_Max.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_3_Max.Location = new System.Drawing.Point(288, 169);
+            this.textBox_Torque_3_Max.Name = "textBox_Torque_3_Max";
+            this.textBox_Torque_3_Max.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_3_Max.TabIndex = 1;
+            this.textBox_Torque_3_Max.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(27, 209);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(51, 21);
+            this.label5.TabIndex = 0;
+            this.label5.Text = "校准4";
+            // 
+            // textBox_Torque_4
+            // 
+            this.textBox_Torque_4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_4.Location = new System.Drawing.Point(98, 205);
+            this.textBox_Torque_4.Name = "textBox_Torque_4";
+            this.textBox_Torque_4.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_4.TabIndex = 1;
+            this.textBox_Torque_4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_4_Min
+            // 
+            this.textBox_Torque_4_Min.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_4_Min.Location = new System.Drawing.Point(193, 205);
+            this.textBox_Torque_4_Min.Name = "textBox_Torque_4_Min";
+            this.textBox_Torque_4_Min.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_4_Min.TabIndex = 1;
+            this.textBox_Torque_4_Min.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // textBox_Torque_4_Max
+            // 
+            this.textBox_Torque_4_Max.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.textBox_Torque_4_Max.Location = new System.Drawing.Point(288, 205);
+            this.textBox_Torque_4_Max.Name = "textBox_Torque_4_Max";
+            this.textBox_Torque_4_Max.Size = new System.Drawing.Size(66, 29);
+            this.textBox_Torque_4_Max.TabIndex = 1;
+            this.textBox_Torque_4_Max.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            // 
+            // button_Change
+            // 
+            this.button_Change.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(113)))), ((int)(((byte)(185)))));
+            this.button_Change.ForeColor = System.Drawing.Color.White;
+            this.button_Change.Location = new System.Drawing.Point(12, 12);
+            this.button_Change.Name = "button_Change";
+            this.button_Change.Size = new System.Drawing.Size(66, 40);
+            this.button_Change.TabIndex = 2;
+            this.button_Change.Text = "修改";
+            this.button_Change.UseVisualStyleBackColor = false;
+            this.button_Change.Click += new System.EventHandler(this.button_Change_Click);
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(102, 26);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(58, 21);
+            this.label6.TabIndex = 0;
+            this.label6.Text = "力矩值";
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(197, 26);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(58, 21);
+            this.label7.TabIndex = 0;
+            this.label7.Text = "最小值";
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(292, 26);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(58, 21);
+            this.label8.TabIndex = 0;
+            this.label8.Text = "最大值";
+            // 
+            // TorqueParams
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
+            this.ClientSize = new System.Drawing.Size(384, 261);
+            this.Controls.Add(this.button_Change);
+            this.Controls.Add(this.textBox_Torque_4_Max);
+            this.Controls.Add(this.textBox_Torque_3_Max);
+            this.Controls.Add(this.textBox_Torque_2_Max);
+            this.Controls.Add(this.textBox_Torque_1_Max);
+            this.Controls.Add(this.textBox_Torque_Zero_Max);
+            this.Controls.Add(this.textBox_Torque_4_Min);
+            this.Controls.Add(this.textBox_Torque_3_Min);
+            this.Controls.Add(this.textBox_Torque_2_Min);
+            this.Controls.Add(this.textBox_Torque_1_Min);
+            this.Controls.Add(this.textBox_Torque_Zero_Min);
+            this.Controls.Add(this.textBox_Torque_4);
+            this.Controls.Add(this.textBox_Torque_3);
+            this.Controls.Add(this.textBox_Torque_2);
+            this.Controls.Add(this.textBox_Torque_1);
+            this.Controls.Add(this.textBox_Torque_Zero);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label8);
+            this.Controls.Add(this.label7);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.label1);
+            this.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+            this.Margin = new System.Windows.Forms.Padding(5);
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "TorqueParams";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "TorqueParams";
+            this.Load += new System.EventHandler(this.TorqueParams_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.TextBox textBox_Torque_Zero;
+        private System.Windows.Forms.TextBox textBox_Torque_Zero_Min;
+        private System.Windows.Forms.TextBox textBox_Torque_Zero_Max;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox textBox_Torque_1;
+        private System.Windows.Forms.TextBox textBox_Torque_1_Min;
+        private System.Windows.Forms.TextBox textBox_Torque_1_Max;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.TextBox textBox_Torque_2;
+        private System.Windows.Forms.TextBox textBox_Torque_2_Min;
+        private System.Windows.Forms.TextBox textBox_Torque_2_Max;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox textBox_Torque_3;
+        private System.Windows.Forms.TextBox textBox_Torque_3_Min;
+        private System.Windows.Forms.TextBox textBox_Torque_3_Max;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox textBox_Torque_4;
+        private System.Windows.Forms.TextBox textBox_Torque_4_Min;
+        private System.Windows.Forms.TextBox textBox_Torque_4_Max;
+        private System.Windows.Forms.Button button_Change;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.Label label8;
+    }
+}

+ 153 - 0
Welling_Motor_Debug_Tool/TorqueParams.cs

@@ -0,0 +1,153 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Welling_Motor_Debug_Tool
+{
+    public partial class TorqueParams : Form
+    {
+        LocalInfo localInfo = new LocalInfo();
+        public class TorqueTh
+        {
+            public ushort T;
+            public ushort Min;
+            public ushort Max;
+        }
+
+        public TorqueTh Zero = new TorqueTh();
+        public TorqueTh K1 = new TorqueTh();
+        public TorqueTh K2 = new TorqueTh();
+        public TorqueTh K3 = new TorqueTh();
+        public TorqueTh K4 = new TorqueTh();
+
+        public TorqueParams()
+        {
+            InitializeComponent();
+            //读取配置文件
+            try
+            {
+                //检查配置文件
+                if (!Directory.Exists(localInfo.LocalPath))
+                    Directory.CreateDirectory(localInfo.LocalPath);
+                if (!File.Exists(localInfo.LocalPath + localInfo.TorqueSensorFileName))
+                {
+                    FileStream fs = File.Create(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+                    fs.Close();
+                    StreamWriter file = new StreamWriter(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+                    Zero.T = 0;
+                    Zero.Min = 500;
+                    Zero.Max = 700;
+                    K1.T = 200;
+                    K1.Min = 1200;
+                    K1.Max = 1400;
+                    K2.T = 400;
+                    K2.Min = 1900;
+                    K2.Max = 2100;
+                    K3.T = 600;
+                    K3.Min = 2600;
+                    K3.Max = 3800;
+                    K4.T = 800;
+                    K4.Min = 3300;
+                    K4.Max = 3500;
+                    file.WriteLine(Zero.T.ToString() + "," + Zero.Min.ToString() + "," + Zero.Max.ToString());
+                    file.WriteLine(K1.T.ToString() + "," + K1.Min.ToString() + "," + K1.Max.ToString());
+                    file.WriteLine(K2.T.ToString() + "," + K2.Min.ToString() + "," + K2.Max.ToString());
+                    file.WriteLine(K3.T.ToString() + "," + K3.Min.ToString() + "," + K3.Max.ToString());
+                    file.WriteLine(K4.T.ToString() + "," + K4.Min.ToString() + "," + K4.Max.ToString());
+                    file.Close();
+                }
+                //读取配置文件
+                StreamReader objReader = new StreamReader(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+                string sLine = "";
+                List<string> userInfo = new List<string>();
+                while (sLine != null)
+                {
+                    sLine = objReader.ReadLine();
+                    userInfo.Add(sLine);
+                }
+                objReader.Close();
+                Zero.T = Convert.ToUInt16(userInfo[0].Split(',')[0]);
+                Zero.Min = Convert.ToUInt16(userInfo[0].Split(',')[1]);
+                Zero.Max = Convert.ToUInt16(userInfo[0].Split(',')[2]);
+                K1.T = Convert.ToUInt16(userInfo[1].Split(',')[0]);
+                K1.Min = Convert.ToUInt16(userInfo[1].Split(',')[1]);
+                K1.Max = Convert.ToUInt16(userInfo[1].Split(',')[2]);
+                K2.T = Convert.ToUInt16(userInfo[2].Split(',')[0]);
+                K2.Min = Convert.ToUInt16(userInfo[2].Split(',')[1]);
+                K2.Max = Convert.ToUInt16(userInfo[2].Split(',')[2]);
+                K3.T = Convert.ToUInt16(userInfo[3].Split(',')[0]);
+                K3.Min = Convert.ToUInt16(userInfo[3].Split(',')[1]);
+                K3.Max = Convert.ToUInt16(userInfo[3].Split(',')[2]);
+                K4.T = Convert.ToUInt16(userInfo[4].Split(',')[0]);
+                K4.Min = Convert.ToUInt16(userInfo[4].Split(',')[1]);
+                K4.Max = Convert.ToUInt16(userInfo[4].Split(',')[2]);
+            }
+            catch (System.Exception)
+            {
+                MessageBox.Show("文件读取失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+            }
+
+        }
+
+        private void TorqueParams_Load(object sender, EventArgs e)
+        {
+            textBox_Torque_Zero.Text = Zero.T.ToString();
+            textBox_Torque_Zero_Min.Text = Zero.Min.ToString();
+            textBox_Torque_Zero_Max.Text = Zero.Max.ToString();
+            textBox_Torque_1.Text = K1.T.ToString();
+            textBox_Torque_1_Min.Text = K1.Min.ToString();
+            textBox_Torque_1_Max.Text = K1.Max.ToString();
+            textBox_Torque_2.Text = K2.T.ToString();
+            textBox_Torque_2_Min.Text = K2.Min.ToString();
+            textBox_Torque_2_Max.Text = K2.Max.ToString();
+            textBox_Torque_3.Text = K3.T.ToString();
+            textBox_Torque_3_Min.Text = K3.Min.ToString();
+            textBox_Torque_3_Max.Text = K3.Max.ToString();
+            textBox_Torque_4.Text = K4.T.ToString();
+            textBox_Torque_4_Min.Text = K4.Min.ToString();
+            textBox_Torque_4_Max.Text = K4.Max.ToString();
+
+        }
+
+        private void button_Change_Click(object sender, EventArgs e)
+        {
+            Zero.T = Convert.ToUInt16(textBox_Torque_Zero.Text);
+            Zero.Min = Convert.ToUInt16(textBox_Torque_Zero_Min.Text);
+            Zero.Max = Convert.ToUInt16(textBox_Torque_Zero_Max.Text);
+            K1.T = Convert.ToUInt16(textBox_Torque_1.Text);
+            K1.Min = Convert.ToUInt16(textBox_Torque_1_Min.Text);
+            K1.Max = Convert.ToUInt16(textBox_Torque_1_Max.Text);
+            K2.T = Convert.ToUInt16(textBox_Torque_2.Text);
+            K2.Min = Convert.ToUInt16(textBox_Torque_2_Min.Text);
+            K2.Max = Convert.ToUInt16(textBox_Torque_2_Max.Text);
+            K3.T = Convert.ToUInt16(textBox_Torque_3.Text);
+            K3.Min = Convert.ToUInt16(textBox_Torque_3_Min.Text);
+            K3.Max = Convert.ToUInt16(textBox_Torque_3_Max.Text);
+            K4.T = Convert.ToUInt16(textBox_Torque_4.Text);
+            K4.Min = Convert.ToUInt16(textBox_Torque_4_Min.Text);
+            K4.Max = Convert.ToUInt16(textBox_Torque_4_Max.Text);
+
+            if (File.Exists(localInfo.LocalPath + localInfo.TorqueSensorFileName))
+                File.Delete(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+
+            FileStream fs = File.Create(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+            fs.Close();
+            StreamWriter file = new StreamWriter(localInfo.LocalPath + localInfo.TorqueSensorFileName);
+            file.WriteLine(Zero.T.ToString() + "," + Zero.Min.ToString() + "," + Zero.Max.ToString());
+            file.WriteLine(K1.T.ToString() + "," + K1.Min.ToString() + "," + K1.Max.ToString());
+            file.WriteLine(K2.T.ToString() + "," + K2.Min.ToString() + "," + K2.Max.ToString());
+            file.WriteLine(K3.T.ToString() + "," + K3.Min.ToString() + "," + K3.Max.ToString());
+            file.WriteLine(K4.T.ToString() + "," + K4.Min.ToString() + "," + K4.Max.ToString());
+            file.Close();
+
+            MessageBox.Show("修改完成", "提示", MessageBoxButtons.OK);
+        }
+    }
+}

+ 120 - 0
Welling_Motor_Debug_Tool/TorqueParams.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 10 - 0
Welling_Motor_Debug_Tool/Welling_Motor_Debug_Tool.csproj

@@ -53,6 +53,7 @@
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Windows.Forms.DataVisualization" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -65,6 +66,12 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Info.cs" />
+    <Compile Include="TorqueParams.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="TorqueParams.Designer.cs">
+      <DependentUpon>TorqueParams.cs</DependentUpon>
+    </Compile>
     <Compile Include="verInfo.cs" />
     <Compile Include="LocalInfo.cs" />
     <Compile Include="Login.cs">
@@ -109,6 +116,9 @@
     <EmbeddedResource Include="Scan.resx">
       <DependentUpon>Scan.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="TorqueParams.resx">
+      <DependentUpon>TorqueParams.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>

BIN
Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.exe


BIN
Welling_Motor_Debug_Tool/bin/Debug/Welling_Motor_Debug_Tool.pdb


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 140 - 507
Welling_Motor_Debug_Tool/mainForm.Designer.cs


+ 404 - 464
Welling_Motor_Debug_Tool/mainForm.cs

@@ -1,6 +1,8 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Diagnostics;
+using System.Diagnostics.Eventing.Reader;
 using System.Drawing;
 using System.IO;
 using System.IO.Ports;
@@ -9,7 +11,9 @@ using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Text.RegularExpressions;
 using System.Threading;
+using System.Web;
 using System.Windows.Forms;
+using System.Xml.Linq;
 //using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace Welling_Motor_Debug_Tool
@@ -55,6 +59,12 @@ namespace Welling_Motor_Debug_Tool
         public bool ACK_DisFlag = true;
         //Boot版本信息
         public string BootInfo = "";
+        //接收指令临时缓存,转string
+        public string CmdRevStrTemp = "";
+        //计时器,用于统计运行时间
+        public Stopwatch stopwatch = new Stopwatch();
+        //力矩传感器检验参数窗口
+        public static TorqueParams TorqueParamsForm = new TorqueParams();
         #endregion
 
         #region 故障日志结构体定义
@@ -118,6 +128,7 @@ namespace Welling_Motor_Debug_Tool
         {
             InitializeComponent();
             System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
+            stopwatch.Start();
             //端口初始化
             mySerialProcess.Init();
             toolStripComboBox_ComNum.Items.AddRange(mySerialProcess.refreshPort());
@@ -266,7 +277,9 @@ namespace Welling_Motor_Debug_Tool
                     }
                     else if (EnterForm1.comboBox_User.Text == "研发测试")
                     {
-                        //所有用默认,不处理
+                        //隐藏量产界面
+                        tabPage_ProductMode_Read.Parent = null;
+                        tabPage_ProductMode_Write.Parent = null;
                     }
                     else
                     {
@@ -609,51 +622,47 @@ namespace Welling_Motor_Debug_Tool
             ushort PackageID, Cmd;
             byte[] Data = new byte[1024];
 
-            while (buffer.Count >= 13)//当buffer中的数据的个数大于等于4个时,即每一帧的数据长度所在位(第4位)出现时
+            try
             {
-                if (buffer[0] == 0x55 && buffer[1] == 0xAA)//判断帧头
+                while (buffer.Count >= 13)//当buffer中的数据的个数大于等于4个时,即每一帧的数据长度所在位(第4位)出现时
                 {
-                    PackageID = (ushort)(buffer[2] * 256 + buffer[3]);
-                    if ((PackageID == 0x0710) || (PackageID == 0x0715) || (PackageID == 0x07FF) || (PackageID == 0x0720) || (PackageID == 0x0713))
+                    if (buffer[0] == 0x55 && buffer[1] == 0xAA)//判断帧头
                     {
-                        int CmdLen = buffer[5];
-                        if (buffer.Count < CmdLen + 11) break;//如果接收到的数据没有达到一帧数据的指定长度, 则执行下次循环
-                        buffer.RemoveRange(0, 6);//数据达到要求长度后删去帧头,ID,模式,和命令长度
-                        while (CmdLen > 0) //读取命令段
+                        PackageID = (ushort)(buffer[2] * 256 + buffer[3]);
+                        if ((PackageID == 0x0710) || (PackageID == 0x0715) || (PackageID == 0x07FF) || (PackageID == 0x0720) || (PackageID == 0x0713))
                         {
-                            Cmd = (ushort)(buffer[0] * 256 + buffer[1]);
-                            DataNum = (byte)(buffer[1]);//命令字的第二个字节的表示数据位的长度
-                            if (DataNum <= (CmdLen - 2))
+                            int CmdLen = buffer[5];
+                            if (buffer.Count < CmdLen + 11) break;//如果接收到的数据没有达到一帧数据的指定长度, 则执行下次循环
+                            while (CmdLen > 0) //读取命令段
                             {
-                                for (int i = 0; i < DataNum; i++)
-                                {
-                                    Data[i] = buffer[i + 2];
-                                }
-                                DataCmdProcess(PackageID, Cmd, Data);//对于不同的命令段,做不同的处理
-                                buffer.RemoveRange(0, DataNum);//移除处理过的数据段
-                                CmdLen -= (DataNum + 2);
-                                if (CmdLen < 2)
+                                Cmd = (ushort)(buffer[6] * 256 + buffer[7]);
+                                DataNum = (byte)(buffer[7]);//命令字的第二个字节的表示数据位的长度
+                                if (DataNum <= (CmdLen - 2))
                                 {
-                                    buffer.RemoveRange(0, CmdLen + 2);
-                                    return;
+                                    for (int i = 0; i < DataNum; i++)
+                                    {
+                                        Data[i] = buffer[i + 8];
+                                    }
+                                    buffer.RemoveRange(0, CmdLen + 11);
+                                    DataCmdProcess(PackageID, Cmd, Data);//对于不同的命令段,做不同的处理
+                                    DataRevToString(Cmd, Data);//指令数据转为字符串
                                 }
                             }
-                            else
-                            {
-                                buffer.RemoveRange(0, CmdLen + 11);
-                            }
-
+                        }
+                        else
+                        {
+                            buffer.RemoveAt(0);//ID不对
                         }
                     }
                     else
                     {
-                        buffer.RemoveAt(0);//ID不对
+                        buffer.RemoveAt(0);//帧头不对,删除帧头高字节
                     }
                 }
-                else
-                {
-                    buffer.RemoveAt(0);//帧头不对,删除帧头高字节
-                }
+            }
+            catch (Exception)
+            { 
+            
             }
         }
 
@@ -913,27 +922,6 @@ namespace Welling_Motor_Debug_Tool
                                         }
                                     }
                                     richTextBox_BikeParam.Text = richTextBox_BikeParam.Text.Substring(0, richTextBox_BikeParam.Text.Length - 2);
-                                    //更新生产模式中整车参数
-                                    textBox_FacModeWheelSize.Text = (Data[1] * 256 + Data[0]).ToString();//周长
-                                    textBox_FacModeSpeedLimit.Text = (Data[5] * 256 + Data[4]).ToString();//限速
-                                    DataTemp = (int)(Data[13] * 256 + Data[12]);//助力方案1
-                                    if (DataTemp == 0) comboBox_FacModeAssist1.SelectedIndex = 0;
-                                    else if (DataTemp == 341) comboBox_FacModeAssist1.SelectedIndex = 1;
-                                    else if (DataTemp == 682) comboBox_FacModeAssist1.SelectedIndex = 2;
-                                    else comboBox_FacModeAssist1.SelectedIndex = 3;
-                                    DataTemp = (int)(Data[15] * 256 + Data[14]);//助力方案2
-                                    if (DataTemp == 0) comboBox_FacModeAssist2.SelectedIndex = 0;
-                                    else if (DataTemp == 341) comboBox_FacModeAssist2.SelectedIndex = 1;
-                                    else if (DataTemp == 682) comboBox_FacModeAssist2.SelectedIndex = 2;
-                                    else comboBox_FacModeAssist2.SelectedIndex = 3;
-                                    DataTemp = (int)(Data[17] * 256 + Data[16]);//灯压
-                                    if (DataTemp == 6) comboBox_FacModeLightVol.SelectedIndex = 0;
-                                    else if (DataTemp == 12) comboBox_FacModeLightVol.SelectedIndex = 1;
-                                    else comboBox_FacModeLightVol.SelectedIndex = 2;
-                                    DataTemp = (int)(Data[21] * 256 + Data[20]);//启动模式
-                                    if (DataTemp == 1) comboBox_FacModeStartMode.SelectedIndex = 0;
-                                    else if (DataTemp == 3) comboBox_FacModeStartMode.SelectedIndex = 2;
-                                    else comboBox_FacModeStartMode.SelectedIndex = 1;
                                 }));
                             }
                             break;
@@ -1012,13 +1000,6 @@ namespace Welling_Motor_Debug_Tool
 
                                     }
                                     richTextBox_AssistParam.Text = richTextBox_AssistParam.Text.Substring(0, richTextBox_AssistParam.Text.Length - 2);
-                                    //更新生产模式中助力参数
-                                    textBox_FacModeStartGain.Text = (Data[1] * 256 + Data[0]).ToString();//零速增益
-                                    textBox_FacModeCircuitK.Text = (Data[45] * 256 + Data[44]).ToString();//电流阶梯
-                                    textBox_FacModeFltCounter.Text = (Data[49] * 256 + Data[48]).ToString();//滤波脉冲
-                                    textBox_FacModeSpeedLimitTh.Text = (Data[55] * 256 + Data[54]).ToString();//限速启动
-                                    textBox_FacModeSpeedLimitEnd.Text = (Data[57] * 256 + Data[56]).ToString();//限速停止
-                                    textBox_FacModeCadencePer.Text = (Data[59] * 256 + Data[58]).ToString();//踏频占比
                                 }));
                             }
                             break;
@@ -1049,6 +1030,55 @@ namespace Welling_Motor_Debug_Tool
                                     for (int i = 0; i < myParams.DebugParam.Count; i++)
                                     {
                                         richTextBox_DebugParam.AppendText(myParams.DebugParam[i] + "=" + Convert.ToString((short)(Data[2 * i + 1] * 256 + Data[2 * i])) + ", ");
+                                        //模式
+                                        if ((short)(Data[1] * 256 + Data[0]) == 3)
+                                        {
+                                            radioButton_Ctl3.Checked = true;
+                                            radioButton_Ctl4.Checked = false;
+                                            radioButton_Ctl5.Checked = false;
+                                        }
+                                        else if ((short)(Data[1] * 256 + Data[0]) == 4)
+                                        {
+                                            radioButton_Ctl3.Checked = false;
+                                            radioButton_Ctl4.Checked = true;
+                                            radioButton_Ctl5.Checked = false;
+                                        }                                            
+                                        else if ((short)(Data[1] * 256 + Data[0]) == 5)
+                                        {
+                                            radioButton_Ctl3.Checked = false;
+                                            radioButton_Ctl4.Checked = false;
+                                            radioButton_Ctl5.Checked = true;
+                                        }
+                                        //位置
+                                        if ((short)(Data[3] * 256 + Data[2]) == 0)
+                                        {
+                                            radioButton_Hall0.Checked = true;
+                                            radioButton_Hall1.Checked = false;
+                                            radioButton_Hall2.Checked = false;
+                                        }
+                                        else if ((short)(Data[3] * 256 + Data[2]) == 1)
+                                        {
+                                            radioButton_Hall0.Checked = false;
+                                            radioButton_Hall1.Checked = true;
+                                            radioButton_Hall2.Checked = false;
+                                        }
+                                        else if ((short)(Data[3] * 256 + Data[2]) == 2)
+                                        {
+                                            radioButton_Hall0.Checked = false;
+                                            radioButton_Hall1.Checked = false;
+                                            radioButton_Hall2.Checked = true;
+                                        }
+                                        //方向
+                                        if ((short)(Data[7] * 256 + Data[6]) == 0)
+                                        {
+                                            radioButton_Dir0.Checked = true;
+                                            radioButton_Dir1.Checked = false;
+                                        }
+                                        else if ((short)(Data[7] * 256 + Data[6]) == 1)
+                                        {
+                                            radioButton_Dir0.Checked = false;
+                                            radioButton_Dir1.Checked = true;
+                                        }                                        
                                     }
                                     richTextBox_DebugParam.Text = richTextBox_DebugParam.Text.Substring(0, richTextBox_DebugParam.Text.Length - 2);
                                 }));
@@ -1670,6 +1700,18 @@ namespace Welling_Motor_Debug_Tool
             #endregion
 
         }
+
+        private void DataRevToString(ushort CmdTemp, byte[] Data)
+        {
+            CmdRevStrTemp = "";
+            CmdRevStrTemp += Convert.ToString(CmdTemp >> 8, 16).PadLeft(2, '0').ToUpper() + " ";
+            CmdRevStrTemp += Convert.ToString(CmdTemp & 0xFF, 16).PadLeft(2, '0').ToUpper() + " ";
+            ushort len = (ushort)(CmdTemp & 0x00FF);
+            for (int i = 0; i < len ; i++)
+            {
+                CmdRevStrTemp += Convert.ToString(Data[i], 16).PadLeft(2, '0').ToUpper() + " ";
+            }
+        }
         #endregion
 
         /// <summary>
@@ -1946,68 +1988,6 @@ namespace Welling_Motor_Debug_Tool
 
         }
 
-        /// <summary>
-        /// 字符串转成字节流
-        /// </summary>
-        /// <param name="hexStr"></param>
-        /// <param name="Flag_Space"></param>
-        /// <returns></returns>
-        public static byte[] HexStringToBytes(string hexStr, bool Flag_Space)
-        {
-            if (string.IsNullOrEmpty(hexStr))
-            {
-                return new byte[0];
-            }
-            if (hexStr.StartsWith("0x"))
-            {
-                hexStr = hexStr.Remove(0, 2);
-            }
-
-            var count = hexStr.Length;
-            var byteCount = 0;
-            if (Flag_Space == true)//相邻字节含空格
-            {
-                if ((count % 3) == 0)//最后字节含空格
-                {
-                    byteCount = count / 3;
-                }
-                else if ((count % 3) == 2)//最后字节不含空格
-                {
-                    byteCount = (count + 1) / 3;
-                }
-                else//数据无效
-                {
-                    MessageBox.Show("相邻字节请插入空格!", "提示");
-                }
-                var result = new byte[byteCount];
-                for (int ii = 0; ii < byteCount; ++ii)
-                {
-                    var tempBytes = Byte.Parse(hexStr.Substring(3 * ii, 2), System.Globalization.NumberStyles.HexNumber);
-                    result[ii] = tempBytes;
-                }
-                return result;
-            }
-            else if (Flag_Space == false)//相邻字节不含空格
-            {
-                if (count % 2 == 1)
-                {
-                    MessageBox.Show("请删除相邻字节之间空格!", "提示");
-                }
-                byteCount = count / 2;
-                var result = new byte[byteCount];
-                for (int ii = 0; ii < byteCount; ++ii)
-                {
-                    var tempBytes = Byte.Parse(hexStr.Substring(2 * ii, 2), System.Globalization.NumberStyles.HexNumber);
-                    result[ii] = tempBytes;
-                }
-                return result;
-            }
-            else
-            {
-                return new byte[0];
-            }
-        }
-
         /// <summary>
         /// 运行信息清除
         /// </summary>
@@ -2308,6 +2288,27 @@ namespace Welling_Motor_Debug_Tool
             ConfigParam[0] = (byte)((写入存储ToolStripMenuItem.Checked) ? 0x01 : 0x00);
             ushort uwDataTemp = 0;
             string[] strDataTemp = richTextBox_DebugParam.Text.Split(new string[] { ", " }, StringSplitOptions.None);
+
+            //模式            
+            if (radioButton_Ctl3.Checked == true)
+                strDataTemp[0] = "整体运行模式=3";
+            else if (radioButton_Ctl4.Checked == true)
+                strDataTemp[0] = "整体运行模式=4";
+            else if (radioButton_Ctl5.Checked == true)
+                strDataTemp[0] = "整体运行模式=5";
+            //位置
+            if (radioButton_Hall0.Checked == true)
+                strDataTemp[1] = "位置获取模式=0";
+            else if (radioButton_Hall1.Checked == true)
+                strDataTemp[1] = "位置获取模式=1";
+            else if (radioButton_Hall2.Checked == true)
+                strDataTemp[1] = "位置获取模式=2";
+            //方向
+            if (radioButton_Dir0.Checked == true)
+                strDataTemp[3] = "旋转方向=0";
+            else if (radioButton_Dir1.Checked == true)
+                strDataTemp[3] = "旋转方向=1";
+
             try
             {
                 for (int i = 0; i < strDataTemp.Length; i++)
@@ -3446,18 +3447,6 @@ namespace Welling_Motor_Debug_Tool
             LightSwitchStatus = false;
             MotorRunStatus = false;
             trackBar_FacModeMotorSpeedAdj.Value = 5;
-            textBox_FacModeWheelSize.Text = "";
-            textBox_FacModeSpeedLimit.Text = "";
-            comboBox_FacModeAssist1.SelectedIndex = -1;
-            comboBox_FacModeAssist2.SelectedIndex = -1;
-            comboBox_FacModeLightVol.SelectedIndex = -1;
-            comboBox_FacModeStartMode.SelectedIndex = -1;
-            textBox_FacModeStartGain.Text = "";
-            textBox_FacModeCircuitK.Text = "";
-            textBox_FacModeFltCounter.Text = "";
-            textBox_FacModeSpeedLimitTh.Text = "";
-            textBox_FacModeSpeedLimitEnd.Text = "";
-            textBox_FacModeCadencePer.Text = "";
             textBox_FacModeName.Text = "";
             textBox_FacModeNum.Text = "";
             textBox_FacModeHW.Text = "";
@@ -3698,59 +3687,7 @@ namespace Welling_Motor_Debug_Tool
             if (!MotorRunStatus) //停止状态
             {
                 //设置速度环
-                if (radioButton_FacModeDriverCity.Checked | radioButton_FacModeDriverMtb.Checked | radioButton_FacModeDriverLG.Checked == true)
-                {
-                    strDataTemp[0] = "整体运行模式=3";
-                }
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("请选择电机类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
-                //设置带载类型
-                if (label_Load.Text == "空载")
-                {
-                    strDataTemp[10] = "转速环控制器带宽=3";
-                }
-                else if (label_Load.Text == "带载")
-                {
-                    strDataTemp[10] = "转速环控制器带宽=5";
-                }
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("请选择带载类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
-                //选择位置模式
-                if (label_MotorSensor.Text == "有感")
-                {
-                    if (radioButton_FacModeDriverCity.Checked | radioButton_FacModeDriverMtb.Checked == true)
-                        strDataTemp[1] = "位置获取模式=1";
-                    else if (radioButton_FacModeDriverLG.Checked == true)
-                        strDataTemp[1] = "位置获取模式=2";
-                    else
-                    {
-                        timer_1s.Enabled = false;
-                        MessageBox.Show("请选择电机类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                        timer_1s.Enabled = true;
-                        return;
-                    }
-                }
-                else if (label_MotorSensor.Text == "无感")
-                {
-                    strDataTemp[1] = "位置获取模式=0";
-                }
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("请选择位置模式!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
+                strDataTemp[0] = "整体运行模式=3";                
                 //发送数据
                 try
                 {
@@ -3830,220 +3767,6 @@ namespace Welling_Motor_Debug_Tool
             numericUpDown_SpeedAdj.Value = trackBar_FacModeMotorSpeedAdj.Value;
         }
 
-        /// <summary>
-        /// 生产模式读取整车参数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void button_FacModeBikeParaRead_Click(object sender, EventArgs e)
-        {
-            textBox_FacModeWheelSize.Text = "";
-            textBox_FacModeSpeedLimit.Text = "";
-            comboBox_FacModeAssist1.SelectedIndex = -1;
-            comboBox_FacModeAssist2.SelectedIndex = -1;
-            comboBox_FacModeLightVol.SelectedIndex = -1;
-            comboBox_FacModeStartMode.SelectedIndex = -1;
-            mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, (ushort)0x3C00, null);
-        }
-
-        /// <summary>
-        /// 生产模式写入整车参数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void button_FacModeBikeParaSet_Click(object sender, EventArgs e)
-        {
-            string BikeDefaultInfo = "轮胎周长=219, 电控传动比=35, 助力最大限速=25, 推行模式限速=6, 前牙盘T数=38, 后牙盘T数=11, 助力方案1=341, 助力方案2=682, 前后灯电压=6, 轮胎周长微调=0, 启动模式=2, 自动关机时间=15";
-            var ConfigParam = new byte[28];
-            for (int i = 0; i < 28; i++)
-                ConfigParam[i] = 0;
-            ConfigParam[0] = (byte)(0x01);
-            ushort uwDataTemp = 0;
-            string[] strDataTemp = BikeDefaultInfo.Split(new string[] { ", " }, StringSplitOptions.None);
-            try
-            {
-                for (int i = 0; i < strDataTemp.Length; i++)
-                {
-                    uwDataTemp = Convert.ToUInt16(strDataTemp[i].Split('=')[1]);
-                    ConfigParam[2 * i + 2] = (byte)uwDataTemp;
-                    ConfigParam[2 * i + 3] = (byte)(uwDataTemp >> 8);
-                }
-                //周长
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeWheelSize.Text);
-                ConfigParam[2] = (byte)uwDataTemp;
-                ConfigParam[3] = (byte)(uwDataTemp >> 8);
-                //限速
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeSpeedLimit.Text);
-                ConfigParam[6] = (byte)uwDataTemp;
-                ConfigParam[7] = (byte)(uwDataTemp >> 8);
-                //助力方案1
-                if (comboBox_FacModeAssist1.SelectedIndex == 0) uwDataTemp = 0;
-                else if (comboBox_FacModeAssist1.SelectedIndex == 1) uwDataTemp = 341;
-                else if (comboBox_FacModeAssist1.SelectedIndex == 2) uwDataTemp = 682;
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("数据格式不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
-                ConfigParam[14] = (byte)uwDataTemp;
-                ConfigParam[15] = (byte)(uwDataTemp >> 8);
-                //助力方案2
-                if (comboBox_FacModeAssist2.SelectedIndex == 0) uwDataTemp = 0;
-                else if (comboBox_FacModeAssist2.SelectedIndex == 1) uwDataTemp = 341;
-                else if (comboBox_FacModeAssist2.SelectedIndex == 2) uwDataTemp = 682;
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("数据格式不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
-                ConfigParam[16] = (byte)uwDataTemp;
-                ConfigParam[17] = (byte)(uwDataTemp >> 8);
-                //灯压
-                if (comboBox_FacModeLightVol.SelectedIndex == 0) uwDataTemp = 6;
-                else if (comboBox_FacModeLightVol.SelectedIndex == 1) uwDataTemp = 12;
-                else
-                {
-                    timer_1s.Enabled = false;
-                    MessageBox.Show("数据格式不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                    timer_1s.Enabled = true;
-                    return;
-                }
-                ConfigParam[18] = (byte)uwDataTemp;
-                ConfigParam[19] = (byte)(uwDataTemp >> 8);
-                //启动模式
-                if (comboBox_FacModeStartMode.SelectedIndex == 0) uwDataTemp = 1;
-                else if (comboBox_FacModeStartMode.SelectedIndex == 2) uwDataTemp = 3;
-                else uwDataTemp = 2;
-                ConfigParam[22] = (byte)uwDataTemp;
-                ConfigParam[23] = (byte)(uwDataTemp >> 8);
-
-                mySerialProcess.SendCmd((ushort)0x751, (byte)0x16, (ushort)0x3D1C, ConfigParam);
-            }
-            catch (Exception)
-            {
-                timer_1s.Enabled = false;
-                MessageBox.Show("数据格式不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                timer_1s.Enabled = true;
-            }
-        }
-
-        /// <summary>
-        /// 生产模式读取助力参数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void button_FacModeAssistParaRead_Click(object sender, EventArgs e)
-        {
-            var ConfigParam = new byte[4];
-            textBox_FacModeStartGain.Text = "";
-            textBox_FacModeCircuitK.Text = "";
-            textBox_FacModeFltCounter.Text = "";
-            textBox_FacModeSpeedLimitTh.Text = "";
-            textBox_FacModeSpeedLimitEnd.Text = "";
-            textBox_FacModeCadencePer.Text = "";
-            ConfigParam[0] = (byte)(1 & 0xFF);
-            ConfigParam[1] = (byte)(1 >> 8);
-            ConfigParam[2] = (byte)(1 & 0xFF);
-            ConfigParam[3] = (byte)(1 >> 8);
-            mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, (ushort)0x4304, ConfigParam);
-        }
-
-        /// <summary>
-        /// 生产模式写入助力参数
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void button_FacModeAssistParaSet_Click(object sender, EventArgs e)
-        {
-            string AssistDefaultInfo = "零速启动增益=4096, 巡航启动增益=4096, 助力转矩曲线编号=1, 助力踏频曲线编号=1, 转矩曲线.a=0, 转矩曲线.b=0, 转矩曲线.c=2048, 转矩曲线.d=137, 踏频曲线.a=0, 踏频曲线.b=0, 踏频曲线.c=35000, 踏频曲线.d=0, 助力启动阈值=80, 助力停止阈值=40, 启动时电流增长阶梯=10, 启动对应踏频脉冲数=32, 转矩滤波对应踏频脉冲数=45, 待速转速=0, 待速最大电流=500, 车速限幅启动阈值=25, 车速限幅停止阈值=27, 踏频占比=1229";
-            var ConfigParam = new byte[80];
-            for (int i = 0; i < 80; i++)
-                ConfigParam[i] = 0;
-            ConfigParam[0] = (byte)(0x01);
-            ushort uwDataTemp = 0;
-            ulong ulDataTemp = 0;
-            int index_1 = 0, index_2 = 0;
-            string[] strDataTemp = AssistDefaultInfo.Split(new string[] { ", " }, StringSplitOptions.None);
-            try
-            {
-                //因数据类型不同,预处理
-                for (int i = 0; i < strDataTemp.Length; i++)
-                {
-                    if (strDataTemp[i].Split('=')[0] == "转矩曲线.a")
-                    {
-                        index_1 = i;
-                        break;
-                    }
-                }
-                for (int i = 0; i < strDataTemp.Length; i++)
-                {
-                    if (strDataTemp[i].Split('=')[0] == "踏频曲线.d")
-                    {
-                        index_2 = i;
-                        break;
-                    }
-                }
-                for (int i = 0; i < strDataTemp.Length; i++)
-                {
-                    ulDataTemp = Convert.ToUInt32(strDataTemp[i].Split('=')[1]);
-                    if (i < index_1)
-                    {
-                        ConfigParam[2 * i + 4] = (byte)ulDataTemp;
-                        ConfigParam[2 * i + 5] = (byte)(ulDataTemp >> 8);
-                    }
-                    else if (i <= index_2)
-                    {
-                        ConfigParam[4 * i - 4] = (byte)ulDataTemp;
-                        ConfigParam[4 * i - 3] = (byte)(ulDataTemp >> 8);
-                        ConfigParam[4 * i - 2] = (byte)(ulDataTemp >> 16);
-                        ConfigParam[4 * i - 1] = (byte)(ulDataTemp >> 24);
-                    }
-                    else
-                    {
-                        ConfigParam[2 * i + 20] = (byte)ulDataTemp;
-                        ConfigParam[2 * i + 21] = (byte)(ulDataTemp >> 8);
-                    }
-                }
-
-                //零速增益
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeStartGain.Text);
-                ConfigParam[4] = (byte)uwDataTemp;
-                ConfigParam[5] = (byte)(uwDataTemp >> 8);
-                //电流阶梯
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeCircuitK.Text);
-                ConfigParam[48] = (byte)uwDataTemp;
-                ConfigParam[49] = (byte)(uwDataTemp >> 8);
-                //滤波脉冲
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeFltCounter.Text);
-                ConfigParam[52] = (byte)uwDataTemp;
-                ConfigParam[53] = (byte)(uwDataTemp >> 8);
-                //限速启动
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeSpeedLimitTh.Text);
-                ConfigParam[58] = (byte)uwDataTemp;
-                ConfigParam[59] = (byte)(uwDataTemp >> 8);
-                //限速停止
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeSpeedLimitEnd.Text);
-                ConfigParam[60] = (byte)uwDataTemp;
-                ConfigParam[61] = (byte)(uwDataTemp >> 8);
-                //踏频占比
-                uwDataTemp = Convert.ToUInt16(textBox_FacModeCadencePer.Text);
-                ConfigParam[62] = (byte)uwDataTemp;
-                ConfigParam[63] = (byte)(uwDataTemp >> 8);
-
-                mySerialProcess.SendCmd((ushort)0x751, (byte)0x16, (ushort)0x4450, ConfigParam);
-            }
-            catch (Exception)
-            {
-                timer_1s.Enabled = false;
-                MessageBox.Show("数据格式不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
-                timer_1s.Enabled = true;
-            }
-        }
-
         /// <summary>
         /// 生产模式写入型号
         /// </summary>
@@ -4244,12 +3967,6 @@ namespace Welling_Motor_Debug_Tool
 
                 //读取一次整车参数
                 richTextBox_BikeParam.Clear();
-                textBox_FacModeWheelSize.Text = "";
-                textBox_FacModeSpeedLimit.Text = "";
-                comboBox_FacModeAssist1.SelectedIndex = -1;
-                comboBox_FacModeAssist2.SelectedIndex = -1;
-                comboBox_FacModeLightVol.SelectedIndex = -1;
-                comboBox_FacModeStartMode.SelectedIndex = -1;
                 if (!mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, (ushort)0x3C00, null)) break;
                 Delay_ms(100);
 
@@ -4369,12 +4086,12 @@ namespace Welling_Motor_Debug_Tool
                 //判断数据是否有效
                 if ((textBox_FacModeName.Text == "---") || (textBox_FacModeNum.Text == "---"))
                 {
-                    MessageBox.Show("SN无效,上传失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                    MessageBox.Show("SN无效,保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     break;
                 }
                 if ((textBox_FacModeName.Text == string.Empty) || (textBox_FacModeNum.Text == string.Empty))
                 {
-                    MessageBox.Show("SN无效,上传失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                    MessageBox.Show("SN无效,保存失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     break;
                 }
 
@@ -4673,32 +4390,6 @@ namespace Welling_Motor_Debug_Tool
             mySerialProcess.SendCmd((ushort)0x731, (byte)0x0C, (ushort)0x3A02, Code);
         }
 
-        /// <summary>
-        /// 带载类型选择
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void label_Load_Click(object sender, EventArgs e)
-        {
-            if (label_Load.Text == "带载")
-                label_Load.Text = "空载";
-            else if (label_Load.Text == "空载")
-                label_Load.Text = "带载";
-        }
-
-        /// <summary>
-        /// 控制模式选择
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void label_MotorSensor_Click(object sender, EventArgs e)
-        {
-            if (label_MotorSensor.Text == "有感")
-                label_MotorSensor.Text = "无感";
-            else if (label_MotorSensor.Text == "无感")
-                label_MotorSensor.Text = "有感";
-        }
-
         /// <summary>
         /// 导出电机故障日志
         /// </summary>
@@ -4734,9 +4425,9 @@ namespace Welling_Motor_Debug_Tool
             }
             else
             {
-                Address = HexStringToBytes(textBox_Address_Begin, false);
+                Address = mySerialProcess.HexStringToBytes(textBox_Address_Begin, false);
                 Address_Begin = ((UInt32)Address[0] << 24) + ((UInt32)Address[1] << 16) + ((UInt32)Address[2] << 8) + ((UInt32)Address[3]);
-                Address = HexStringToBytes(textBox_Address_End, false);
+                Address = mySerialProcess.HexStringToBytes(textBox_Address_End, false);
                 Addres_End = ((UInt32)Address[0] << 24) + ((UInt32)Address[1] << 16) + ((UInt32)Address[2] << 8) + ((UInt32)Address[3]);
 
                 if (Addres_End <= Address_Begin)
@@ -5534,6 +5225,12 @@ namespace Welling_Motor_Debug_Tool
         /// <param name="e"></param>
         private void button__FacMode_Start_Click(object sender, EventArgs e)
         {
+            if (!mySerialProcess.mySerial.IsOpen)
+            {
+                MessageBox.Show("请检查串口连接!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                return;
+            }
+            
             TestStart();
         }
         /// <summary>
@@ -5874,7 +5571,7 @@ namespace Welling_Motor_Debug_Tool
                         {
                             continue;
                         }
-                        CmdList.Add(HexStringToBytes(fileLineInfo, true));
+                        CmdList.Add(mySerialProcess.HexStringToBytes(fileLineInfo, true));
                     }
                     streamReader.Close();
                     int CmdNum = CmdList.Count(); //指令个数
@@ -6209,7 +5906,7 @@ namespace Welling_Motor_Debug_Tool
                     Torque = (ushort)Convert.ToInt16(textBox_RunInfo_Torque.Text.Split(' ')[0]);
                     if (Torque > Max)
                         Max = Torque;
-                    if ((Max >= 75) && (Max <= 85) && (ACK_WaitCnt >= 6))
+                    if ((Max >= 70) && (Max <= 85) && (ACK_WaitCnt >= 6))
                     {
                         label_FacModeTq.BackColor = Color.Green;
                         richTextBox_FacModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "力矩传感器正常" + " " + textBox_RunInfo_Torque.Text + "\r\n");
@@ -6786,6 +6483,12 @@ namespace Welling_Motor_Debug_Tool
         /// <param name="e"></param>
         private void button_CheckModeStart_Click(object sender, EventArgs e)
         {
+            if (!mySerialProcess.mySerial.IsOpen)
+            {
+                MessageBox.Show("请检查串口连接!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                return;
+            }
+
             CheckTestStart();
         }
 
@@ -7031,12 +6734,13 @@ namespace Welling_Motor_Debug_Tool
                     CheckMode_Stop(false);
                     return;
                 }
+                label_CheckModeSN.BackColor = Color.Green;
                 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_CheckModeSN.BackColor = Color.Yellow;
                 label_CheckModeStatus.Text = "跳过打标信息确认";
                 richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过打标信息确认" + "\r\n");
                 Delay_ms(500);
@@ -7064,14 +6768,14 @@ namespace Welling_Motor_Debug_Tool
                 ConfigCmd.Clear();
                 while (streamReader.Peek() != -1)
                 {
-                    string fileLineInfo = streamReader.ReadLine();
+                    string fileLineInfo = streamReader.ReadLine(); //读指令名称
                     if (fileLineInfo.Contains("["))
                     {
                         if (fileLineInfo.Contains("助力参数"))
                         {
                             fileLineInfo = streamReader.ReadLine();
                         }                        
-                        ConfigCmd.Add(fileLineInfo, streamReader.ReadLine());
+                        ConfigCmd.Add(fileLineInfo, streamReader.ReadLine()); //指令名称和指令内容加入字典
                     }
                 }
                 streamReader.Close();
@@ -7080,39 +6784,181 @@ namespace Welling_Motor_Debug_Tool
                 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++)
-                { 
-                    
-                }
-
-
-
-
-
-
-
+                try
+                {
+                    foreach (string key in ConfigCmd.Keys)
+                    {
+                        richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "发送读" + key + "指令:" + "\r\n");
+                        CmdRevStrTemp = "";
+                        if (key.Contains("曲线"))
+                        {
+                            byte LineNum = 0;
+                            var code = new byte[4];
+                            LineNum = Convert.ToByte(key.Substring(3, key.Length - 4));
+                            if (LineNum <= 5)
+                            {
+                                code[0] = (byte)(LineNum & 0xFF);
+                                code[1] = (byte)((LineNum >> 8) & 0xFF);
+                                code[2] = (byte)(LineNum & 0xFF);
+                                code[3] = (byte)((LineNum >> 8) & 0xFF);
+                            }
+                            else 
+                            {
+                                code[0] = (byte)(LineNum & 0xFF);
+                                code[1] = (byte)((LineNum >> 8) & 0xFF);
+                                code[2] = (byte)(5 & 0xFF);
+                                code[3] = (byte)((5 >> 8) & 0xFF);
+                            }
+                            mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, (ushort)myParams.ConfigCheckReadCmd["[助力参数]"], code);
+                        }                           
+                        else
+                            mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, (ushort)myParams.ConfigCheckReadCmd[key], null);
+                        Delay_ms(500);
+                        if (CmdRevStrTemp == string.Empty)
+                        {
+                            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + key + "指令读取失败" + "\r\n");
+                            label_CheckModeStatus.Text = "存在故障!";
+                            label_CheckModeResult.BackColor = Color.Red;
+                            label_CheckModeResult.Text = "测试异常";
+                            Delay_ms(500);
+                            //存储异常并上传
+                            CheckMode_Stop(false);
+                            return;
+                        }
+                        //比较当前指令,读取的配置文件和返回数据比较
+                        string ParamWrite = ConfigCmd[key].Substring(24, ConfigCmd[key].Length - 40).Trim();
+                        string ParamRead = "";
+                        if (string.Compare(key, "[其它传感器参数]") == 0)
+                            ParamRead = CmdRevStrTemp.Substring(90, CmdRevStrTemp.Length - 90).Trim(); //该指令包含力矩参数
+                        else
+                            ParamRead = CmdRevStrTemp.Substring(6, CmdRevStrTemp.Length - 6).Trim();
+                        if (ParamWrite.Contains(ParamRead))
+                        {
+                            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + key + "一致" + "\r\n");
+                            continue;
+                        }
+                        else
+                        {
+                            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + key + "不一致" + "\r\n");
+                            label_CheckModeStatus.Text = "存在故障!";
+                            label_CheckModeResult.BackColor = Color.Red;
+                            label_CheckModeResult.Text = "测试异常";
+                            Delay_ms(500);
+                            //存储异常并上传
+                            CheckMode_Stop(false);
+                            return;
+                        }
 
+                    }
+                }
+                catch (System.Exception)
+                {
+                    timer_1s.Enabled = false;
+                    MessageBox.Show("参数检验失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                    timer_1s.Enabled = true;
+                    ConfigFileSave(false, localInfo.LocalPath + localInfo.ConfigFileName);
+                }
             }
             else
             {
-                label_CheckModeFWVer.BackColor = Color.Yellow;
+                label_CheckModeCfg.BackColor = Color.Yellow;
                 label_CheckModeStatus.Text = "跳过参数检验";
                 richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "跳过参数检验" + "\r\n");
                 Delay_ms(500);
             }
+            label_CheckModeCfg.BackColor = Color.Green;
+            richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "参数检验正确" + "\r\n");
+            Delay_ms(500);
 
-            //传感器标定检验
-            if (checkBox_CheckModeTorque.Checked)
+            //读取力矩传感器
+            do
             {
+                richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "读取力矩传感器标定数据" + "\r\n");
+                //发送指令读取力矩传感器标定数据
+                CmdRevStrTemp = "";
+                mySerialProcess.SendCmd((ushort)0x751, (byte)0x11, 0x4000, null);
+                ACK_WaitCnt = 0;
+                while (ACK_WaitCnt <= 2) ; //1s
+                if (CmdRevStrTemp == "---")
+                {
+                    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");
+                //取力矩传感器数据
+                ushort ZeroInit, Zero1, Zero2, Zero3, ZeroNew;
+                ushort MaxTorque;
+                ushort K1_T, K1, K2_T, K2, K3_T, K3, K4_T, K4;
+                byte[] DataArray = mySerialProcess.HexStringToBytes(CmdRevStrTemp, true);
+                ZeroInit = (ushort)((DataArray[3] << 8) + DataArray[2]);
+                Zero1 = (ushort)((DataArray[5] << 8) + DataArray[4]);
+                Zero2 = (ushort)((DataArray[7] << 8) + DataArray[6]);
+                Zero3 = (ushort)((DataArray[9] << 8) + DataArray[8]);
+                ZeroNew = (ushort)((DataArray[11] << 8) + DataArray[10]);
+                MaxTorque = (ushort)((DataArray[13] << 8) + DataArray[12]);
+                K1_T = (ushort)((DataArray[15] << 8) + DataArray[14]);
+                K1 = (ushort)((DataArray[17] << 8) + DataArray[16]);
+                K2_T = (ushort)((DataArray[19] << 8) + DataArray[18]);
+                K2 = (ushort)((DataArray[21] << 8) + DataArray[20]);
+                K3_T = (ushort)((DataArray[23] << 8) + DataArray[22]);
+                K3 = (ushort)((DataArray[25] << 8) + DataArray[24]);
+                K4_T = (ushort)((DataArray[27] << 8) + DataArray[26]);
+                K4 = (ushort)((DataArray[29] << 8) + DataArray[28]);
+
+                richTextBox_CheckModeLog.AppendText("力矩传感器零点: " + ZeroInit.ToString() + "," + Zero1.ToString() + "," +
+                                                    Zero2.ToString() + "," + Zero3.ToString() + "," + ZeroNew.ToString() + "\r\n");
+                richTextBox_CheckModeLog.AppendText("最大力矩: " + MaxTorque.ToString() + "\r\n");
+                richTextBox_CheckModeLog.AppendText("力矩传感器标定: " + "[" + K1_T.ToString() + "," + K1.ToString() + "]" + "," +
+                                                    "[" + K2_T.ToString() + "," + K2.ToString() + "]" + "," + "[" + K3_T.ToString() + "," + K3.ToString() + "]" + "," +
+                                                    "[" + K4_T.ToString() + "," + K4.ToString() + "]" + "\r\n");
+
+                //传感器标定检验
+                if (checkBox_CheckModeTorque.Checked)
+                {
+                    richTextBox_CheckModeLog.AppendText("力矩零点范围: " + TorqueParamsForm.Zero.Min.ToString() + " - " + TorqueParamsForm.Zero.Max.ToString() + "\r\n");
+                    richTextBox_CheckModeLog.AppendText("K1范围: " + TorqueParamsForm.K1.T.ToString() + "," + TorqueParamsForm.K1.Min.ToString() + " - " + TorqueParamsForm.K1.Max.ToString() + "\r\n");
+                    richTextBox_CheckModeLog.AppendText("K2范围: " + TorqueParamsForm.K2.T.ToString() + "," + TorqueParamsForm.K2.Min.ToString() + " - " + TorqueParamsForm.K2.Max.ToString() + "\r\n");
+                    richTextBox_CheckModeLog.AppendText("K3范围: " + TorqueParamsForm.K3.T.ToString() + "," + TorqueParamsForm.K3.Min.ToString() + " - " + TorqueParamsForm.K3.Max.ToString() + "\r\n");
+                    richTextBox_CheckModeLog.AppendText("K4范围: " + TorqueParamsForm.K4.T.ToString() + "," + TorqueParamsForm.K4.Min.ToString() + " - " + TorqueParamsForm.K4.Max.ToString() + "\r\n");
+                    //与设置值比较
+                    if ((ZeroInit <= TorqueParamsForm.Zero.Max) && (ZeroInit >= TorqueParamsForm.Zero.Min)
+                        && (K1_T == TorqueParamsForm.K1.T) && (K1 <= TorqueParamsForm.K1.Max) && (K1 >= TorqueParamsForm.K1.Min)
+                        && (K2_T == TorqueParamsForm.K2.T) && (K2 <= TorqueParamsForm.K2.Max) && (K2 >= TorqueParamsForm.K2.Min)
+                        && (K3_T == TorqueParamsForm.K3.T) && (K3 <= TorqueParamsForm.K3.Max) && (K3 >= TorqueParamsForm.K3.Min)
+                        && (K4_T == TorqueParamsForm.K4.T) && (K4 <= TorqueParamsForm.K4.Max) && (K4 >= TorqueParamsForm.K4.Min)
+                        )
+                    {
+                        label_CheckModeTorque.BackColor = Color.Green;
+                        richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "力矩传感器标定正常" + "\r\n");
+                        Delay_ms(500);
+                    }
+                    else
+                    {
+                        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;
+                    }
 
-            }
-            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);
-            }
+                }
+                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);
+                }
+            } while (false);
 
             //测试合格
             richTextBox_CheckModeLog.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "->" + "测试结束" + "\r\n");
@@ -7143,6 +6989,100 @@ namespace Welling_Motor_Debug_Tool
             }
         }
 
+        private void 调试记录数据ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            System.Diagnostics.Process.Start("explorer.exe", Directory.GetCurrentDirectory());
+        }
+
+        private void 生产记录数据ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            System.Diagnostics.Process.Start("explorer.exe", localInfo.LocalDataPath);
+        }
+
+        private void 累计运行时间ToolStripMenuItem_MouseHover(object sender, EventArgs e)
+        {
+            UInt32 Time = (UInt32)stopwatch.ElapsedMilliseconds / 1000;
+            UInt32 hour = Time / 3600;
+            UInt32 min = (Time % 3600) / 60;
+            UInt32 s = (Time % 60);
+            toolStripMenuItem_RunTime.Text = hour.ToString() + ":" + min.ToString("00") + ":" + s.ToString("00");
+        }
+
+        private void richTextBox_CheckModeLog_TextChanged(object sender, EventArgs e)
+        {
+            richTextBox_CheckModeLog.SelectionStart = richTextBox_CheckModeLog.Text.Length;
+            richTextBox_CheckModeLog.ScrollToCaret();
+        }
+
+        private void 力矩传感器检验ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            EnterForm1.ShowDialog();
+            try
+            {
+                if (EnterForm1.textBox_Passwd.Text == EnterForm1.UserAccount[EnterForm1.comboBox_User.Text])//检验模式所有用户支持
+                {
+                    if (EnterForm1.comboBox_User.Text == "工程配置")
+                    {
+                        TorqueParamsForm.ShowDialog();
+                    }
+                    else
+                    {
+                        MessageBox.Show("权限不支持", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                    }
+                }
+                else
+                {
+                    MessageBox.Show("密码错误", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+            }
+            catch (Exception)
+            {
+                MessageBox.Show("用户不存在或密码错误", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+        }
+
+        private void textBox_CheckModeScan_KeyUp(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+                CheckTestStart();
+        }
+
+        private void textBox_FacModeScan_KeyUp(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+                TestStart();
+        }
+
+        private void button_SpeedDec10_Click(object sender, EventArgs e)
+        {
+            if (numericUpDown_SpeedAdj.Value <= 10)
+                numericUpDown_SpeedAdj.Value = 0;
+            else
+                numericUpDown_SpeedAdj.Value -= 10;
+        }
 
+        private void button_SpeedAdd10_Click(object sender, EventArgs e)
+        {
+            if (numericUpDown_SpeedAdj.Value >= 90)
+                numericUpDown_SpeedAdj.Value = 100;
+            else
+                numericUpDown_SpeedAdj.Value += 10;
+        }
+
+        private void button_SpeedDec1_Click(object sender, EventArgs e)
+        {
+            if (numericUpDown_SpeedAdj.Value <= 1)
+                numericUpDown_SpeedAdj.Value = 0;
+            else
+                numericUpDown_SpeedAdj.Value -= 1;
+        }
+
+        private void button_SpeedAdd1_Click(object sender, EventArgs e)
+        {
+            if(numericUpDown_SpeedAdj.Value >= 99)
+                numericUpDown_SpeedAdj.Value = 100;
+            else
+                numericUpDown_SpeedAdj.Value += 1;
+        }
     }
 }

BIN
Welling_Motor_Debug_Tool/obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN
Welling_Motor_Debug_Tool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


BIN
Welling_Motor_Debug_Tool/obj/Debug/Welling_Motor_Debug_Tool.TorqueParams.resources


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 @@
-14fbcc7f7d1ddb23ab9030717a667e097f8a4fbd
+5775f2f7fd2d3eb47ffa643548653efae42b10ac

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

@@ -67,3 +67,4 @@ D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_
 D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\bin\Debug\Welling_Motor_Debug_Tool.pdb
 D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.exe
 D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.pdb
+D:\笔记本20221223\zhouxiong9\Documents\Tools\motor-debug\Welling_Motor_Debug_Tool\obj\Debug\Welling_Motor_Debug_Tool.TorqueParams.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


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä