Daten über RS-232 Schnittstelle empfangen VB .net 2005

24/11/2007 - 14:02 von Jörn Janz | Report spam
Hallo NG,

ich möchte über eine RS-232 Schnittstelle Daten empfangen.
Die Anwendung soll im Hintergrund die Schnittstelle überwachen und die
eingelesenden
Daten in einer Variable speicher und dann weiterverarbeiten.
Ich arbeite das erste mal mit der RS-232 Schnittstelle und das Thema
Multithreading
ist leider auch neu für mich.

Ich habe ein ganz gutes Beispiel gefunden und verstehe die
Funktionen / den Ablauf leider noch
nicht. Die Daten werden mit meinem kleinen Testprogramm empfangen und
in der Textbox dargestellt.
Das Programm reagiert leider nach dem ersten einlesen nicht mehr
(Programm làsst sich nicht beenden / Button und Textbox können nicht
angeklickt werden). Nur ein weiteres einlesen über die RS-232
funktioniert noch.

Habt Ihr einen Tip für mich?

Schon mal vielen Dank für Eure Hilfe.

Gruß - Jörn

http://www.vbforums.com/showthread.php?t@2916/msdn/library/net/vbnet/SerielleSchnittstelleMitVBNETAnsprechen.mspx?mfr=true

Imports System.IO.Ports
Public Class Form1
Dim WithEvents com1 As New SerialPort

Private Sub btnBarcodeLesenStarten_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnBarcodeLesenStarten.Click

Try

With com1
.PortName = Me.txtComPort.Text
.BaudRate = 9600
.Parity = Parity.None
.DataBits = 8
.StopBits = StopBits.One
.RtsEnable = True
.DtrEnable = True
.Handshake = Handshake.None

End With
com1.Open()
Catch ex As Exception
MsgBox(ex.ToString)
End Try

End Sub

Sub ReceiveSerialData(ByVal msg As String)

' Receive strings from a serial port.

CheckForIllegalCrossThreadCalls = False
TextBox1.Text &= msg & vbCrLf
Dim Receive As String
Receive &= msg & vbCrLf
'Me.lblBarcodedaten.Items.Add(Receive)
'MessageBox.Show("ReceiveSerialData")

End Sub
'add this

Public Delegate Sub rxDataDelegate()

'modify this

Private Sub com1_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles com1.DataReceived

TextBox1.Invoke(New rxDataDelegate(AddressOf
ReceiveSerialData), New Object() {})

End Sub

'change this

Private Sub ReceiveSerialData()

TextBox1.AppendText(com1.ReadLine)

End Sub

End Class
 

Lesen sie die antworten

#1 Peter Götz
24/11/2007 - 16:37 | Warnen spam
Hallo Jörn,

ich möchte über eine RS-232 Schnittstelle Daten
empfangen.


Die Anwendung soll im Hintergrund die Schnittstelle
überwachen und ...



Schau Dir mal

www.gssg.de -> Visual Basic -> VB.net
-> Serial Port (RS232) Chat

an. Dieses Beispiel sollte reichlich Denkanstösse geben.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen