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

