vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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 - Fortgeschrittene
Wie auf Antwort der Seriellen Verbindung warten? 
Autor: tunguskar
Datum: 09.07.09 15:37

Ich habe eine Klasse für die Serielle Kommunikation. Der zu schreibende Befehl wird einfach mit write_serial_port_eine_antwort(byval text as string) als string gesendet. Mein Problem ist dass wenn ich in dieser Funktion den String sende will ich auf die Antwort warten. Habe es schon mit WaitOne etc. Probiert, komme aber auf keinen grünen Zweig. Ich hoffe es kann mir jemand helfen.

 Public Class Klasse_Serielle_Verbindung
        'Zwei Variablen für eine bzw. Zwei Antworten
        Private WithEvents Serial_Port_COM1_Eine_Antwort As New _
          System.IO.Ports.SerialPort
        'Ruft Datenauswertung auf 
        Delegate Sub ShowRDataCallback_Eine_Antwort(ByVal Text As String)
Private Function open_serial_port(ByRef serial_port As _
  System.IO.Ports.SerialPort) As Boolean
            Try
                serial_port.Open()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            Return serial_port.IsOpen
        End Function
'****************************Serial Port Schreiben*********************
        Public Function write_serial_port_eine_antwort(ByVal text As String) As _
          Boolean
            If open_serial_port(Serial_Port_COM1_Eine_Antwort) Then
                ' löschender Ein- und Ausgangspuffer
                Serial_Port_COM1_Eine_Antwort.DiscardInBuffer()
                Serial_Port_COM1_Eine_Antwort.DiscardOutBuffer()
                text += Chr(13) + Chr(10)
                Try
                    Serial_Port_COM1_Eine_Antwort.Write(text)
Genau an dieser Stelle möchte ich auf die Antwort des Empfängers warten. Weiss einer wie ich dies bewerkstelligen kann? (Unten kommt noch der datareceived event handler, welcher auch funktioniert)

Return True
                    Exit Function
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
        End Function
'****************************Eine Antwort lesen************************
        Private Sub get_serial_data_handler_Eine_Antwort(ByVal sender As _
          Object, _
                                                         ByVal e As _
                                                         System.IO.Ports.Serial_
                                                         DataReceivedEventArgs) _
                                                         Handles _
                                                         Serial_Port_COM1_Eine__
                                                         Antwort.DataReceived
            Select Case e.EventType
                Case IO.Ports.SerialData.Chars
                    Dim strBuffer As String
                    Dim MyDelegate As New ShowRDataCallback_Eine_Antwort( _
                      AddressOf serielle_daten_auswerten_Eine_Antwort)
 
                    strBuffer = Serial_Port_COM1_Eine_Antwort.ReadLine
                    MyDelegate.Invoke(strBuffer)
                Case IO.Ports.SerialData.Eof
                Case Else
            End Select
        End Sub
 
        Private Function serielle_daten_auswerten_Eine_Antwort(ByVal _
          empfangener_text As String) As String
            Dim Empfangene_Antwort As String
 
            Empfangene_Antwort = Replace(Replace(empfangener_text, Chr(13), _
              ""), Chr(10), "")
            Select Case Empfangene_Antwort.ToUpper
                Case "BUSY"
                Case Else
                    Return Empfangene_Antwort
                    Exit Function
            End Select
 
            Return Nothing
        End Function
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wie auf Antwort der Seriellen Verbindung warten?2.145tunguskar09.07.09 15:37
Re: Wie auf Antwort der Seriellen Verbindung warten?1.141Manni0112.07.09 13:11
Re: Wie auf Antwort der Seriellen Verbindung warten?979tunguskar13.07.09 19:35

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