vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Lösung Kommunikation über RS232 Problem Teil1 
Autor: Ellen++
Datum: 15.11.09 11:41

Hallo Basti,
Dein Programm funktioniert jetzt.
Die Routinen Form_load, Dataeceived und showtext.
In meiner Entwicklungsumgebung kommen Daten an und werden in der Textbox angezeigt.
Mit dem Schlüsselwort Me bist Du noch nicht vertraut. Ich habe alles gelöscht.
Aber das war nicht der Fehler. Einen modifier geändert von privat auf friend und
mit ReadAnything hast Du Dich vertan.
Dann habe ich noch einige Vorschläge einfliessen lassen.

Weiteres Vorgehen: Nimm HTerm schliesse die Maschine an und guck was da wirklich
für Telegramme laufen.

Ich wünsche Dir weiter frohes Schaffen und gutes gelingen.

Ich fand es interessant, wie die anderen das machen. Mit delegat hab ich noch
nicht gearbeitet.

Public Class Form1
' ------------------------------------------------------------
' Programmschnipsel von Basti
' Änderungen Ellen Ramcke 2009
' empfängt ein Telegramm vom uP bestehend aus Ascci Zeichen
' welches mit einem 0x0D (CR) abgeschlossen ist.
' Der String wird in eine Textbox visualisiert.
' Zur korrekten Funktion muss noch eine Windows Form erzeugt werden
' mit einer Textbox Name: Textbox3
' getestet IO
' ------------------------------------------------------------
 
' Das Delegat muss die selbe Signature haben
Delegate Sub TextBoxCallback(ByVal text As String)
'TODO modifier in friend geändert. Soll für das Assembly gültig sein
Friend WithEvents myComPort As IO.Ports.SerialPort
'TODO Du willst doch keine 2te Instanz SerialPort1 erzeugen??
'Friend WithEvents SerialPort1 As System.IO.Ports.SerialPort
Public Event DataReceived As IO.Ports.SerialDataReceivedEventHandler
Public Event ErrorReceived As IO.Ports.SerialErrorReceivedEventHandler
 
'Private EndOfCommand As String = Constants.vbCrLf.ToString
 
Private Sub Form3_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
 
 
' Mal nachschauen, ob es hier SerialPorts gibt
Dim str() As String = IO.Ports.SerialPort.GetPortNames()
'### -------------------------------------------------------------------
' ich empfehle alle Ports in eine Combobox einzutragen
' gibt die verfügbaren COM Ports zurück und stellt diese in die Combobox
'Dim Portnames As String() = System.IO.Ports.SerialPort.GetPortNames
'Dim b As Object = Portnames
'ComboBox_port.Items.Clear()
'ComboBox_port.Items.AddRange(b)
' Verwendung dann so : .PortName = ComboBox_port.Text
'----------------------------------------------------------------------
' --
' Wenn nein, dann beenden:
If str.Length = 0 Then
MsgBox("Kein Gerät angeschlossen!", MsgBoxStyle.Critical)
Me.Close()
End If
'### ich würde erst beenden, wenn das open fehlschlägt siehe unten
 
 
' Eine Instance von SerialPort erstellen
' Im Normalfall ist das COM1:
myComPort = New IO.Ports.SerialPort
With myComPort
' Die folgenden vier Einstellungen müssen denen der
' Gegenstelle entsprechen
.PortName = "COM2"
.BaudRate = 9600
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Parity = IO.Ports.Parity.None
.Encoding = System.Text.Encoding.GetEncoding(1252)
.Handshake = IO.Ports.Handshake.None
.RtsEnable = False
'.ReceivedBytesThreshold = 1
' Telegramm von UP mit CR als Terminierungszeichen im ReadLine()
.NewLine = vbCr
' Wichtig! Hier wird eingestellt nach wieviel Bytes im
' Eingangspuffer
' das DataReceived Event gefeuert wird
.ReceivedBytesThreshold = 1
End With
' Und nun öffnen wir den Port
' ### besser mit Try ... catch ex as exception ... end try arbeiten
'beim Port öffnen kann viel passieren. Aber das wirst Du schon noch
' sehen
myComPort.Open()
'TODO Abfrage ob der Port geöffnet ist
'Bei allen weiteren Aktionen (Send, Read) immer vorher abfragen: if
' comopen then ....
'sonst läufst Du eventuell auf einen Ausnahmefehler
Dim comOpen As Boolean = myComPort.IsOpen
End Sub

mfg
Ellen

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Kommunikation über RS232 Problem6.294basti198509.11.09 15:46
Re: Kommunikation über RS232 Problem4.43413uro09.11.09 16:13
Re: Kommunikation über RS232 Problem4.269basti198509.11.09 16:19
Re: Kommunikation über RS232 Problem4.288frank196409.11.09 18:25
Re: Kommunikation über RS232 Problem4.305basti198509.11.09 18:48
Re: Kommunikation über RS232 Problem4.355frank196409.11.09 20:10
Re: Kommunikation über RS232 Problem4.187basti198509.11.09 22:15
Re: Kommunikation über RS232 Problem4.540basti198510.11.09 07:04
Re: Kommunikation über RS232 Problem4.140basti198510.11.09 10:57
Re: Kommunikation über RS232 Problem4.353frank196410.11.09 11:58
Re: Kommunikation über RS232 Problem4.389basti198510.11.09 15:34
Re: Kommunikation über RS232 Problem4.135frank196410.11.09 19:13
Re: Kommunikation über RS232 Problem4.445basti198510.11.09 19:39
Re: Kommunikation über RS232 Problem4.129frank196410.11.09 20:42
Re: Kommunikation über RS232 Problem4.223basti198510.11.09 20:49
Re: Kommunikation über RS232 Problem4.139Ellen++11.11.09 14:43
Re: Kommunikation über RS232 Problem4.245Ellen++11.11.09 18:26
Re: Kommunikation über RS232 Problem4.291basti198514.11.09 17:48
Re: Kommunikation über RS232 Problem4.144Ellen++14.11.09 18:11
Re: Kommunikation über RS232 Problem4.188basti198514.11.09 19:28
Re: Kommunikation über RS232 Problem4.187Ellen++14.11.09 21:27
Re: Kommunikation über RS232 Problem4.283basti198517.11.09 08:58
Re: Kommunikation über RS232 Problem4.172Ellen++17.11.09 18:33
Re: Lösung Kommunikation über RS232 Problem Teil14.478Ellen++15.11.09 11:41
Re: Lösung Kommunikation über RS232 Problem Teil24.219Ellen++15.11.09 11:44
Re: Lösung Kommunikation über RS232 Problem Teil24.171basti198515.11.09 12:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel