Bonjour à tous,

je développe un programme qui gére l'USB, tout se passe bien sauf que j'ai des petits soucis avec la fonction libusb_bulk_transfer.
Pour info, donc je developpe sous Linux, et la libusb est en version 1.0.

Voici le comportement de cette fonction :
lorsque je fais un write, comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ret = libusb_bulk_transfer(USBHandles, ENDPOINT_1_OUT, buf, size, &len, TIMEOUT_EP1);
le retour ret est égale à -99 (raison diverse), pratiquement tout le temps. Par contre l'écriture s'est bien passée.

et juste après si je fais un read pour voir si tout s'est bien passé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ret = libusb_bulk_transfer(USBHandles, ENDPOINT_1_IN, Buf, READING_SIZE, &ReceiveByte, TIMEOUT_EP1 );
de temps en temps le retour ret est égal soit à -99 (raison diverse) soit à -7 (timeout). Donc quand mon retour est -99, je refais le même read, et là je lis correctement le contenu et le retour est bon (=0) et lorsque j'ai -7, je refais l'écriture puis relecture et là c'est bon.

Y a t-il un bug dans la libusb 1.0 ? où est ce que c'est moi qui ai mal initialisé quelque chose avant ?
Pour info le timeout = 1500, ceci dit, je l'ai augmenté et ça n'a rien changé, et mon écriture de donnée est de 4 à 5 caractères, grand maximum.

Merci de votre aide