Lecture de données sur port USB en C/C++ - C - Programmation
Marsh Posté le 06-12-2006 à 11:27:52
Rien du tout, je ne sais pas par où commencer.
De préférence, il faudrait réaliser ceci sous Windows... (supérieurs imperméables à autre chose)
Marsh Posté le 06-12-2006 à 11:32:57
lilou2211 a écrit : Rien du tout, je ne sais pas par où commencer. |
Donc,
- tu choisis un langage, une plate forme de dev
- tu choppes la doc du protocole, si elle existe. Sinon ca va etre très chaud.
- tu te renseignes sur la manière dont on attaque les ports usb sous ta plate forme.
- analyse
- code
- tests
Marsh Posté le 06-12-2006 à 11:37:11
lilou2211 a écrit : Alors ça va être chaud bouillant |
Quelle est ton experience en dev ?
Marsh Posté le 06-12-2006 à 11:41:30
Concernant le C/C++, limitée à des algorithmes, j'ai poussé un peu jusqu'à la gestion de fichiers (ouverture, lecture formatée, écriture, ...) mais ce qu'on me demande là me parait bien au delà de ce que je sais faire
Marsh Posté le 06-12-2006 à 11:43:22
Bah non ca devrait aller.
Le plus chaud ici, c'est vraiment de pouvoir interpreter le protocole. S'il est fermé, ca risque d'etre délicat de l'interpreter correctement. Il te faudra un espion de port série/usb pour pouvoir tout tracer et tenter de comprendre quelque chose. Si tu as la doc, parfois il faut bien chercher, ca ira beaucoup plus facilement.
La gestion du port usb proprement dit ne devrait pas poser de souci majeur.
Marsh Posté le 06-12-2006 à 11:48:26
lilou2211 a écrit : On parle d'un sniffeur là ? |
On parle d'un soft comme aspycom par exemple.
Marsh Posté le 06-12-2006 à 11:51:24
Bon, merci...
et quand tu parles de protocole usb, est-ce quelque chose de standard ou à l'inverse spécifique au hardware concerné ?
Marsh Posté le 06-12-2006 à 11:56:09
lilou2211 a écrit : quand tu parles de protocole usb, est-ce quelque chose de standard ou à l'inverse spécifique au hardware concerné ? |
J'ai n'ai pas parlé de protocole usb. J'ai parlé de port usb , puis de protocole, ce sont 2 choses bien distinctes.
Pour la partie hard (lire/écrire des données sur un port usb particulier), tout dépend de ton OS. A toi de voir.
Pour la partie protocole, considère ça comme la manière pour ton périphérique de s'exprimer, indépendemment du port usb. Ca veut dire "échanger des données de manière fiable selon un ordre de marche précis". Et c'est en général complètement dépendant du périphérique avec lequel dialoguer, comme dialoguer avec un modem, un terminal de paiement, etc.
Marsh Posté le 06-12-2006 à 11:59:20
bon... en tous cas merci de ta réactivité, je pars dans certaines recherches.
Marsh Posté le 06-12-2006 à 12:05:33
lilou2211 a écrit : et quand tu parles de protocole usb, est-ce quelque chose de standard ou à l'inverse spécifique au hardware concerné ? |
Le protocole USB est standard et il est géré par le matériel. Mais il ne fait que définir une connectique, une interface électrique et transporter de trames d'un point à un autre.
Ce qui n'est pas standard, c'est ce qu'il y a dans les trames (les données, donc). C'est pour ça qu'il faut avoir la doc, sinon, tu ne pourras pas spécifier grand chose. L'dée d'espionner le trafic est certes amusante, mais si le protocole de données est complexe (autre chose que du texte simple), tu ne vas rien comprendre du tout, ou tu vas y passer 6 mois sans être sûr d'avoir vu tous les cas, être capable de traiter les erreurs etc.
Donc il faut la doc. Si elle n'est pas publiée, tu ne peux rien faire de sérieux. De toutes façons, il est probablement illégal d'espionner le trafic si on a pas la doc.
Pourquoi ne pas demander tout simplement au fabricant ?
Au fait, rien de tout cela n'a le moindre rapport avec le langage C.
Marsh Posté le 06-12-2006 à 11:11:49
Salut,
Quelqu'un saurait-il comment résoudre mon problème :
Je dispose d'un boitier genre oscilloscope multivoies qui renvoie des informations sur le pc via un port USB.
Le logicile dédié à ce matériel n'est pas adapté, il ne permet de faire qu'une acquisition globale de toutes les entrées, impossible de rendre les voies indépendantes.
Pour résoudre ceci, je dois coder une nouvelle interface, en C/C++ si possible, apte à analyser les flux entrant sur ce port USB en temps réel.
Merci...