2010-12-15 3 views
3

Ich benutze JavaComm und bekomme den InputStream vom seriellen Port-Objekt. Ich habe ein Problem darin, dass manchmal, wenn das System hochfährt, Störzeichen im Puffer sind, die ich nicht will. Ich möchte den seriellen Port initialisieren und dann irgendwie die Eingabe aller Daten spülen, bevor ich mit meiner Verarbeitung beginne.Wie spült man einen seriellen Java InputStream?

Gibt es eine Möglichkeit, das zu tun?

TY Fred

Antwort

5

Wie würde ein "flush()" Methode wissen, was Müll ist und was reale Daten? Nur Sie wissen, und Ihr Programm sollte bereit sein, führenden Müll zu ignorieren.

EDIT: Wenn Sie absolut sicher sein können, dass alle Daten im Eingabepuffer vor dem Senden der Anfrage Müll sind, dann lesen Sie einfach, bis keine Eingabedaten mehr vorhanden sind - also spülen Sie sie selbst.

+0

Ich habe ein bestimmtes Gerät, das mir nur eine Antwort nach einer Anfrage senden wird. Ich könnte also vor dem Senden der ersten Anfrage spülen, wodurch garantiert wird, dass der Puffer zunächst leer ist - denke ich. –

+0

Bedeutet das, dass Sie diese Antwort akzeptieren? –

+0

Die InputStream-Basisklasse scheint jedoch keine Flush-Methode zu haben. –

2

Bevor Sie Anfragen an Ihr Gerät senden, lesen Sie alles, was Sie können. Sobald nichts mehr zu lesen ist, können Sie mit dem Senden von Anfragen beginnen.