IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

utilisation d'un driver USB


Sujet :

Windows

  1. #1
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut utilisation d'un driver USB
    bonjour.
    J'utilise les Lego Mindstorms.
    Mais j'aimerais en fait créer un petit soft qui communique avec une tour infra rouge en port USB, sous windows.
    Je voudrais savoir comment faire exactement, car je ne trouve pas de tutoriels à ce sujet (ni pour l'USB plus généralement).

    J'ai quelques exemples, mais il ne marche pas ... comme des programmes existent déjà, si quelqu'un sait comment faire .... merci

    exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <Windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    //cette librairie windows semble importante, d'après ce que j'ai pu lire
    #include <setupapi.h>
    
    int main&#40;&#41;&#123;
    
        //nom récupérer dans le registre windows
        #define devicename "USB\\Vid_0694&Pid_0001\\5&8f6ee20&0&7"
    
        //tentative de récupération d'un handle sur le périphérique
        HANDLE hUsbDevice = CreateFile&#40;devicename, GENERIC_READ |
        GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL&#41;;
    
        printf&#40;"%i",hUsbDevice&#41;;    //retourne -1
        CloseHandle&#40; hUsbDevice &#41; ;
    return 0;
    &#125;

    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    J'espère que tu as de TRES bonne connaissance en C++ parce qu'après plus d'une 1/2 heure de recherche intense, je suis pas tombé sur des trucs super facile...
    Voici quand même un peitit lien qui lui estcompréhensible:
    http://psylon.free.fr/dev/ddk/
    Par contre tu auras besoin de Visual C++.

    http://www.microsoft.com/whdc/device/storage/usbfaq.mspx

  3. #3
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    http://www.microsoft.com/whdc/device/storage/usbfaq.mspx
    oui, déjà vu mais je trouve le liens pas très clair ... surtout pour le développement.

    Pour l'autre lien, ce n'est pas tout a fait ce que je veux :
    je veux juste utiliser le driver existant . (sinon, les programmes préexistants auront des problèmes ...).
    mais la partie "vue depuis un programme client" (http://psylon.free.fr/dev/ddk/client.htm) rappelle ce que je disais avant.
    Donc je vais essayer de me remettre sur ça et le faire marcher.

    Par contre, comment fait on pour trouver le nom du driver (cf. l'url) ?
    Merci

  4. #4
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Cliques-droit sur Poste de Travail->Propriétés->Matériel->Gestionnaire des périphériques->tu sélectionne le périphérique->cliques-doit->propriétés->Pilote->Détail du pilote.

    Bonne soirée

  5. #5
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    ... oui, j'avais déjà essayé, mais ça ne marche pas.
    je crois plutot qu'il faut le "nom complet" : exemple sur le site www.delcom-eng.com. Il consiste en :
    nom classique + informations sur le port usb associé.

    En tout cas, le nom tout simple ne marche pas.

    Merci d'avoir pris du temps pour les recherches sur google (je présume )

  6. #6
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Mes compétences en informatique sont meilleures qu'en électronique...
    Essaie de demander sur un autre forum ou si qqun sait qqch n'hésitez pas!

    Sinon pour l'info, j'ai vu qu'il y a des logiciels qui "transforment"(virtuellement) ton port usb en COM3 il me semble et d'après ce que j'ai compris, ceci pourrait t'être d'une certaine utilité.

    Bonne soirée

    PS: j'essaierai de trouver du temps demain pour continuer les recherches

  7. #7
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    ops, ça avance :
    j'ai trouvé en fouillant dans le register le nom du device :
    {03B3FAA0-00BE-11D4-B2F7-00C04FA4CB5A}

    Mais il faut faire des énumérations. Et les exemples que j'ai, par exmple sur delcom, ne compilent pas avec dev-cpp :
    [Linker error] undefined reference to `_imp__SetupDiGetDeviceInterfaceDetailA@24' , par exemple.

    Si quelqu'un savait pourquoi ? (j'ai pris la source sur le site de delcom, donc je pense que ça devrait marcher, a part qu'ils se sont trompés sur une fonction :
    SetupDiEnumDeviceInterfaces() et non SetupDiEnumInterfaceDevice).

    Merci

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Note que c'est spécifique Windows, et pas lié au C++. Je déplace vers le forum Windows.
    Un petit lien:
    http://www.developpez.net/forums/vie...147385#2147385

  9. #9
    Nouveau membre du Club Avatar de AiSpirit
    Inscrit en
    Mai 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    avec un peu de retard ... Merci pour ce lien !
    Le problème est résolue : l'erreur de link est du au fait que je n'avais pas la librairie setupapi.lib (et qu'il faut l'ajouter aux librairies du projet, bien sûr).
    Elle est accessible par exemple sur : http://www.alanmacek.com/usb/
    Pour obtenir le GUID :
    http://support.microsoft.com/default...;EN-US;Q259695

    Il suffit de faire un mélange de ce liens avec le topic cité dans le post précédent : 2 boucles while, une avec le paramètre SPDRP_DEVICEDESC, l'autre avec SPDRP_HARDWAREID.

    On obtient ainsi un identifiant du matériel souhaité.

    L'utilisation de winobj permet ensuite de récupérer le GUID

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecran bleu a l'utilisation d'une Clé USB
    Par lemotard dans le forum Windows XP
    Réponses: 10
    Dernier message: 11/11/2006, 19h07
  2. driver USB
    Par k_boy dans le forum Périphériques
    Réponses: 1
    Dernier message: 07/02/2006, 08h58
  3. problème d'install de drivers USB
    Par dirty_boy dans le forum Périphériques
    Réponses: 7
    Dernier message: 19/01/2006, 14h03
  4. Appeler un driver USB via une interface.
    Par HR100 dans le forum Langage
    Réponses: 1
    Dernier message: 19/12/2005, 22h38
  5. [driver] USB pour Win NT4
    Par bidou dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 23/03/2005, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo