如何检查和忽略来自串口的消息
本文关键字:串口 消息 检查和 | 更新日期: 2023-09-27 18:06:24
我想忽略所有消息来到串行端口除了唯一的。我将每条消息添加到hashSet中,当新消息到达时,我检查此消息是否包含在hashSet中,如果此消息不包含我想打印他,现在我的程序认为到达的每条消息都是唯一的,我不明白为什么我的比较代码不工作,也许有人可以帮助我。下面是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace mySniffer
{
class Program
{
static void Main(string[] args)
{
HashSet<String> messages = new HashSet<String>();
SerialPort comPort = new SerialPort();
comPort.BaudRate = 115200;
comPort.PortName = "COM4";
comPort.Open();
while (true)
{
string rx = comPort.ReadLine(); //reading com port
messages.Add(rx); // Add new incoming message to hashSet
if (!messages.Contains(rx))
{
Console.WriteLine(rx); // write incoming message
}
else {
Console.WriteLine(messages.Count); // check how many messages in hashSet
}
}
}
}
}
问题出在代码逻辑上,messages.Add(rx);
应该移动到if
块中