"CommAPI_ReceiveData" auswerten und in TXT schreiben

    • Offizieller Beitrag

    Keine Ahnung woher die Rs232.au3 kommt, schau mal hier nach : http://www.autoitscript.com/wiki/CommAPI oder http://www.autoitscript.com/forum/topic/12…t-com-port-udf/
    Vielleicht hilft dir das auch weiter.
    Ansonsten Google benutzen bei Rs232 + Autoit wird dir schon gehilft :whistling:^^

  • Hi

    danke für die Antwort, hab was gefunden "CommAPI". Die kommunikation über RS232 funktoniert soweit, ich sende einen Befehl und erhalte eine Anwort.

    Und hier mein Problem, kann mir einer erklären wie ich den Buffer oder die erhaltenen Daten richtig auswertet.

    1.) Ich würde gern selbst bestimmen wie viele Zeilen der Anwort ich auslesen möchte. Meist bekomm ich nur ein Fragment oder die Ersten 1-3 Zeilen.

    2.) Oder die komplette kommunikation in einer TXT aufzeichnen?


    Spoiler anzeigen

    #include "CommInterface.au3"
    #include <array.au3>
    #include <string.au3>
    #include <MsgBoxConstants.au3>


    Main()

    Func Main()
    Local $iErrorLine = Example()
    If @extended Then
    MsgBox(32, "Error", _WinAPI_GetLastErrorMessage())
    ElseIf @error Then
    MsgBox(32, "Error", "Error in line " & $iErrorLine)
    EndIf
    EndFunc

    Func Example()
    Local Const $iPort = 4
    Local Const $iBaud = 115200
    Local Const $iParity = 0
    Local Const $iByteSize = 8
    Local Const $iStopBits = 1
    Local Const $sCommand = "$C00:chargeh:00" & @CRLF

    Local $hFile = _CommAPI_OpenCOMPort($iPort, $iBaud, $iParity, $iByteSize, $iStopBits)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    _CommAPI_ClearCommError($hFile)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    _CommAPI_PurgeComm($hFile, 15)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    _CommAPI_TransmitData($hFile, $sCommand)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    Local $sResult = _CommAPI_ReceiveData($hFile, 100)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    _CommAPI_ClosePort($hFile)
    If @error Then Return SetError(@error, @extended, @ScriptLineNumber)

    MsgBox(64, "Result", $sResult)
    EndFunc


    schon Mal Danke im Voraus

    Lyki