WerteVerluste bei SerialPort einlesesn

Gast #1874403
Lesenswert?

Hallo Leute,

Vor geraumer Zeit hab ich angefangen ein SerielPort Terminal zu 
programmieren, um Werte einzulesesn die von einem µC gesendet werden.

Ich hab bei C# einen Backgroundworker aktiviert der mir Anhand einer 
Schleife, permanent Werte einliest. Zum Test schickt mir der µC werte 
die duch eine schleife generiert werden(1,2,3,4... als strings usw) Doch 
beim Ausgeben aus den Backgroundworker mittels Invoke and die GUI geht 
alle 6 strings, 1 string verloren.

Zum Test hab ich es ohne Backgroundworker auch versucht (programm hängt 
zwar), jedoch liest er alle Werte ein. Das heist keines der Strings geht 
verloren.

Hat vielleicht jemand eine Ahnung warum immer 1 String verloren geht, 
könnte es an dem Invoke liegen?, bzw gibt es Alternativen?,

Danke!!

Als Anhang hab ich das C# Coding zugehängt
Angehängte Dateien:
#1874565
Lesenswert?

Meines Wissens nach gibt die serielle Schnittstelle auch ein Event 
heraus, mit dem du den Datenempfang lösen könntest.

Im Event Daten auslesen, in eine Liste schreiben und wenn ein erwartetet 
String komplett in der Liste steht, eigenen Event auslösen, wäre ne 
Möglichkeit.
Gast #1874574
Lesenswert?

das problem ist doch das invoke blockiert und wenn dei Gui keine Zeit 
hat, läuft der Puffer über.

Du musst die Daten in einen eignen Puffer schreiben und der gui nur ein 
event asynchron schicken das jetzt neue daten vorhanden sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren