yannick-server
Goto Top

Serielle Schnitstelle auslesen und in Textbox schreiben

Guten Abend zusammen,
ich würde gerne mit VB eine Serielle schnitstelle auslesen. In meinem Formular ist eine Textbox "Output", sie soll die Empfangen Daten immer anzeigen.
Das Passende Script habe ich schon auf der seite con MSDN gefunden, es funktioniert auch soweit.
Sobald die Software über die Serielle Schnittstelle Daten empfängt, kann ich sie mir über eine MsgBox anzeigen lassen,
nur das schreiben der Daten in die Textbox funktioniert einfach nicht.
Hier mal der Code:
Private Shared Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        Dim indata As String = _serialport.ReadLine()
        Form1.tb_output.AppendText(indata) //<-Das hier Funktioniert nicht
        MsgBox(indata) //<-Gibt mir die Daten aus
    End Sub
Ich hoffe jemand kennt die Lösung für dieses Problem.
Schonmal Danke.

schönen Abend & Gruß
Yannick

Content-Key: 177207

Url: https://administrator.de/contentid/177207

Printed on: April 25, 2024 at 15:04 o'clock

Member: yannick-server
yannick-server Dec 04, 2011 at 13:31:10 (UTC)
Goto Top
Hallo,
ich habe bereits weiter nach ein Lösung gesucht, aber es funktioniert einfach nicht.
Ich habe das Debugging angeworfen und eine Überwachung der Variable "indata" hinzugefügt. Ergebnis:
Die Variablenüberwachung zeigt für "indata" immer die richtigen Daten an, aber trotz dem landet nichts in der Textbox.
Keiner eine Idee wo der Fehler liegen könnte?

Gruß
Yannick
Member: yannick-server
yannick-server Dec 27, 2011 at 16:40:38 (UTC)
Goto Top
Suche immer noch nach einer Lösung.
Member: yannick-server
yannick-server Dec 29, 2011 at 09:44:57 (UTC)
Goto Top
Hi,
über ein anderes Forum bin ich auf die Lösung gekommen, ich möchte meine Lösung auch hier kundtun.

So funktioniert es:
Private Shared frm1 As Form1

    Public Shared Sub transfer(ByVal ff As frm_main)  ' ttt.transfer(Me) von Form1 aus aufrufen  
        frm1 = ff
    End Sub

    Private Shared Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        Dim indata As String = _serialport.ReadLine()
        frm1.tb_output.Text = indata & vbCrLf & frm1.tb_output.Text
    End Sub


Aus der Form1 muss klasse.transfer_form(Me) aufgerufen werden.

Gruß
Yannick