Browse Source

鄂尔多斯上位机,基本功能已完善,待测试

huang_chao 1 year ago
commit
88478dc8c3
50 changed files with 2593 additions and 0 deletions
  1. BIN
      .vs/WindowsFormsApplication1/v14/.suo
  2. 22 0
      WindowsFormsApplication1.sln
  3. 6 0
      WindowsFormsApplication1/App.config
  4. 1040 0
      WindowsFormsApplication1/Form1.Designer.cs
  5. 590 0
      WindowsFormsApplication1/Form1.cs
  6. 129 0
      WindowsFormsApplication1/Form1.resx
  7. 22 0
      WindowsFormsApplication1/Program.cs
  8. 36 0
      WindowsFormsApplication1/Properties/AssemblyInfo.cs
  9. 71 0
      WindowsFormsApplication1/Properties/Resources.Designer.cs
  10. 117 0
      WindowsFormsApplication1/Properties/Resources.resx
  11. 30 0
      WindowsFormsApplication1/Properties/Settings.Designer.cs
  12. 7 0
      WindowsFormsApplication1/Properties/Settings.settings
  13. 69 0
      WindowsFormsApplication1/Properties/app.manifest
  14. 101 0
      WindowsFormsApplication1/WindowsFormsApplication1.csproj
  15. BIN
      WindowsFormsApplication1/bin/Debug/ControlCAN.dll
  16. 21 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.application
  17. BIN
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe
  18. 6 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe.config
  19. 81 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe.manifest
  20. BIN
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.pdb
  21. 21 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.application
  22. BIN
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe
  23. 6 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe.config
  24. 81 0
      WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe.manifest
  25. BIN
      WindowsFormsApplication1/bin/Debug/app.publish/WindowsFormsApplication1.exe
  26. BIN
      WindowsFormsApplication1/bin/Release/WindowsFormsApplication1.vshost.exe
  27. 6 0
      WindowsFormsApplication1/bin/Release/WindowsFormsApplication1.vshost.exe.config
  28. BIN
      WindowsFormsApplication1/obj/Debug/DesignTimeResolveAssemblyReferences.cache
  29. BIN
      WindowsFormsApplication1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  30. 0 0
      WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  31. 0 0
      WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  32. 0 0
      WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
  33. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.Form1.resources
  34. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.Properties.Resources.resources
  35. 11 0
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.TrustInfo.xml
  36. 21 0
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.application
  37. 14 0
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csproj.FileListAbsolute.txt
  38. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csproj.GenerateResource.Cache
  39. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csprojResolveAssemblyReference.cache
  40. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.exe
  41. 81 0
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.exe.manifest
  42. BIN
      WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.pdb
  43. BIN
      WindowsFormsApplication1/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  44. 0 0
      WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  45. 0 0
      WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  46. 0 0
      WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
  47. BIN
      WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.Form1.resources
  48. BIN
      WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.Properties.Resources.resources
  49. 4 0
      WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.csproj.FileListAbsolute.txt
  50. BIN
      WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.csproj.GenerateResource.Cache

BIN
.vs/WindowsFormsApplication1/v14/.suo


+ 22 - 0
WindowsFormsApplication1.sln

@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23107.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsApplication1", "WindowsFormsApplication1\WindowsFormsApplication1.csproj", "{2AE9B587-67D7-4F4D-90E2-50BF294475E1}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{2AE9B587-67D7-4F4D-90E2-50BF294475E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2AE9B587-67D7-4F4D-90E2-50BF294475E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2AE9B587-67D7-4F4D-90E2-50BF294475E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2AE9B587-67D7-4F4D-90E2-50BF294475E1}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 6 - 0
WindowsFormsApplication1/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+    </startup>
+</configuration>

+ 1040 - 0
WindowsFormsApplication1/Form1.Designer.cs

@@ -0,0 +1,1040 @@
+namespace WindowsFormsApplication1
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows 窗体设计器生成的代码
+
+        /// <summary>
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.comboBox_MsgType = new System.Windows.Forms.ComboBox();
+            this.label9 = new System.Windows.Forms.Label();
+            this.button_StartCAN = new System.Windows.Forms.Button();
+            this.comboBox_BoardIndex = new System.Windows.Forms.ComboBox();
+            this.comboBox_CANIndex = new System.Windows.Forms.ComboBox();
+            this.comboBox_DeviceIndex = new System.Windows.Forms.ComboBox();
+            this.comboBox_devtype = new System.Windows.Forms.ComboBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.设备索引号 = new System.Windows.Forms.Label();
+            this.label_CanName = new System.Windows.Forms.Label();
+            this.timer_rec = new System.Windows.Forms.Timer(this.components);
+            this.手动控制 = new System.Windows.Forms.GroupBox();
+            this.comboBox_UC_TMSMod = new System.Windows.Forms.ComboBox();
+            this.label33 = new System.Windows.Forms.Label();
+            this.label24 = new System.Windows.Forms.Label();
+            this.comboBox_RelayControlEnable = new System.Windows.Forms.ComboBox();
+            this.label23 = new System.Windows.Forms.Label();
+            this.label31 = new System.Windows.Forms.Label();
+            this.label28 = new System.Windows.Forms.Label();
+            this.label17 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.comboBox_HandControlEnable = new System.Windows.Forms.ComboBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.信息 = new System.Windows.Forms.GroupBox();
+            this.label35 = new System.Windows.Forms.Label();
+            this.textBox_RCB_SOC = new System.Windows.Forms.TextBox();
+            this.label34 = new System.Windows.Forms.Label();
+            this.textBox_RCB_TMSMod = new System.Windows.Forms.TextBox();
+            this.textBox_RCB_relay = new System.Windows.Forms.TextBox();
+            this.label32 = new System.Windows.Forms.Label();
+            this.textBox_RCB_battSt = new System.Windows.Forms.TextBox();
+            this.label30 = new System.Windows.Forms.Label();
+            this.textBox_RCB_battU = new System.Windows.Forms.TextBox();
+            this.label29 = new System.Windows.Forms.Label();
+            this.textBox_RCB_fltCode = new System.Windows.Forms.TextBox();
+            this.label27 = new System.Windows.Forms.Label();
+            this.textBox_RCB_battCurr = new System.Windows.Forms.TextBox();
+            this.label26 = new System.Windows.Forms.Label();
+            this.textBox_RCB_fan = new System.Windows.Forms.TextBox();
+            this.label25 = new System.Windows.Forms.Label();
+            this.textBox_RCB_bypass_HE = new System.Windows.Forms.TextBox();
+            this.textBox_RCB_bypass_rad = new System.Windows.Forms.TextBox();
+            this.textBox_RCB_pump = new System.Windows.Forms.TextBox();
+            this.textBox_RCB_PTC = new System.Windows.Forms.TextBox();
+            this.label19 = new System.Windows.Forms.Label();
+            this.textBox_RCB_flowmeter2 = new System.Windows.Forms.TextBox();
+            this.label20 = new System.Windows.Forms.Label();
+            this.textBox_RCB_flowmeter1 = new System.Windows.Forms.TextBox();
+            this.label21 = new System.Windows.Forms.Label();
+            this.textBox_RCB_EvT = new System.Windows.Forms.TextBox();
+            this.label22 = new System.Windows.Forms.Label();
+            this.textBox_RCB_HE_outT = new System.Windows.Forms.TextBox();
+            this.label14 = new System.Windows.Forms.Label();
+            this.textBox_RCB_rad_outT = new System.Windows.Forms.TextBox();
+            this.label15 = new System.Windows.Forms.Label();
+            this.textBox_RCB_motor_outT = new System.Windows.Forms.TextBox();
+            this.label16 = new System.Windows.Forms.Label();
+            this.textBox_RCB_pdu_outT = new System.Windows.Forms.TextBox();
+            this.label18 = new System.Windows.Forms.Label();
+            this.textBox_RCB_pdu_inT = new System.Windows.Forms.TextBox();
+            this.label13 = new System.Windows.Forms.Label();
+            this.textBox_RCB_battery_outT = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.textBox_RCB_battery_inT = new System.Windows.Forms.TextBox();
+            this.label11 = new System.Windows.Forms.Label();
+            this.textBox_RCB_modTMin = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.textBox_RCB_modTMax = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label7 = new System.Windows.Forms.Label();
+            this.label10 = new System.Windows.Forms.Label();
+            this.timer_send = new System.Windows.Forms.Timer(this.components);
+            this.numericUpDown_ExThreeSet = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown_FanSpeedEnable = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown_PTC_ControlEnable = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown_WaPuSpConEnable = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown_RaThreeSet = new System.Windows.Forms.NumericUpDown();
+            this.groupBox1.SuspendLayout();
+            this.手动控制.SuspendLayout();
+            this.信息.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_ExThreeSet)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_FanSpeedEnable)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_PTC_ControlEnable)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_WaPuSpConEnable)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_RaThreeSet)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.comboBox_MsgType);
+            this.groupBox1.Controls.Add(this.label9);
+            this.groupBox1.Controls.Add(this.button_StartCAN);
+            this.groupBox1.Controls.Add(this.comboBox_BoardIndex);
+            this.groupBox1.Controls.Add(this.comboBox_CANIndex);
+            this.groupBox1.Controls.Add(this.comboBox_DeviceIndex);
+            this.groupBox1.Controls.Add(this.comboBox_devtype);
+            this.groupBox1.Controls.Add(this.label4);
+            this.groupBox1.Controls.Add(this.label3);
+            this.groupBox1.Controls.Add(this.设备索引号);
+            this.groupBox1.Controls.Add(this.label_CanName);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(1001, 116);
+            this.groupBox1.TabIndex = 0;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "设备";
+            // 
+            // comboBox_MsgType
+            // 
+            this.comboBox_MsgType.FormattingEnabled = true;
+            this.comboBox_MsgType.Items.AddRange(new object[] {
+            "标准帧",
+            "扩展帧"});
+            this.comboBox_MsgType.Location = new System.Drawing.Point(776, 30);
+            this.comboBox_MsgType.Name = "comboBox_MsgType";
+            this.comboBox_MsgType.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_MsgType.TabIndex = 10;
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.Location = new System.Drawing.Point(709, 30);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(52, 15);
+            this.label9.TabIndex = 9;
+            this.label9.Text = "帧类型";
+            // 
+            // button_StartCAN
+            // 
+            this.button_StartCAN.Location = new System.Drawing.Point(258, 79);
+            this.button_StartCAN.Name = "button_StartCAN";
+            this.button_StartCAN.Size = new System.Drawing.Size(100, 25);
+            this.button_StartCAN.TabIndex = 8;
+            this.button_StartCAN.Text = "启动";
+            this.button_StartCAN.UseVisualStyleBackColor = true;
+            this.button_StartCAN.Click += new System.EventHandler(this.button_StartCAN_Click);
+            // 
+            // comboBox_BoardIndex
+            // 
+            this.comboBox_BoardIndex.FormattingEnabled = true;
+            this.comboBox_BoardIndex.Items.AddRange(new object[] {
+            "250K",
+            "500K"});
+            this.comboBox_BoardIndex.Location = new System.Drawing.Point(92, 81);
+            this.comboBox_BoardIndex.Name = "comboBox_BoardIndex";
+            this.comboBox_BoardIndex.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_BoardIndex.TabIndex = 7;
+            // 
+            // comboBox_CANIndex
+            // 
+            this.comboBox_CANIndex.FormattingEnabled = true;
+            this.comboBox_CANIndex.Items.AddRange(new object[] {
+            "0",
+            "1"});
+            this.comboBox_CANIndex.Location = new System.Drawing.Point(570, 30);
+            this.comboBox_CANIndex.Name = "comboBox_CANIndex";
+            this.comboBox_CANIndex.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_CANIndex.TabIndex = 6;
+            // 
+            // comboBox_DeviceIndex
+            // 
+            this.comboBox_DeviceIndex.FormattingEnabled = true;
+            this.comboBox_DeviceIndex.Items.AddRange(new object[] {
+            "1",
+            "2",
+            "3",
+            "4"});
+            this.comboBox_DeviceIndex.Location = new System.Drawing.Point(348, 30);
+            this.comboBox_DeviceIndex.Name = "comboBox_DeviceIndex";
+            this.comboBox_DeviceIndex.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_DeviceIndex.TabIndex = 5;
+            // 
+            // comboBox_devtype
+            // 
+            this.comboBox_devtype.FormattingEnabled = true;
+            this.comboBox_devtype.Location = new System.Drawing.Point(92, 30);
+            this.comboBox_devtype.Name = "comboBox_devtype";
+            this.comboBox_devtype.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_devtype.TabIndex = 1;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(19, 79);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(52, 15);
+            this.label4.TabIndex = 4;
+            this.label4.Text = "波特率";
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(503, 30);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(61, 15);
+            this.label3.TabIndex = 3;
+            this.label3.Text = "CAN通道";
+            // 
+            // 设备索引号
+            // 
+            this.设备索引号.AutoSize = true;
+            this.设备索引号.Location = new System.Drawing.Point(256, 30);
+            this.设备索引号.Name = "设备索引号";
+            this.设备索引号.Size = new System.Drawing.Size(82, 15);
+            this.设备索引号.TabIndex = 2;
+            this.设备索引号.Text = "设备索引号";
+            // 
+            // label_CanName
+            // 
+            this.label_CanName.AutoSize = true;
+            this.label_CanName.Location = new System.Drawing.Point(19, 30);
+            this.label_CanName.Name = "label_CanName";
+            this.label_CanName.Size = new System.Drawing.Size(67, 15);
+            this.label_CanName.TabIndex = 1;
+            this.label_CanName.Text = "设备名称";
+            // 
+            // timer_rec
+            // 
+            this.timer_rec.Interval = 10;
+            this.timer_rec.Tick += new System.EventHandler(this.timer_rec_Tick);
+            // 
+            // 手动控制
+            // 
+            this.手动控制.Controls.Add(this.numericUpDown_RaThreeSet);
+            this.手动控制.Controls.Add(this.numericUpDown_WaPuSpConEnable);
+            this.手动控制.Controls.Add(this.numericUpDown_PTC_ControlEnable);
+            this.手动控制.Controls.Add(this.numericUpDown_FanSpeedEnable);
+            this.手动控制.Controls.Add(this.numericUpDown_ExThreeSet);
+            this.手动控制.Controls.Add(this.comboBox_UC_TMSMod);
+            this.手动控制.Controls.Add(this.label33);
+            this.手动控制.Controls.Add(this.label24);
+            this.手动控制.Controls.Add(this.comboBox_RelayControlEnable);
+            this.手动控制.Controls.Add(this.label23);
+            this.手动控制.Controls.Add(this.label31);
+            this.手动控制.Controls.Add(this.label28);
+            this.手动控制.Controls.Add(this.label17);
+            this.手动控制.Controls.Add(this.label2);
+            this.手动控制.Controls.Add(this.comboBox_HandControlEnable);
+            this.手动控制.Controls.Add(this.label1);
+            this.手动控制.Location = new System.Drawing.Point(12, 134);
+            this.手动控制.Name = "手动控制";
+            this.手动控制.Size = new System.Drawing.Size(1001, 173);
+            this.手动控制.TabIndex = 10;
+            this.手动控制.TabStop = false;
+            this.手动控制.Text = "控制";
+            // 
+            // comboBox_UC_TMSMod
+            // 
+            this.comboBox_UC_TMSMod.FormattingEnabled = true;
+            this.comboBox_UC_TMSMod.Items.AddRange(new object[] {
+            "关机模式",
+            "制冷模式",
+            "制热模式",
+            "自循环模式"});
+            this.comboBox_UC_TMSMod.Location = new System.Drawing.Point(130, 142);
+            this.comboBox_UC_TMSMod.Name = "comboBox_UC_TMSMod";
+            this.comboBox_UC_TMSMod.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_UC_TMSMod.TabIndex = 56;
+            this.comboBox_UC_TMSMod.Text = "关机模式";
+            // 
+            // label33
+            // 
+            this.label33.AutoSize = true;
+            this.label33.Location = new System.Drawing.Point(19, 142);
+            this.label33.Name = "label33";
+            this.label33.Size = new System.Drawing.Size(61, 15);
+            this.label33.TabIndex = 55;
+            this.label33.Text = "TMS模式";
+            // 
+            // label24
+            // 
+            this.label24.AutoSize = true;
+            this.label24.Location = new System.Drawing.Point(259, 142);
+            this.label24.Name = "label24";
+            this.label24.Size = new System.Drawing.Size(97, 15);
+            this.label24.TabIndex = 51;
+            this.label24.Text = "风扇转速控制";
+            // 
+            // comboBox_RelayControlEnable
+            // 
+            this.comboBox_RelayControlEnable.FormattingEnabled = true;
+            this.comboBox_RelayControlEnable.Items.AddRange(new object[] {
+            "关",
+            "开"});
+            this.comboBox_RelayControlEnable.Location = new System.Drawing.Point(385, 36);
+            this.comboBox_RelayControlEnable.Name = "comboBox_RelayControlEnable";
+            this.comboBox_RelayControlEnable.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_RelayControlEnable.TabIndex = 50;
+            this.comboBox_RelayControlEnable.Text = "关";
+            // 
+            // label23
+            // 
+            this.label23.AutoSize = true;
+            this.label23.Location = new System.Drawing.Point(259, 36);
+            this.label23.Name = "label23";
+            this.label23.Size = new System.Drawing.Size(82, 15);
+            this.label23.TabIndex = 49;
+            this.label23.Text = "继电器控制";
+            // 
+            // label31
+            // 
+            this.label31.AutoSize = true;
+            this.label31.Location = new System.Drawing.Point(769, 89);
+            this.label31.Name = "label31";
+            this.label31.Size = new System.Drawing.Size(97, 15);
+            this.label31.TabIndex = 19;
+            this.label31.Text = "水泵转速控制";
+            // 
+            // label28
+            // 
+            this.label28.AutoSize = true;
+            this.label28.Location = new System.Drawing.Point(514, 89);
+            this.label28.Name = "label28";
+            this.label28.Size = new System.Drawing.Size(91, 15);
+            this.label28.TabIndex = 17;
+            this.label28.Text = "PTC功率控制";
+            // 
+            // label17
+            // 
+            this.label17.AutoSize = true;
+            this.label17.Location = new System.Drawing.Point(259, 89);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(97, 15);
+            this.label17.TabIndex = 15;
+            this.label17.Text = "换热器三通阀";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(19, 36);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(67, 15);
+            this.label2.TabIndex = 13;
+            this.label2.Text = "手动控制";
+            // 
+            // comboBox_HandControlEnable
+            // 
+            this.comboBox_HandControlEnable.FormattingEnabled = true;
+            this.comboBox_HandControlEnable.Items.AddRange(new object[] {
+            "不使能",
+            "使能"});
+            this.comboBox_HandControlEnable.Location = new System.Drawing.Point(130, 36);
+            this.comboBox_HandControlEnable.Name = "comboBox_HandControlEnable";
+            this.comboBox_HandControlEnable.Size = new System.Drawing.Size(100, 23);
+            this.comboBox_HandControlEnable.TabIndex = 12;
+            this.comboBox_HandControlEnable.Text = "不使能";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(19, 89);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(97, 15);
+            this.label1.TabIndex = 11;
+            this.label1.Text = "散热器三通阀";
+            // 
+            // 信息
+            // 
+            this.信息.Controls.Add(this.label35);
+            this.信息.Controls.Add(this.textBox_RCB_SOC);
+            this.信息.Controls.Add(this.label34);
+            this.信息.Controls.Add(this.textBox_RCB_TMSMod);
+            this.信息.Controls.Add(this.textBox_RCB_relay);
+            this.信息.Controls.Add(this.label32);
+            this.信息.Controls.Add(this.textBox_RCB_battSt);
+            this.信息.Controls.Add(this.label30);
+            this.信息.Controls.Add(this.textBox_RCB_battU);
+            this.信息.Controls.Add(this.label29);
+            this.信息.Controls.Add(this.textBox_RCB_fltCode);
+            this.信息.Controls.Add(this.label27);
+            this.信息.Controls.Add(this.textBox_RCB_battCurr);
+            this.信息.Controls.Add(this.label26);
+            this.信息.Controls.Add(this.textBox_RCB_fan);
+            this.信息.Controls.Add(this.label25);
+            this.信息.Controls.Add(this.textBox_RCB_bypass_HE);
+            this.信息.Controls.Add(this.textBox_RCB_bypass_rad);
+            this.信息.Controls.Add(this.textBox_RCB_pump);
+            this.信息.Controls.Add(this.textBox_RCB_PTC);
+            this.信息.Controls.Add(this.label19);
+            this.信息.Controls.Add(this.textBox_RCB_flowmeter2);
+            this.信息.Controls.Add(this.label20);
+            this.信息.Controls.Add(this.textBox_RCB_flowmeter1);
+            this.信息.Controls.Add(this.label21);
+            this.信息.Controls.Add(this.textBox_RCB_EvT);
+            this.信息.Controls.Add(this.label22);
+            this.信息.Controls.Add(this.textBox_RCB_HE_outT);
+            this.信息.Controls.Add(this.label14);
+            this.信息.Controls.Add(this.textBox_RCB_rad_outT);
+            this.信息.Controls.Add(this.label15);
+            this.信息.Controls.Add(this.textBox_RCB_motor_outT);
+            this.信息.Controls.Add(this.label16);
+            this.信息.Controls.Add(this.textBox_RCB_pdu_outT);
+            this.信息.Controls.Add(this.label18);
+            this.信息.Controls.Add(this.textBox_RCB_pdu_inT);
+            this.信息.Controls.Add(this.label13);
+            this.信息.Controls.Add(this.textBox_RCB_battery_outT);
+            this.信息.Controls.Add(this.label12);
+            this.信息.Controls.Add(this.textBox_RCB_battery_inT);
+            this.信息.Controls.Add(this.label11);
+            this.信息.Controls.Add(this.textBox_RCB_modTMin);
+            this.信息.Controls.Add(this.label8);
+            this.信息.Controls.Add(this.textBox_RCB_modTMax);
+            this.信息.Controls.Add(this.label5);
+            this.信息.Controls.Add(this.label6);
+            this.信息.Controls.Add(this.label7);
+            this.信息.Controls.Add(this.label10);
+            this.信息.Location = new System.Drawing.Point(12, 313);
+            this.信息.Name = "信息";
+            this.信息.Size = new System.Drawing.Size(1001, 386);
+            this.信息.TabIndex = 21;
+            this.信息.TabStop = false;
+            this.信息.Text = "信息";
+            // 
+            // label35
+            // 
+            this.label35.AutoSize = true;
+            this.label35.Location = new System.Drawing.Point(19, 79);
+            this.label35.Name = "label35";
+            this.label35.Size = new System.Drawing.Size(61, 15);
+            this.label35.TabIndex = 81;
+            this.label35.Text = "电池SOC";
+            // 
+            // textBox_RCB_SOC
+            // 
+            this.textBox_RCB_SOC.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_SOC.Location = new System.Drawing.Point(130, 79);
+            this.textBox_RCB_SOC.Name = "textBox_RCB_SOC";
+            this.textBox_RCB_SOC.ReadOnly = true;
+            this.textBox_RCB_SOC.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_SOC.TabIndex = 80;
+            // 
+            // label34
+            // 
+            this.label34.AutoSize = true;
+            this.label34.Location = new System.Drawing.Point(514, 159);
+            this.label34.Name = "label34";
+            this.label34.Size = new System.Drawing.Size(61, 15);
+            this.label34.TabIndex = 79;
+            this.label34.Text = "TMS模式";
+            // 
+            // textBox_RCB_TMSMod
+            // 
+            this.textBox_RCB_TMSMod.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_TMSMod.Location = new System.Drawing.Point(645, 159);
+            this.textBox_RCB_TMSMod.Name = "textBox_RCB_TMSMod";
+            this.textBox_RCB_TMSMod.ReadOnly = true;
+            this.textBox_RCB_TMSMod.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_TMSMod.TabIndex = 78;
+            // 
+            // textBox_RCB_relay
+            // 
+            this.textBox_RCB_relay.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_relay.Location = new System.Drawing.Point(132, 119);
+            this.textBox_RCB_relay.Name = "textBox_RCB_relay";
+            this.textBox_RCB_relay.ReadOnly = true;
+            this.textBox_RCB_relay.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_relay.TabIndex = 77;
+            // 
+            // label32
+            // 
+            this.label32.AutoSize = true;
+            this.label32.Location = new System.Drawing.Point(769, 39);
+            this.label32.Name = "label32";
+            this.label32.Size = new System.Drawing.Size(82, 15);
+            this.label32.TabIndex = 68;
+            this.label32.Text = "电池包状态";
+            // 
+            // textBox_RCB_battSt
+            // 
+            this.textBox_RCB_battSt.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_battSt.Location = new System.Drawing.Point(887, 39);
+            this.textBox_RCB_battSt.Name = "textBox_RCB_battSt";
+            this.textBox_RCB_battSt.ReadOnly = true;
+            this.textBox_RCB_battSt.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_battSt.TabIndex = 67;
+            // 
+            // label30
+            // 
+            this.label30.AutoSize = true;
+            this.label30.Location = new System.Drawing.Point(19, 39);
+            this.label30.Name = "label30";
+            this.label30.Size = new System.Drawing.Size(82, 15);
+            this.label30.TabIndex = 66;
+            this.label30.Text = "电池包电压";
+            // 
+            // textBox_RCB_battU
+            // 
+            this.textBox_RCB_battU.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_battU.Location = new System.Drawing.Point(130, 39);
+            this.textBox_RCB_battU.Name = "textBox_RCB_battU";
+            this.textBox_RCB_battU.ReadOnly = true;
+            this.textBox_RCB_battU.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_battU.TabIndex = 65;
+            // 
+            // label29
+            // 
+            this.label29.AutoSize = true;
+            this.label29.Location = new System.Drawing.Point(514, 39);
+            this.label29.Name = "label29";
+            this.label29.Size = new System.Drawing.Size(97, 15);
+            this.label29.TabIndex = 64;
+            this.label29.Text = "电池包故障码";
+            // 
+            // textBox_RCB_fltCode
+            // 
+            this.textBox_RCB_fltCode.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_fltCode.Location = new System.Drawing.Point(645, 39);
+            this.textBox_RCB_fltCode.Name = "textBox_RCB_fltCode";
+            this.textBox_RCB_fltCode.ReadOnly = true;
+            this.textBox_RCB_fltCode.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_fltCode.TabIndex = 63;
+            // 
+            // label27
+            // 
+            this.label27.AutoSize = true;
+            this.label27.Location = new System.Drawing.Point(259, 39);
+            this.label27.Name = "label27";
+            this.label27.Size = new System.Drawing.Size(82, 15);
+            this.label27.TabIndex = 62;
+            this.label27.Text = "电池包电流";
+            // 
+            // textBox_RCB_battCurr
+            // 
+            this.textBox_RCB_battCurr.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_battCurr.Location = new System.Drawing.Point(385, 39);
+            this.textBox_RCB_battCurr.Name = "textBox_RCB_battCurr";
+            this.textBox_RCB_battCurr.ReadOnly = true;
+            this.textBox_RCB_battCurr.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_battCurr.TabIndex = 61;
+            // 
+            // label26
+            // 
+            this.label26.AutoSize = true;
+            this.label26.Location = new System.Drawing.Point(19, 159);
+            this.label26.Name = "label26";
+            this.label26.Size = new System.Drawing.Size(67, 15);
+            this.label26.TabIndex = 60;
+            this.label26.Text = "风扇转速";
+            // 
+            // textBox_RCB_fan
+            // 
+            this.textBox_RCB_fan.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_fan.Location = new System.Drawing.Point(132, 159);
+            this.textBox_RCB_fan.Name = "textBox_RCB_fan";
+            this.textBox_RCB_fan.ReadOnly = true;
+            this.textBox_RCB_fan.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_fan.TabIndex = 59;
+            // 
+            // label25
+            // 
+            this.label25.AutoSize = true;
+            this.label25.Location = new System.Drawing.Point(19, 119);
+            this.label25.Name = "label25";
+            this.label25.Size = new System.Drawing.Size(82, 15);
+            this.label25.TabIndex = 57;
+            this.label25.Text = "继电器状态";
+            // 
+            // textBox_RCB_bypass_HE
+            // 
+            this.textBox_RCB_bypass_HE.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_bypass_HE.Location = new System.Drawing.Point(645, 119);
+            this.textBox_RCB_bypass_HE.Name = "textBox_RCB_bypass_HE";
+            this.textBox_RCB_bypass_HE.ReadOnly = true;
+            this.textBox_RCB_bypass_HE.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_bypass_HE.TabIndex = 56;
+            // 
+            // textBox_RCB_bypass_rad
+            // 
+            this.textBox_RCB_bypass_rad.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_bypass_rad.Location = new System.Drawing.Point(385, 119);
+            this.textBox_RCB_bypass_rad.Name = "textBox_RCB_bypass_rad";
+            this.textBox_RCB_bypass_rad.ReadOnly = true;
+            this.textBox_RCB_bypass_rad.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_bypass_rad.TabIndex = 55;
+            // 
+            // textBox_RCB_pump
+            // 
+            this.textBox_RCB_pump.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_pump.Location = new System.Drawing.Point(887, 119);
+            this.textBox_RCB_pump.Name = "textBox_RCB_pump";
+            this.textBox_RCB_pump.ReadOnly = true;
+            this.textBox_RCB_pump.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_pump.TabIndex = 47;
+            // 
+            // textBox_RCB_PTC
+            // 
+            this.textBox_RCB_PTC.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_PTC.Location = new System.Drawing.Point(385, 159);
+            this.textBox_RCB_PTC.Name = "textBox_RCB_PTC";
+            this.textBox_RCB_PTC.ReadOnly = true;
+            this.textBox_RCB_PTC.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_PTC.TabIndex = 46;
+            // 
+            // label19
+            // 
+            this.label19.AutoSize = true;
+            this.label19.Location = new System.Drawing.Point(259, 279);
+            this.label19.Name = "label19";
+            this.label19.Size = new System.Drawing.Size(60, 15);
+            this.label19.TabIndex = 45;
+            this.label19.Text = "流量计B";
+            // 
+            // textBox_RCB_flowmeter2
+            // 
+            this.textBox_RCB_flowmeter2.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_flowmeter2.Location = new System.Drawing.Point(385, 279);
+            this.textBox_RCB_flowmeter2.Name = "textBox_RCB_flowmeter2";
+            this.textBox_RCB_flowmeter2.ReadOnly = true;
+            this.textBox_RCB_flowmeter2.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_flowmeter2.TabIndex = 44;
+            // 
+            // label20
+            // 
+            this.label20.AutoSize = true;
+            this.label20.Location = new System.Drawing.Point(19, 279);
+            this.label20.Name = "label20";
+            this.label20.Size = new System.Drawing.Size(60, 15);
+            this.label20.TabIndex = 43;
+            this.label20.Text = "流量计A";
+            // 
+            // textBox_RCB_flowmeter1
+            // 
+            this.textBox_RCB_flowmeter1.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_flowmeter1.Location = new System.Drawing.Point(132, 279);
+            this.textBox_RCB_flowmeter1.Name = "textBox_RCB_flowmeter1";
+            this.textBox_RCB_flowmeter1.ReadOnly = true;
+            this.textBox_RCB_flowmeter1.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_flowmeter1.TabIndex = 42;
+            // 
+            // label21
+            // 
+            this.label21.AutoSize = true;
+            this.label21.Location = new System.Drawing.Point(769, 239);
+            this.label21.Name = "label21";
+            this.label21.Size = new System.Drawing.Size(67, 15);
+            this.label21.TabIndex = 41;
+            this.label21.Text = "环境温度";
+            // 
+            // textBox_RCB_EvT
+            // 
+            this.textBox_RCB_EvT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_EvT.Location = new System.Drawing.Point(887, 239);
+            this.textBox_RCB_EvT.Name = "textBox_RCB_EvT";
+            this.textBox_RCB_EvT.ReadOnly = true;
+            this.textBox_RCB_EvT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_EvT.TabIndex = 40;
+            // 
+            // label22
+            // 
+            this.label22.AutoSize = true;
+            this.label22.Location = new System.Drawing.Point(514, 239);
+            this.label22.Name = "label22";
+            this.label22.Size = new System.Drawing.Size(112, 15);
+            this.label22.TabIndex = 39;
+            this.label22.Text = "换热器出水温度";
+            // 
+            // textBox_RCB_HE_outT
+            // 
+            this.textBox_RCB_HE_outT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_HE_outT.Location = new System.Drawing.Point(645, 239);
+            this.textBox_RCB_HE_outT.Name = "textBox_RCB_HE_outT";
+            this.textBox_RCB_HE_outT.ReadOnly = true;
+            this.textBox_RCB_HE_outT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_HE_outT.TabIndex = 38;
+            // 
+            // label14
+            // 
+            this.label14.AutoSize = true;
+            this.label14.Location = new System.Drawing.Point(259, 239);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(112, 15);
+            this.label14.TabIndex = 37;
+            this.label14.Text = "散热器出水温度";
+            // 
+            // textBox_RCB_rad_outT
+            // 
+            this.textBox_RCB_rad_outT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_rad_outT.Location = new System.Drawing.Point(385, 239);
+            this.textBox_RCB_rad_outT.Name = "textBox_RCB_rad_outT";
+            this.textBox_RCB_rad_outT.ReadOnly = true;
+            this.textBox_RCB_rad_outT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_rad_outT.TabIndex = 36;
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.Location = new System.Drawing.Point(19, 239);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(97, 15);
+            this.label15.TabIndex = 35;
+            this.label15.Text = "电机出水温度";
+            // 
+            // textBox_RCB_motor_outT
+            // 
+            this.textBox_RCB_motor_outT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_motor_outT.Location = new System.Drawing.Point(132, 239);
+            this.textBox_RCB_motor_outT.Name = "textBox_RCB_motor_outT";
+            this.textBox_RCB_motor_outT.ReadOnly = true;
+            this.textBox_RCB_motor_outT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_motor_outT.TabIndex = 34;
+            // 
+            // label16
+            // 
+            this.label16.AutoSize = true;
+            this.label16.Location = new System.Drawing.Point(769, 198);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(112, 15);
+            this.label16.TabIndex = 33;
+            this.label16.Text = "四合一出水温度";
+            // 
+            // textBox_RCB_pdu_outT
+            // 
+            this.textBox_RCB_pdu_outT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_pdu_outT.Location = new System.Drawing.Point(887, 198);
+            this.textBox_RCB_pdu_outT.Name = "textBox_RCB_pdu_outT";
+            this.textBox_RCB_pdu_outT.ReadOnly = true;
+            this.textBox_RCB_pdu_outT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_pdu_outT.TabIndex = 32;
+            // 
+            // label18
+            // 
+            this.label18.AutoSize = true;
+            this.label18.Location = new System.Drawing.Point(514, 198);
+            this.label18.Name = "label18";
+            this.label18.Size = new System.Drawing.Size(112, 15);
+            this.label18.TabIndex = 31;
+            this.label18.Text = "四合一进水温度";
+            // 
+            // textBox_RCB_pdu_inT
+            // 
+            this.textBox_RCB_pdu_inT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_pdu_inT.Location = new System.Drawing.Point(645, 198);
+            this.textBox_RCB_pdu_inT.Name = "textBox_RCB_pdu_inT";
+            this.textBox_RCB_pdu_inT.ReadOnly = true;
+            this.textBox_RCB_pdu_inT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_pdu_inT.TabIndex = 30;
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.Location = new System.Drawing.Point(259, 198);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(97, 15);
+            this.label13.TabIndex = 29;
+            this.label13.Text = "电池出水温度";
+            // 
+            // textBox_RCB_battery_outT
+            // 
+            this.textBox_RCB_battery_outT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_battery_outT.Location = new System.Drawing.Point(385, 198);
+            this.textBox_RCB_battery_outT.Name = "textBox_RCB_battery_outT";
+            this.textBox_RCB_battery_outT.ReadOnly = true;
+            this.textBox_RCB_battery_outT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_battery_outT.TabIndex = 28;
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.Location = new System.Drawing.Point(19, 198);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(97, 15);
+            this.label12.TabIndex = 27;
+            this.label12.Text = "电池进水温度";
+            // 
+            // textBox_RCB_battery_inT
+            // 
+            this.textBox_RCB_battery_inT.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_battery_inT.Location = new System.Drawing.Point(132, 198);
+            this.textBox_RCB_battery_inT.Name = "textBox_RCB_battery_inT";
+            this.textBox_RCB_battery_inT.ReadOnly = true;
+            this.textBox_RCB_battery_inT.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_battery_inT.TabIndex = 26;
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(514, 79);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(97, 15);
+            this.label11.TabIndex = 25;
+            this.label11.Text = "电池最低温度";
+            // 
+            // textBox_RCB_modTMin
+            // 
+            this.textBox_RCB_modTMin.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_modTMin.Location = new System.Drawing.Point(645, 79);
+            this.textBox_RCB_modTMin.Name = "textBox_RCB_modTMin";
+            this.textBox_RCB_modTMin.ReadOnly = true;
+            this.textBox_RCB_modTMin.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_modTMin.TabIndex = 24;
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(259, 79);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(97, 15);
+            this.label8.TabIndex = 23;
+            this.label8.Text = "电池最高温度";
+            // 
+            // textBox_RCB_modTMax
+            // 
+            this.textBox_RCB_modTMax.BackColor = System.Drawing.SystemColors.Window;
+            this.textBox_RCB_modTMax.Location = new System.Drawing.Point(385, 79);
+            this.textBox_RCB_modTMax.Name = "textBox_RCB_modTMax";
+            this.textBox_RCB_modTMax.ReadOnly = true;
+            this.textBox_RCB_modTMax.Size = new System.Drawing.Size(100, 25);
+            this.textBox_RCB_modTMax.TabIndex = 22;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(769, 119);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(67, 15);
+            this.label5.TabIndex = 19;
+            this.label5.Text = "水泵转速";
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(259, 159);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(61, 15);
+            this.label6.TabIndex = 17;
+            this.label6.Text = "PTC功率";
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(514, 119);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(97, 15);
+            this.label7.TabIndex = 15;
+            this.label7.Text = "换热器三通阀";
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(259, 119);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(97, 15);
+            this.label10.TabIndex = 11;
+            this.label10.Text = "散热器三通阀";
+            // 
+            // timer_send
+            // 
+            this.timer_send.Tick += new System.EventHandler(this.timer_send_Tick);
+            // 
+            // numericUpDown_ExThreeSet
+            // 
+            this.numericUpDown_ExThreeSet.Location = new System.Drawing.Point(385, 89);
+            this.numericUpDown_ExThreeSet.Maximum = new decimal(new int[] {
+            180,
+            0,
+            0,
+            0});
+            this.numericUpDown_ExThreeSet.Name = "numericUpDown_ExThreeSet";
+            this.numericUpDown_ExThreeSet.Size = new System.Drawing.Size(120, 25);
+            this.numericUpDown_ExThreeSet.TabIndex = 82;
+            // 
+            // numericUpDown_FanSpeedEnable
+            // 
+            this.numericUpDown_FanSpeedEnable.Location = new System.Drawing.Point(385, 140);
+            this.numericUpDown_FanSpeedEnable.Name = "numericUpDown_FanSpeedEnable";
+            this.numericUpDown_FanSpeedEnable.Size = new System.Drawing.Size(120, 25);
+            this.numericUpDown_FanSpeedEnable.TabIndex = 83;
+            // 
+            // numericUpDown_PTC_ControlEnable
+            // 
+            this.numericUpDown_PTC_ControlEnable.Location = new System.Drawing.Point(641, 87);
+            this.numericUpDown_PTC_ControlEnable.Name = "numericUpDown_PTC_ControlEnable";
+            this.numericUpDown_PTC_ControlEnable.Size = new System.Drawing.Size(120, 25);
+            this.numericUpDown_PTC_ControlEnable.TabIndex = 84;
+            // 
+            // numericUpDown_WaPuSpConEnable
+            // 
+            this.numericUpDown_WaPuSpConEnable.Location = new System.Drawing.Point(867, 87);
+            this.numericUpDown_WaPuSpConEnable.Name = "numericUpDown_WaPuSpConEnable";
+            this.numericUpDown_WaPuSpConEnable.Size = new System.Drawing.Size(120, 25);
+            this.numericUpDown_WaPuSpConEnable.TabIndex = 85;
+            // 
+            // numericUpDown_RaThreeSet
+            // 
+            this.numericUpDown_RaThreeSet.Location = new System.Drawing.Point(130, 87);
+            this.numericUpDown_RaThreeSet.Maximum = new decimal(new int[] {
+            180,
+            0,
+            0,
+            0});
+            this.numericUpDown_RaThreeSet.Name = "numericUpDown_RaThreeSet";
+            this.numericUpDown_RaThreeSet.Size = new System.Drawing.Size(120, 25);
+            this.numericUpDown_RaThreeSet.TabIndex = 86;
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1057, 711);
+            this.Controls.Add(this.信息);
+            this.Controls.Add(this.手动控制);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "Form1";
+            this.Text = "鄂尔多斯热管理上位机";
+            this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.手动控制.ResumeLayout(false);
+            this.手动控制.PerformLayout();
+            this.信息.ResumeLayout(false);
+            this.信息.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_ExThreeSet)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_FanSpeedEnable)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_PTC_ControlEnable)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_WaPuSpConEnable)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown_RaThreeSet)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.ComboBox comboBox_devtype;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Label 设备索引号;
+        private System.Windows.Forms.Label label_CanName;
+        private System.Windows.Forms.Button button_StartCAN;
+        private System.Windows.Forms.ComboBox comboBox_BoardIndex;
+        private System.Windows.Forms.ComboBox comboBox_CANIndex;
+        private System.Windows.Forms.ComboBox comboBox_DeviceIndex;
+        private System.Windows.Forms.ComboBox comboBox_MsgType;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.Timer timer_rec;
+        private System.Windows.Forms.GroupBox 手动控制;
+        private System.Windows.Forms.Label label31;
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.Label label17;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.GroupBox 信息;
+        private System.Windows.Forms.TextBox textBox_RCB_pump;
+        private System.Windows.Forms.TextBox textBox_RCB_PTC;
+        private System.Windows.Forms.Label label19;
+        private System.Windows.Forms.TextBox textBox_RCB_flowmeter2;
+        private System.Windows.Forms.Label label20;
+        private System.Windows.Forms.TextBox textBox_RCB_flowmeter1;
+        private System.Windows.Forms.Label label21;
+        private System.Windows.Forms.TextBox textBox_RCB_EvT;
+        private System.Windows.Forms.Label label22;
+        private System.Windows.Forms.TextBox textBox_RCB_HE_outT;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.TextBox textBox_RCB_rad_outT;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.TextBox textBox_RCB_motor_outT;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.TextBox textBox_RCB_pdu_outT;
+        private System.Windows.Forms.Label label18;
+        private System.Windows.Forms.TextBox textBox_RCB_pdu_inT;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox textBox_RCB_battery_outT;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.TextBox textBox_RCB_battery_inT;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox textBox_RCB_modTMin;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox textBox_RCB_modTMax;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.ComboBox comboBox_HandControlEnable;
+        private System.Windows.Forms.ComboBox comboBox_RelayControlEnable;
+        private System.Windows.Forms.Label label23;
+        private System.Windows.Forms.Label label24;
+        private System.Windows.Forms.Timer timer_send;
+        private System.Windows.Forms.TextBox textBox_RCB_bypass_HE;
+        private System.Windows.Forms.TextBox textBox_RCB_bypass_rad;
+        private System.Windows.Forms.Label label26;
+        private System.Windows.Forms.TextBox textBox_RCB_fan;
+        private System.Windows.Forms.Label label25;
+        private System.Windows.Forms.Label label32;
+        private System.Windows.Forms.TextBox textBox_RCB_battSt;
+        private System.Windows.Forms.Label label30;
+        private System.Windows.Forms.TextBox textBox_RCB_battU;
+        private System.Windows.Forms.Label label29;
+        private System.Windows.Forms.TextBox textBox_RCB_fltCode;
+        private System.Windows.Forms.Label label27;
+        private System.Windows.Forms.TextBox textBox_RCB_battCurr;
+        private System.Windows.Forms.TextBox textBox_RCB_relay;
+        private System.Windows.Forms.ComboBox comboBox_UC_TMSMod;
+        private System.Windows.Forms.Label label33;
+        private System.Windows.Forms.Label label35;
+        private System.Windows.Forms.TextBox textBox_RCB_SOC;
+        private System.Windows.Forms.Label label34;
+        private System.Windows.Forms.TextBox textBox_RCB_TMSMod;
+        private System.Windows.Forms.NumericUpDown numericUpDown_WaPuSpConEnable;
+        private System.Windows.Forms.NumericUpDown numericUpDown_PTC_ControlEnable;
+        private System.Windows.Forms.NumericUpDown numericUpDown_FanSpeedEnable;
+        private System.Windows.Forms.NumericUpDown numericUpDown_ExThreeSet;
+        private System.Windows.Forms.NumericUpDown numericUpDown_RaThreeSet;
+    }
+}
+

+ 590 - 0
WindowsFormsApplication1/Form1.cs

@@ -0,0 +1,590 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+/*------------兼容ZLG的数据类型---------------------------------*/
+
+//1.ZLGCAN系列接口卡信息的数据类型。
+public struct VCI_BOARD_INFO
+{
+    public UInt16 hw_Version;
+    public UInt16 fw_Version;
+    public UInt16 dr_Version;
+    public UInt16 in_Version;
+    public UInt16 irq_Num;
+    public byte can_Num;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
+    public byte[] str_Serial_Num;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
+    public byte[] str_hw_Type;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
+    public byte[] Reserved;
+}
+
+/////////////////////////////////////////////////////
+//2.定义CAN信息帧的数据类型。
+unsafe public struct VCI_CAN_OBJ  //使用不安全代码
+{
+    public uint ID;
+    public uint TimeStamp;        //时间标识
+    public byte TimeFlag;         //是否使用时间标识
+    public byte SendType;         //发送标志。保留,未用
+    public byte RemoteFlag;       //是否是远程帧
+    public byte ExternFlag;       //是否是扩展帧
+    public byte DataLen;          //数据长度
+    public fixed byte Data[8];    //数据
+    public fixed byte Reserved[3];//保留位
+
+}
+
+//3.定义初始化CAN的数据类型
+public struct VCI_INIT_CONFIG
+{
+    public UInt32 AccCode;
+    public UInt32 AccMask;
+    public UInt32 Reserved;
+    public byte Filter;   //0或1接收所有帧。2标准帧滤波,3是扩展帧滤波。
+    public byte Timing0;  //波特率参数,具体配置,请查看二次开发库函数说明书。
+    public byte Timing1;
+    public byte Mode;     //模式,0表示正常模式,1表示只听模式,2自测模式
+}
+
+/*------------其他数据结构描述---------------------------------*/
+//4.USB-CAN总线适配器板卡信息的数据类型1,该类型为VCI_FindUsbDevice函数的返回参数。
+public struct VCI_BOARD_INFO1
+{
+    public UInt16 hw_Version;
+    public UInt16 fw_Version;
+    public UInt16 dr_Version;
+    public UInt16 in_Version;
+    public UInt16 irq_Num;
+    public byte can_Num;
+    public byte Reserved;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
+    public byte[] str_Serial_Num;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
+    public byte[] str_hw_Type;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
+    public byte[] str_Usb_Serial;
+}
+
+
+public struct CHGDESIPANDPORT
+{
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
+    public byte[] szpwd;
+    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
+    public byte[] szdesip;
+    public Int32 desport;
+
+    public void Init()
+    {
+        szpwd = new byte[10];
+        szdesip = new byte[20];
+    }
+}
+
+public unsafe struct UdsAppMsgInfo
+{
+    public UInt32 xUdsId;
+    public UInt32 xDataLen;
+    public byte xUdsRequest;
+    public fixed byte aDataBuf[150];
+}
+
+public unsafe struct UdsAppResponseInfo
+{
+    public bool isPositiveResponse;
+    public byte responseDataLength;
+    public fixed byte responseData[100];
+}
+
+public struct UdsDID
+{
+    public byte DID_High;
+    public byte DID_Low;
+}
+
+public struct UdsDIDList
+{
+    public UdsDID fingerPrint;
+    public UdsDID eraseFlash;
+    public UdsDID checkProgramIndependence;
+    public UdsDID checkCRCofBlock;
+}
+
+public struct FileDownloadDataType
+{
+    public bool isDownloadFlag;
+    public UInt32 memoryStartAddr;
+    public UInt32 memorySize;
+    public UInt16 fileBlockCRC16;
+    public byte[] fileDownloadDataBuff;
+}
+
+namespace WindowsFormsApplication1
+{
+
+    public partial class Form1 : Form
+    {
+        const int DEV_USBCAN = 3;
+        const int DEV_USBCAN2 = 4;
+        UInt32 receCount = new UInt32();  
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="DeviceType"></param>
+        /// <param name="DeviceInd"></param>
+        /// <param name="Reserved"></param>
+        /// <returns></returns>
+        /*------------兼容ZLG的函数描述---------------------------------*/
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_OpenDevice(UInt32 DeviceType, UInt32 DeviceInd, UInt32 Reserved);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_CloseDevice(UInt32 DeviceType, UInt32 DeviceInd);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_InitCAN(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd, ref VCI_INIT_CONFIG pInitConfig);
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_ReadBoardInfo(UInt32 DeviceType, UInt32 DeviceInd, ref VCI_BOARD_INFO pInfo);
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_GetReceiveNum(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_ClearBuffer(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd);
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_StartCAN(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_ResetCAN(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd);
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_Transmit(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd, ref VCI_CAN_OBJ pSend, UInt32 Len);
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_Receive(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd, ref VCI_CAN_OBJ pReceive, UInt32 Len, Int32 WaitTime);
+
+        /*------------其他函数描述---------------------------------*/
+
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_ConnectDevice(UInt32 DevType, UInt32 DevIndex);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_UsbDeviceReset(UInt32 DevType, UInt32 DevIndex, UInt32 Reserved);
+        [DllImport("controlcan.dll")]
+        static extern UInt32 VCI_FindUsbDevice(ref VCI_BOARD_INFO1 pInfo);
+
+        private delegate void CrossThreadOperationControl();
+        /*------------函数描述结束---------------------------------*/
+
+
+        /*------------全局变量声明---------------------------------*/
+        //private float X;//当前窗体的宽度
+        //private float Y;//当前窗体的高度
+        //private bool IsFirst = true;
+
+        bool isForm1Colsed = false;
+        byte controllerChooseFlag = 0xFF;
+
+        static UInt32 m_devtype = 4;//USBCAN2
+        UInt32 m_devind = 0;
+        UInt32 m_canind = 0;
+        UInt32[] m_arrdevtype = new UInt32[20];
+
+        bool UpdateServiceSwitch = false;
+
+
+        VCI_CAN_OBJ[] receobj = new VCI_CAN_OBJ[20];
+        bool buttStartCan = false;
+        bool buttStartDownload = false;
+
+        public Form1()
+        {
+
+            InitializeComponent();
+
+        }
+
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+
+        }
+
+
+
+        private void Form1_Load(object sender, EventArgs e)
+        {
+
+            Int32 curindex = 0;
+            comboBox_devtype.Items.Clear();
+
+            curindex = comboBox_devtype.Items.Add("DEV_USBCAN");
+            m_arrdevtype[curindex] = DEV_USBCAN;
+            //comboBox_devtype.Items[2] = "VCI_USBCAN1";
+            //m_arrdevtype[2]=  VCI_USBCAN1 ;
+
+            curindex = comboBox_devtype.Items.Add("DEV_USBCAN2");
+            m_arrdevtype[curindex] = DEV_USBCAN2;
+
+            //comboBox_devtype.Items[3] = "VCI_USBCAN2";
+            //m_arrdevtype[3]=  VCI_USBCAN2 ;
+            comboBox_BoardIndex.SelectedIndex = 0;
+            comboBox_CANIndex.SelectedIndex = 0;
+            comboBox_DeviceIndex.SelectedIndex = 0;
+            comboBox_CANIndex.SelectedIndex = 0;
+            comboBox_MsgType.SelectedIndex = 1;
+            comboBox_UC_TMSMod.SelectedIndex = 0;
+            //comboBox_ControllerChoose.SelectedIndex = 0x00;
+            //comboBox_MsgType.SelectedIndex = 0x01;
+            //canMsgType = (byte)(comboBox_MsgType.SelectedIndex);
+            //controllerChooseFlag = (byte)(comboBox_ControllerChoose.SelectedIndex + 1);
+
+            //
+
+
+            comboBox_devtype.SelectedIndex = 1;
+           
+            comboBox_devtype.MaxDropDownItems = comboBox_devtype.Items.Count;
+
+            setBoxAndButtonEnalbe(true);
+            isForm1Colsed = false;
+
+
+
+        }
+        private void setBoxAndButtonEnalbe(bool trueOrfalse)
+        {
+
+            comboBox_CANIndex.Enabled = trueOrfalse;
+            comboBox_devtype.Enabled = trueOrfalse;
+            comboBox_BoardIndex.Enabled = trueOrfalse;
+            comboBox_DeviceIndex.Enabled = trueOrfalse;
+
+
+
+        }
+        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
+        {
+            if (buttStartCan == true)
+            {
+                //VCI_CloseDevice(m_devtype, m_devind);
+            }
+            //autoSaveFile();
+            //UpdateStep = 0xFF;
+            isForm1Colsed = true;
+            //setBoxAndButtonEnalbe(false);
+        }
+         
+        private void button_StartCAN_Click(object sender, EventArgs e)
+        {
+            if (buttStartCan == true)
+            {
+                buttStartCan = false;
+                timer_rec.Enabled = buttStartCan == true ? true : false;
+                timer_send.Enabled = buttStartCan == true ? true : false;
+
+            }
+            else
+            {
+                canMsgType = (byte)(comboBox_MsgType.SelectedIndex);
+                m_devtype = m_arrdevtype[comboBox_devtype.SelectedIndex];
+
+                m_devind = 0;
+                m_canind = (UInt32)comboBox_CANIndex.SelectedIndex;
+                m_devind = (UInt32)comboBox_DeviceIndex.SelectedIndex;
+                if (VCI_OpenDevice(m_devtype, m_devind, 0) == 0)
+                {
+                    MessageBox.Show("打开设备失败,请检查设备类型和设备索引号是否正确", "错误",
+                            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                    return;
+                }
+
+
+                buttStartCan = true;
+                timer_rec.Interval = 10;
+                timer_rec.Enabled = buttStartCan == true ? true : false;
+                timer_send.Enabled = buttStartCan == true ? true : false;
+
+                VCI_INIT_CONFIG config = new VCI_INIT_CONFIG();
+                if (comboBox_MsgType.Text == "标准帧")
+                {
+                    config.AccCode = 0;
+                    config.AccMask = 0xffffffff;
+                    //config.AccCode = Convert.ToUInt32(textBox_responseAddr.Text, 16) << 21;
+                    //config.AccMask = 0x1FFFFF;
+                     config.Filter = 0x02;//只接收符合要求的标准帧
+                                          //0或1接收所有帧。2标准帧滤波,3是扩展帧滤波。
+                }
+                else if (comboBox_MsgType.Text == "扩展帧")
+                {
+                    config.AccCode = 0;
+                    config.AccMask = 0xffffffff;
+
+                    //config.AccCode = Convert.ToUInt32(textBox_responseAddr.Text, 16) << 3;
+                    //config.AccMask = 0x07;
+                    config.Filter = 0x03;//只接收符合要求的扩展帧
+                }
+
+                //波特率设置为250K
+                switch (comboBox_BoardIndex.Text)
+                {
+                    case "250K":
+                        config.Timing0 = 0x01;
+                        config.Timing1 = 0x1C;
+                        break;
+                    case "500K":
+                        config.Timing0 = 0x00;
+                        config.Timing1 = 0x1C;
+                        break;
+
+                    default:  //250K
+                        config.Timing0 = 0x01;
+                        config.Timing1 = 0x1C;
+                        break;
+                }
+                //config.Filter = 0x00;//接收所有报文
+                config.Mode = (Byte)0x00;  //正常工作模式
+                VCI_InitCAN(m_devtype, m_devind, m_canind, ref config);
+            }
+            button_StartCAN.Text = buttStartCan == true ? "停止CAN" : "启动CAN";
+            button_StartCAN.BackColor = buttStartCan == true ? Color.GreenYellow : SystemColors.Control;
+
+
+            if (buttStartCan == false)
+            {
+                VCI_ResetCAN(m_devtype, m_devind, m_canind);
+                comboBox_devtype.Enabled = true;
+                comboBox_CANIndex.Enabled = true;
+                comboBox_DeviceIndex.Enabled = true;
+                comboBox_BoardIndex.Enabled = true;
+                comboBox_MsgType.Enabled = true;
+                //comboBox_ControllerChoose.Enabled = true;
+                return;
+            }
+            VCI_StartCAN(m_devtype, m_devind, m_canind);
+            comboBox_devtype.Enabled = false;
+            comboBox_CANIndex.Enabled = false;
+            comboBox_DeviceIndex.Enabled = false;
+            comboBox_BoardIndex.Enabled = false;
+            comboBox_MsgType.Enabled = false;
+            //comboBox_ControllerChoose.Enabled = false;
+        }
+        private void  timer_rec_Tick(object sender, EventArgs e)
+        {
+
+            if (receCount == 0)
+            {
+                uint res = VCI_GetReceiveNum(m_devtype, m_devind, m_canind);
+
+                if (res > 0)
+                {
+                    receobj = new VCI_CAN_OBJ[20];
+                    receCount = 0;
+                    receCount = VCI_Receive(m_devtype, m_devind, m_canind, ref receobj[0], 15, 0);
+                    if (receCount == 0xFFFFFFFF)
+                    {
+                        receCount = 0;
+                    }
+                    for (int i = 0; i < receCount; i++)
+                    {
+                        CAN_Receive_Decode(receobj[i]);
+                        //strCanMsg += CANMsgRecord(receobj[i], "rx");
+                    }
+                    receCount = 0;
+
+                }
+                else
+                {
+
+                }
+            }
+        }
+        
+        int getTwoByte(Byte data, int position)
+        {
+            return ((0X03 << position) & data) >> position;
+        }
+        private void CAN_Receive_Decode(VCI_CAN_OBJ data)
+        {
+            int bypassRelay = 0;
+            byte RCB_bypass_rad = 0;
+            byte RCB_bypass_HE = 0;
+            byte RCB_pump = 0;
+            byte RCB_fan = 0;
+            byte RCB_PTC = 0;
+            byte RCB_modTMax = 0;
+            byte RCB_modTMin = 0;
+            byte RCB_battery_inT = 0;
+            byte RCB_battery_outT = 0;
+            byte RCB_pdu_inT = 0;
+            byte RCB_pdu_outT = 0;
+            byte RCB_motor_outT = 0;
+            byte RCB_rad_outT = 0;
+            byte RCB_HE_outT = 0;
+            byte RCB_EvT = 0;
+            int RCB_battU = 0;
+            int RCB_battCurr = 0;
+            byte RCB_fltCode = 0;
+            byte RCB_battSt = 0;
+            UInt32 RCB_flowmeter1 = 0;
+            UInt32 RCB_flowmeter2 = 0;
+            byte RCB_T1 = 0;
+            byte RCB_T2 = 0;
+            byte RCB_T3 = 0;
+            byte RCB_T4 = 0;
+            unsafe
+            {
+                switch (data.ID)
+                {
+                    case 0X1810EECB:
+
+                        bypassRelay = getTwoByte(data.Data[0], 2);
+                        if (1 == bypassRelay)
+                        {
+                            textBox_RCB_relay.Text = "开";
+                        }
+                        else
+                        {
+                            textBox_RCB_relay.Text = "关";
+                        }
+
+                        RCB_bypass_rad = data.Data[1];
+                        RCB_bypass_HE = data.Data[2];
+                        RCB_pump = data.Data[3];
+                        RCB_fan = data.Data[4];
+                        RCB_PTC = data.Data[5];
+                       
+                        textBox_RCB_bypass_rad.Text = RCB_bypass_rad.ToString();
+                        textBox_RCB_bypass_HE.Text = RCB_bypass_HE.ToString();
+                        textBox_RCB_pump.Text = RCB_pump.ToString();
+                        textBox_RCB_fan.Text = RCB_fan.ToString();
+                        textBox_RCB_PTC.Text = RCB_PTC.ToString();
+
+                        byte RCB_TMSMod = data.Data[6];
+                        byte RCB_SOC = data.Data[7];
+                        string[] tmsMod = { "关机模式","制冷模式","制热模式","自循环模式","ERROR"};
+                        if(RCB_TMSMod < 4)
+                        {
+                            textBox_RCB_TMSMod.Text = tmsMod[RCB_TMSMod];
+                        }
+                        else
+                            textBox_RCB_TMSMod.Text = tmsMod[4];
+                        textBox_RCB_SOC.Text = ((RCB_SOC + 0.0) * 0.4).ToString();
+                        break;
+                    case 0X1811EECB:
+
+                        RCB_modTMax = data.Data[0];
+                        RCB_modTMin = data.Data[1];
+                        RCB_battery_inT = data.Data[2];
+                        RCB_battery_outT = data.Data[3];
+                        RCB_pdu_inT = data.Data[4];
+                        RCB_pdu_outT = data.Data[5];
+                        RCB_motor_outT = data.Data[6];
+                        RCB_rad_outT = data.Data[7];
+
+                        textBox_RCB_modTMax.Text = (RCB_modTMax - 40).ToString();
+                        textBox_RCB_modTMin.Text = (RCB_modTMin - 40).ToString();
+                        textBox_RCB_battery_inT.Text = (RCB_battery_inT  -  40).ToString();
+                        textBox_RCB_battery_outT.Text = (RCB_battery_outT  -  40).ToString();
+                        textBox_RCB_pdu_inT.Text = (RCB_pdu_inT  -  40).ToString();
+                        textBox_RCB_pdu_outT.Text = (RCB_pdu_outT  -  40).ToString();
+                        textBox_RCB_motor_outT.Text = (RCB_motor_outT  -  40).ToString();
+                        textBox_RCB_rad_outT.Text = (RCB_rad_outT -  40).ToString();
+                        break;
+                    case 0X1812EECB:
+                        RCB_HE_outT = data.Data[0];
+                        RCB_EvT = data.Data[1];
+                        RCB_battU = data.Data[3] + (data.Data[2] << 8);
+                        RCB_battCurr = data.Data[5] + (data.Data[4] << 8);
+                        RCB_fltCode = data.Data[6];
+                        RCB_battSt = data.Data[7];
+
+                        textBox_RCB_HE_outT.Text = (RCB_HE_outT - 40).ToString();
+                        textBox_RCB_EvT.Text = (RCB_EvT - 40).ToString();
+                        textBox_RCB_battU.Text = ((RCB_battU + 0.0)/10.0).ToString();
+                        textBox_RCB_battCurr.Text = ((RCB_battCurr + 0.0)/10.0 - 1000.0).ToString();
+                        textBox_RCB_fltCode.Text = (RCB_fltCode).ToString();
+                        textBox_RCB_battSt.Text = (RCB_battSt).ToString();
+
+                        break;
+                    case 0X1813EECB:
+                        byte[] tmp = new byte[8];
+                        for (int i = 0; i < 8; i++)
+                            tmp[i] = data.Data[i];
+                        RCB_flowmeter1 = BitConverter.ToUInt32(tmp, 0);
+                        RCB_flowmeter2 = BitConverter.ToUInt32(tmp, 4);
+
+                        textBox_RCB_flowmeter1.Text = ((RCB_flowmeter1 + 0.0)/100.0).ToString();
+                        textBox_RCB_flowmeter2.Text = ((RCB_flowmeter2 + 0.0) / 100.0).ToString();
+                        break;
+
+                    default:break;
+                }
+            }
+
+        }
+        byte twoByteMove( int position, bool ENABLE)
+        {
+            byte src = 0;
+            if (true == ENABLE)
+                src = 1;
+            else
+                src = 0;
+
+            return (byte)(src << position);
+        }
+        byte canMsgType;
+        private void CAN_Send_Decode_100ms()
+        {
+            byte tmp = 0;
+            VCI_CAN_OBJ data = new VCI_CAN_OBJ();
+            unsafe
+            {
+                //0X1801CBEE
+                data.ID = 0X1801CBEE;
+                data.DataLen = 8;
+                data.ExternFlag = canMsgType;
+
+                tmp += twoByteMove(0, comboBox_HandControlEnable.Text.Equals("使能"));
+                tmp += twoByteMove(2, comboBox_RelayControlEnable.Text.Equals("开"));
+
+                data.Data[0] = tmp;
+                if (numericUpDown_RaThreeSet.Text != "")
+                    data.Data[1] = (byte)numericUpDown_RaThreeSet.Value;// Convert.ToByte(numericUpDown_RaThreeSet.Text);
+                if (numericUpDown_ExThreeSet.Text != "")
+                    data.Data[2] = (byte)numericUpDown_ExThreeSet.Value;// Convert.ToByte(numericUpDown_ExThreeSet.Text);
+                for(int i = 1; i < 3; i++)
+                {
+                    data.Data[i] = data.Data[i] > (byte)180 ? (byte)180 : data.Data[i];
+                }
+                if (numericUpDown_WaPuSpConEnable.Text != "")
+                    data.Data[3] = (byte)numericUpDown_WaPuSpConEnable.Value;// Convert.ToByte(numericUpDown_WaPuSpConEnable.Text);
+                if (numericUpDown_FanSpeedEnable.Text != "")
+                    data.Data[4] = (byte)numericUpDown_FanSpeedEnable.Value;// Convert.ToByte(numericUpDown_FanSpeedEnable.Text);
+                if (numericUpDown_PTC_ControlEnable.Text != "")
+                    data.Data[5] = (byte)numericUpDown_FanSpeedEnable.Value;// Convert.ToByte(numericUpDown_PTC_ControlEnable.Text);
+                for (int i = 3; i < 6; i++)
+                {
+                    data.Data[i] = data.Data[i] > (byte)100 ? (byte)100 : data.Data[i];
+                }
+                data.Data[6] = (byte)comboBox_UC_TMSMod.SelectedIndex;
+
+                VCI_Transmit(m_devtype, m_devind, m_canind,ref data, 1);
+            }
+
+
+        }
+
+        private void timer_send_Tick(object sender, EventArgs e)
+        {
+            CAN_Send_Decode_100ms();
+        }
+    }
+}

+ 129 - 0
WindowsFormsApplication1/Form1.resx

@@ -0,0 +1,129 @@
+<?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>
+  <metadata name="timer_rec.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="timer_send.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>142, 17</value>
+  </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>86</value>
+  </metadata>
+</root>

+ 22 - 0
WindowsFormsApplication1/Program.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace WindowsFormsApplication1
+{
+    static class Program
+    {
+        /// <summary>
+        /// 应用程序的主入口点。
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new Form1());
+        }
+    }
+}

+ 36 - 0
WindowsFormsApplication1/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("WindowsFormsApplication1")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WindowsFormsApplication1")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//将 ComVisible 设置为 false 将使此程序集中的类型
+//对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("2ae9b587-67d7-4f4d-90e2-50bf294475e1")]
+
+// 程序集的版本信息由下列四个值组成: 
+//
+//      主版本
+//      次版本
+//      生成号
+//      修订号
+//
+//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 71 - 0
WindowsFormsApplication1/Properties/Resources.Designer.cs

@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本: 4.0.30319.42000
+//
+//     对此文件的更改可能导致不正确的行为,如果
+//     重新生成代码,则所做更改将丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApplication1.Properties
+{
+
+
+    /// <summary>
+    ///   强类型资源类,用于查找本地化字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources
+    {
+
+        private static global::System.Resources.ResourceManager resourceMan;
+
+        private static global::System.Globalization.CultureInfo resourceCulture;
+
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources()
+        {
+        }
+
+        /// <summary>
+        ///   返回此类使用的缓存 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApplication1.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   覆盖当前线程的 CurrentUICulture 属性
+        ///   使用此强类型的资源类的资源查找。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+    }
+}

+ 117 - 0
WindowsFormsApplication1/Properties/Resources.resx

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

+ 30 - 0
WindowsFormsApplication1/Properties/Settings.Designer.cs

@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApplication1.Properties
+{
+
+
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 7 - 0
WindowsFormsApplication1/Properties/Settings.settings

@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>

+ 69 - 0
WindowsFormsApplication1/Properties/app.manifest

@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC 清单选项
+             如果想要更改 Windows 用户帐户控制级别,请使用
+             以下节点之一替换 requestedExecutionLevel 节点。n
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
+            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
+            元素。
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+      <applicationRequestMinimum>
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
+      </applicationRequestMinimum>
+    </security>
+  </trustInfo>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
+           Windows 版本的列表。取消评论适当的元素,Windows 将
+           自动选择最兼容的环境。 -->
+      <!-- Windows Vista -->
+      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+      <!-- Windows 7 -->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+      <!-- Windows 8 -->
+      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+      <!-- Windows 8.1 -->
+      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+      <!-- Windows 10 -->
+      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+    </application>
+  </compatibility>
+  <!-- 指示该应用程序可以感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
+       自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
+       选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
+       在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->
+  <!--
+  <application xmlns="urn:schemas-microsoft-com:asm.v3">
+    <windowsSettings>
+      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+    </windowsSettings>
+  </application>
+  -->
+  <!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
+  <!--
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+          type="win32"
+          name="Microsoft.Windows.Common-Controls"
+          version="6.0.0.0"
+          processorArchitecture="*"
+          publicKeyToken="6595b64144ccf1df"
+          language="*"
+        />
+    </dependentAssembly>
+  </dependency>
+  -->
+</assembly>

+ 101 - 0
WindowsFormsApplication1/WindowsFormsApplication1.csproj

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{2AE9B587-67D7-4F4D-90E2-50BF294475E1}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WindowsFormsApplication1</RootNamespace>
+    <AssemblyName>WindowsFormsApplication1</AssemblyName>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <TargetZone>LocalIntranet</TargetZone>
+  </PropertyGroup>
+  <PropertyGroup>
+    <GenerateManifests>true</GenerateManifests>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.Designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\app.manifest" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

BIN
WindowsFormsApplication1/bin/Debug/ControlCAN.dll


+ 21 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.application

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <assemblyIdentity name="WindowsFormsApplication1.application" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="WindowsFormsApplication1" asmv2:product="WindowsFormsApplication1" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" />
+  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
+    <framework targetVersion="4.5.2" profile="Full" supportedRuntime="4.0.30319" />
+  </compatibleFrameworks>
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="WindowsFormsApplication1.exe.manifest" size="4607">
+      <assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>2ZO+r6jszc1wH+94uZ00w+NtsJ18W5qSoLaGqa5ul5I=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>

BIN
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe


+ 6 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+    </startup>
+</configuration>

+ 81 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.exe.manifest

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <asmv1:assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="WindowsFormsApplication1.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC 清单选项
+             如果想要更改 Windows 用户帐户控制级别,请使用
+             以下节点之一替换 requestedExecutionLevel 节点。n
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
+            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
+            元素。
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="WindowsFormsApplication1.exe" size="32768">
+      <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>ygjXv8MXr2112HT2oYYVkBhsgYMyrBZCevmAPDiMwhs=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="WindowsFormsApplication1.exe.config" size="189">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+      <dsig:DigestValue>6N7MliNbVJSIAIPrecIshMbZ7zEoKLr5SQvud4LDUOw=</dsig:DigestValue>
+    </hash>
+  </file>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
+           Windows 版本的列表。取消评论适当的元素,Windows 将
+           自动选择最兼容的环境。 -->
+      <!-- Windows Vista -->
+      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+      <!-- Windows 7 -->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+      <!-- Windows 8 -->
+      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+      <!-- Windows 8.1 -->
+      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+      <!-- Windows 10 -->
+      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+    </application>
+  </compatibility>
+</asmv1:assembly>

BIN
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.pdb


+ 21 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.application

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <assemblyIdentity name="WindowsFormsApplication1.application" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="WindowsFormsApplication1" asmv2:product="WindowsFormsApplication1" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" />
+  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
+    <framework targetVersion="4.5.2" profile="Full" supportedRuntime="4.0.30319" />
+  </compatibleFrameworks>
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="WindowsFormsApplication1.exe.manifest" size="4607">
+      <assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>2ZO+r6jszc1wH+94uZ00w+NtsJ18W5qSoLaGqa5ul5I=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>

BIN
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe


+ 6 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+    </startup>
+</configuration>

+ 81 - 0
WindowsFormsApplication1/bin/Debug/WindowsFormsApplication1.vshost.exe.manifest

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <asmv1:assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="WindowsFormsApplication1.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC 清单选项
+             如果想要更改 Windows 用户帐户控制级别,请使用
+             以下节点之一替换 requestedExecutionLevel 节点。n
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
+            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
+            元素。
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="WindowsFormsApplication1.exe" size="32768">
+      <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>ygjXv8MXr2112HT2oYYVkBhsgYMyrBZCevmAPDiMwhs=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="WindowsFormsApplication1.exe.config" size="189">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+      <dsig:DigestValue>6N7MliNbVJSIAIPrecIshMbZ7zEoKLr5SQvud4LDUOw=</dsig:DigestValue>
+    </hash>
+  </file>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
+           Windows 版本的列表。取消评论适当的元素,Windows 将
+           自动选择最兼容的环境。 -->
+      <!-- Windows Vista -->
+      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+      <!-- Windows 7 -->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+      <!-- Windows 8 -->
+      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+      <!-- Windows 8.1 -->
+      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+      <!-- Windows 10 -->
+      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+    </application>
+  </compatibility>
+</asmv1:assembly>

BIN
WindowsFormsApplication1/bin/Debug/app.publish/WindowsFormsApplication1.exe


BIN
WindowsFormsApplication1/bin/Release/WindowsFormsApplication1.vshost.exe


+ 6 - 0
WindowsFormsApplication1/bin/Release/WindowsFormsApplication1.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+    </startup>
+</configuration>

BIN
WindowsFormsApplication1/obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN
WindowsFormsApplication1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
WindowsFormsApplication1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs


BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.Form1.resources


BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.Properties.Resources.resources


+ 11 - 0
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.TrustInfo.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?><trustInfo xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"><security><applicationRequestMinimum><PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" /><defaultAssemblyRequest permissionSetReference="Custom" /></applicationRequestMinimum><requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"><!-- UAC 清单选项
+             如果想要更改 Windows 用户帐户控制级别,请使用
+             以下节点之一替换 requestedExecutionLevel 节点。n
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
+            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
+            元素。
+        --><requestedExecutionLevel level="asInvoker" uiAccess="false" /></requestedPrivileges></security></trustInfo>

+ 21 - 0
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.application

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <assemblyIdentity name="WindowsFormsApplication1.application" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="WindowsFormsApplication1" asmv2:product="WindowsFormsApplication1" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" />
+  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
+    <framework targetVersion="4.5.2" profile="Full" supportedRuntime="4.0.30319" />
+  </compatibleFrameworks>
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="WindowsFormsApplication1.exe.manifest" size="4607">
+      <assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>2ZO+r6jszc1wH+94uZ00w+NtsJ18W5qSoLaGqa5ul5I=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>

+ 14 - 0
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csproj.FileListAbsolute.txt

@@ -0,0 +1,14 @@
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe.config
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.pdb
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.Form1.resources
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.Properties.Resources.resources
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.csproj.GenerateResource.Cache
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.exe
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.pdb
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe.manifest
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.application
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.TrustInfo.xml
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.exe.manifest
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.application
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Debug\WindowsFormsApplication1.csprojResolveAssemblyReference.cache

BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csproj.GenerateResource.Cache


BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.csprojResolveAssemblyReference.cache


BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.exe


+ 81 - 0
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.exe.manifest

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
+  <asmv1:assemblyIdentity name="WindowsFormsApplication1.exe" version="1.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="WindowsFormsApplication1.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet version="1" class="System.Security.NamedPermissionSet" Name="LocalIntranet" Description="Default rights given to applications on the local intranet" Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC 清单选项
+             如果想要更改 Windows 用户帐户控制级别,请使用
+             以下节点之一替换 requestedExecutionLevel 节点。n
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
+            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
+            元素。
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="WindowsFormsApplication1.exe" size="32768">
+      <assemblyIdentity name="WindowsFormsApplication1" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+        <dsig:DigestValue>ygjXv8MXr2112HT2oYYVkBhsgYMyrBZCevmAPDiMwhs=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="WindowsFormsApplication1.exe.config" size="189">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
+      <dsig:DigestValue>6N7MliNbVJSIAIPrecIshMbZ7zEoKLr5SQvud4LDUOw=</dsig:DigestValue>
+    </hash>
+  </file>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
+           Windows 版本的列表。取消评论适当的元素,Windows 将
+           自动选择最兼容的环境。 -->
+      <!-- Windows Vista -->
+      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+      <!-- Windows 7 -->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+      <!-- Windows 8 -->
+      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+      <!-- Windows 8.1 -->
+      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+      <!-- Windows 10 -->
+      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+    </application>
+  </compatibility>
+</asmv1:assembly>

BIN
WindowsFormsApplication1/obj/Debug/WindowsFormsApplication1.pdb


BIN
WindowsFormsApplication1/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
WindowsFormsApplication1/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs


BIN
WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.Form1.resources


BIN
WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.Properties.Resources.resources


+ 4 - 0
WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.csproj.FileListAbsolute.txt

@@ -0,0 +1,4 @@
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\bin\Release\WindowsFormsApplication1.exe.config
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Release\WindowsFormsApplication1.Form1.resources
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Release\WindowsFormsApplication1.Properties.Resources.resources
+D:\Project\forC#\WindowsFormsApplication1\WindowsFormsApplication1\obj\Release\WindowsFormsApplication1.csproj.GenerateResource.Cache

BIN
WindowsFormsApplication1/obj/Release/WindowsFormsApplication1.csproj.GenerateResource.Cache