3 Stimmen

Sehr einfache VB.Net & Serial IO Problem

Nach einigem Suchen habe ich immer noch Probleme mit dem Lesen von Daten von einer seriellen Schnittstelle in VB.Net/VS2010. Ich weiß, dass die serielle Schnittstelle funktioniert, ich kann auf die Schnittstelle schreiben, aber wenn ich von ihr lese, passiert nichts. Ich programmiere erst seit 3 Wochen, also versuche ich immer noch, mich zurechtzufinden.

Das Programm muss laufen, um Daten von einem Türlogger zu erfassen, ich werde dann die Daten in eine Datenbank ausgeben (noch nicht implementiert - ich möchte diesen Teil zuerst sortiert bekommen). Ich habe versucht, mehrere Terminalprogramme sowie ein anderes Gerät zu verwenden, das Daten auf der seriellen Leitung ausgibt, wobei im Textfeld nichts angezeigt wird tbxIn .

Für jede Hilfe wären wir Ihnen sehr dankbar.

Der Code steht unten:

Imports System.IO.Ports
Imports System.IO.Ports.SerialPort

Public Class Form1

Dim comPort As IO.Ports.SerialPort = Nothing
Dim sComPort As String = ""
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    GetSerialPortNames()
End Sub

Sub GetSerialPortNames()
    ' Show all available COM ports.
    For Each sp As String In My.Computer.Ports.SerialPortNames
        lstPorts.Items.Add(sp)
    Next
End Sub

Private Sub lstPorts_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstPorts.SelectedIndexChanged
    sComPort = lstPorts.SelectedItem
    Button1.Enabled = True
End Sub

Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Open the serial port using the OpenSerialPort method
    Button1.Enabled = False
    Button2.Enabled = True

    Try
        comPort = My.Computer.Ports.OpenSerialPort(sComPort, 9600, IO.Ports.Parity.None, 8, 1)
        ' comPort.DtrEnable = True
        comPort.ReadTimeout = 500
        Do
            comPort.WriteLine("Go")
            Dim sIncomming As String = comPort.ReadLine()

            tbxIn.Text = sIncomming & vbCrLf
        Loop
    Catch ex As TimeoutException
        tbxIn.Text &= "Error: Serial Port Read Timeout" & vbCrLf
    End Try

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    comPort.Close()
    Button1.Enabled = True
    Button2.Enabled = False
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    tbxIn.Text = e.ToString
End Sub
End Class

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X