Hallo,
ich habe zum Auslesen eines Gerätes per VBA folgenden Code bekommen:
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
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
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