using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.IO.Ports;
using System.Windows.Forms;
namespace WindowsApplication6
{
public partial class Form1 : Form
{
public delegate void HandleInterfaceUpdateDelegate(string text);
private HandleInterfaceUpdateDelegate interfaceUpdateHandle;
public Form1()
{
InitializeComponent();
}
private void UpdateLabel(string text)
{
this.RevBox.Text = text;
}
private void Form1_Load(object sender, EventArgs e)
{
serialPort.BaudRate = 9600;
serialPort.PortName = "COM1";
if (!serialPort.IsOpen)
{
serialPort.Close();
serialPort.Open();
}
interfaceUpdateHandle = new HandleInterfaceUpdateDelegate(UpdateLabel);
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
serialPort.ReceivedBytesThreshold = 1;
}
private void SenBut_Click(object sender, EventArgs e)
{
serialPort.Write(this.SenBox.Text);
MessageBox.Show("数据发送成功", "系统提示");
}
private void RevBut_Click(object sender, EventArgs e)
{
MessageBox.Show("数据接收完毕", "系统提示");
}
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);
byte[] readBuffer = new byte[serialPort.ReadBufferSize];
serialPort.Read(readBuffer, 0, readBuffer.Length);
this.Invoke(interfaceUpdateHandle, new string[] { Encoding.UTF8.GetString(readBuffer) });
}
}
}