Hi! Danke fuer den Code... ich sitz mitlerweile schon seit mehr als einer Woche an dem Problem und hab immernoch keine Loesung.
Allerdings bin ich mittlerweile schon soweit das ich ohne die
dll eine Verbindung habe:
const device='\\.\USB#Vid_0403&Pid_f068#EL2WP4T4#{a5dcbf10-6530-11d2-901f-04fb951ed}'
Habe den genauen Namen von dem Wandler in der Registry nachgelesen und es scheint auch so zu funktionieren.
Delphi-Quellcode:
var DeviceHandle :THandle;
begin
DeviceHandle := CreateFile(device, Generic_write, File_share_write, nil, open_existing, 0, 0);
//Überprüft ob Verbindung steht
if DeviceHandle = INVALID_HANDLE_VALUE then
begin form1.Label1.Caption:='Verbindung klappt nicht'; end else
begin form1.Label1.Caption:='Verbindung klappt'; end;
CloseHandle (DeviceHandle);
end;
Jetzt habe ich ein Problem mit der Kommunitkation. Laut anleitung muss ich ein Hex-Code schicken der ungefaehr so aufgebaut ist:
02 //Rahmen Begin
35 //Port 5 wird angesprochen
03 //Rahmen Ende
habe es wie folgt versucht:
Delphi-Quellcode:
var command, inDummy, count:longword;
USBWRITE:Boolean;
DeviceHandle :THandle;
begin
command:=$2+$35+$3;
inDummy:=0;
DeviceHandle := CreateFile(device, Generic_write, File_share_write, nil, open_existing, 0, 0);
USBWRITE := DeviceIoControl(DeviceHandle, $04,
@command, sizeof(command),
@inDummy, sizeof(inDummy),
count, NIL);
if usbwrite then begin Form1.Label2.Caption:='geht'; end else
begin Form1.Label2.Caption:='geht nicht'; end; //Das bekomme ich in dem Fall als Antwort.
CloseHandle (DeviceHandle);
end;
und gelesen wird so:
Delphi-Quellcode:
var command, count:longword;
inBytes:DWord;
USBREAD:Boolean;
DeviceHandle :THandle;
begin
command:=$2+$35+$3;
DeviceHandle := CreateFile(device, Generic_write, File_share_write, nil, open_existing, 0, 0);
USBREAD := DeviceIoControl(DeviceHandle, $04,
@command, sizeof(command),
@inBytes, sizeof(inBytes),
count, NIL);
if usbread then begin Form1.Label3.Caption:='geht'; end else
begin Form1.Label3.Caption:='geht nicht'; end; //Das bekomme ich in dem Fall als Antwort.
CloseHandle (DeviceHandle);
end;
Also aus dem was ich bisher nachgelesen hab muesste das so klappen..
Eine Antwort hab ich laut Anleitung auch zu erwarten.. also woran kann das liegen? Sende ich vielleicht was falsches oder sende ich ueberhaupt?