Laufzeitfehler Mscomm

  • VB6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Roland.

    Laufzeitfehler Mscomm

    Hallo Leute,

    habe ein Problem bei der auswertung gesendeter Daten.
    Wenn ich ganz normal Daten sende z.b. :

    Dim a As Integer

    Private Sub cmd1_Click()
    If txtport.Text = "" Then
    MsgBox "Com Port auswählen", vbCritical, "Hinweis"
    Else
    a = txtport.Text
    If MSComm.PortOpen = False Then
    MSComm.CommPort = a
    MSComm.PortOpen = True
    MSComm.Settings = "9600,n,8,1"
    End If

    MSComm.Output = TST=0;0;0;0;0000;0000;0000;000
    End If
    End Sub

    Die gesendeten Daten lasse ich zum Event an eine Variable übergeben.
    Sourde Code:

    Private Sub MSComm_OnComm()
    If (MSComm.CommEvent = comEvReceive) Then
    buffer = buffer & mscomm.input
    antwort = test(buffer)
    End If

    End Sub

    Beim Aufruf der Function test(buffer) lasse ich den Text nur noch in einem
    Textfeld anzeigen.
    Source code:

    Function test(ByVal buffer)
    txt2.Text = buffer
    end function

    soweit, so gut.
    Nur wenn ich jetzt meine meine Variable buffer (empfangene Daten) weiter verarbeite habe ich plötzlich nur noch ein Viertel oder einen Teil meiner übertragenen Daten.

    denke es hängt irgendwie mit der Laufzeit zusammen.

    Hat jemand ähnliche erfahrungen gemacht, und vieleicht gelöst.
    Vielleicht kann mir da ja jemand weiterhelfen.

    mfg.
    roland
    Hallo Leute,
    habe Lösung selber gefunden.
    Habe Mscomm.Rthresold auf 1 gestellt gehabt,
    was ja soviel bedeutet, das wenn sich ein Datenbit im Empfangspuffer befindet löse das Ereignis Mscomm.event aus.
    somit konnt ich meinen Datenstring von 30 Zeilen nie ganz empfangen, da sobald ein Datenbit da war, das Ereigniss ausgelöst wurde.
    Stellte ich Mscomm.Rthresold auf 30 (sobald 30 Datenbits in meinem Puffer sind löse ereignis aus) hate ich meine gesamten Daten

    Danke nochmals für eure hifle

    mfg.
    Roland