The
Mycom is a serial communication class. The following is the serial communication test program source code, will mycom class in this project, you can achieve a simple serial communication, I hope readers through this program to the serial communication process has a preliminary understanding:
Using System;
Using System.Drawing;
Using System.Collections;
Using System.ComponentModel;
Using System.Windows.Forms;
Using System.Data;
Using System.Threading;
Summary description of namespace Busapp {///<summary>///Form1.
</summary> public class Form1:System.Windows.Forms.Form {private System.Windows.Forms.Label Label1;
Private System.Windows.Forms.Label Label2;
Private System.Windows.Forms.Button button1;
Private System.Windows.Forms.GroupBox GroupBox1;
Private System.Windows.Forms.Label label3;
Private System.Windows.Forms.Label label4;
Private System.Windows.Forms.Label Label5;
Private System.Windows.Forms.Label label6;
Private System.Windows.Forms.Button button2;
Private System.Windows.Forms.Button Button3;
Private System.Windows.Forms.Button Button4;
Private System.Windows.Forms.TextBox textBox8;
Private System.Windows.Forms.Label Label7; public int iport=1; 1,2,3,4 public int irate=9600; 1200,2400,4800,9600 public byte bsize=8; //8 bits public byte bparity=0; 0-4=no,odd,even,mark,space public byte Bstopbits=1;
0,1,2 = 1, 1.5, 2 public int itimeout=1000;
Public mycom mycom1=new mycom ();
Public byte[] RECB;
Private System.Windows.Forms.TextBox msg;
Private System.Windows.Forms.TextBox T_port;
Private System.Windows.Forms.TextBox t_rate;
Private System.Windows.Forms.TextBox t_bytesize;
Private System.Windows.Forms.TextBox T_stopbyte;
Private System.Windows.Forms.TextBox t_parity;
Private System.Windows.Forms.TextBox t_send; Private System.Windows.Forms.Button button5;
ReadTimeout///<summary>///required designer variables.
</summary> private System.ComponentModel.Container components = null;
Public Form1 () {InitializeComponent ();
///<summary>///Clean up all the resources that are in use. </summary> protected override void Dispose (bool disposing) {if (disposing) {if (Components!= NULL) {components.
Dispose (); } base. Dispose (disposing);
#region the code generated by the Windows Forms Designer///<summary>///Designer supports the desired method-do not use the Code Editor to modify the contents of///this method.
</summary> private void InitializeComponent () {this.msg = new System.Windows.Forms.TextBox ();
This.label1 = new System.Windows.Forms.Label ();
This.label2 = new System.Windows.Forms.Label ();
This.t_send = new System.Windows.Forms.TextBox ();
This.button1 = new System.Windows.Forms.Button ();
This.groupbox1 = new System.Windows.Forms.GroupBox ();
This.button2 = new System.Windows.Forms.Button ();
This.t_port = new System.Windows.Forms.TextBox ();
This.label3 = new System.Windows.Forms.Label ();
This.t_rate = new System.Windows.Forms.TextBox ();
This.label4 = new System.Windows.Forms.Label ();
This.t_bytesize = new System.Windows.Forms.TextBox ();
This.label5 = new System.Windows.Forms.Label ();
This.t_stopbyte = new System.Windows.Forms.TextBox ();
This.label6 = new System.Windows.Forms.Label (); this.t_parity = new System.wiNdows.
Forms.textbox ();
This.button3 = new System.Windows.Forms.Button ();
This.button4 = new System.Windows.Forms.Button ();
this.textbox8 = new System.Windows.Forms.TextBox ();
THIS.LABEL7 = new System.Windows.Forms.Label ();
This.button5 = new System.Windows.Forms.Button ();
This.groupBox1.SuspendLayout (); This.
SuspendLayout ();
msg//This.msg.ForeColor = System.Drawing.Color.Green;
This.msg.Location = new System.Drawing.Point (0, 0);
This.msg.Multiline = true;
This.msg.Name = "MSG";
This.msg.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
This.msg.Size = new System.Drawing.Size (512, 264);
This.msg.TabIndex = 0;
This.msg.Text = "";
Label1//this.label1.Location = new System.Drawing.Point (16, 24);
This.label1.Name = "Label1";
This.label1.Size = new System.Drawing.Size (56, 16);
This.label1.TabIndex = 1;
This.label1.Text = "string slogan:"; Label2//This.label2.ForeColor = System.Drawing.
Color.FromArgb ((System.Byte) (in)), ((System.Byte) ()), ((System.Byte) (0));
This.label2.Location = new System.Drawing.Point (8, 280);
This.label2.Name = "Label2";
This.label2.Size = new System.Drawing.Size (80, 16);
This.label2.TabIndex = 1;
This.label2.Text = "Set packet:"; T_send//This.t_send.
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.t_send.
ForeColor = System.Drawing.Color.FromArgb ((system.byte) (255)), ((System.Byte) (128)), ((System.Byte) (0)); This.t_send.
Location = new System.Drawing.Point (80, 272); This.t_send.
Name = "T_send"; This.t_send.
Size = new System.Drawing.Size (344, 21); This.t_send.
TabIndex = 2; This.t_send.
Text = "";
Button1//this.button1.Location = new System.Drawing.Point (432, 272);
This.button1.Name = "Button1";
This.button1.Size = new System.Drawing.Size (40, 23);
This.button1.TabIndex = 3;
This.button1.Text = "Send"; This.button1.Click + = new System.EventHandler(This.button1_click);
GroupBox1//THIS.GROUPBOX1.CONTROLS.ADD (This.button2);
THIS.GROUPBOX1.CONTROLS.ADD (This.t_port);
THIS.GROUPBOX1.CONTROLS.ADD (THIS.LABEL1);
THIS.GROUPBOX1.CONTROLS.ADD (THIS.LABEL3);
THIS.GROUPBOX1.CONTROLS.ADD (this.t_rate);
THIS.GROUPBOX1.CONTROLS.ADD (THIS.LABEL4);
THIS.GROUPBOX1.CONTROLS.ADD (this.t_bytesize);
THIS.GROUPBOX1.CONTROLS.ADD (THIS.LABEL5);
THIS.GROUPBOX1.CONTROLS.ADD (This.t_stopbyte);
THIS.GROUPBOX1.CONTROLS.ADD (THIS.LABEL6);
THIS.GROUPBOX1.CONTROLS.ADD (this.t_parity); This.groupBox1.ForeColor = System.Drawing.Color.FromArgb ((System.Byte) (()), ((System.Byte) ()), ((System.Byte)
(0)));
This.groupBox1.Location = new System.Drawing.Point (8, 304);
This.groupBox1.Name = "GroupBox1";
This.groupBox1.Size = new System.Drawing.Size (176, 216);
This.groupBox1.TabIndex = 4;
This.groupBox1.TabStop = false;
This.groupBox1.Text = "parameter setting"; Button2//This.button2.FlatStyle = SysteM.windows.forms.flatstyle.popup;
This.button2.Location = new System.Drawing.Point (80, 184);
This.button2.Name = "Button2";
This.button2.TabIndex = 3;
This.button2.Text = "Apply settings";
This.button2.Click + = new System.EventHandler (This.button2_click); T_port//This.t_port.
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.t_port.
Location = new System.Drawing.Point (80, 16); This.t_port.
Name = "T_port"; This.t_port.
Size = new System.Drawing.Size (80, 21); This.t_port.
TabIndex = 2; This.t_port.
Text = "1";
LABEL3//this.label3.Location = new System.Drawing.Point (16, 58);
This.label3.Name = "Label3";
This.label3.Size = new System.Drawing.Size (56, 16);
This.label3.TabIndex = 1;
This.label3.Text = "baud rate:"; T_rate//This.t_rate.
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.t_rate.
Location = new System.Drawing.Point (80, 50); This.t_rate.
Name = "T_rate"; This.t_rate.
Size = new System.Drawing.Size (80, 21); This.t_rate.
TabIndex = 2; This.t_rate.
Text = "9600";
Label4//this.label4.Location = new System.Drawing.Point (16, 92);
This.label4.Name = "Label4";
This.label4.Size = new System.Drawing.Size (56, 16);
This.label4.TabIndex = 1;
This.label4.Text = "Data bits:"; T_bytesize//This.t_bytesize.
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.t_bytesize.
Location = new System.Drawing.Point (80, 84); This.t_bytesize.
Name = "T_bytesize"; This.t_bytesize.
Size = new System.Drawing.Size (80, 21); This.t_bytesize.
TabIndex = 2; This.t_bytesize.
Text = "8";
Label5//this.label5.Location = new System.Drawing.Point (16, 126);
This.label5.Name = "Label5";
This.label5.Size = new System.Drawing.Size (56, 16);
This.label5.TabIndex = 1;
This.label5.Text = "Stop bit:"; T_stopbyte//This.t_stopbyte. BorderStyle = System.Windows.Forms.BorderStyle.FixedSiNgle; This.t_stopbyte.
Location = new System.Drawing.Point (80, 118); This.t_stopbyte.
Name = "T_stopbyte"; This.t_stopbyte.
Size = new System.Drawing.Size (80, 21); This.t_stopbyte.
TabIndex = 2; This.t_stopbyte.
Text = "1";
LABEL6//this.label6.Location = new System.Drawing.Point (16, 160);
This.label6.Name = "Label6";
This.label6.Size = new System.Drawing.Size (56, 16);
This.label6.TabIndex = 1;
This.label6.Text = "Check digit:"; T_parity//This.t_parity.
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.t_parity.
Enabled = false; This.t_parity.
Location = new System.Drawing.Point (80, 152); This.t_parity.
Name = "T_parity"; This.t_parity.
Size = new System.Drawing.Size (80, 21); This.t_parity.
TabIndex = 2; This.t_parity.
Text = "0";
Button3//this.button3.Location = new System.Drawing.Point (472, 272);
This.button3.Name = "Button3";
This.button3.Size = new System.Drawing.Size (40, 23); This.button3.TabIndex = 3;
This.button3.Text = "Empty";
This.button3.Click + = new System.EventHandler (This.button3_click);
Button4//This.button4.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
This.button4.Location = new System.Drawing.Point (432, 312);
This.button4.Name = "Button4";
This.button4.Size = new System.Drawing.Size (72, 23);
This.button4.TabIndex = 6;
This.button4.Text = "initialization";
TEXTBOX8//This.textBox8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; This.textBox8.ForeColor = System.Drawing.Color.FromArgb ((system.byte) (255)), ((System.Byte) (128)), ((System.Byte)
(0)));
This.textBox8.Location = new System.Drawing.Point (288, 312);
This.textBox8.Name = "TextBox8";
This.textBox8.Size = new System.Drawing.Size (136, 21);
This.textBox8.TabIndex = 7;
This.textBox8.Text = "";
LABEL7//this.label7.Location = new System.Drawing.Point (200, 320);
This.label7.Name = "Label7";This.label7.Size = new System.Drawing.Size (100, 16);
This.label7.TabIndex = 8;
This.label7.Text = "Set the local address:";
BUTTON5//This.button5.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
This.button5.Location = new System.Drawing.Point (440, 504);
This.button5.Name = "Button5";
This.button5.Size = new System.Drawing.Size (64, 23);
This.button5.TabIndex = 9;
This.button5.Text = "Close serial port";
This.button5.Click + = new System.EventHandler (This.button5_click); Form1//this.
AutoScaleBaseSize = new System.Drawing.Size (6, 14); This.
ClientSize = new System.Drawing.Size (512, 533); This.
Controls.Add (THIS.BUTTON5); This.
Controls.Add (THIS.TEXTBOX8); This.
Controls.Add (THIS.LABEL7); This.
Controls.Add (THIS.BUTTON4); This.
Controls.Add (This.groupbox1); This.
Controls.Add (This.button1); This.
Controls.Add (This.t_send); This.
Controls.Add (THIS.MSG); This.
Controls.Add (THIS.LABEL2); This.
Controls.Add (This.button3); This. Name= "Form1"; This.
Text = "Serial communication (small y design)"; This. Closing + = new System.ComponentModel.CancelEventHandler (this.
Form1_Closing); This. Load + = new System.EventHandler (this.
Form1_Load);
This.groupBox1.ResumeLayout (FALSE); This.
ResumeLayout (FALSE);
#endregion The main entry point for the///<summary>///application.
</summary> [STAThread] static void Main () {Application.Run (New Form1 ()); }//program open, serial initialization private void Form1_Load (object sender, System.EventArgs e) {mycom1.
Portnum=iport; Mycom1.
Baudrate=irate; Mycom1.
Bytesize=bsize; Mycom1.
parity=bparity; Mycom1.
Stopbits=bstopbits; Mycom1.
Readtimeout=itimeout; if (this. Opencom ()) Msg.
AppendText ("Serial port initialization successful ... \ r \ n"); Else Msg. AppendText ("Serial port initialization failed!")
\ r \ n ");
///Display package information public string Dis_package (byte[] reb) {string temp= "";
foreach (Byte b in Reb) temp+=b.tostring ("X2") + "";
return temp; //Open serial Port public bool Opencom () {try {if (mycom1). Opened) {mycom1. Close(); Mycom1. Open (); Open the serial port} else {mycom1.
Open ();//Turn on serial port true;
catch (Exception e) {MessageBox.Show ("error:" + e.message);
return false; }//Send button private void Button1_Click (object sender, System.EventArgs e) {if (t_send). text== "") {MessageBox.Show ("Send data is empty!)"
"); return;}
Byte[] Temp1=mysendb ();
int sendnumb=0; try {sendnumb=mycom1.
Write (TEMP1); Msg.
AppendText ("\ r \ n) send data (" +sendnumb+ "):" +dis_package (TEMP1)); Recb=mycom1.
Read (50); if (RECB. length!=0) Msg.
AppendText ("\ r \ n received packet:" +dis_package (RECB)); Catch {msg. AppendText ("\ r \ n Send failed!")
"); return;}
Opencom ();
//Remove the space in the Send array public string Delspace (String Putin) {string putout= ""; for (int i=0;i<putin.
length;i++) {if (putin[i]!= ') putout+=putin[i];
return putout; }//Extract packet public byte[] Mysendb () {string Temps=delspace (t_send.
Text);
Byte[] Tempb=new byte[50];
int j=0; for (int i=0;i<temps. length;i=i+2,j++) Tempb[j]=convert.tobyte (temps).
Substring (i,2), 16);
Byte[] Send=new byte[j];
Array.copy (TEMPB,SEND,J);
return send; }//Empty button private void Button3_Click (object sender, System.EventArgs e) {t_send. Text=string.
Empty; Msg. Text=string.
Empty; }//Parameter setting private void Button2_Click (object sender, System.EventArgs e) {mycom1. Portnum=convert.toint16 (T_port. Text); 1,2,3,4 mycom1. Baudrate=convert.toint16 (t_rate. Text); 1200,2400,4800,9600 mycom1. Bytesize=convert.tobyte (t_bytesize. text,10); 8 bits mycom1. Parity=convert.tobyte (t_parity. text,10); 0-4=no,odd,even,mark,space mycom1. Stopbits=convert.tobyte (T_stopbyte. text,10);
0,1,2 = 1, 1.5, 2//itimeout=3; if (this. Opencom ()) Msg.
AppendText ("Serial port initialization successful ... \ r \ n"); Else Msg. AppendText ("Serial port initialization failed!")
\ r \ n "); }//program shutdown, end serial port private void Form1_Closing (object sender, System.ComponentModel.CancelEventArgs e) {mycom1.
Close (); } private void ButtOn5_click (object sender, System.EventArgs e) {if (mycom1). Opened) {mycom1.
Close (); Button5.
text= "Open serial port"; Msg.
AppendText ("\ r \ n Serial port is closed ..."); else {mycom1.
Open (); Button5.
text= "Close serial port"; Msg.
AppendText ("\ r \ n Serial port successfully opened ..."); }
}
}
}
Note: The format of the packet sent is 16 data such as: The FA can have or without spaces in the middle, but to ensure that there are even digits.