我正在使用 Windows 应用程序表单从串行端口接收数据。在表格内我可以提出SerialportDataReceived
事件。但我想要的是把串口事件放在一个单独的类中,并将数据返回到表单中。
这是包含eventhandler
串行端口接收数据的类:
class SerialPortEvent
{
public void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
SerialPort sp = new SerialPort();
//no. of data at the port
int ByteToRead = sp.BytesToRead;
//create array to store buffer data
byte[] inputData = new byte[ByteToRead];
//read the data and store
sp.Read(inputData, 0, ByteToRead);
}
catch (SystemException ex)
{
MessageBox.Show(ex.Message, "Data Received Event");
}
}
}
收到数据时如何将此类链接到表单?我必须在主程序或表单本身中提出事件吗?
我现在调用的方式主要如下:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
SerialPort mySerialPort = new SerialPort("COM81");
SerialPortEvent ReceivedData = new SerialPortEvent();
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(ReceivedData.mySerialPort_DataReceived);
myserialPort.open();
}
在串口接收事件中没有收到任何内容。
有什么我做错了吗?