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:
Global Const $STX = 0x02
Global Const $ETX = 0x03
$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))
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)