IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Communication avec un p�riph�rique USB


Sujet :

C++

  1. #1
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut Communication avec un p�riph�rique USB
    Bonjour tout le monde
    Y aurait-il des personnes qui pourrait m'aider pour communiquer avec un p�riph�rique USB ?
    Voila le probl�me: J'aimerai pouvoir g�rer manuellement une liaison avec une manette, en l'occurrence une manette d'Xbox 360.
    Je sais qu'il existe pas mal de biblioth�ques qui le font mais elles n'exploitent pas toute les capacit�s offertes par la manette et c'est pourquoi je voudrai le faire moi m�me.
    J'ai d�j� trouv� ce lien : GamePad
    Il explique comment communique la manette avec l'ordinateur: la taille de chaque paquets envoy�s, l'ordre de ces paquets, etc...
    Donc je cherche une personne qui sache comment envoyer/recevoir des donn�es sur un port USB afin de g�rer ces paquets.

    Merci d'avance, Corendos

  2. #2
    Membre �m�rite
    Avatar de Ekleog
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Par d�faut
    https://libusb.org permet de communiquer directement avec un p�riph�rique, sans aucune abstraction. Il me semblait qu'il y avait une libusb2, mais je dois confondre avec libusb1 (libusb est rest�e tr�s longtemps en v0.1).

    Bon courage !

  3. #3
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Citation Envoy� par Ekleog Voir le message
    Il me semblait qu'il y avait une libusb2, mais je dois confondre avec libusb1
    Non, je confirme. J'utilise libUSB tr�s souvent. Pas de v2.

    Par contre, je ne suis pas sur que je partirais de libUSB. M�me si tu as toutes les spec du protocole de com, il va falloir impl�menter toutes les s�quences d'init, le calibrage etc...
    De plus, si tu ne connais pas la norme USB, tu vas devoir apprendre. LibUSB tu peux pas faire plus bas niveau avant de coder toi m�me ton driver. Ca envoi des paquets et �a ouvre des requ�tes pour en recevoir. Apr�s � toi de savoir si tu dois faire du bulk, de l'isochronious ou autre, et de monter tes paquets. Avec USB, c'est h�te qui est le ma�tre, donc pas mal de logique � coder. En plus, c'est de l'HID, donc une particularit� de la norme puisque c'est les seuls devices synchrones.

    Je repartirais du code source de GamePad et j'impl�menterais ce qu'il te manque. Il doit d�j� y avoir dedans de quoi communiquer avec la manette. Il ne reste donc qu'� supporter des commandes suppl�mentaires.

  4. #4
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut
    Le probl�me c'est que leur code est pour Linux, or moi je suis sous Windows. Je pense que �a va poser probl�me...
    Tu pense que c'est possible � partir de LibUSB ou pas du tout ?

  5. #5
    Membre �m�rite
    Avatar de Ekleog
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Par d�faut
    D'apr�s le site web de la libusb, il y a un port sur windows : https://libusb.org/wiki/windows_backend
    (barre de recherche du site, "windows")

    Donc �a ne devrait pas �tre un probl�me.

    Apr�s, je n'y connais pas grand chose en d�veloppement usb, donc je te conseilles de suivre plut�t les conseils de djuju.

    (BTW... Une manette xbox sur un windows... Il n'y aurait pas un driver officiel, qui donc int�grerait toutes les capacit�s de la manette ?)

  6. #6
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Citation Envoy� par Corendos Voir le message
    Le probl�me c'est que leur code est pour Linux, or moi je suis sous Windows. Je pense que �a va poser probl�me...
    Effectivement, je ne connaissais pas cette contrainte.
    GamePad est bas� sur LibXenon qui compilable sous Cygwin. Tu peux toujours repartir de l�. Mais je me doute (et je comprend) que la d�pendance � Cygwin sera un probl�me.

    Citation Envoy� par Corendos Voir le message
    Tu pense que c'est possible � partir de LibUSB ou pas du tout ?
    Oui bien sur, c'est juste pas mal plus de travail.
    Un beau projet, tr�s int�ressant qui t'apprendra beaucoup sur l'USB. En plus, comme libUSB est cross platform, si tu aboutis et que tu release en open source, tu aura le premier driver pour manette Xbox cross platform... De quoi rendre ton projet int�ressant pour la communaut�.

  7. #7
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Citation Envoy� par Ekleog Voir le message
    D(BTW... Une manette xbox sur un windows... Il n'y aurait pas un driver officiel, qui donc int�grerait toutes les capacit�s de la manette ?)
    Oui, il y a un driver proprio, mais je sais pas s'il a les fonctionnalit�s n�cessaires. Tout du moins, j'assume qu'il ne les a pas, ou qu'il pose d'autres probl�mes, car Corendos a d�j� du y jeter un oeil.

  8. #8
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut
    Comme vous devez vous en douter, je suis d�butant dans le domaine de la communication USB.
    Au niveau du driver, je me trompe peut-�tre mais c'est seulement un fichier .sys ou .inf qui est dans les fichiers de Windows "C:/Windows/system32/etc" non ?
    Donc je n'ai pas acc�s � des fonctions qui me permettent de faire ce que je veux ?
    Si vous en savez plus que moi � ce sujet dites-le moi, parce que je g�re pas trop tout ce qui est en dehors du PC(p�riph�rique, etc...)

    Je ne sais pas si �a peut aider mais en allant dans les propri�t�s de la manette j'ai trouv� que le pilote est le fichier xusb21.sys

    Il me semble qu'il est possible de communiquer avec la manette avec la lib "SetupAPI"

    Je continue mes recherches et je vous dit ce que je trouve.

  9. #9
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Je vais essay� de te donner quelques bases pour d�marrer.

    Nous allons parl� de Windows. Donc de libUSB-Win32. Sous Linux la logique est un peu diff�rente, mais le code restera compatible.

    Quand tu branche un device USB, windows d�clenche une s�quence dites d'�num�ration et demande au device de s�identifier. Le p�rif r�pond en envoyant sa paire PID/VID (product/vendor ID). Tout device USB a un PID/VID, c'est ce qui permet de les identifier (d�ailleurs tu dois les acheter � l'org. USB).
    Windows va alors cherch� dans sa base de driver s'il y en a un qui permet de rouler le p�rif. Si oui, il le charge. Sinon, "nouveau p�rif d�tect�" etc...

    Un driver est compos� d'au moins 1 .inf et 1 .sys. Le .sys est le binaire, en fait le driver au sens propre. Le .inf d�crit qui peut utiliser le driver, sous quels syst�mes etc...

    Quand tu t�l�charge libUSB, tu as un exe "inf-wizard.exe" qui va te permettre de g�n�rer facile le .inf � utiliser avec le .sys qu'ils te fournissent. Le wizard te demandera ta paire PID/VID. Tu peux la trouver en allant dans le device manager, puis en regardant les d�tails du p�rif ("hardware id" dans d�tail je crois). Si tu n'arrive pas � utiliser le wizard, fais moi signe, mais c'est plut�t simple.
    Une fois que tu as ton .inf, fais un tour dedans. Tu vas voir c'est plut�t simple. C'est un ensemble de sections qui se r�f�rences entre elles et qui forment des contraintes et des param�tres. Mais ne t�inqui�te pas, tu n'aura pas � aller trop trifouiller la dedans.

    Maintenant, tu as un .inf et un .sys. Ou plut�t des .sys, puisque tu en as 1 pour x86, 1pour x64 et 1 ia64. Ils sont dans des sous r�pertoires, tu peux les laisser la.
    Tu pourrais aussi avoir un .cat. Le certificat du driver. [edit:suppr] Sinon, sous 7 t'installe pas � moins d'�tre en "test mode". Sous XP, c'est un simple avertissement.

    Nous allons installer la manette. Assure toi qu'elle n'est pas d�j� install�e sous un autre driver. Si oui, d�sinstalle ce driver. Maintenant, branche la manette, windows la d�tecte. Donne lui le r�pertoire ou est ton .inf. Windows devrait install� ton driver.

    Bon, tu es pr�t � coder

    Fais un nouveau projet et ajoutes y la lib fournie avec libUSB. Tu en as une pour � peu pr�s chaque compilo qui tourne sous windows. Au pire, tu peux toujours la compiler depuis les sources.

    Dans ton code, la premi�re �tape importante sera d'�num�rer les devices disponibles (ceux supporter par libUSB) pour trouver la paire PID/VID de ta manette. Une fois trouv�e, tu peux la connecter.
    Ca devrait donn� un truc comme ca:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    30
    31
    32
    33
    34
    35
     
    usb_init();
    usb_set_debug(0); // Affiche des messages de debug... Toujours utilise ;)
     
    usb_find_busses(); // Met à jour la liste des bus
    usb_find_devices(); // Met à jour la liste des devices
     
    usb_bus *pUsbBusses = usb_get_busses(); // Récupère les bus USB (les controllers)
     
    // Pour chaque controller
    for(usb_bus pBus = pUsbBusses; pBus; pBus = pBus->next) 
    {
      // Pour chque device supporté par libUSB sur le controller
      for(usb_device pDevice = pBus->devices; pDevice; pDevice = pDevice->next) 
      {
        // Si c'est la paire PID/VID que je cherche
        if(pDevice->descriptor.idVendor == 0xEFEF && 
           pDevice->descriptor.idProduct == 0xFEFE) 
           {
             // Je connecte le device
             usb_dev_handle hDeviceHandle = usb_open(pDevice);
     
             if(hDeviceHandle)
             {
               if(usb_set_configuration(hDeviceHandle, 1) == 0)
               {
                 if(usb_claim_interface(hDeviceHandle, 0) == 0)
                 {
                   // Ton device est connecté.
                 }
               }
             }
           }
        }
      }
    Quelques explications.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(usb_set_configuration(hDeviceHandle, 1) == 0)
    On dit dans quel mode on utilise la manette . Ce mode est pr�d�fini dans son firmware. C'est g�n�ralement 1. Les autre modes sont utilis�s par exemple dans le cas d'une imprimante 2 en 1. Tu aura une config pour le scanner et une autre pour l'imprimante.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(usb_claim_interface(hDeviceHandle, 0) == 0)
    Maintenant on r�clame l'utilisation du device pour ce mode. Si cette condition �choue, c'est s�rement parce que ta manette est utilis�e par un autre process. Il s'agit d'un handle automatique, donc m�me si ton process plante, il sera automatiquement lib�r�.
    Si ce "if" �choue, tu peux quand m�me utiliser la manette, mais tu sera s�rement en concurrence avec un autre process.

    Maintenant que ta manette est connect�e, tu peux commencer � utliser l'API de libUSB pour impl�menter le protocle de communication.

    Quant tu aura fini d'utiliser ta manette, tu dois releaser ton handle.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    usb_release_interface(hDeviceHandle, 1);
    usb_close(hDeviceHandle);
    Je sais que �a beaucoup en un morceau et que je ne rentre pas trop dans le d�tail, mais �a devrait te permettre de d�marrer. Je crois que si je d�taille plus, je pourrais �crire un bon moment (mais n'h�sites pas si tu as des questions).

    Bon courage

  10. #10
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut
    Merci pour cette r�ponse qui m'a bien aid�, avant avec WinUSB, le programme n'arrivait pas � trouver le device(la manette), maintenant si.

    Puisque tu m'as dit que je pouvais m'aider du code du site que j'ai donn�, je suis all� analyser le code. J'ai pris un exemple tr�s simple, changer le motif des leds: Ils envoient un tableau de char avec la fonction libusb_fill_interrupt_transfer(...); mais cette fonction n'existe pas sur le port pour Windows, il n'y a que usb_interrupt_write.

    Je ne sais pas si �a a un rapport, mais WinUSB ne g�re pas les transfert Isochronous et tu m'as dit que la manette fonctionnait certainement en Isochronous.

    Donc j'attends ta r�ponse et je continue de chercher

  11. #11
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Citation Envoy� par Corendos Voir le message
    J'ai pris un exemple tr�s simple, changer le motif des leds: Ils envoient un tableau de char avec la fonction libusb_fill_interrupt_transfer(...); mais cette fonction n'existe pas sur le port pour Windows, il n'y a que usb_interrupt_write.
    H�h�, bien vu. Tu commence � entrer dans le probl�me, ca fait plaisir.

    Je ne suis pas sur du code que tu as modifi� et je connais pas la doc par coeur, mais oui, c'est tr�s probablement les m�mes fonctions (�crire sur un End Point choisit). Quand tu arrive � bas niveau, tu trouvera toujours les m�mes commandes, puisque c'est l'impl�mentation du protocole USB.

  12. #12
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut
    Tu pense que ce sont les m�mes fonctions ?
    Je ne suis pas vraiment s�r car en regardant la doc, le prototype des deux fonctions n'a rien � voir, enfin il y a quand m�me quelques point communs mais le prototype de LibUSB est plus complet:
    -LibUSB:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    static void libusb_fill_interrupt_transfer (struct libusb_transfer *transfer, libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *buffer, int length, libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout)
    -WinUSB:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout);
    Apr�s je ne peux pas voir plus loin si elles sont tr�s proches puisqu'il ne me semble pas avoir acc�s au code source, enfin je vais chercher �a.

    J'ai bien essay� d'envoyer un message � la manette avec usb_interrupt_write(); mais je n'ai aucune id�e de quoi mettre pour l"endpoint car je ne voit pas tr�s exactement ce que �a repr�sente. Tu n'aurais pas un bon lien sur une explication clair et detaill� du protocole USB ?

    Merci encore pour tes r�ponses

  13. #13
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Tout d'abord, un petit errata:
    LibUSB � bien un .cat, je sentais bien que j'�crivais une connerie hier
    Ce .cat est g�n�r� par inf-wizard.exe.

    Ensuite une question rapide:
    Pourquoi tu parles sur WinUSB ? Tu as une base de code avec ou tu confonds ?
    Je dis �a, parce que usb_interrupt_write c'est pas du WinUSB, c'est du libusb API v.0.1. ou du LibUSB-win32 qui est un port de libUSB API v.0.1.

    Maintenant la r�ponse � ta question:
    Citation Envoy� par Corendos Voir le message
    Tu pense que ce sont les m�mes fonctions ?
    En se basant sur le fait que c'est du libUSB v.0.1, oui c'est pas mal la m�me chose.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // LibUSB API v.0.1
     
    // Envoie un transfert interrupt sur un end point
    // dev : Handle sur ton device
    // ep : End point de destination
    // bytes : Données à écrire
    // size : La taille de "bytes" en bytes
    // timeout : Temps max d'attente pour le transfert.
    int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // LibUSB API v.1.0
     
    // Prépare un structure de transfert interrupt
    // transfer : Structure à remplir
    // dev : Handle sur ton device
    // endpoint : Numéro du End Point de destination
    // buffer : Données à écrire
    // length : Taille en bytes des donnes à écrire
    // callback : [Optionnel] Pointer sur une fonction de callback qui sera appelée en fin de tranfert ou NULL
    // user_data : [Optionnel] Données à passer au callback ou NULL
    // timeout : Temps max d'attente pour le transfert.
    void libusb_fill_interrupt_transfer (struct libusb_transfer *transfer, libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *buffer, int length, libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout)
     
    // Envoie un transfert 
    int libusb_submit_transfer (struct libusb_transfer *transfer)
    Tu vois qu'au final les choses sont pas mal les m�mes. � part le callback c'est pareil. Pour remplacer, si usb_interrupt_write retourne un succ�s, tu appelle le callback.
    En gros, il s'agit de porter ton code intelligemment de l'API v.1.0 vers l'API v.0.1..

    Bon, je me doute que tu te demandes ce qu'est un end point.
    Pour faire simple, tu peux voir �a comme un socket en TCP/IP. Quand tu transf�res des donn�es dans un sens ou l'autre avec un device USB, il faut bien qu'il y ait des FIFO pour bufferiser tout �a. Un end point est toujours utiliser pour un type de transfert particulier (control/interrupt/bulk/iso.). C'est une FIFO qui est en lecture ou en �criture et qui contient un type de donn�es particulier.
    Par exemple, quand tu bouges les boutons de ta manette, �a doit remplir une FIFO d'un end point avec les donn�es correspondantes. De ton cot�, tu vas lire ce end point r�guli�rement pour r�cup�rer ces donn�es et les interpr�ter.

    Bon courage !

  14. #14
    Membre � l'essai
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2012
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par d�faut
    Salut,
    Oui pardon, quand je parle de WinUSB je parle du port de LibUSB pour Windows, c'est vrai que depuis le d�but ca doit pas �tre facile � comprendre

    Merci pour ton explication pour l'enpoint, tout est plus clair maintenant.

    J'ai deux tr�s bonnes nouvelles:
    -J'ai r�ussi, en bidouillant un peu, � changer le motif des Leds et � mettre en marche les moteurs des vibreurs.
    -j'ai aussi r�ussi a r�cup�rer les donn�es en provenance de la manette.

    Je suis assez fier de moi

    Par contre le seul inconv�nient, vu que j'utilise Qt et son syst�me de signaux/slot, ce n'est pas compatible avec Code::blocks.
    Pense tu que jce serait une bonne id�e de cr�er un thread � part qui s'occuperait d'aller lire les donn�es p�riodiquement et les mettrait dans une structure partag� entre les deux thread?
    Sinon je n'ai pas encore r�fl�chi � une autre id�e.

    Je mettrai peut �tre quelques screen du logiciel que j'ai fait avec Qt dans la soir�e, histoire de le mettre au point.

  15. #15
    Membre �m�rite
    Homme Profil pro
    R&D imagerie 3D / prog embarqu�e
    Inscrit en
    Mars 2007
    Messages
    419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : R&D imagerie 3D / prog embarqu�e
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2007
    Messages : 419
    Par d�faut
    Cool


    Citation Envoy� par Corendos Voir le message
    Oui pardon, quand je parle de WinUSB je parle du port de LibUSB pour Windows, c'est vrai que depuis le d�but ca doit pas �tre facile � comprendre
    C'est surtout que WinUSB existe aussi. C'est un driver g�n�rique proprio de MS.

    Citation Envoy� par Corendos Voir le message
    Pense tu que jce serait une bonne id�e de cr�er un thread � part qui s'occuperait d'aller lire les donn�es p�riodiquement et les mettrait dans une structure partag� entre les deux thread?
    Oui, au moins pour le com descendent (manette->pc) tu vas avoir besoin d'un thread � haute priorit� qui vient lire en permanence les messages de la manette. Quand tu ouvre une requ�te sur la manette pour qu'elle t'envoie des donn�es, tu dois absolument �tre l� pour les recevoir au moment o� elle les envoie. Sinon, tu perd ces donn�es.

Discussions similaires

  1. R�ponses: 10
    Dernier message: 15/04/2015, 20h36
  2. Communication avec un p�riph�rique USB
    Par schneed dans le forum Linux
    R�ponses: 0
    Dernier message: 26/02/2010, 11h38
  3. [d�butant] Communication avec un p�riph�rique
    Par Anthony17 dans le forum Delphi
    R�ponses: 4
    Dernier message: 09/06/2006, 14h50
  4. R�ponses: 5
    Dernier message: 01/06/2006, 10h53
  5. [d�butant] communication avec un p�riph�rique
    Par Anthony17 dans le forum Delphi
    R�ponses: 1
    Dernier message: 18/05/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo