1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| program testUsb;
uses sysutils,libusb;
var
ctx:Plibusb_context;
list, dev, listdev : pplibusb_device;
Ha : Plibusb_device_handle;
desc : libusb_device_descriptor;
nbDevices,i,res : integer;
fixedBlock: array of Byte;
begin
fixedBlock := [$A1,0,0,$20,$A1,0,0,$20];
res := libusb_init(ctx);
nbDevices := libusb_get_device_list(ctx, list);
for i := 0 to nbDevices - 1 do
begin
libusb_get_device_descriptor(list[i], desc);
writeln(intToHex(desc.idVendor),' : ', IntToHex(desc.idProduct));
end;
Ha := libusb_open_device_with_vid_pid( ctx, 6465, 32801);
if Ha <> nil then
begin
libusb_control_transfer(Ha,
$21, $09, $0200, $00,
@fixedBlock, $8,
1000);
end;
readln;
end. |