Gast
#1712239
Hallo allerseits,
ich möchte mit einem VB.2008 fünf Mal in der Sekunde Zeichen von der
seriellen Schnittstelle holen. Auf diese Art sollen Messwerte von einem
ATMega16 dargestellt werden.
Ich komme aber mit der Fehlerbehandlung nicht klar. Hier mal ein
Codeschnipsel:
'********+*********+*********+*********+*********+*********+
' holt alle 200msec Zeichen von der seriellen Schnittstelle
' und zeigt diese in einem Fenster an
'********+*********+*********+*********+*********+*********+
Private Sub tmrComPortEmpfang_Tick(ByVal sender As Object, ByVal e
As System.EventArgs) Handles tmrComPortEmpfang.Tick
' für die Dauer der Ausgabe den Timer stoppen
tmrComPortEmpfang.Stop()
Try
' dann den Inhalt Zeichen für Zeichen vom Port holen
While (CommPort.Read(1) <> -1)
' und im Fenster ausgeben
SchreibetxtEmpfang(Chr(CommPort.InputStream(0)))
End While
' wenn kein Zeichen vorhanden ist, erscheint die
' Fehlermeldung 'Read Error: Timeout error
' bei diesem Fehler nichts tun
Catch Fehler As TimeoutException
Exit Try
Catch Fehler As Exception
' bei allen anderen Fehlern die Fehlermeldung ausgeben
SchreibetxtDebug1(Fehler.Message, True)
End Try
' und dann den Timer wieder starten
tmrComPortEmpfang.Start()
End Sub
Wenn als Fehler auftritt, dass keine Zeichen vorhanden sind, muss nichts
weiter passieren. Diesen Fall wollte ich mit Catch Fehler as
TimeourException abfangen. Sollten aber andere Fehler auftreten, wollte
ich eine Meldung ausgeben.
Nur das Abfangen des Fehler funktioniert nicht! Ich erhalte bei jedem
Aufruf die Meldung 'Read Error: Timeout error'. Oder ist das gar keine
TimeoutException? Aber wie kann ich dann den Fall das kein Zeichen
vorhanden ist weiterlaufen lassen, in allen anderen Fällen aber eine
Meldung ausgeben?
Hätte jemand einen Tipp für mich?
Vielen Dank
Bot-Builder