Bonjour,
Je dois réaliser un programme de commande d'une carte USB. Je pensais devoir réaliser un module mais on m'a dit d'utiliser "libusb", mais comment ça marche ???
Je veux réaliser un programme simple , en C, qui me renvoie, par exemple les paramètres constructeurs. Au final le programme doit envoyer des données sur le port USB pour une carte GPIB
Merci
# Tu as lu la doc de la libusb ?
Posté par Pascal Terjan (site web personnel) . Évalué à 5.
Tu cherches "libusb" sur google et ca te donne la doc qui contient déja elle même quelques exemples : http://libusb.sourceforge.net/doc/
# Programme libusb
Posté par C. OB (site web personnel) . Évalué à 4.
le fichier "/usr/include/usb.h" doit exister.
sinon, il te faut installer le package libusb-devel
(ou libusb-dev selon la distribution)
Une fois cela fait, regarde la documentation ici:
http://libusb.sourceforge.net/doc/
En particulier, en bas il y a le chapitre "exemple".
Le fichier usb.h est aussi une bonne référence.
Un autre article: http://www.linuxjournal.com/node/7466/print
Encore un: http://www.cs.indiana.edu/~bpisupat/work/usb.html
Ensuite, bah il faut commencer le programme...
Normallement tu dois connaitre le deviceID et le vendorID du periphérique, donc le détecter ca dois ressembler à ca:
int main(void)
{
struct usb_bus *busses;
usb_init();
usb_find_busses();
usb_find_devices();
busses = usb_get_busses();
struct usb_bus *bus;
int c, i, a;
/* boucle sur les bus USB */
for (bus = busses; bus; bus = bus->next) {
struct usb_device *dev;
/* Par bus, boucle sur les devices */
for (dev = bus->devices; dev; dev = dev->next) {
if ((dev->descriptor.idVendor == MYVENDOR) &&
(dev->descriptor.idProduct == MYPRODUCT) ) {
/* boucle sur les configurations, si plus de 1 seule */
{...}
}
}
}
}
Ensuite, ben il faut l'ouvrir, faire un claim, et chercher dans la doc du périphérique USB comment trouver les "paramètres constructeurs" dont tu parles.
Voila !
Regarde aussi si, a tout hasard, ton périphérique n'est pas compatible avec un protocole "standard" USB dont linux a les drivers, style série 'ACM', ou 'HID'.
(Rigole pas ca m'est arrivé....)
A+
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.