限制事件处理程序

时间:2015-01-07 19:12:54

标签: c# winforms serial-port port eventhandler

道歉,如果我的' lingo'没有意义......我对这个和编码很新!

我正在开展一个涉及RFID阅读器和蓝牙模块与C#窗体通信的项目。

com端口事件处理程序连续发送RFID标记的唯一ID。它有没有办法只发送一次?

程序是否有办法只接收一次ID,因此可以处理;而不是多次收到身份证。

提前致谢! :)

到目前为止我的代码如下。

我从其他地方打开串口

private void port_DataRecieved(object sender, System.IO.Ports.SerialDataRecievedEventArgs e) 
{
    string data = serialPort.ReadExisting(); // read what came from the RFID reader

    if (data.Length > 9) // check if the string if bigger than 9 characters
    {
        CODE = data.Substring(0, 9); // if string is bigger than 9 characters trim the ending characters until it is only 9 long
    }
    else
    {
        CODE = data; // if less that 9 characters use however many it gets
    }
}  

1 个答案:

答案 0 :(得分:-1)

不要使用ReadExisting。而是检查是否还有9个字节。

如果没有,请立即返回。

如果是,请只读9并留下其他人参加下一次活动。

你可能也应该有一些重新同步逻辑。

此外,收到的数据需要是byte[],而不是字符串。 Microsoft提供的串口类总是会导致人们使用错误的方法。