bonjour,
Voila je souhaite recuperer des infos qu'un onduleur USB me passe.
J'ai pense utiliser la libusb pour cela, mais je suis bloque au niveau de la lecture.
J'arrive bien a recuperer toutes ces informations comme son endpoint adresses, sont idvendor ...
Mais je n'arrive pas a lire ce qu'il m'envoie.
J'utilise pour cela la fonction usb_bulk_read mais elle me renvoie -1 comme erreur (je ne sais pas si c'est le timeout ou alors un probleme de read).
Ou alors faut il faire un open sur un device mais comment connaitre le path de ce device et son type (type block ou char).
Ou alors si je me suis trompe depuis le debut dites le moi aussi : ).
Merci
# hmmm
Posté par NeoX . Évalué à 1.
http://libusb.sourceforge.net/doc/function.usbbulkread.html
un resultat de -1 signale juste une erreur.
par contre si tu crains le timeout, essaie d'augmenter ce dernier dans l'appel de la fonction
pour le device, la fonction demande un handle sur ce device, il semblerait logique de l'ouvrir avant pour optenir ce handle
enfin, il doit y avoir plein d'exemple sur internet...
[^] # Re: hmmm
Posté par kheled . Évalué à 1.
Sinon bien sur j'ai ouvert le handle pour ce device (usb_open_dev) mais ca ne me donne pas sont path pour essayer de read ou write dessus directement.
[^] # Re: hmmm
Posté par NeoX . Évalué à 1.
http://linuxfr.org/forums/20/21372.html
tu trouveras peut-etre des infos pour t'aider.
[^] # Re: hmmm
Posté par kheled . Évalué à 1.
Mais en lisant un peu mieu la reponse de "TheBreton" je me demande si mon onduleur m'envoie des packet de type bulk ou autre chose.
[^] # Re: hmmm
Posté par TheBreton . Évalué à 1.
Si tu peut disposer d'un poste sous win32 pour espionner la communication avec snoopy tu pourras avancer plus vite dans ton identification des données et des endpoints.
http://sourceforge.net/projects/usbsnoop/
[^] # Re: hmmm
Posté par kheled . Évalué à 1.
Tu dis dans otn poste que les paquet interupt n'est pas gerer par la libusb mais sur leur sit on trouve ca:
usb_interrupt_write
usb_interrupt_read
Mais c'est la meme chose j'arrive a lire des donner mais ce n'est pas de l'ascii (je ne peux pas l'afficher directement quoi).
Mon device est de type HDI aussi donc je ne sais pas si ca bloque les choses.
[^] # Re: hmmm
Posté par TheBreton . Évalué à 1.
De toute facon il n'y as aucune chance que les infos emisent par l'onduleur ne soit en ascii, tu ne risque pas d'avoir a recevoir juste une chaine a afficher mais des infos hexadecimal a convertir pour affichage.
HDI c'est pas plutot HID pour Human Interface Device ?
Si oui alors cela veut dire qu'il est compatible avec la norme
et que les infos qu'il échange sont disponible ici:
http://www.usb.org/developers/hidpage/
plus precisement la lecture imposé est
http://www.usb.org/developers/devclass_docs/HID1_11.pdf
http://www.usb.org/developers/devclass_docs/Hut1_12.pdf
http://www.usb.org/developers/devclass_docs/pdcv10.pdf
bonne lecture, c'est assez épais.
# Au cas ou
Posté par jjl (site web personnel) . Évalué à 2.
http://www.networkupstools.org/compat/
Tu aurais d'ailleurs peut-être tout interet à te baser dessus plutôt que de repartir from scratch.
[^] # Re: Au cas ou
Posté par kheled . Évalué à 1.
Mais la avec usb_bulk_read j'arrive maintenant a lire quelque chose mais ce n'est pas de l'ascii.
[^] # Re: Au cas ou
Posté par NeoX . Évalué à 1.
je penses plutot que tu recois une trame dans laquelle sont codées ces valeurs...
[^] # Re: Au cas ou
Posté par zx81 . Évalué à 1.
Puis, magie de l'upgrade, plus besoin !
En tout cas, je n'ai jamais eu à créer le device à la main, c'est udev qui doit s'en charger (quelle est ta distrib ?).
[^] # Re: Au cas ou
Posté par zx81 . Évalué à 1.
J'ai de temps en temps ce message mais rien de bien grave vu que tout fonctionne:
usb 2-4: usbfs: USBDEVFS_CONTROL failed cmd newhidups rqt 128 rq 6 len 255 ret -110
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.