-
Usb & Windows
Bonjour,
Je suis en train de developper une interface usb qui doit envoyer des données à interval régulier à mon programme! Mon probléme c'est que vu que l'envoye de données doit se faire réguliérement je doit utiliser le mode interrupt de l'usb, et je ne sais pas quel message est envoyer par windows (si il en envoye un) pour me signaler que l'interface demande une attention de ma part? Si quelqu'un c'est déjà penché sur le probléme et qu'il a début de solution je suis preneur! Merci davance
-
Si j'ai bien compris ta question, il faut que tu développes un driver pour ton périphérique.
-
Ben en fait oui car j'ai bien des drivers qui sont fournit avec le composant usb que j'utilise mais je ne trouve aucune fonction qui serai appellée (et a surcharger) lorsqu'une interruption usb est détectée!
-
Ca marche pas comme ça. Ton driver est utilisé par Windows pour permettre d'utiliser ton périphérique.
Tu dois en plus développer une application cliente, qui va indirectement se servir de ton driver. Windows fera le lien.
Tu as le driver d'un côté, l'application de l'autre.
-
d'acord donc si le driver fournit avec le composant est bien developper je devrai trouver quelque chose dedans, qui par exemple m'enverai un message (à mon appli) me signalement qu'une demande d'interuption à été demandée par le préphérique usb. c'est ca? :lol:
Le driver que j'ai, utilise DeviceIoControl() pour communiquer avec des applications!
-
Déjà un grand merci Aurelien vous m'avez bien éclairé pour mes recherches!
Par contre j'aurai une autre petite question:
Puisque le protocole USB et parfaitement définit et que normalement tous les composants (tranceiver) usb doivent repondre aux mêmes "ordres", je me demandai si il était vraiment utile de faire un driver pour se genre de composant? Est-ce qu'on ne peut pas tout simplement utiliser ceux qui sont fournit avec Windows? (J'utilise Windows Xp)
J'espére que vous pourrez répondre à mes questions et éclairer mes lanterne merci arnaud
-
USB c'est juste un bus de transfert de données. PCI aussi c'est parfaitement définit. Si Windows reçoit des données, il sait pas quoi en faire. C'est le but du driver.
Après on peut plus ou moins discuter avec le périph USB mais là je sais pas trop.
Mais s'il y a un driver de fourni, pourquoi s'en passer. Il doit y avoir de la doc / des exemples. DeviceIoControl c'est la possibilité directe. Mais y'a plus transparent (ça dépend du driver), en lisant / écrivant directement "sur le driver", comme dans un fichier (le driver est vu comme un fichier par ton appli). Pour signaler des évènements, ton driver peut aussi te filer un Event et ton appli peut attendre qu'il soit signalé.
Quelques bons articles pour débuter:
http://www.codeproject.com/system/driverdev.asp
http://www.codeproject.com/system/driveguicomm.asp
-
Je suis entiérement d'accord, mais le probléme c'est que le driver que j'ai semble limité! Mais bon tu as répondu à mes questions et remis un peu d'ordre dans mes idées, je doit dire que j'était perdu! encore merci.
arnaud :D