Forum: PC-Programmierung VB.Net RS232 Receive Flag


von Sebastian (Gast)


Lesenswert?

Hallo,

ich würde gerne meine PC-RS232-Software perfektionieren. Aber ich komme 
an folgender Stelle nicht wirklich weiter.

Mein Atmelaufbau versendet asynchron Strings über die RS232. Meine PC 
Software soll diese Strings auf einem Logfenster darstellen.

Meine Strategie ist momentan das ich alle 50ms den PC-RX-Buffer auslese 
ob er Daten enthält oder nicht.

Aber genau hier ist auch das Problem. Ich finde in VB.Net keine elegante 
Möglichkeit diesen Rx-Buffer auf Inhalt zu überprüfen. Momentan rufe ich 
die Read-Funkion mit Timeout-Überwachung auf. Ist kein Inhalt im 
RX-Buffer dann wird eine Exception geworfen die ich auffange...

Funktioniert zwar, ist aber total bescheuert.

Kann mann nicht irgenwie vor dem RX-Buffer lesen, die Anzahl der Daten 
im RX-Buffer auslesen. Anzahl == 0 dann nicht lesen. Anzahl != 0 lesen. 
Das muss doch irgendwie gehen.

Vielen Dank schon mal,
Sebastian

von Christian R. (supachris)


Lesenswert?

Gibts denn unter VB keine Threads, die nach sowas "im Hintergrund" 
schauen können? Und dann halt eine Message an das Hauptprogramm 
schicken. So mach ich das zumindest in VC++, mit der SerialPort Klasse 
von CodeGuru.

von Wolfram (Gast)


Lesenswert?

>Funktioniert zwar, ist aber total bescheuert.
stimmt das ist es, besonders da das Objekt die Anzahl liefert, man müßte 
halt nur mal in der MSDN nachlesen.

http://msdn2.microsoft.com/de-de/library/system.io.ports.serialport_members(VS.80).aspx

von Sebastian (Gast)


Lesenswert?

Man darf ja auch mal Betriebsblind sein... ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.