Driver d'un périphérique USB

Signaler
Messages postés
12
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
25 août 2006
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
12
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
25 août 2006

PS: en ce qui conerne la solution du port virtuel: si elle est envisageable, comment faire?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
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++
Messages postés
12
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
25 août 2006

deviceiocontrol() est une instruction visual basic, non?
je programme sous windows avec dev-cpp.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
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++