создать прерывание для ожидания поступления данных через последовательный порт.проблема в том, что когда приходит много кадров, прерывания, конечно, не заканчивают выполнение подготовленного для них кода.Как я могу это исправить?либо блокировать будущие прерывания, пока первый не завершит прием кадров, другим способом.
public class port{
static int cont=0;
public port()
{
entryPort.BaudRate = 9600;
entryPort.DataBits = 8;
entryPort.Parity = Parity.None;
entryPort.StopBits = StopBits.One;
entryPort.Handshake = Handshake.None;
entryPort.PortName = "COM3";
entryPort.DataReceived += new SerialDataReceivedEventHandler(dataIn);
puertoEntrada.Open();
}
private static void llegaronDatos(object
sender,SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
console.write(cont);
cont++;
console.write("data:");
Console.Write(indata);
}
}
входные кадры: "$$$" четыре раза
выход: $$$ $$$ $$$ $$$
Как видите, некоторые инструкции пропускаются, например, печать "data:"