Quote by miparo
Das beiliegende USB Sample, mit dem vielen Schrott darin, ist nur ein Weg wie man es machen kann. Es führen halt viele Wege nach Rom.
Im Internet wird man erschlagen mit Samples über LibUSB + Delphi.
Naja, man findet viele Beiträge die Probleme mit der Verwendung dieser DLL haben, richtig brauchbares ist nicht viel dabei.
Quote by miparo
Aber usbFindDevice ist zuerst Dein Freund.
Zu dieser Funktion habe ich aber eine Frage:
Code
function usbFindDevice(var device: TDevObj): Pusb_device;
var
bus: Pusb_bus;
dev: Pusb_device;
begin
result := nil;
usb_init;
usb_find_busses;
usb_find_devices;
bus := usb_get_busses;
while (assigned(bus)) do
begin
dev := bus^.devices;
while assigned(dev) do
begin
// if(dev.descriptor.idVendor = VendorID) and (dev.descriptor.idProduct = ProductID) then begin
if dev.filename = device.FileName then
begin
Result := dev;
exit;
end; //if dev descriptor
dev := dev.next;
end; //while assigned(dev)
bus := bus.next;
end;
end;
var
bus: Pusb_bus;
dev: Pusb_device;
begin
result := nil;
usb_init;
usb_find_busses;
usb_find_devices;
bus := usb_get_busses;
while (assigned(bus)) do
begin
dev := bus^.devices;
while assigned(dev) do
begin
// if(dev.descriptor.idVendor = VendorID) and (dev.descriptor.idProduct = ProductID) then begin
if dev.filename = device.FileName then
begin
Result := dev;
exit;
end; //if dev descriptor
dev := dev.next;
end; //while assigned(dev)
bus := bus.next;
end;
end;
Das TDevObj kann ich ja nur zum Teil ausfüllen (VID, PID und die Daten die ich im AVRco vorgebe), so weit ich noch weiss ändert sich der Filename bei mehrmaliger Verwendung oder?
z.B. auf meinem Notebook hat das Gerät unter TDevObj.Filename "\\.\libusb0-0002-0x0200-0x0220" auf meinem Desktop-Rechner aber
"\\.\libusb0-0001-0x0200-0x0220"
Weisst Du was diese fortlaufende Nummer zu sagen hat? Ich finde nichts im Internet?
Also wäre das ausgeklammerte besser (Auswahl nach PID/VID), dann nimmt er den ersten an dem Rechner, den er mit dieser PID/VID findet.
Code
// if(dev.descriptor.idVendor = VendorID) and (dev.descriptor.idProduct = ProductID) then
Gruss
Thorsten