Witam
Na com pojawia mi się 20 bajtów co jakiś czas. Każdy bajt zawiera ciąg znaków kończocy się \r\n
Potrzebuję opracować odczyt do bufora.
Zacząłem kodować ale to moja pierwsza przygoda z serialPort.
Byte[] bTab = new Byte[20];
delegate void SetTextCallback(string text);
w zdarzeniu
port_DataReceived_1
private void port_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
{
port.Read(bTab, 0, (int)bTab.Length);
SetText(System.Text.Encoding.Unicode.GetString(bTab));
}
private void SetText(string text)
{
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else { this.txtIn.Text += text; }
}
jeśli tak to realizuję w kontrolce pojawiają się śmieci - na pewno nie to co zwraca com.
bo jeśli zdefiniuję sobie
string InputData = String.Empty;
oraz zamienię
port.Read(bTab, 0, (int)bTab.Length);
SetText(System.Text.Encoding.Unicode.GetString(bTab));
na
InputData = port.ReadLine();
SetText(InputData)
to w kontrolce pojawiają się prawidłowe odczyty - jednak nie w paczkach po 20 a przypadkowo.
Reasumując - potrzebuję aby apl. czekała aż bufor wypełni się danymi i dopiero wtedy go przekazywała dalej do parsowania.