Я работаю над приложением serialport. И я не могу правильно получать данные. Я использую ReadExisting() для чтения следующих данных. .NET serial-ports - получение отсутствующих данных
и вот мой код. Пожалуйста, совет, каков правильный способ получения данных, и что, если я хочу проверить длину каждого сообщения и действительность формата.
public void serialport_connect(String port, int baudrate, Parity parity, int databits, StopBits stopbits)
{
DateTime dt = DateTime.Now;
String dtn = dt.ToShortTimeString();
sport = new System.IO.Ports.SerialPort(port, baudrate, parity, databits, stopbits);
try
{
sport.Open();
status.AppendText("[" + dtn + "] " + "Connected\n");
sport.DataReceived += new SerialDataReceivedEventHandler(sport_DataReceived);
}
catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error"); }
}
private void sport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
DateTime dt = DateTime.Now;
String dtn = dt.ToShortTimeString();
String comingData = sport.ReadExisting();
if (comingData != String.Empty)
{
Dispatcher.Invoke(new Action(() =>
{
current.AppendText("[" + dtn + "] " + "Received: " + sport.ReadExisting() + "\n");
}));
}
}
Thank you.