Gast
#2691697
Hallo Forum!
Ich habe ein kleines Problem wo ich nicht weiss wie ich das Lösen soll.
Eine I/O Platine (Atmega88) sendet nach einer Anfrage vom PC die
Zuständer aller I/Os zurück. Das funktioniert sehr gut, aber ! Wenn ich
das lange zeit laufen lass (über nacht) dann hängt sich das c# prog auf!
Ich baue mir einen String aus allen bytestoread zusammen und wenn ein
return (0x0D) kommt dann ist der string fertig.
C# schreibt den Fehler: BytesToRead buffer ist voll
Ein Fehler vom Atmel ist ausgeschlossen! Es liegt am C#
buffer auslesen und in einen String schreiben:
private void
ser_int(objectsender,System.IO.Ports.SerialDataReceivedEventArgs e)
{
byte[] buffer = new byte[this.serialPort1.BytesToRead];
this.serialPort1.Read(buffer, 0,
this.serialPort1.BytesToRead);
for (int i = 0; i < buffer.Length; i++)
{
if (buffer[i] == 0x0D) input_ok = true;
tempstring += ((char)buffer[i]); // tempstring globale
Variable
}
}
Danke!