From 95e29784fdf6066731c7b98c8e58ad207cccbfa6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 18 七月 2024 14:04:03 +0800
Subject: [PATCH] 初始化仿真工具代码

---
 SimuTools/FrmMain.cs                       |   45 +++
 SimuTools/FrmMain.resx                     |  120 +++++++++
 SimuTools/Properties/Resources.Designer.cs |   71 +++++
 SimuTools/Properties/Settings.settings     |    7 
 SimuTools/Program.cs                       |   22 +
 SimuTools/FrmMain.Designer.cs              |  200 +++++++++++++++
 SimuTools/SimuTools.csproj                 |   88 ++++++
 ExportMap.sln                              |   15 +
 SimuTools/Properties/Resources.resx        |  117 +++++++++
 SimuTools/App.config                       |    6 
 SimuTools/Properties/AssemblyInfo.cs       |   36 ++
 SimuTools/Properties/Settings.Designer.cs  |   30 ++
 12 files changed, 757 insertions(+), 0 deletions(-)

diff --git a/ExportMap.sln b/ExportMap.sln
index 8e9b565..8fdb968 100644
--- a/ExportMap.sln
+++ b/ExportMap.sln
@@ -29,6 +29,8 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Turf", "Turf\Turf.csproj", "{7270E45B-54AD-48DD-8D3D-DC73491A066F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimuTools", "SimuTools\SimuTools.csproj", "{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -175,6 +177,18 @@
 		{7270E45B-54AD-48DD-8D3D-DC73491A066F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{7270E45B-54AD-48DD-8D3D-DC73491A066F}.Release|x64.ActiveCfg = Release|Any CPU
 		{7270E45B-54AD-48DD-8D3D-DC73491A066F}.Release|x86.ActiveCfg = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|x64.ActiveCfg = Release|Any CPU
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -186,6 +200,7 @@
 		{95C212E0-D078-4932-9FAB-7A7BFD6657B3} = {5B0550F5-8315-49B0-BA7B-9685030109C5}
 		{A8E7B821-752F-4604-BAD6-0C8A44008077} = {5B0550F5-8315-49B0-BA7B-9685030109C5}
 		{49F2AA44-7BF5-46B7-B08F-40AA1455F089} = {5B0550F5-8315-49B0-BA7B-9685030109C5}
+		{7E7C12C3-C05B-473D-89BB-6C673B53C4E9} = {5B0550F5-8315-49B0-BA7B-9685030109C5}
 		{E22A592A-A8B5-457C-8CC3-8BEEDD89BC83} = {D5E171D6-7E9D-48A0-8290-388D3463A6FA}
 		{1670B5DF-E266-473F-AF55-EA2AC1CFC6E7} = {D5E171D6-7E9D-48A0-8290-388D3463A6FA}
 		{A5C6A035-4E5F-40BC-86C3-7CBC4662BE61} = {045FF373-8F38-46D3-933C-8049EB6EAB68}
diff --git a/SimuTools/App.config b/SimuTools/App.config
new file mode 100644
index 0000000..88fa402
--- /dev/null
+++ b/SimuTools/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>
\ No newline at end of file
diff --git a/SimuTools/FrmMain.Designer.cs b/SimuTools/FrmMain.Designer.cs
new file mode 100644
index 0000000..953b7bd
--- /dev/null
+++ b/SimuTools/FrmMain.Designer.cs
@@ -0,0 +1,200 @@
+锘縩amespace SimuTools
+{
+    partial class FrmMain
+    {
+        /// <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 绐椾綋璁捐鍣ㄧ敓鎴愮殑浠g爜
+
+        /// <summary>
+        /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈
+        /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广��
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnTerrainPath = new System.Windows.Forms.Button();
+            this.lblTerrain = new System.Windows.Forms.Label();
+            this.txtTerrainPath = new System.Windows.Forms.TextBox();
+            this.txtWaterPath = new System.Windows.Forms.TextBox();
+            this.lblWater = new System.Windows.Forms.Label();
+            this.btnWaterPath = new System.Windows.Forms.Button();
+            this.txtFlowPath = new System.Windows.Forms.TextBox();
+            this.lblFlow = new System.Windows.Forms.Label();
+            this.btnFlowPath = new System.Windows.Forms.Button();
+            this.tabLogs = new System.Windows.Forms.ListBox();
+            this.btnRun = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // btnTerrainPath
+            // 
+            this.btnTerrainPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btnTerrainPath.Location = new System.Drawing.Point(607, 27);
+            this.btnTerrainPath.Name = "btnTerrainPath";
+            this.btnTerrainPath.Size = new System.Drawing.Size(90, 26);
+            this.btnTerrainPath.TabIndex = 47;
+            this.btnTerrainPath.Text = "閫夋嫨鍦板舰";
+            this.btnTerrainPath.UseVisualStyleBackColor = true;
+            this.btnTerrainPath.Click += new System.EventHandler(this.btnTerrainPath_Click);
+            // 
+            // lblTerrain
+            // 
+            this.lblTerrain.AutoSize = true;
+            this.lblTerrain.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.lblTerrain.Location = new System.Drawing.Point(24, 32);
+            this.lblTerrain.Name = "lblTerrain";
+            this.lblTerrain.Size = new System.Drawing.Size(80, 16);
+            this.lblTerrain.TabIndex = 48;
+            this.lblTerrain.Text = "鍦板舰鏁版嵁:";
+            // 
+            // txtTerrainPath
+            // 
+            this.txtTerrainPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.txtTerrainPath.Location = new System.Drawing.Point(109, 27);
+            this.txtTerrainPath.MaxLength = 2000;
+            this.txtTerrainPath.Name = "txtTerrainPath";
+            this.txtTerrainPath.Size = new System.Drawing.Size(482, 26);
+            this.txtTerrainPath.TabIndex = 49;
+            this.txtTerrainPath.Text = "D:\\simu\\input\\terrain_overlay_buildings(float32).tif";
+            // 
+            // txtWaterPath
+            // 
+            this.txtWaterPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.txtWaterPath.Location = new System.Drawing.Point(109, 76);
+            this.txtWaterPath.MaxLength = 2000;
+            this.txtWaterPath.Name = "txtWaterPath";
+            this.txtWaterPath.Size = new System.Drawing.Size(482, 26);
+            this.txtWaterPath.TabIndex = 52;
+            this.txtWaterPath.Text = "D:\\simu\\input\\waters";
+            // 
+            // lblWater
+            // 
+            this.lblWater.AutoSize = true;
+            this.lblWater.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.lblWater.Location = new System.Drawing.Point(24, 81);
+            this.lblWater.Name = "lblWater";
+            this.lblWater.Size = new System.Drawing.Size(80, 16);
+            this.lblWater.TabIndex = 51;
+            this.lblWater.Text = "姘撮潰鏁版嵁:";
+            // 
+            // btnWaterPath
+            // 
+            this.btnWaterPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btnWaterPath.Location = new System.Drawing.Point(607, 76);
+            this.btnWaterPath.Name = "btnWaterPath";
+            this.btnWaterPath.Size = new System.Drawing.Size(90, 26);
+            this.btnWaterPath.TabIndex = 50;
+            this.btnWaterPath.Text = "閫夋嫨姘撮潰";
+            this.btnWaterPath.UseVisualStyleBackColor = true;
+            this.btnWaterPath.Click += new System.EventHandler(this.btnWaterPath_Click);
+            // 
+            // txtFlowPath
+            // 
+            this.txtFlowPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.txtFlowPath.Location = new System.Drawing.Point(109, 125);
+            this.txtFlowPath.MaxLength = 2000;
+            this.txtFlowPath.Name = "txtFlowPath";
+            this.txtFlowPath.Size = new System.Drawing.Size(482, 26);
+            this.txtFlowPath.TabIndex = 55;
+            this.txtFlowPath.Text = "D:\\simu\\input\\flows";
+            // 
+            // lblFlow
+            // 
+            this.lblFlow.AutoSize = true;
+            this.lblFlow.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.lblFlow.Location = new System.Drawing.Point(24, 130);
+            this.lblFlow.Name = "lblFlow";
+            this.lblFlow.Size = new System.Drawing.Size(80, 16);
+            this.lblFlow.TabIndex = 54;
+            this.lblFlow.Text = "娴侀�熸祦鍚�:";
+            // 
+            // btnFlowPath
+            // 
+            this.btnFlowPath.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btnFlowPath.Location = new System.Drawing.Point(607, 125);
+            this.btnFlowPath.Name = "btnFlowPath";
+            this.btnFlowPath.Size = new System.Drawing.Size(90, 26);
+            this.btnFlowPath.TabIndex = 53;
+            this.btnFlowPath.Text = "閫夋嫨姘撮潰";
+            this.btnFlowPath.UseVisualStyleBackColor = true;
+            this.btnFlowPath.Click += new System.EventHandler(this.btnFlowPath_Click);
+            // 
+            // tabLogs
+            // 
+            this.tabLogs.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.tabLogs.FormattingEnabled = true;
+            this.tabLogs.ItemHeight = 16;
+            this.tabLogs.Location = new System.Drawing.Point(27, 176);
+            this.tabLogs.Name = "tabLogs";
+            this.tabLogs.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
+            this.tabLogs.Size = new System.Drawing.Size(670, 340);
+            this.tabLogs.TabIndex = 56;
+            // 
+            // btnRun
+            // 
+            this.btnRun.Font = new System.Drawing.Font("瀹嬩綋", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btnRun.ForeColor = System.Drawing.SystemColors.Highlight;
+            this.btnRun.Location = new System.Drawing.Point(27, 540);
+            this.btnRun.Name = "btnRun";
+            this.btnRun.Size = new System.Drawing.Size(670, 26);
+            this.btnRun.TabIndex = 57;
+            this.btnRun.Text = "杩�    琛�";
+            this.btnRun.UseVisualStyleBackColor = true;
+            this.btnRun.Click += new System.EventHandler(this.btnRun_Click);
+            // 
+            // FrmMain
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(735, 594);
+            this.Controls.Add(this.btnRun);
+            this.Controls.Add(this.tabLogs);
+            this.Controls.Add(this.txtFlowPath);
+            this.Controls.Add(this.lblFlow);
+            this.Controls.Add(this.btnFlowPath);
+            this.Controls.Add(this.txtWaterPath);
+            this.Controls.Add(this.lblWater);
+            this.Controls.Add(this.btnWaterPath);
+            this.Controls.Add(this.txtTerrainPath);
+            this.Controls.Add(this.lblTerrain);
+            this.Controls.Add(this.btnTerrainPath);
+            this.Name = "FrmMain";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "鍐呮稘浠跨湡宸ュ叿";
+            this.Load += new System.EventHandler(this.FrmMain_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnTerrainPath;
+        private System.Windows.Forms.Label lblTerrain;
+        private System.Windows.Forms.TextBox txtTerrainPath;
+        private System.Windows.Forms.TextBox txtWaterPath;
+        private System.Windows.Forms.Label lblWater;
+        private System.Windows.Forms.Button btnWaterPath;
+        private System.Windows.Forms.TextBox txtFlowPath;
+        private System.Windows.Forms.Label lblFlow;
+        private System.Windows.Forms.Button btnFlowPath;
+        private System.Windows.Forms.ListBox tabLogs;
+        private System.Windows.Forms.Button btnRun;
+    }
+}
+
diff --git a/SimuTools/FrmMain.cs b/SimuTools/FrmMain.cs
new file mode 100644
index 0000000..3cb3d5c
--- /dev/null
+++ b/SimuTools/FrmMain.cs
@@ -0,0 +1,45 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SimuTools
+{
+    public partial class FrmMain : Form
+    {
+        public FrmMain()
+        {
+            InitializeComponent();
+        }
+
+        private void FrmMain_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        private void btnTerrainPath_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        private void btnWaterPath_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        private void btnFlowPath_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        private void btnRun_Click(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
diff --git a/SimuTools/FrmMain.resx b/SimuTools/FrmMain.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SimuTools/FrmMain.resx
@@ -0,0 +1,120 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/SimuTools/Program.cs b/SimuTools/Program.cs
new file mode 100644
index 0000000..9e8072c
--- /dev/null
+++ b/SimuTools/Program.cs
@@ -0,0 +1,22 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SimuTools
+{
+    static class Program
+    {
+        /// <summary>
+        /// 搴旂敤绋嬪簭鐨勪富鍏ュ彛鐐广��
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new FrmMain());
+        }
+    }
+}
diff --git a/SimuTools/Properties/AssemblyInfo.cs b/SimuTools/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..bccfb12
--- /dev/null
+++ b/SimuTools/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 鏈夊叧绋嬪簭闆嗙殑甯歌淇℃伅閫氳繃浠ヤ笅
+// 鐗规�ч泦鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("SimuTools")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("HP Inc.")]
+[assembly: AssemblyProduct("SimuTools")]
+[assembly: AssemblyCopyright("Copyright 漏 HP Inc. 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浣挎绋嬪簭闆嗕腑鐨勭被鍨�
+// 瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷锛�
+// 鍒欏皢璇ョ被鍨嬩笂鐨� ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID
+[assembly: Guid("7f58745b-51d5-4733-96ae-836029432d36")]
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅闈㈠洓涓�肩粍鎴�:
+//
+//      涓荤増鏈�
+//      娆$増鏈� 
+//      鐢熸垚鍙�
+//      淇鍙�
+//
+// 鍙互鎸囧畾鎵�鏈夎繖浜涘�硷紝涔熷彲浠ヤ娇鐢ㄢ�滅敓鎴愬彿鈥濆拰鈥滀慨璁㈠彿鈥濈殑榛樿鍊硷紝
+// 鏂规硶鏄寜濡備笅鎵�绀轰娇鐢ㄢ��*鈥�:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SimuTools/Properties/Resources.Designer.cs b/SimuTools/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..8d1ae97
--- /dev/null
+++ b/SimuTools/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+//     杩愯鏃剁増鏈�: 4.0.30319.42000
+//
+//     瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢涓㈠け銆�
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace SimuTools.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("SimuTools.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;
+            }
+        }
+    }
+}
diff --git a/SimuTools/Properties/Resources.resx b/SimuTools/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SimuTools/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>
\ No newline at end of file
diff --git a/SimuTools/Properties/Settings.Designer.cs b/SimuTools/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..36af658
--- /dev/null
+++ b/SimuTools/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 SimuTools.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;
+            }
+        }
+    }
+}
diff --git a/SimuTools/Properties/Settings.settings b/SimuTools/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/SimuTools/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>
diff --git a/SimuTools/SimuTools.csproj b/SimuTools/SimuTools.csproj
new file mode 100644
index 0000000..89db344
--- /dev/null
+++ b/SimuTools/SimuTools.csproj
@@ -0,0 +1,88 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.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>{7E7C12C3-C05B-473D-89BB-6C673B53C4E9}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>SimuTools</RootNamespace>
+    <AssemblyName>SimuTools</AssemblyName>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </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>
+  </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>
+  <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.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="FrmMain.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FrmMain.Designer.cs">
+      <DependentUpon>FrmMain.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="FrmMain.resx">
+      <DependentUpon>FrmMain.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\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>
\ No newline at end of file

--
Gitblit v1.9.3