прервать чтение данных с COM порта
Считываю информацию со смарт карты при помощи картридера Arduino Uno в среде VisualStudio на C#.
Первый момент: мне нужен только UID карты, вся остальная информация лишняя. Вопрос в том, как мне прервать чтение данных, как только я получаю UID? Пробовала закрывать порт, а потом открывать снова, но он продолжает чтение на том моменте, где остановился перед закрытием.
Второй момент: чтобы считыватель начал читать карту снова, мне приходится её убирать, а затем опять прикладывать. Есть ли способ сделать так, чтобы можно было читать карту, если она просто постоянно лежит на считывателе? Например, каждые 10 сек возобновлять чтение заново и проверять UID лежащей карты. Спасибо. Мой код работы с портом:
private SerialPortProgram()
{
port.PortName = "COM6";
port.BaudRate = 9600;
port.Open();
port.Open();
while (true)
{
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
if (find)
{
if (reading == cardnumber)
{
Console.WriteLine("omagad it works");
LockWorkStation();
}
else
{
Console.WriteLine("wrong card");
}
find = false;
}
}
}
private void port_DataReceived(object sender,
SerialDataReceivedEventArgs e)
{
reading = port.ReadLine();
if (reading.Contains(check))
{
reading = reading.Replace(check, "");
reading = reading.Substring(0, 11);
Console.WriteLine(reading);
}
Console.WriteLine(reading);
}