libre/écrire un port USB - C++ - Programmation
Marsh Posté le 18-01-2007 à 20:07:13
merci Karl, ton lien est une mine, il y en a presque trop, mais apparement ce que je veux faire n'est pas possible simplement.
Je vais donc me documenter sur les ports virtuels, je sens que ce n'est pas gagné.
Marsh Posté le 19-01-2007 à 00:09:23
J'ai du lire trop vite, mon multi-tache fonctionne mal avec l'age ! et puis je me suis battu toute la journée avec ce P. de M. de HTML ! je retournerai lire mieux...
Marsh Posté le 19-01-2007 à 15:40:14
Tu as bien cliqué sur le mot "lien" qui pointe vers la solution
Tu dois juste noter ceci :
Code :
|
C'est le GUID de la classe du périphérique USB, SetupDiEnumDeviceInterfaces énumère tous les périphériques disponibles dans cette classe, à chaque itération de l'énumération, un appel à SetupDiGetDeviceInterfaceDetail te permet d'en savoir plus sur le device courant, un appel de SetupDiGetDeviceRegistryProperty permet de connaitre les informations inscrites dans la base de registre (ça sert à windows), la, tu as les informations nécéssaire pour ouvrir une le device via SetupDiOpenDeviceInterface.
Marsh Posté le 19-01-2007 à 15:47:59
Ton aide est trés préciseuse ( : gain de temps), j'ai vu la marche à suivre ce matin dans l'une des applications "HID" du site pré-cité mais il me manquait "hidsdi.h" pour la compiler et je n'ai pas eu le temps de partir chez MSDM2 pour le récupérer.
Je programme deux projets à la fois, plus un bug qui viens de surgir sur un truc qui tourne depuis deux ans !
Bref, je sature, en tout cas c'est vaiment sympta de me répndre, bien sur à charge de revanche.
Marsh Posté le 19-01-2007 à 16:27:06
Je comprend ta situation, je suis un peu dans le même cas donc bon courage
Marsh Posté le 20-01-2007 à 12:35:08
J'ai testé ce matin, mais je ne trouve que le port COM1 !
est-ce que ceci n'est pas limitatif aux COM ?
DEFINE_GUID (GUID_CLASS_COMPORT, 0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
hDevInfo = SetupDiGetClassDevs(guidDev, NUL, idFen,
DIGCF_ALLCLASSES | DIGCF_DEVICEINTERFACE);
ou
// DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
donnent les mêmes résultats ce qui me semble étrange !
Le reste fonctionne apparement bien (avec COM1 en tout cas)
Karl, tu fais quoi au juste en ce moment, un gros projet ?
Marsh Posté le 20-01-2007 à 12:59:19
Salut,
J'ai décidé de chercher par mes propres moyens, j'ai donc fait une recherche dans les includes du ddk pour tout ce qui concerne l'usb, apres beaucoup de lecture, je suis tombé sur cette macro IOCTL_USB_USER_REQUEST que j'ai passé à google qui m'a amené à ici : tu as absolument tout ce que tu souhaites connaitre sur la communication via USB que ce soit au niveau client ou noyau (bas niveau).
J'ai vite fait lu quelques fonctions et la, c'est sûr, tout y est
Il te faudra par contre le DDK. (Mingw dispose d'une implémentation mais pas complète)
Pour ma part, j'ai différents projets plus ou moins gros en cours et que je doit finir :
- une lib de lecture de fichiers mod/xm/s3m (wip 65 %),
- un unlocker de fichier (quasi fini),
- je prépare une VAE (validation des acquis de l'experience, je suis autodidacte), je vais donc devoir proposer des projets (je pense à un lecteur audio du style wxMusik ou MusikCube),
- le "port" de FMOD Ex pour PureBasic (un langage Basic TRES évolué/rapide/portable) à savoir l'API et tous les exemples,
- des routines de lecture des fichiers mp3 (tag/headers) mais quelque chose de TRES robuste (pas un simple check des 4 ou 16 premiers ko),
- un logiciel de retouche audio compatible VST,
- terminer mon frontend de l'encodeur Nero AAC (wip 80 %) avec en plus support d'autres formats autre que le WAV via des plugins maisons,
- commencer et terminer un logiciel de calcul pour la course à pied (FCMAC, VO2MAX, VMA ...),
- commencer et terminer un logiciel qui tripotera tout signal audio via FFT pour en faire un peu n'importe quoi (affichage du spectre via différentes fenêtres par exemple),
- porter tous mes plugins pour foobar2000 0.8 vers la v 0.9.
Comme on dit, y a du boulot
Marsh Posté le 20-01-2007 à 13:15:25
Merci encore ...
Moi aussi j'ai cherché, mais sur une autre piste, et en testant les differents GUID
deHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses
je progresse pas mal, mais j'ai aussi des obligations familialles et donc je vais devoir arreter pour ce matin !
Je vois que le travail ne te manque pas, et que c'est assez clair dans ton esprit, mais ce sont des projets non-commerciaux (à court terme).
Tu me parles de VAE va voir ceci (MAIS ATTENTION C'EST EN TEST A NE PAS DIVULGER !!! ET PAS TROP DE CONNEXIONS sinon je ne pourrais plus analyser mon travail, MERCI) [lien en message privé]
Pour tes présentations je peux peut être t'aider, parce que j'ai la pratique d'être de l'autre coté ...
A bientôt
Gérard
Marsh Posté le 20-02-2007 à 06:29:31
excusez moi, mais je souhaite egalement ercevoir des info d'un appareil branche en USB. Je suis un peu debutant, excusez moi, mais c'est quoi une DDK ?
excusez moi
Marsh Posté le 21-02-2007 à 14:11:26
Pour apercevoir des infos d'un port usb tu as ce que l'on appelle des sniffers, exemple USBmonitor qui est gratuit. Tu le lance sur le port a écouter et il te décrit tout ce qui se passe.
Pour ma part j'ai récupéré l'adresse exact d'une caméra Pan&Tilt (orientable avec des moteurs) j'ai récupéré les trames qui lui ordonnent de pivoter, mais je ne comprend toujours pas comment lui envoyer moi même ces trames depuis devC++... Help me please.
Question pour Stabia: Quelle librairie utilise tu pour les fonctions "setupDiEnumerateDevice()" etc...?
Marsh Posté le 12-10-2007 à 11:48:04
Bonjour,
Je suis un etudiant à l'université littoral, j'ai comme projet: Develppement d'un driver d'une tablette graphique Wacom Volito2 à port USB par le langage C++, pour le moment je suis au début du projet, veuilez m'envoyer svp des docs et des liens que je serai besoin d'eux.
Envoyez-moi svp comment peut on récuperer des données à partir d'un port USB provenants du tablette graphique.
A+.
Au revoir et bonne journée.
Courriel: boukhane21@yahoo.fr
Marsh Posté le 12-10-2007 à 15:28:50
si tu aimes les godmichets, tu risques de recevoir pas mal de promos
Marsh Posté le 18-01-2007 à 09:10:14
Bonjour,
Je cherche à lire et écrire sur un port USB, je pensais que cela était trivial, il semble que non.
Quelqu'un à-til une idée, MSDN est muet, je n'ai rien vu de probant chez nos amis de "codeProject", pourant il doit bien y avoir un moyen simple genre
hCom = CreateFile( "USB001", // similaire à "COM1" ou "LPT1"
GENERIC_READ | GENERIC_WRITE,
0, // "w" accès exculsif
NULL, // pas d'attributs de sécurité
OPEN_EXISTING, // on suppose que le port existe !
0, // pas de "recouvrement"
NULL); // cf. documentation
Merci d'avance.