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

C Discussion :

Lire les données d'un port USB en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut Lire les données d'un port USB en C
    Bonjour tous le monde je voudrais devellopé une application en C qui me permet de lire les données sur un port USB connecté sur mon PC dans le cadre de mon stage. je suis debutant dans la devllopement alors je voudrais juste avoir une idée sur les étapes a suivre afin de finir mon trravaille le plutot possible(Urgent), des tuto ou une methode de travaille merci. je suis sous linux

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par zguingua Voir le message
    je voudrai développer une application en C qui me permette de lire les données sur un port USB [...] je suis sous linux
    libusb est idéale pour travailler avec des périphériques usb en C.

    je suis débutant dans la développement alors je voudrais juste avoir une idée sur les étapes a suivre afin de finir mon travail le plutôt possible
    Je dirai que c'est ton maitre de stage qui est le plus qualifié pour répondre à cette question. Sinon, on peut citer http://emmanuel-delahaye.developpez.com/dev_proj.htm.

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut
    1=> Mon maitre de stage il est en vacance et du coup j'ai pas beacoup d'aide et merci pour le conseil
    2=> le plus important est que j'arrive a faire mon travail correctement
    sinon revenant aux tuto que vous m'avez donnés ( j'ai une clé usb reconnue par mon pc et j'ai une autre application qui fait fonctionné ma clé, ce que je voudrai faire je lancce cette application qui fait marché ma clé et moi de mon coté je doit devllopé une autre application qui recupere le flux de données qui provient de cette clé voila en resumé j'espere que je suis claire) alors je ne sais pas si libusb me soit d'une grand utilité ou pas sinon y a t'il d'autre fonction qui peuvent fair ça merci

    sinon je voulais savoir quels sont les details de clé usb que je doit connaitre (nom par exemple) qui seront utilisé dans l'application ? je sais que c'est un sujet qui n'est pas facile mais sincérelent j'ai besoin de cette aide merci

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par zguingua Voir le message
    Bonjour tous le monde je voudrais devellopé une application en C qui me permet de lire les données sur un port USB connecté sur mon PC dans le cadre de mon stage. je suis debutant dans la devllopement alors je voudrais juste avoir une idée sur les étapes a suivre afin de finir mon trravaille le plutot possible(Urgent), des tuto ou une methode de travaille merci. je suis sous linux
    Une clé USB est considérée comme un disque externe. Une fois que tu as son nom de disque (regarde dans l'explorateur...), tu y accèdes comme sur n'importe quel disque. Je ne vois pas où est le problème.

    Par exemple data.txt sur clé USB reconnue en tant que disque E:

    FILE *fp = fopen ("E:/data.txt", "r");
    etc.

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut
    ok merci mais du coup moi je suis sur linux lorsque je fait lsusb<< Bus 004 Device 002: ID 10b8:0066 DiBcom>> voila ce que je reçois comme reponse la c ma clé mais sur le poste de travaille elle ne s'affiche pas(l'icone) alors je dois mettre fp = fopen("Dibcon", "r").

    une autre precision les données que je veux lire ne sont pas stocké dans la clé (dans un fichier) les données que la clé reçoit est un flux et elle est fait sortir dans un flux (reception emission pas de stockage de données dans la memoir de la clé) et normalement fopen est utilisé uniquement pour ouvrire un fichier

    je vous est parlé d'une application qui fait demaré ma clé cette application demarre la clé (reception et emission de flux ( pas de stockage) du coup moi je veux lire ce flux
    1=> je lance ma premiere application elle demare ma clé (actuellement ma clé recoit un flux qui est transmi dirrectement au pc) la tous marche bien
    2=> le j'intervient pour recuperé ce flux (mais comment faire...............)
    la je pense avoir été tres claire
    merci

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par zguingua Voir le message
    je vous est parlé d'une application qui fait demaré ma clé cette application demarre la clé (reception et emission de flux ( pas de stockage) du coup moi je veux lire ce flux
    1=> je lance ma premiere application elle demare ma clé (actuellement ma clé recoit un flux qui est transmi dirrectement au pc) la tous marche bien
    2=> le j'intervient pour recuperé ce flux (mais comment faire...............)
    la je pense avoir été tres claire
    merci
    Alors il faut connaitre le nom du device (/dev/usb...), et le gérer avec les fonctions driver prévues pour ça :

    open(), ioctl(), select(), read(), write() etc.

    ou des fonctions de plus haut niveau si elles existent (peut être libusb, comme déjà évoqué).

    j'espère que tu as la doc du driver, parce que ça ne s'invente pas.

    P.S. Relis toi et corrige toi. Je ne vais pas passer l'après-midi à décoder et corriger tes messages bourrés de typos ...

  7. #7
    Membre averti
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut Lire les données d'un port USB en C
    ok j'ai bien compris, j'aimerais bien voire un exemple pour avoir une idée concraite ou bien une architecture detaillé des etapes a suivre (par exemple 1=> Initialisation usb , 2=> ouvrire le bus serie.......)

  8. #8
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par zguingua Voir le message
    ok j'ai bien compris, j'aimerais bien voir un exemple pour avoir une idée concrète ou bien une architecture détaillée des étapes à suivre (par exemple 1=> Initialisation usb , 2=> ouvrir le bus série.......)
    En cherchant un peu sur google, on trouve facilement...

    Il faut d'abord trouver le périphérique voulu.
    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
    #define MY_VENDOR_ID 15
    #define MY_PRODUCT_ID 16
    struct usb_bus *usb_bus;
    struct usb_device *dev, *my_dev = NULL;
    usb_init();
    usb_find_busses();
    usb_find_devices();
     
    for (usb_bus = usb_busses; usb_bus; usb_bus = usb_bus->next) {
        for (dev = usb_bus->devices; dev; dev = dev->next) {
            if ((dev->descriptor.idVendor == MY_VENDOR_ID) &&
                    (dev->descriptor.idProduct == MY_PRODUCT_ID))
                    my_dev = dev;
        }
    }
    if(NULL == my_dev) {
        fprintf(stderr, "Périphérique non trouvé\n");
    }else{
        /* on peut travailler avec my_dev */
    }
    Après on ouvre la connection avec usb_open et on peut piloter le périphérique avec usb_control_msg.

    Une fois le travail fini, on ferme le tout avec usb_close.

Discussions similaires

  1. [Imprimante] Lire les données qui transitent sur un port paralléle
    Par gastoncs dans le forum Périphériques
    Réponses: 7
    Dernier message: 29/07/2011, 21h15
  2. Lire les données colléctées par le port
    Par othman3535 dans le forum Entrée/Sortie
    Réponses: 20
    Dernier message: 12/06/2010, 03h46
  3. Lire les données sur un port //
    Par gastoncs dans le forum Périphériques
    Réponses: 1
    Dernier message: 20/08/2008, 22h40
  4. Lire les données du port série RS232
    Par Sytchev3 dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2008, 08h47
  5. lire les données sur un port RS232
    Par xave dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 16h40

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