From ee4d7b3d3e202a458ef14c45cc3c809ce9043ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=A5=E9=A3=8E=E8=BF=87=E5=AE=A2?= <3529987066@qq.com> Date: Wed, 3 Jan 2024 11:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=85=E5=AE=9E=E7=8E=B0=E9=80=8F=E4=BC=A0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?145=E7=94=B5=E8=B7=AF=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 145Test/.vs/145Test/v16/.suo | Bin 0 -> 22016 bytes 145Test/145Test.sln | 25 + 145Test/145Test/145Test.csproj | 83 ++ 145Test/145Test/App.config | 6 + 145Test/145Test/Form1.Designer.cs | 411 ++++++ 145Test/145Test/Form1.cs | 1273 +++++++++++++++++ 145Test/145Test/Form1.resx | 123 ++ 145Test/145Test/Program.cs | 22 + 145Test/145Test/Properties/AssemblyInfo.cs | 36 + .../145Test/Properties/Resources.Designer.cs | 70 + 145Test/145Test/Properties/Resources.resx | 117 ++ .../145Test/Properties/Settings.Designer.cs | 29 + 145Test/145Test/Properties/Settings.settings | 7 + 145Test/145Test/bin/Debug/145Test.exe | Bin 0 -> 29184 bytes 145Test/145Test/bin/Debug/145Test.exe.config | 6 + 145Test/145Test/bin/Debug/145Test.pdb | Bin 0 -> 60928 bytes ...ework,Version=v4.7.2.AssemblyAttributes.cs | 4 + .../145Test.csproj.AssemblyReference.cache | Bin 0 -> 1623 bytes .../145Test.csproj.CoreCompileInputs.cache | 1 + .../Debug/145Test.csproj.FileListAbsolute.txt | 10 + .../145Test.csproj.GenerateResource.cache | Bin 0 -> 1012 bytes 145Test/145Test/obj/Debug/145Test.exe | Bin 0 -> 29184 bytes 145Test/145Test/obj/Debug/145Test.pdb | Bin 0 -> 60928 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 277 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7092 bytes .../obj/Debug/_145Test.Form1.resources | Bin 0 -> 180 bytes .../_145Test.Properties.Resources.resources | Bin 0 -> 180 bytes 27 files changed, 2223 insertions(+) create mode 100644 145Test/.vs/145Test/v16/.suo create mode 100644 145Test/145Test.sln create mode 100644 145Test/145Test/145Test.csproj create mode 100644 145Test/145Test/App.config create mode 100644 145Test/145Test/Form1.Designer.cs create mode 100644 145Test/145Test/Form1.cs create mode 100644 145Test/145Test/Form1.resx create mode 100644 145Test/145Test/Program.cs create mode 100644 145Test/145Test/Properties/AssemblyInfo.cs create mode 100644 145Test/145Test/Properties/Resources.Designer.cs create mode 100644 145Test/145Test/Properties/Resources.resx create mode 100644 145Test/145Test/Properties/Settings.Designer.cs create mode 100644 145Test/145Test/Properties/Settings.settings create mode 100644 145Test/145Test/bin/Debug/145Test.exe create mode 100644 145Test/145Test/bin/Debug/145Test.exe.config create mode 100644 145Test/145Test/bin/Debug/145Test.pdb create mode 100644 145Test/145Test/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs create mode 100644 145Test/145Test/obj/Debug/145Test.csproj.AssemblyReference.cache create mode 100644 145Test/145Test/obj/Debug/145Test.csproj.CoreCompileInputs.cache create mode 100644 145Test/145Test/obj/Debug/145Test.csproj.FileListAbsolute.txt create mode 100644 145Test/145Test/obj/Debug/145Test.csproj.GenerateResource.cache create mode 100644 145Test/145Test/obj/Debug/145Test.exe create mode 100644 145Test/145Test/obj/Debug/145Test.pdb create mode 100644 145Test/145Test/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 145Test/145Test/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 145Test/145Test/obj/Debug/_145Test.Form1.resources create mode 100644 145Test/145Test/obj/Debug/_145Test.Properties.Resources.resources diff --git a/145Test/.vs/145Test/v16/.suo b/145Test/.vs/145Test/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..7f0d6037c03faf61b737f85f59af435aeb462af1 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/145Test/145Test.sln b/145Test/145Test.sln new file mode 100644 index 0000000..492ed33 --- /dev/null +++ b/145Test/145Test.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33927.289 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "145Test", "145Test\145Test.csproj", "{7A170C19-16E4-4F39-A988-6B5DF6E90229}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7A170C19-16E4-4F39-A988-6B5DF6E90229}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A170C19-16E4-4F39-A988-6B5DF6E90229}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A170C19-16E4-4F39-A988-6B5DF6E90229}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A170C19-16E4-4F39-A988-6B5DF6E90229}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C2379D53-656D-4151-8411-D2562E3E13A5} + EndGlobalSection +EndGlobal diff --git a/145Test/145Test/145Test.csproj b/145Test/145Test/145Test.csproj new file mode 100644 index 0000000..35af2ff --- /dev/null +++ b/145Test/145Test/145Test.csproj @@ -0,0 +1,83 @@ + + + + + Debug + AnyCPU + {7A170C19-16E4-4F39-A988-6B5DF6E90229} + WinExe + _145Test + 145Test + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/145Test/145Test/App.config b/145Test/145Test/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/145Test/145Test/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/145Test/145Test/Form1.Designer.cs b/145Test/145Test/Form1.Designer.cs new file mode 100644 index 0000000..edc1afa --- /dev/null +++ b/145Test/145Test/Form1.Designer.cs @@ -0,0 +1,411 @@ + +namespace _145Test +{ + partial class Form1 + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtIP = new System.Windows.Forms.TextBox(); + this.txtPort = new System.Windows.Forms.TextBox(); + this.btnConnect = new System.Windows.Forms.Button(); + this.btnDisconnect = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.rtbData = new System.Windows.Forms.RichTextBox(); + this.btnClear = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.chkCycleGet = new System.Windows.Forms.CheckBox(); + this.txtInterval = new System.Windows.Forms.TextBox(); + this.btnGetData = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.rtbSend = new System.Windows.Forms.RichTextBox(); + this.timerGetData = new System.Windows.Forms.Timer(this.components); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.rdoCloseLine = new System.Windows.Forms.RadioButton(); + this.rdoOpenLine = new System.Windows.Forms.RadioButton(); + this.btnSet = new System.Windows.Forms.Button(); + this.cmbNum = new System.Windows.Forms.ComboBox(); + this.cmbChooseLine = new System.Windows.Forms.ComboBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(39, 50); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(34, 23); + this.label1.TabIndex = 0; + this.label1.Text = "IP:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(39, 110); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(51, 23); + this.label2.TabIndex = 1; + this.label2.Text = "Port:"; + // + // txtIP + // + this.txtIP.Location = new System.Drawing.Point(117, 41); + this.txtIP.Name = "txtIP"; + this.txtIP.Size = new System.Drawing.Size(175, 32); + this.txtIP.TabIndex = 2; + // + // txtPort + // + this.txtPort.Location = new System.Drawing.Point(117, 101); + this.txtPort.Name = "txtPort"; + this.txtPort.Size = new System.Drawing.Size(175, 32); + this.txtPort.TabIndex = 3; + this.txtPort.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtPort_KeyPress); + // + // btnConnect + // + this.btnConnect.Location = new System.Drawing.Point(32, 164); + this.btnConnect.Name = "btnConnect"; + this.btnConnect.Size = new System.Drawing.Size(105, 46); + this.btnConnect.TabIndex = 4; + this.btnConnect.Text = "连接"; + this.btnConnect.UseVisualStyleBackColor = true; + this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click); + // + // btnDisconnect + // + this.btnDisconnect.Location = new System.Drawing.Point(204, 164); + this.btnDisconnect.Name = "btnDisconnect"; + this.btnDisconnect.Size = new System.Drawing.Size(103, 46); + this.btnDisconnect.TabIndex = 5; + this.btnDisconnect.Text = "断开"; + this.btnDisconnect.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rtbData); + this.groupBox1.Controls.Add(this.btnClear); + this.groupBox1.Location = new System.Drawing.Point(706, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(349, 444); + this.groupBox1.TabIndex = 6; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "数据展示"; + // + // rtbData + // + this.rtbData.Location = new System.Drawing.Point(6, 79); + this.rtbData.Name = "rtbData"; + this.rtbData.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.rtbData.Size = new System.Drawing.Size(337, 359); + this.rtbData.TabIndex = 7; + this.rtbData.Text = ""; + // + // btnClear + // + this.btnClear.Location = new System.Drawing.Point(240, 27); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(103, 46); + this.btnClear.TabIndex = 6; + this.btnClear.Text = "清空"; + this.btnClear.UseVisualStyleBackColor = true; + this.btnClear.Click += new System.EventHandler(this.btnClear_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.btnDisconnect); + this.groupBox2.Controls.Add(this.txtIP); + this.groupBox2.Controls.Add(this.btnConnect); + this.groupBox2.Controls.Add(this.txtPort); + this.groupBox2.Location = new System.Drawing.Point(12, 12); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(341, 227); + this.groupBox2.TabIndex = 7; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "建立连接"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.cmbNum); + this.groupBox3.Controls.Add(this.rtbSend); + this.groupBox3.Controls.Add(this.label5); + this.groupBox3.Controls.Add(this.label4); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.chkCycleGet); + this.groupBox3.Controls.Add(this.txtInterval); + this.groupBox3.Controls.Add(this.btnGetData); + this.groupBox3.Location = new System.Drawing.Point(359, 12); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(341, 444); + this.groupBox3.TabIndex = 8; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "数据获取"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(302, 396); + this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(16, 23); + this.label4.TabIndex = 6; + this.label4.Text = "s"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(28, 396); + this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(99, 23); + this.label3.TabIndex = 6; + this.label3.Text = "时间间隔:"; + // + // chkCycleGet + // + this.chkCycleGet.AutoSize = true; + this.chkCycleGet.Location = new System.Drawing.Point(32, 347); + this.chkCycleGet.Name = "chkCycleGet"; + this.chkCycleGet.Size = new System.Drawing.Size(113, 27); + this.chkCycleGet.TabIndex = 9; + this.chkCycleGet.Text = "周期获取"; + this.chkCycleGet.UseVisualStyleBackColor = true; + this.chkCycleGet.CheckedChanged += new System.EventHandler(this.chkCycleGet_CheckedChanged); + // + // txtInterval + // + this.txtInterval.Location = new System.Drawing.Point(148, 387); + this.txtInterval.Name = "txtInterval"; + this.txtInterval.Size = new System.Drawing.Size(145, 32); + this.txtInterval.TabIndex = 7; + this.txtInterval.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInterval_KeyPress); + // + // btnGetData + // + this.btnGetData.Location = new System.Drawing.Point(102, 248); + this.btnGetData.Name = "btnGetData"; + this.btnGetData.Size = new System.Drawing.Size(154, 46); + this.btnGetData.TabIndex = 8; + this.btnGetData.Text = "获取数据"; + this.btnGetData.UseVisualStyleBackColor = true; + this.btnGetData.Click += new System.EventHandler(this.btnGetData_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(40, 67); + this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(78, 23); + this.label5.TabIndex = 6; + this.label5.Text = "串口号:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(40, 127); + this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(99, 23); + this.label6.TabIndex = 7; + this.label6.Text = "发送数据:"; + // + // rtbSend + // + this.rtbSend.Location = new System.Drawing.Point(158, 124); + this.rtbSend.Name = "rtbSend"; + this.rtbSend.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.rtbSend.Size = new System.Drawing.Size(135, 103); + this.rtbSend.TabIndex = 10; + this.rtbSend.Text = ""; + // + // timerGetData + // + this.timerGetData.Tick += new System.EventHandler(this.timerGetData_Tick); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.cmbChooseLine); + this.groupBox4.Controls.Add(this.btnSet); + this.groupBox4.Controls.Add(this.groupBox5); + this.groupBox4.Location = new System.Drawing.Point(12, 245); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(341, 211); + this.groupBox4.TabIndex = 9; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "继电控制"; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.rdoCloseLine); + this.groupBox5.Controls.Add(this.rdoOpenLine); + this.groupBox5.Location = new System.Drawing.Point(6, 31); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(329, 79); + this.groupBox5.TabIndex = 0; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "操作命令"; + // + // rdoCloseLine + // + this.rdoCloseLine.AutoSize = true; + this.rdoCloseLine.Location = new System.Drawing.Point(185, 34); + this.rdoCloseLine.Name = "rdoCloseLine"; + this.rdoCloseLine.Size = new System.Drawing.Size(70, 27); + this.rdoCloseLine.TabIndex = 3; + this.rdoCloseLine.TabStop = true; + this.rdoCloseLine.Text = "关闭"; + this.rdoCloseLine.UseVisualStyleBackColor = true; + // + // rdoOpenLine + // + this.rdoOpenLine.AutoSize = true; + this.rdoOpenLine.Location = new System.Drawing.Point(61, 34); + this.rdoOpenLine.Name = "rdoOpenLine"; + this.rdoOpenLine.Size = new System.Drawing.Size(70, 27); + this.rdoOpenLine.TabIndex = 2; + this.rdoOpenLine.TabStop = true; + this.rdoOpenLine.Text = "打开"; + this.rdoOpenLine.UseVisualStyleBackColor = true; + // + // btnSet + // + this.btnSet.Location = new System.Drawing.Point(215, 140); + this.btnSet.Name = "btnSet"; + this.btnSet.Size = new System.Drawing.Size(103, 46); + this.btnSet.TabIndex = 6; + this.btnSet.Text = "设置"; + this.btnSet.UseVisualStyleBackColor = true; + this.btnSet.Click += new System.EventHandler(this.btnSet_Click); + // + // cmbNum + // + this.cmbNum.FormattingEnabled = true; + this.cmbNum.Items.AddRange(new object[] { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7"}); + this.cmbNum.Location = new System.Drawing.Point(158, 59); + this.cmbNum.Name = "cmbNum"; + this.cmbNum.Size = new System.Drawing.Size(135, 31); + this.cmbNum.TabIndex = 11; + // + // cmbChooseLine + // + this.cmbChooseLine.FormattingEnabled = true; + this.cmbChooseLine.Items.AddRange(new object[] { + "1", + "2", + "3", + "4", + "5", + "6"}); + this.cmbChooseLine.Location = new System.Drawing.Point(19, 149); + this.cmbChooseLine.Name = "cmbChooseLine"; + this.cmbChooseLine.Size = new System.Drawing.Size(172, 31); + this.cmbChooseLine.TabIndex = 10; + this.cmbChooseLine.Text = "请选择线路:"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 23F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1064, 468); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("方正楷体简体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(6); + this.Name = "Form1"; + this.Text = "145Test"; + this.Load += new System.EventHandler(this.Form1_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.groupBox5.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtIP; + private System.Windows.Forms.TextBox txtPort; + private System.Windows.Forms.Button btnConnect; + private System.Windows.Forms.Button btnDisconnect; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RichTextBox rtbData; + private System.Windows.Forms.Button btnClear; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.CheckBox chkCycleGet; + private System.Windows.Forms.TextBox txtInterval; + private System.Windows.Forms.Button btnGetData; + private System.Windows.Forms.RichTextBox rtbSend; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Timer timerGetData; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button btnSet; + private System.Windows.Forms.GroupBox groupBox5; + public System.Windows.Forms.RadioButton rdoCloseLine; + public System.Windows.Forms.RadioButton rdoOpenLine; + private System.Windows.Forms.ComboBox cmbNum; + public System.Windows.Forms.ComboBox cmbChooseLine; + } +} + diff --git a/145Test/145Test/Form1.cs b/145Test/145Test/Form1.cs new file mode 100644 index 0000000..9c653cd --- /dev/null +++ b/145Test/145Test/Form1.cs @@ -0,0 +1,1273 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace _145Test +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + + for (int i = 0; i < gDevConnSerialHandleBufLen; i++) + { + gDevConnSerialHandleBuf[i] = new DevSerialRecvHandle(); + } + } + + public class DevSerialRecvHandle + { + public const ushort gBuffLen = 2048; + public enum DevDataHandleFlag + { + IDILING, + RECVING, + HANDLING, + } + public byte[] gDevConnectRecvHandleBuff = new byte[gBuffLen]; + public DevDataHandleFlag gDevConnectRecvHandleFlag = DevDataHandleFlag.IDILING; + public uint gDevConnectRecvHandleCount = 0; + } + public DevSerialRecvHandle[] gDevConnSerialHandleBuf = new DevSerialRecvHandle[20]; + + //数据分割 + byte[] gDevConnSerialRecvBuff = new byte[2048 * 40]; + int gDevConnSerialRecvBuffLen = 2048 * 40; + int gDevConnSerialHandleBufLen = 20; + int gDevConnSerialRecvBufHandleLocation = 0; + int gDevConnSerialRecvBufLocation = 0; + + //校验位计算定义 + byte g_checkCode; + List g_crc8CheckBuffer = new List(); + List g_checkBuffer = new List(); + + //通信定义 + Socket g_socketWatch; + Socket g_socketSend; + + //Socket连接状态 + bool g_flagReceive; + bool waitReConnect = false; + + //流水号定义 + ushort g_serialDataVictory; + ushort g_serialDataNoSupport; + ushort g_serialDataError; + ushort g_serialSyncTime; + ushort g_serialControlTransparentData; + ushort g_serialSetLine; + + //终端返回结果 + int g_terminalResult; + + long g_sqlSyncTime; + + private void Form1_Load(object sender, EventArgs e) + { + txtIP.Text = "192.168.1.238"; + txtPort.Text = "7503"; + + rdoOpenLine.Checked = true; + cmbChooseLine.SelectedIndex = 0; + cmbNum.SelectedIndex = 0; + + //流水号赋初始值 + g_serialDataVictory = 0; + g_serialDataNoSupport = 0; + g_serialDataError = 0; + g_serialSyncTime = 0; + g_serialControlTransparentData = 0; + g_serialSetLine = 0; + + g_timerControlTransparentData.Enabled = true; + g_timerControlTransparentData.Interval = 5000; + g_timerControlTransparentData.AutoReset = false; + g_timerControlTransparentData.Elapsed += new System.Timers.ElapsedEventHandler(methodControlTransparentData); + + g_timerSetLine.Enabled = true; + g_timerSetLine.Interval = 20000; + g_timerSetLine.AutoReset = false; + g_timerSetLine.Elapsed += new System.Timers.ElapsedEventHandler(methodSetCycle); + } + + private void btnConnect_Click(object sender, EventArgs e) + { + txtIP.Enabled = false; + txtPort.Enabled = false; + + try + { + //在服务器端创建一个负责IP地址和端口号的Socket + g_socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress ip2 = IPAddress.Any; + //创建端口号对象 + Console.WriteLine("创建端口号对象"); + IPEndPoint point = new IPEndPoint(ip2, int.Parse(txtPort.Text)); + //监听 + g_socketWatch.Bind(point); + g_socketWatch.Listen(10); + + Thread trdConnect = new Thread(ListenConnect); + trdConnect.IsBackground = true; + trdConnect.Start(g_socketWatch); + + + Thread trdDataSplit = new Thread(DataSplit); + trdDataSplit.IsBackground = true; + trdDataSplit.Start(); + + Thread trdDataAnalysis = new Thread(DataAnalysis); + trdDataAnalysis.IsBackground = true; + trdDataAnalysis.Start(); + + btnConnect.Enabled = false; + } + catch (Exception ee) + { + Console.WriteLine("LinkError:" + ee.Message); + btnConnect.Enabled = true; + rtbData.AppendText(DateTime.Now+"\nLinkError:" + ee.Message+"\n"); + } + } + + //连接监听 + private void ListenConnect(object o) + { + while (true) + { + if (g_flagReceive == false || g_socketSend == null || !g_socketSend.Connected) + { + g_flagReceive = false; + bool result = WaitReConnect(txtIP.Text, int.Parse(txtPort.Text)); + if (result) + { + g_flagReceive = true; + + Thread thReceive = new Thread(DataReceive); + thReceive.IsBackground = true; + thReceive.Start(); + } + else + { + g_flagReceive = false; + } + } + Thread.Sleep(1); + } + } + + private bool Connect(string ip, int port) + { + if (g_flagReceive == true) + { + Console.WriteLine("连接中,无需再连接!"); + return true; + } + + g_socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + try + { + g_socketSend.IOControl(IOControlCode.KeepAliveValues, GetKeepAliveData(), null); + g_socketSend.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + + IPEndPoint point = new IPEndPoint(IPAddress.Parse(ip), port); + g_socketSend.Connect(point); + + g_flagReceive = true; + } + catch (Exception) + { + Console.WriteLine("服务器没有开启" + "\r\n"); + waitReConnect = false; + return false; + } + + Console.WriteLine("已连接服务器" + "\r\n"); + waitReConnect = true; + g_flagReceive = true; + return true; + } + + private byte[] GetKeepAliveData() + { + uint dummy = 0; + byte[] inOptionValues = new byte[Marshal.SizeOf(dummy) * 3]; + BitConverter.GetBytes((uint)1).CopyTo(inOptionValues, 0); + BitConverter.GetBytes((uint)3000).CopyTo(inOptionValues, Marshal.SizeOf(dummy));//keep-alive间隔 + BitConverter.GetBytes((uint)500).CopyTo(inOptionValues, Marshal.SizeOf(dummy) * 2);// 尝试间隔 + return inOptionValues; + } + + private bool WaitReConnect(string ip, int port) + { + waitReConnect = false; + Console.WriteLine("开始进行三次握手!"); + + try + { + //进行三次握手 + for (int i = 0; i < 3; i++) + { + waitReConnect = Connect(ip, port); + DateTime _time = DateTime.Now; + while ((DateTime.Now - _time).TotalSeconds < 5 && !waitReConnect) + { + Thread.Sleep(1); + } + //如果连接上了就返回true + if (waitReConnect) + { + Console.WriteLine("连接成功"); + rtbData.AppendText(DateTime.Now + "\n连接成功!\n"); + + return true; + } + + if (g_flagReceive == true) + { + Console.WriteLine("连接中,无需再连接!"); + return true; + } + + Console.WriteLine("超时5秒重连!"); + rtbData.AppendText(DateTime.Now + "\n超时5秒重连!\n"); + + g_flagReceive = false; + g_socketSend = null; + } + Console.WriteLine("3次都没有超时重连成功"); + + g_flagReceive = false; + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + + return false; + } + + public void ConnectDispose() + { + g_flagReceive = false; + + Console.WriteLine("通信连接已断开!"); + rtbData.AppendText(DateTime.Now + "\n通信连接已断开!\n"); + + if (g_socketSend == null) + { + return; + } + + if (g_socketSend.Connected) + { + g_socketSend.Close(); + g_socketSend.Dispose(); + } + + btnConnect.Enabled = true; + } + + //数据接收 + private void DataReceive(object o) + { + byte[] byteRead1; + int number = 0; + try + { + while (true) + { + byteRead1 = new byte[g_socketSend.ReceiveBufferSize]; + number = g_socketSend.Receive(byteRead1); + + byte[] byteRead = new byte[number]; + for (int i = 0; i < number; i++) + { + byteRead[i] = byteRead1[i]; + + gDevConnSerialRecvBuff[gDevConnSerialRecvBufLocation] = byteRead1[i]; + gDevConnSerialRecvBufLocation++; + gDevConnSerialRecvBufLocation %= (40 * 2048); + } + + //rtbData.AppendText(DateTime.Now + "\n接收原始数据:" + BitConverter.ToString(byteRead)+"\n"); + } + } + catch (Exception ex) + { + Console.WriteLine("DataReceive:" + ex.Message); + ConnectDispose(); + } + } + + public void DataSplit() + { + int i; + while (true) + { + if (gDevConnSerialRecvBufHandleLocation == gDevConnSerialRecvBufLocation) + { + Thread.Sleep(1); // 无数据处理时,进入睡眠态,以防止过多的占用CPU +                    continue; + } + if (gDevConnSerialRecvBuff[gDevConnSerialRecvBufHandleLocation] == 0x7f) + { + for (i = 0; i < gDevConnSerialHandleBufLen; i++) + { + if (gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag == DevSerialRecvHandle.DevDataHandleFlag.RECVING) + { + if (gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount < 18) + { // 18为数据包最小单位长度 +                                /* 该帧数据错误,将该帧数据变成空闲态,并清空内部长度 */ +                                gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag = DevSerialRecvHandle.DevDataHandleFlag.IDILING; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount = 0; + break; + } + else + { +                                /* 将数据保存在帧数据中,表示一帧数据的完成 */ +                                gDevConnSerialHandleBuf[i].gDevConnectRecvHandleBuff[gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount] = gDevConnSerialRecvBuff[gDevConnSerialRecvBufHandleLocation]; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount++; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag = DevSerialRecvHandle.DevDataHandleFlag.HANDLING; + break; + } + } + } + if ((i < gDevConnSerialHandleBufLen) && (gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag == DevSerialRecvHandle.DevDataHandleFlag.HANDLING)) + { + gDevConnSerialRecvBufHandleLocation++; // 数据处理完成的跳出之一,因此该字节处理完成,且为完成一帧数据获取的跳出 +                        gDevConnSerialRecvBufHandleLocation = gDevConnSerialRecvBufHandleLocation % gDevConnSerialRecvBuffLen; + continue; + } + for (i = 0; i < gDevConnSerialHandleBufLen; i++) + { +                        /* 上面的逻辑排除了接收态,所以只剩空闲态 */ +                        if (gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag == DevSerialRecvHandle.DevDataHandleFlag.IDILING) + { + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleBuff[gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount] = gDevConnSerialRecvBuff[gDevConnSerialRecvBufHandleLocation]; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount++; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount = gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount % DevSerialRecvHandle.gBuffLen; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag = DevSerialRecvHandle.DevDataHandleFlag.RECVING; + break; + } + } +                    /* 如果没有空闲态,则进行提示输出 */ +                    if (i >= gDevConnSerialHandleBufLen) + { + //TipsTextBox.AppendText(DateTime.Now.ToString() + ":\r\n" + "接收内存不足\r\n"); + } + } + else + { + for (i = 0; i < gDevConnSerialHandleBufLen; i++) + { + if (gDevConnSerialHandleBuf[i].gDevConnectRecvHandleFlag == DevSerialRecvHandle.DevDataHandleFlag.RECVING) + { + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleBuff[gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount] = gDevConnSerialRecvBuff[gDevConnSerialRecvBufHandleLocation]; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount++; + gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount = gDevConnSerialHandleBuf[i].gDevConnectRecvHandleCount % DevSerialRecvHandle.gBuffLen; + break; + } + } + } + gDevConnSerialRecvBufHandleLocation++; // 数据处理完成的跳出之一,因此该字节处理完成 +                gDevConnSerialRecvBufHandleLocation = gDevConnSerialRecvBufHandleLocation % gDevConnSerialRecvBuffLen; + } + } + + private void DataAnalysis() + { + while (true) + { + int k; + List data = new List(); + for (int ii = 0; ii < gDevConnSerialHandleBufLen; ii++) + { + if (gDevConnSerialHandleBuf[ii].gDevConnectRecvHandleFlag == DevSerialRecvHandle.DevDataHandleFlag.HANDLING) + { + data.Clear(); + for (k = 0; k < gDevConnSerialHandleBuf[ii].gDevConnectRecvHandleCount; k++) + { + data.Add(gDevConnSerialHandleBuf[ii].gDevConnectRecvHandleBuff[k]); + } + byte[] newDataTemp = data.ToArray(); + + gDevConnSerialHandleBuf[ii].gDevConnectRecvHandleCount = 0; + gDevConnSerialHandleBuf[ii].gDevConnectRecvHandleFlag = DevSerialRecvHandle.DevDataHandleFlag.IDILING; + + Console.WriteLine(BitConverter.ToString(newDataTemp)); + //EveryDayLog.Write("接收分割数据:" + BitConverter.ToString(newDataTemp)); + + try + { + //数据处理 + if (newDataTemp.Length > 18) + { + #region 转义 + int j = 0; + for (int i = 0; i < newDataTemp.Length; i++) + { + if (newDataTemp[i] == 0x7e && newDataTemp[i + 1] == 0x01) + { + newDataTemp[j] = 0x7e; + i++; + } + else if (newDataTemp[i] == 0x7e && newDataTemp[i + 1] == 0x02) + { + newDataTemp[j] = 0x7f; + i++; + } + else + { + newDataTemp[j] = newDataTemp[i]; + } + + j++; + } + + byte[] dataTemp = new byte[j]; + for (int i = 0; i < j; i++) + { + dataTemp[i] = newDataTemp[i]; + } + #endregion + + byte newCheckCode; + g_checkBuffer.Clear(); + + //进行CRC校验,判断消息是否错误 + for (int i = 1; i < dataTemp.Length - 2; i++) + { + g_checkBuffer.Add(dataTemp[i]); + } + newCheckCode = CRC(g_checkBuffer.ToArray()); + + if (newCheckCode == dataTemp[dataTemp.Length - 2]) //CRC校验通过 + { + //判断终端设备类型或终端设备id是否存在 + if (dataTemp[3] != 0x00 || dataTemp[4] != 0x00 || dataTemp[5] != 0x00 || dataTemp[6] != 0xc8 || dataTemp[7] != 0x00 || dataTemp[8] != 0x00 || dataTemp[9] != 0x00 || dataTemp[10] != 0x02) + { + //终端设备类型或终端设备id不存在 + //平台通用应答——不支持 + Console.WriteLine("终端设备类型或终端设备id不存在!"); + TerminalAnswerUnsup(new byte[] { dataTemp[1], dataTemp[2] }, new byte[2] { dataTemp[15], dataTemp[16] }); + } + else + { + //终端通用应答 + if (dataTemp[1] == 0x00 && dataTemp[2] == 0x00) + { + //平台接收心跳 + if (dataTemp[19] == 0x80 && dataTemp[20] == 0x01) + { + Console.WriteLine("接收到心跳数据!"); + } + + //时间同步 + if (dataTemp[19] == 0x80 && dataTemp[20] == 0x02) + { + g_terminalResult = dataTemp[21]; + Console.WriteLine("时间同步结果为:" + g_terminalResult + "/" + DateTime.Now); + } + + //平台请求透传数据 + if (dataTemp[19] == 0x80 && dataTemp[20] == 0x03) + { + g_terminalResult = dataTemp[21]; + g_flagControlTransparentData = true; + g_timerControlTransparentData.Stop(); + + Console.WriteLine("请求透传数据结果为:" + g_terminalResult + "/" + DateTime.Now); + } + } + + //接收时间同步 + if (dataTemp[1] == 0x00 && dataTemp[2] == 0x02) + { + g_messageId[0] = 0x80; + g_messageId[1] = 0x02; + + //消息体流水号 + byte[] messageBodySerialNumbeReturnSyncTime = new byte[2]; + messageBodySerialNumbeReturnSyncTime[0] = (byte)((g_serialSyncTime & 0xFF00) >> 8); + messageBodySerialNumbeReturnSyncTime[1] = (byte)((g_serialSyncTime & 0x00FF)); + + //消息体 + g_sqlSyncTime = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddHHmmss")); + ulong datetime = (ulong)g_sqlSyncTime; + byte[] time = new byte[8]; + time[0] = (byte)((byte)(datetime >> 56) & 0xff); + time[1] = (byte)((byte)(datetime >> 48) & 0xff); + time[2] = (byte)((byte)(datetime >> 40) & 0xff); + time[3] = (byte)((byte)(datetime >> 32) & 0xff); + time[4] = (byte)((byte)(datetime >> 24) & 0xff); + time[5] = (byte)((byte)(datetime >> 16) & 0xff); + time[6] = (byte)((byte)(datetime >> 8) & 0xff); + time[7] = (byte)((byte)datetime & 0xff); + + //消息体属性 + ushort datalen = (ushort)(time.Length); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(g_messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumbeReturnSyncTime); + g_crc8CheckBuffer.AddRange(time); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + Console.WriteLine(BitConverter.ToString(buffer.ToArray())); + + //流水号+1 + g_serialSyncTime++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + Console.WriteLine("ReturnSyncTimeError:" + ex.ToString()); + g_socketSend.Close(); + g_flagReceive = false; + ConnectDispose(); + } + } + + //接收透传数据 + if (dataTemp[1] == 0x00 && dataTemp[2] == 0x03) + { + string g_sqlDeviceName = "透传数据"; + string acquisitionInterface; + if (dataTemp[17] == 0x00) + { + acquisitionInterface = "UART"; + } + else if (dataTemp[17] == 0x01) + { + acquisitionInterface = "SPI"; + } + else if (dataTemp[17] == 0x02) + { + acquisitionInterface = "IIC"; + } + else if (dataTemp[17] == 0x03) + { + acquisitionInterface = "CAN"; + } + else if (dataTemp[17] == 0x04) + { + acquisitionInterface = "ETH"; + } + else + { + acquisitionInterface = "ADC"; + } + + int interfaceNumber = dataTemp[18]; + int spaceNum = 0; + + string transparentTransmissionData = BitConverter.ToString(dataTemp, 19, dataTemp.Length - 21); + string[] transparentTransmissionData1 = transparentTransmissionData.Split('-'); + string transparentTransmissionData2 = ""; + for (int i = 0; i < transparentTransmissionData1.Length; i++) + { + transparentTransmissionData2 += transparentTransmissionData1[i]; + } + Console.WriteLine(transparentTransmissionData1.Length); + Console.WriteLine(spaceNum); + Console.WriteLine("设备名称:" + g_sqlDeviceName + "\r" + "采集接口:" + acquisitionInterface + "\r" + "接口号:" + interfaceNumber + "\r" + "透传数据:" + transparentTransmissionData2); + rtbData.AppendText(DateTime.Now + "\n设备名称:" + g_sqlDeviceName + "\n采集接口:" + acquisitionInterface + "\n接口号:" + interfaceNumber + "\n透传数据:" + transparentTransmissionData2 + "\n"); + + //平台通用应答 + TerminalAnswerVic(new byte[2] { dataTemp[1], dataTemp[2] }, new byte[2] { dataTemp[15], dataTemp[16] }); + } + } + } + else + { + //CRC校验未通过,平台通用应答回复消息错误 + Console.WriteLine("CRC校验未通过!"); + TerminalAnswerErr(new byte[2] { dataTemp[1], dataTemp[2] }, new byte[2] { dataTemp[15], dataTemp[16] }); + } + } + } + catch (Exception ex) + { + Console.Write("解析数据出错:" + ex.Message); + } + } + } + Thread.Sleep(1); + } + } + + + #region 平台通用应答合集 + private void TerminalAnswerVic(byte[] messageId, byte[] serialNumber) + { + messageId[0] = 0x80; + messageId[1] = 0x00; + + //消息体流水号 + byte[] messageBodySerialNumbeDataReturnVictory = new byte[2]; + messageBodySerialNumbeDataReturnVictory[0] = (byte)((g_serialDataVictory & 0xFF00) >> 8); + messageBodySerialNumbeDataReturnVictory[1] = (byte)((g_serialDataVictory & 0x00FF)); + + //消息体 + byte[] messageBodyTerSerial = new byte[2]; + messageBodyTerSerial[0] = serialNumber[0]; + messageBodyTerSerial[1] = serialNumber[1]; + byte[] messageBodyTerId = new byte[2]; + messageBodyTerId[0] = messageId[0]; + messageBodyTerId[1] = messageId[1]; + byte messageBodyResult = 0x00; + + //消息体属性 + ushort datalen = (ushort)(messageBodyTerSerial.Length + messageBodyTerId.Length + 1); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumbeDataReturnVictory); + g_crc8CheckBuffer.AddRange(messageBodyTerSerial); + g_crc8CheckBuffer.AddRange(messageBodyTerId); + g_crc8CheckBuffer.Add(messageBodyResult); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + //Console.WriteLine(BitConverter.ToString(buffer.ToArray())); + + //流水号+1 + g_serialDataVictory++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + Console.WriteLine("DataReturnVictoryError:" + ex.ToString()); + + g_flagReceive = false; + ConnectDispose(); + } + } + + private void TerminalAnswerErr(byte[] messageId, byte[] serialNumber) + { + Thread.Sleep(100); + + messageId[0] = 0x80; + messageId[1] = 0x00; + + //消息体流水号 + byte[] messageBodySerialNumberDataReturnMessError = new byte[2]; + messageBodySerialNumberDataReturnMessError[0] = (byte)((g_serialDataError & 0xFF00) >> 8); + messageBodySerialNumberDataReturnMessError[1] = (byte)((g_serialDataError & 0x00FF)); + + //消息体 + byte[] messageBodyTerSerial = new byte[2]; + messageBodyTerSerial[0] = serialNumber[0]; + messageBodyTerSerial[1] = serialNumber[1]; + byte[] messageBodyTerId = new byte[2]; + messageBodyTerId[0] = messageId[0]; + messageBodyTerId[1] = messageId[1]; + byte messageBodyResult = 0x02; //消息错误 + + //消息体属性 + ushort datalen = (ushort)(messageBodyTerSerial.Length + messageBodyTerId.Length + 1); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumberDataReturnMessError); + g_crc8CheckBuffer.AddRange(messageBodyTerSerial); + g_crc8CheckBuffer.AddRange(messageBodyTerId); + g_crc8CheckBuffer.Add(messageBodyResult); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + //流水号+1 + g_serialDataError++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + Console.WriteLine("DataReturnMessErrorError:" + ex.ToString()); + + g_flagReceive = false; + ConnectDispose(); + } + } + + private void TerminalAnswerUnsup(byte[] messageId, byte[] serialNumber) + { + Thread.Sleep(100); + + messageId[0] = 0x80; + messageId[1] = 0x00; + + //消息体流水号 + byte[] messageBodySerialNumberDataReturnNoSupport = new byte[2]; + messageBodySerialNumberDataReturnNoSupport[0] = (byte)((g_serialDataNoSupport & 0xFF00) >> 8); + messageBodySerialNumberDataReturnNoSupport[1] = (byte)(g_serialDataNoSupport & 0x00FF); + + //消息体 + byte[] messageBodyTerSerial = new byte[2]; + messageBodyTerSerial[0] = serialNumber[0]; + messageBodyTerSerial[1] = serialNumber[1]; + + byte[] messageBodyTerId = new byte[2]; + messageBodyTerId[0] = messageId[0]; + messageBodyTerId[1] = messageId[1]; + + byte messageBodyResult = 0x03; //不支持 + + //消息体属性 + ushort datalen = (ushort)(messageBodyTerSerial.Length + messageBodyTerId.Length + 1); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumberDataReturnNoSupport); + g_crc8CheckBuffer.AddRange(messageBodyTerSerial); + g_crc8CheckBuffer.AddRange(messageBodyTerId); + g_crc8CheckBuffer.Add(messageBodyResult); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + //Console.WriteLine(BitConverter.ToString(buffer.ToArray())); + + //流水号+1 + g_serialDataNoSupport++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + Console.WriteLine("DataReturnNoSupportError:" + ex.ToString()); + + g_flagReceive = false; + ConnectDispose(); + } + } + #endregion + + + #region CRC校验 + /// + /// CRC8位校验表 + /// + private static byte[] CRC8Table = new byte[] + { + 0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65, + 157,195,33,127,252,162,64,30, 95,1,227,189,62,96,130,220, + 35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98, + 190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255, + 70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7, + 219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154, + 101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36, + 248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185, + 140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205, + 17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80, + 175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238, + 50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115, + 202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139, + 87,9,235,181,54,104,138,212,149,203, 41,119,244,170,72,22, + 233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168, + 116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53 + }; + + public static byte CRC(byte[] buffer) + { + return CRC(buffer, 0, buffer.Length); + } + + public static byte CRC(byte[] buffer, int off, int len) + { + byte crc = 0; + if (buffer == null) + { + throw new ArgumentNullException("buffer"); + } + if (off < 0 || len < 0 || off + len > buffer.Length) + { + throw new ArgumentOutOfRangeException(); + } + + for (int i = off; i < len; i++) + { + crc = CRC8Table[crc ^ buffer[i]]; + } + return crc; + } + #endregion + + + #region 转义 + public static List Transform(List tBuffer, byte code, byte flag) + { + int j = 0; + tBuffer.Add(code); + int length = tBuffer.ToArray().Length; + byte[] newAnswer = tBuffer.ToArray(); + for (int i = 0; i < length; i++) + { + if (newAnswer[i] == 0x7e || newAnswer[i] == 0x7f) + { + j++; + } + } + byte[] newSendBuffer = new byte[length + j]; + for (int i = 0; i < length; i++) + { + newSendBuffer[i] = newAnswer[i]; + } + for (int i = 0; i < length + j; i++) + { + if (newSendBuffer[i] == 0x7e) + { + for (int k = length + j - 1; k > i + 1; k--) + { + newSendBuffer[k] = newSendBuffer[k - 1]; + } + newSendBuffer[i + 1] = 0x01; + } + if (newSendBuffer[i] == 0x7f) + { + newSendBuffer[i] = 0x7e; + for (int k = length + j - 1; k > i + 1; k--) + { + newSendBuffer[k] = newSendBuffer[k - 1]; + } + newSendBuffer[i + 1] = 0x02; + } + } + List buffer = new List(); + buffer.Add(flag); + for (int i = 0; i < newSendBuffer.Length; i++) + { + buffer.Add(newSendBuffer[i]); + } + buffer.Add(flag); + return buffer; + } + #endregion + + + //定义指令 + byte g_flagBit = 0x7f; + byte[] g_messageId = new byte[2]; + byte[] g_terminalEquipmentType = new byte[4] { 0x00, 0x00, 0x00, 0xc8 }; + byte[] g_terminalEquipmentId = new byte[4] { 0x00, 0x00, 0x00, 0x02 }; + byte[] g_messageBodyProperty = new byte[2]; + byte[] g_versionNumber = new byte[2] { 0x00, 0x01 }; + + //消息体属性 + byte[] Property(ushort length) + { + length |= 0x0c00; + byte[] BodyProperty = new byte[2]; + BodyProperty[0] = (byte)((length & 0xff00) >> 8); + BodyProperty[1] = (byte)(length & 0x00ff); + return BodyProperty; + } + + + #region 定时器配置 + public bool g_flagControlTransparentData = true; + + public System.Timers.Timer g_timerControlTransparentData = new System.Timers.Timer(); + + private void methodControlTransparentData(object sender, System.Timers.ElapsedEventArgs e) + { + if (g_flagControlTransparentData == false) + { + Console.WriteLine("下位机未响应,请重新点击发送!"); + btnGetData.Enabled = true; + } + } + #endregion + + + private void btnGetData_Click(object sender, EventArgs e) + { + btnGetData.Enabled = false; + g_flagControlTransparentData = false; + + if (g_socketSend == null) + { + btnGetData.Enabled = true; + return; + } + + //消息ID + g_messageId[0] = 0x80; + g_messageId[1] = 0x03; + + //消息体流水号 + byte[] messageBodySerialNumberControlTransparentData = new byte[2]; + messageBodySerialNumberControlTransparentData[0] = (byte)((g_serialControlTransparentData & 0xFF00) >> 8); + messageBodySerialNumberControlTransparentData[1] = (byte)(g_serialControlTransparentData & 0x00FF); + + //采集接口&接口号 + byte inter = 0x00; //UART + + byte interNo = (byte)cmbNum.SelectedIndex; + + //指令 + byte instruction = 0x02; + + //数据 + if (rtbSend.Text == "") + rtbSend.Text = "Requset Data,Num:" + cmbNum.SelectedIndex; + + byte[] controlData = StringToBytes(StringToHex(rtbSend.Text)); + + //消息体属性 + ushort datalen = (ushort)(3+ controlData.Length); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(g_messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumberControlTransparentData); + g_crc8CheckBuffer.Add(inter); + g_crc8CheckBuffer.Add(interNo); + g_crc8CheckBuffer.Add(instruction); + g_crc8CheckBuffer.AddRange(controlData); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + g_timerControlTransparentData.Start(); + //流水号+1 + g_serialControlTransparentData++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + btnGetData.Enabled = true; + Console.WriteLine("ControlTransparentDataError:" + ex.ToString()); + + g_flagReceive = false; + ConnectDispose(); + } + } + + /// + /// 普通字符串转16进制 + /// AB 转 61 62 + /// + /// + public static string StringToHex(string data) + { + byte[] b = Encoding.UTF8.GetBytes(data); ; + string result = string.Empty; + for (int i = 0; i < b.Length; i++) + { + result += Convert.ToString(b[i], 16).ToUpper(); + } + return result; + } + + /// + /// 将字符串形式的多位字节信息转换为对应的字节数组 + /// ABCD 转 0xAB 0xCD + /// + /// + /// + public static byte[] StringToBytes(string s) + { + string[] str = s.Split(' '); + int n = str.Length; + + byte[] cmdBytes = null; + int p = 0; + + + for (int k = 0; k < n; k++) + { + int sLen = str[k].Length; + int bytesLen = sLen / 2; + int position = 0; + byte[] bytes = new byte[bytesLen]; + for (int i = 0; i < bytesLen; i++) + { + string abyte = str[k].Substring(position, 2); + bytes[i] = Convert.ToByte(abyte, 16); + position += 2; + } + + if (position >= 2) + { + byte[] cmdBytes2 = new byte[p + bytesLen]; + if (cmdBytes != null) + { + Array.Copy(cmdBytes, 0, cmdBytes2, 0, p); + } + Array.Copy(bytes, 0, cmdBytes2, p, bytesLen); + cmdBytes = cmdBytes2; + p += bytesLen; + } + } + + return cmdBytes; + } + + private void chkCycleGet_CheckedChanged(object sender, EventArgs e) + { + if(chkCycleGet.Checked) + { + if(txtInterval.Text=="") + { + txtInterval.Text = "60"; + } + txtInterval.Enabled = false; + + this.Invoke(new MethodInvoker(delegate + { + timerGetData.Interval = int.Parse(txtInterval.Text) * 1000; + timerGetData.Enabled = true; + timerGetData.Start(); + })); + } + else + { + txtInterval.Enabled = true; + + this.Invoke(new MethodInvoker(delegate + { + timerGetData.Enabled = false; + timerGetData.Stop(); + })); + } + } + + private void timerGetData_Tick(object sender, EventArgs e) + { + btnGetData_Click(null, null); + } + + #region 定时器设置 + public System.Timers.Timer g_timerSetLine = new System.Timers.Timer(); + + public bool g_flagSetLine = true; + + private void methodSetCycle(object sender, System.Timers.ElapsedEventArgs e) + { + if (g_flagSetLine == false) + { + Console.WriteLine("下位机未响应,请重新点击发送!"); + btnSet.Enabled = true; + } + } + #endregion + + private void btnSet_Click(object sender, EventArgs e) + { + btnSet.Enabled = false; + g_flagSetLine = false; + + if (g_socketSend == null) + { + btnSet.Enabled = true; + return; + } + + //消息ID + g_messageId[0] = 0x80; + g_messageId[1] = 0x0c; + + //消息体流水号 + byte[] messageBodySerialNumberSetLine = new byte[2]; + messageBodySerialNumberSetLine[0] = (byte)((g_serialSetLine & 0xFF00) >> 8); + messageBodySerialNumberSetLine[1] = (byte)(g_serialSetLine & 0x00FF); + + //消息体 + byte[] setLineMessageId = new byte[2] { 0x01, 0x01 }; + + byte setLineNumber; + byte setLineInstruction; + byte setLineMode = 0x00; + byte[] setLineWorkTime = new byte[4] { 0x00, 0x00, 0x00, 0x00 }; + byte[] setLineStopTime = new byte[4] { 0x00, 0x00, 0x00, 0x00 }; + byte[] setLineUploadTime = new byte[4] { 0x00, 0x00, 0x00, 0x00 }; + + string state; + if (rdoOpenLine.Checked) + { + setLineInstruction = 0x01; + state = "开启"; + } + else + { + setLineInstruction = 0x00; + state = "关闭"; + } + + setLineNumber = (byte)(cmbChooseLine.SelectedIndex + 1); + + //消息体属性 + ushort datalen = (ushort)(setLineMessageId.Length + setLineWorkTime.Length + setLineStopTime.Length + setLineUploadTime.Length + 3); + g_messageBodyProperty = Property(datalen); + + //校验码 + g_crc8CheckBuffer.Clear(); + g_crc8CheckBuffer.AddRange(g_messageId); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentType); + g_crc8CheckBuffer.AddRange(g_terminalEquipmentId); + g_crc8CheckBuffer.AddRange(g_messageBodyProperty); + g_crc8CheckBuffer.AddRange(g_versionNumber); + g_crc8CheckBuffer.AddRange(messageBodySerialNumberSetLine); + g_crc8CheckBuffer.AddRange(setLineMessageId); + g_crc8CheckBuffer.Add(setLineNumber); + g_crc8CheckBuffer.Add(setLineInstruction); + g_crc8CheckBuffer.Add(setLineMode); + g_crc8CheckBuffer.AddRange(setLineWorkTime); + g_crc8CheckBuffer.AddRange(setLineStopTime); + g_crc8CheckBuffer.AddRange(setLineUploadTime); + g_checkCode = CRC(g_crc8CheckBuffer.ToArray()); + + List buffer = Transform(g_crc8CheckBuffer, g_checkCode, g_flagBit); + + try + { + if (g_flagReceive == true) + { + //通过IP地址找到对应的Socket + g_socketSend.Send(buffer.ToArray()); + + g_timerSetLine.Start(); + //流水号+1 + g_serialSetLine++; + } + else + { + Console.WriteLine("连接已断开!"); + } + } + catch (Exception ex) + { + btnSet.Enabled = true; + Console.WriteLine("SetLineStateError:" + ex.ToString()); + + g_flagReceive = false; + ConnectDispose(); + } + } + + private void btnClear_Click(object sender, EventArgs e) + { + rtbData.Clear(); + } + + private void txtPort_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8) + { + e.Handled = true; + } + } + + private void txtInterval_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8) + { + e.Handled = true; + } + } + } +} diff --git a/145Test/145Test/Form1.resx b/145Test/145Test/Form1.resx new file mode 100644 index 0000000..6fc675e --- /dev/null +++ b/145Test/145Test/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/145Test/145Test/Program.cs b/145Test/145Test/Program.cs new file mode 100644 index 0000000..4ac3acd --- /dev/null +++ b/145Test/145Test/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace _145Test +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/145Test/145Test/Properties/AssemblyInfo.cs b/145Test/145Test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ea19f4f --- /dev/null +++ b/145Test/145Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("145Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("145Test")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("7a170c19-16e4-4f39-a988-6b5df6e90229")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/145Test/145Test/Properties/Resources.Designer.cs b/145Test/145Test/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b49c014 --- /dev/null +++ b/145Test/145Test/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + + +namespace _145Test.Properties +{ + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 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() + { + } + + /// + /// 返回此类使用的缓存 ResourceManager 实例。 + /// + [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("_145Test.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [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/145Test/145Test/Properties/Resources.resx b/145Test/145Test/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/145Test/145Test/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/145Test/145Test/Properties/Settings.Designer.cs b/145Test/145Test/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d0ed887 --- /dev/null +++ b/145Test/145Test/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 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. +// +//------------------------------------------------------------------------------ + + +namespace _145Test.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/145Test/145Test/Properties/Settings.settings b/145Test/145Test/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/145Test/145Test/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/145Test/145Test/bin/Debug/145Test.exe b/145Test/145Test/bin/Debug/145Test.exe new file mode 100644 index 0000000000000000000000000000000000000000..4ee5a1ea8ce3cec78e49c7c9fef1d53e1fd2759d GIT binary patch literal 29184 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 Pd>ls-|NZ&@&jSAgyEW7z literal 0 HcmV?d00001 diff --git a/145Test/145Test/bin/Debug/145Test.exe.config b/145Test/145Test/bin/Debug/145Test.exe.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/145Test/145Test/bin/Debug/145Test.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/145Test/145Test/bin/Debug/145Test.pdb b/145Test/145Test/bin/Debug/145Test.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6fe34a10ba19dfb8811773870eb5b3ec6284ada4 GIT binary patch literal 60928 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 literal 0 HcmV?d00001 diff --git a/145Test/145Test/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/145Test/145Test/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/145Test/145Test/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/145Test/145Test/obj/Debug/145Test.csproj.AssemblyReference.cache b/145Test/145Test/obj/Debug/145Test.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..30fe4063c26bc83c144da10f843a0726a53b26c5 GIT binary patch literal 1623 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 Pd>ls-|NZ&@&jSAgyEW7z literal 0 HcmV?d00001 diff --git a/145Test/145Test/obj/Debug/145Test.pdb b/145Test/145Test/obj/Debug/145Test.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6fe34a10ba19dfb8811773870eb5b3ec6284ada4 GIT binary patch literal 60928 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 literal 0 HcmV?d00001 diff --git a/145Test/145Test/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/145Test/145Test/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..f7baf5ea7b81829f0fb728c7d080187f03bff8db GIT binary patch literal 277 zcmeZu3JP{+WMpDsU|>vhwu%WT%1!TuBGG z48Ntnpwpk&?w;*4@9hWQ3?F<9YoV8Yc30B**(DNh7 zl}GKO_AD-ptZ*FRZsj&p$z3KD7w&py$w=c*Dw*|c?Mb%oGEYltr;m=axIgw7SnW|4k6^qEl59m+_n&J%hgPZ#wSS|4JM5Om0NDZ)9MK&(PnHCyv+J1?ojPJ}$_43%gV z#wIU~<%Mm5zt6F=L}i`nU|G?tDyFwViF(cJu8=IpY7|1Tpv|@x?nq%WrG(r7 z>$wJ>;K;R?FstCXnmeq$L1WveQ{Qz$b;j9AV%UbY!0CSIuMCJ00AGvDB>ta zP>g~YArC=D$QX#+S)t9G)`~!+PpD+&fb5oy?aflaAydZ-#QK-&-P}AqCyzkW z`}|rtD=b#dEG(9Q+6AAYdRWe}s#gc8fLE4)`xKZG_HjUTyF|w@sd>QSU!Z;CAf8?} zp~L4}rjP{8n8X>$z{;d=B$+@3?O9(!JLV{ElSyceKyTWZPtRvo<6ptwk&y((4}ZxN z3gd*kjzu0rJ7!q6O{V=8J7ozBG5Si7*Du`WFc39J0yL1=a*=5bbV(V&zWoN7ft9ar zTe;C_7^a^PkXe|=vukBgRtNH*^mBpao70u0x8)#Q$@X3#RCm{cSX|z}aw{C&iAJ_~ zKxM=C@hQO3P~bX5(T8~kFjgoq0h5)?M|uuO$6+GnsHO%A*yCjj#A^#yCOw-$=RIQPBY{2u3`dzIng_;>Ku>pTgh z`BR|B z*R7Pj%H4K$lfa|}^D&YE5zc;)IZ#~*Wvlblq!#262|pc6gnl740MU;ZU7F8}}l literal 0 HcmV?d00001 diff --git a/145Test/145Test/obj/Debug/_145Test.Form1.resources b/145Test/145Test/obj/Debug/_145Test.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/145Test/145Test/obj/Debug/_145Test.Properties.Resources.resources b/145Test/145Test/obj/Debug/_145Test.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001