<pre>public partial class Form1 : Form
{
Communication comm;
Int32 count = 0;
public Form1()
{
InitializeComponent();
comm = Communication.Instance();
comm.Communication_Set(9600, 8);
comboBox1.Items.Clear();
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing);
foreach (string selCOM in comm.selectCOM())
{
comboBox1.Items.Add(selCOM);
}
comboBox1.Sorted = true;
label1.Text = "";
}
private void openCOM_Click(object sender, EventArgs e)
{
try
{
label1.Text = comm.openCOM(comboBox1.Items[comboBox1.SelectedIndex].ToString());
}
catch
{
label1.Text = "First select COM port!";
}
}
private void closeCOM_Click(object sender, EventArgs e)
{
label1.Text = comm.CloseCOM();
}
private void sendData_Click(object sender, EventArgs e)
{
if (textBox1.Text != string.Empty)
{
string hexString = textBox1.Text;
byte[] rxByte = new byte[1];
if (!comm.serialWrite(stringToHEX(hexString), 0, stringToHEX(hexString).Length))
{
label1.Text = "Cannot send data!Try to open COM port first!";
return;
}
Thread.Sleep(50);
while (comm.serialBytesToRead() > 0)
{
rxByte[0] = comm.serialRead();
textBox2.Text += ByteToHex(rxByte).ToString();
}
}
}
private void Clear_Click(object sender, EventArgs e)
{
textBox2.Text = string.Empty;
}
private string ByteToHex(byte[] data)
{
StringBuilder sb = new StringBuilder(data.Length * 3);
foreach (byte b in data)
sb.Append(Convert.ToString(b, 16).PadRight(3, ' '));
return sb.ToString().ToUpper();
}
public byte[] stringToHEX(string s)
{
char[] splitter = {};
string[] splitS = s.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
byte[] buff = new byte[splitS.Length];
for (int i = 0; i < splitS.Length; i++)
{
try
{
buff[i] = Convert.ToByte(splitS[i], 16);
}
catch
{
}
}
return buff;
}
private void Form_Closing(object sender, FormClosingEventArgs e)
{
if (comm.serialIsOpen()) comm.CloseCOM();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
string data = textBox2.Text;
string[] words = data.Split(' ');
if (words[0].Equals("FF"))
{
panel1.BackColor = Color.Green;
}
else
{
panel1.BackColor = Color.Red;
}
if (words[1].Equals("A1"))
{
panel2.BackColor = Color.Green;
}
else
{
panel2.BackColor = Color.Red;
}
if (words[2].Equals("00"))
{
panel3.BackColor = Color.Green;
}
else
{
panel3.BackColor = Color.Red;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
sendData.PerformClick();
}
private void timer2_Tick(object sender, EventArgs e)
{
Clear.PerformClick();
}