Driver d'un périphérique USB

je_ne_viens_qu1_fois Messages postés 12 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 25 août 2006 - 9 juin 2006 à 09:21
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 juin 2006 à 16:22
Bonjour à tous



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 




Voila mon problème :



 




Je dois converser avec un photomultiplicateur relié à mon ordinateur par un port USB. Puisque le photomultiplicateur  contient un microcontrolleur, je pense que cela revient à converser avec un microcontrolleur.


J’ai au début privilégier la solution « inportb », mais celle-ci ne m’a pas donné satisfaction.


J’ai ainsi décidé d’utiliser la fonction CreateFile par le code suivant (je programme sous windows, avec dev-cpp):



 





CreateFile(LptName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ| FILE_SHARE_WRITE, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);






 





Le problème est, je pense de définir correctement le caractère LptName : celui-ci doit être le nom du driver de mon périphérique.


Malheureusement, je n’arrive pas à le trouver. La doc de mon photomultiplicateur ne le fournit pas (c’est dans l’intérêt de l’entreprise qui le fabrique de faire en sorte que j’utilise le logiciel qui est fourni avec le photomultiplicateur, mais ce logiciel est pourri).


Je suis allé dans le gestionnaire des périphériques, mais celui–ci m’a donné comme nom de pilote "SensL USB Device", un nom qui ne marche pas lorsque je le prends pour LptNmame. Je pense que ce nom est juste une « désignation » du périphérique, et non le nom permettant d’avoir accès au pilote.



 




De plus, le gestionnaire de périphérique m’indique, pour le port USB qui m’intéresse :


Emplacement 0 (SensL USB Device). J’ai cru comprendre que la propriété « Emplacement » désignait l’espace mémoire alloué au périphérique.


Peut-être que le problème vient de là : même lorsque le périphérique est branché, l’ordinateur n’associe pas d’adresse mémoire au périphérique.(cette dernière réflexion est peut être idiote ; mais je ne suis pas développeur, juste un physicien expérimentateur).



 




Donc je pense que mon problème peut se résumer par les questions suivantes :



 




Comment récupérer le nom du driver ?


Le fait que le driver soit installé implique-t-il que l’on puisse avoir accès au périphérique par la fonction CreateFile ? Ne faut-il pas changer les propriétés de mon périphérique, pour que Windows me permette cet accès ?


J’ai lu sur ce site une autre possibilité : celle de définir la liaison USB comme un port virtuel COM (CreateFile marche si je fait LptName=COM1 : j’ai donc accès aux ports COM). Est-ce une solution envisageable ?



 




Merci d’avance pour vos réponses.

4 réponses

je_ne_viens_qu1_fois Messages postés 12 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 25 août 2006
9 juin 2006 à 09:23
PS: en ce qui conerne la solution du port virtuel: si elle est envisageable, comment faire?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juin 2006 à 10:53
Dans menu 'system tools' tu as 'system information' (j'ai Win english, tu traduiras), tu pourras y trouver le nom public des drivers.

Pour autant, il te faudra la doc complète du driver pour envisager de discuter avec lui par DeviceIoControl().

ciao...
BruNews, MVP VC++
je_ne_viens_qu1_fois Messages postés 12 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 25 août 2006
9 juin 2006 à 11:58
deviceiocontrol() est une instruction visual basic, non?
je programme sous windows avec dev-cpp.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juin 2006 à 16:22
http://msdn.microsoft.com/library/en-us/default.asp

Toujours regarder MSDN, tu aurais vu que c'est API et tu aurais gagné du temps.

ciao...
BruNews, MVP VC++
Rejoignez-nous