Sunteți pe pagina 1din 3

Programarea aplicaiilor USB folosind librria LibUSB

LibUSB(http://www.libusb.org) este o librrie scris n limbajul C , care este portabil pe


sistemele de operare Windows i Linux, scopul su fiind facilitarea comunicaiei cu
dispozitivele care comunic cu calculatorul prin folosirea portului USB. Avantajul
librriei este faptul c este gratuit.
n aplicaia MyUSB, se va folosi ultima variant, care poate fi descrcat de la
urmtoarea adres:
http://libusb-winusb-wip.googlecode.com/files/libusb_2011.03.08.7z
Aplicaia MyUSBInfo, este o aplicaie de tip consol creat n Visual C++ 6. Pentru
crearea aplicaiei vom crea un nou proiect de tip Win32 Console Application(Fig. 1).

Figura 1. Crearea aplicaiei MyUSBInfo


Se apas butonul OK i se alege opiunea a 2-a: A simple application. Se apas butonu
Finish.
Se copiaz n directorul aplicaiei MyUSBInfo urmtoarele fiiere din arhiv:
-din directorul MS32/dll fiierele libusb-1.0.dll i libusb-1.0 lib.
-din directorul include/libusb1.0 fiierul libusb.h.
n meniul Project, se alege opiunea Settings , iar la seciunea Link se adaug n cmpul
Object/Library Module libusb-1.0.lib.
Se apas butonu OK.(Figura 2)

Figura 2. Adugarea librriei libusb-1.0.lib.


Se scrie urmtorul cod:
#include "stdafx.h"
#include "libusb.h"
void print_devs(libusb_device **devs)
{
libusb_device *dev;
int i = 0;
while ((dev = devs[i++]) != NULL)
{
struct libusb_device_descriptor desc;
int r = libusb_get_device_descriptor(dev, &desc);
if (r < 0) {
fprintf(stderr, "failed to get device descriptor");
return;
}
printf("%04x:%04x (bus %d, device %d)\n",
desc.idVendor, desc.idProduct,
libusb_get_bus_number(dev), libusb_get_device_address(dev));
}
}
int main(void)
{
libusb_device **devs;
int r;
_int64 cnt;

r = libusb_init(NULL);
if (r < 0)
return r;
cnt = libusb_get_device_list(NULL, &devs);
if (cnt < 0)
return (int) cnt;
print_devs(devs);
libusb_free_device_list(devs, 1);
libusb_exit(NULL);
return 0;
}

S-ar putea să vă placă și