# Daten über SerialPort einlesen



## Otzelott (12. März 2007)

Hallo,

ich bin noch ein Frischling in Sachen VB. Meine Version ist VB 2005 Express Edition und möchte eine Windows Application erstellen, um Daten über den SerialPort vom yC einzulesen.

Hier ist mal mein Quellcode:

Public Class Form1
    Dim Port As New IO.Ports.SerialPort
    Dim Daten As Integer
    Dim Bytes As Integer
    Dim Status As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_auslesen.Click
        Status = Port.IsOpen
        If (Status = False) Then
            Port.Open()
        End If

        Bytes = Port.BytesToRead

        While (Bytes > 0)
            Daten = Port.ReadByte
            TB_auslesen.Text = Daten
            Bytes = Port.BytesToRead
            TB_Bytes.Text = Bytes
        End While
    End Sub
End Class


Ich will am Anfang nur mal regelmäßig die Werte einlesen und über eine TextBox ausgeben. Nur leider funktioniert es wie oben programmiert nicht. Er gibt nur Werte aus wenn ich auf den Auslesen-Button drücke.

Welche Möglichkeiten habe ich um ständig Werte einzulesen?  

Danke schonmal führ eure Mühe.  

Gruß


----------



## Jacka (12. März 2007)

Hallöchen und Willkommen!

Als erstes möchte ich sagen, dass dieses Forum für VB bis Version 6 gedacht ist.
Visual Basic 2005 basiert auf dem .NET-Framework und Fragen dazu gehören in das .NET Forum.  

Aber ich antworte mal trotzdem:
Wenn du regelmäßig die Daten auslesen möchtest, würde ich einen Timer benutzen.

```
Public Class Form1
Dim Port As New IO.Ports.SerialPort
Dim Daten As Integer
Dim Bytes As Integer
Dim Status As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 10000  ' 10 Sekunden
        Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Status = Port.IsOpen
If (Status = False) Then
  Port.Open()
End If

Bytes = Port.BytesToRead

While (Bytes > 0)
  Daten = Port.ReadByte
  TB_auslesen.Text = Daten
  Bytes = Port.BytesToRead
  TB_Bytes.Text = Bytes
End While

End Sub

End Class
```

In diesem Fall würde er jetzt alle 10 Sekunden die Werte auslesen.

Viele Grüße,
Jacka


----------



## Otzelott (12. März 2007)

WOW das gin ja schnell, vielen Dank. Werd ich gleich mal ausprobieren.

Und sry wegen dem Thread im falschen Forum. Dachte es gehört hier rein


----------

