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 :

Lecture d'un port usb


Sujet :

C

Vue hybride

hexter Lecture d'un port usb 16/03/2010, 15h42
raphamil Tu pourrais poster tout ton... 16/03/2010, 20h39
hexter j'essaie de faire le code... 16/03/2010, 22h01
raphamil Pour convertir de chiffre à... 16/03/2010, 22h59
hexter merci je ne faisait pas la... 17/03/2010, 08h39
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Par défaut Lecture d'un port usb
    Bonjour à tous,

    Voici mon problème, il me faudrait un programme qui aille lire dans un port usb.
    L'usb délivre un octet et si le code ascii de l'octet me convient, je le met dans un tableau de 10 cases. La dernière case étant réservé pour la vérification avec le caractère LF qui a un code décimale de 10.
    Sinon je réinitialise mon tableau et attend un LF pour recommencer.

    Voici le milieu de mon programme qui est le moins éronnée ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(j=0; j<=20; j++){  // on prépare le tableau à acceuillir le caractère suivant
     
    	if( ((chiffre>= 48) && (chiffre<=57)) || (chiffre==44) || (chiffre==10)) { //vérification d'un caractère licite
    		tabOctet[j]=usb;
     
    	else

  2. #2
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Août 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2008
    Messages : 38
    Par défaut
    Tu pourrais poster tout ton code (là je e comprends pas très bien ce que tu souhaites faire avec le bout de code et le problème que tu as), et dans des balises code ?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Par défaut
    j'essaie de faire le code mais je suis vraiment débutant.
    Pour simplifier les choses voilà ce que dois faire le programme:
    1/Récupérer une suite de 10 octets d'un port usb (simplifions en prenant un format .txt
    2/Mettre ces dix octets dans un tableau
    3/Vérifier que les 9 premiers octets corresponde bien a des caractères représentant des chiffres et le dernier a celui du 'BS'
    4/Extraire les trois premières cases qui correspondant à un nombre à trois chiffres, les trois suivantes à un autre nombre, de même pour les trois autres.


    Si la série de 10 octet est erronée, délivrer les trois nombres précédents
    Pour redémarrer la lecteur, attendre un caractère BS.

  4. #4
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Août 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2008
    Messages : 38
    Par défaut
    Pour convertir de chiffre à nombre, tu devrais faire par exemple (mettons que tab est ton tableau) quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre = tab[0] * 100 + tab[1] * 10 + tab[2];
    Il y a un moyen plus simple et plus général de le faire. Peut-être en cherchant du côté de l'opérateur modulo, à toi de trouver ta solution.

    Edit: si les octets sont des caractères représentant des chiffres, il faut faire des manipulations supplémentaires. Le code risque de devenir un peu lourd si tu veux implémenter des vérifications d'erreur (mais c'est le boulot de programmeur ). En langage C, c'est tout bête pour passer de caractère (chiffre) à nombre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c = '3';
    int nbr = c - '0';

  5. #5
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Par défaut
    merci je ne faisait pas la bonne conversion:

    "int chiffre = (int) caractère"

    Tu pourrais me dire comment faire pour attendre le caractère 'BS' avant de commencer à écraser l'ancien tableau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(j=0; j<=10; j++){  // on prépare le tableau à acceuillir le caractère suivant
     
    	if((chiffre>= 48) && (chiffre<=57)) { //vérification d'un caractère licite
    		tabOctet[j]=usb;
    	}
    	else {
    		tabOctet[j]='SUB'; // on remplace le caractère éronné par un caractère d'erreur
    	}
    }

    encore merci pour ton aide

Discussions similaires

  1. Lecture via un port USB
    Par mfmf99 dans le forum Windows
    Réponses: 0
    Dernier message: 05/04/2010, 21h06
  2. Lecture du port USB
    Par ArkAng3 dans le forum MFC
    Réponses: 32
    Dernier message: 02/04/2007, 09h23
  3. lecture d'un port usb
    Par bob21 dans le forum C++
    Réponses: 1
    Dernier message: 13/06/2006, 13h18
  4. Réponses: 2
    Dernier message: 27/02/2003, 01h33

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