Ascii-Datensatz an USB-Schnittstelle schreiben. Problem mit <STX> "TEXT" <ETX>

  • Hi da.

    Ich möchte an eine USB-DLL einen String übergeben.
    Dieser sollte so aussehen 0x02 0x49 0x4E 0x46 0x4f 0x03 -> <STX> "INFO" <ETX>

    Irgendwie bekomme ich das in Autoit nicht so richtig formatiert...
    Bisher so genutzt:

    [autoit]


    Global Const $STX = 0x02
    Global Const $ETX = 0x03

    [/autoit][autoit][/autoit][autoit]

    $stringtext = $STX & _StringToHex("INFO") & $ETX

    consolewrite(@CRLF & "TEXT: " & $stringtext)

    DllStructSetData($lpBuffer, 1, $stringtext)
    $dwBytesToWrite = StringLen($stringtext)

    $Do = _FT_Write($FT_HANDLE, $lpBuffer, $dwBytesToWrite, $lpdwBytesWritten)
    ConsoleWrite(@CR & _USBFT_ErrorDescription($Do))
    ConsoleWrite(@CR & DllStructGetData($lpBuffer, 1))
    ConsoleWrite(@CR & $dwBytesToWrite)
    ConsoleWrite(@CR & DllStructGetData($lpdwBytesWritten, 1))

    [/autoit]

    Bei den letzten ConsoleWrite bekomme ich ein 2494E464F3 zurück - was ja schon so mein String ist...Aber ohne Abstände kommt mir sehr komisch vor...
    Auch kommt von dwBytesToWrite zurück dass 12Bytes versendet wurden, obwohl es nur 6 sind.
    Das heißt, dass er jede Zahl als ASCII rüber schickt...
    Hier kann aber etwas nicht passen.
    Bekomme bei _FT_GetQueueStatus danach immer eine 0 zuück.
    Von Hand und über den ComPort bekomme ich da einen riesen String zurück, mit Autoit gar nichts...

    Evtl. hat ja jemand eine Idee.
    Grüße Björn


    GELÖST:
    $stringtext = Chr($STX) & "RELON" & Chr($ETX)

    3 Mal editiert, zuletzt von Tueftler (16. Juni 2013 um 21:15)