Ankündigung

Einklappen
Keine Ankündigung bisher.

Lesen von Com-Port/VBA

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Lesen von Com-Port/VBA

    Hallo,

    ich habe zum Auslesen eines Gerätes per VBA folgenden Code bekommen:
    Code:
    Public Function ReadComPort(lporthandle As Long, _
                                strData As String, _
                                cbRead As Long) _
                                As Boolean
    
        Dim strBuf As String * 1000
        Dim cbBuf As Long
        Dim fRead As Boolean
    
        cbBuf = Len(strBuf)
    
        fRead = ReadFile(lporthandle, _
                         ByVal strBuf, _
                         cbBuf, _
                         cbRead, _
                         0)
    
        If Not fRead Then
    
            Dim lErr As Long
    
            lErr = GetLastError()
    
            Debug.Print "ReadFile failed ( err = " & CStr(lErr) & " )"
           
            Dim tComStat As COMSTAT
            Dim lErrFlags As Long
            
            Call ClearCommError(lporthandle, lErrFlags, tComStat)
            Call handleCommError(lporthandle, lErrFlags)
    
        Else
                
            strData = Left(strBuf, cbRead)
    
        End If
    
        ReadComPort = fRead
    
    End Function
    Jetzt kenne ich mich mit VBA wirklich nicht gut aus.
    Sehe ich es richtig, dass
    strData der empfangene String und
    cbRead die Anzahl der Zeichen ist?

    Das Program läuft so ab:
    Es sendet etwas an das Gerät, wartet 300 bzw. 400ms und liest dann mit obiger Funktion.

    Aber wie lange wird empfangen? Es scheint ja ein Zeilenende oder so zu geben, denn eine Anzahl der zu lesenden Zeichen wird nicht spezifiziert.
    Oder wird halt alles gelesen, was bis dahin am Port angekommen ist (daher das Warten von 400ms)?

    Vielleicht kennt sich hier ja jemand besser mit VBA und dem Lesen vom Com-Port aus und kann mir sagen, was obige Funktion genau macht. Wie das in python geht, finde ich dann bestimmt raus.

    Gruß&Danke,
    Hendrik
Lädt...
X