Ранее я читал данные NMEA из GPS через последовательный порт, используя C #. Сейчас я делаю нечто подобное, но вместо GPS из серийника. Я пытаюсь прочитать Заявление KISS от TNC. Я использую этот обработчик событий.
comport.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
Вот port_DataReceived.
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string data = comport.ReadExisting();
sBuffer = data;
try
{
this.Invoke(new EventHandler(delegate { ProcessBuffer(sBuffer); }));
}
catch { }
}
У меня проблема в том, что метод вызывается несколько раз за оператор. Таким образом, метод ProcessBuffer вызывается только с частичным определением. Как я могу прочитать все заявление?