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

Langage Java Discussion :

le retour de la fonction read


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut le retour de la fonction read
    Bonjour à tous!

    J'utilise la fonction public int read(byte[] b)throws IOException pour lire des données que m'envoie un onduleur.

    Je voudrais savoir un moyen pour détecter lorsque mon onduleur n'est pas branché et que j'essaie de lire.

    La fonction read nous retourne -1 si notre buffer (ici c'est la variable b)est vide.Mais cette solution ne marche pas non plus.j'ai essayé des gérer les exceptions et rein n'est fait.

    j'utlise l'api RxTx pour communiquer via liaison RS232.

    Quelqu'un aurait il une façon de faire?

    Merci à tous.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Seelass Voir le message
    Mais cette solution ne marche pas non plus.
    Tu peux être plus précis sur ce point? Il n'y a pas 36.000 façons de gérer la lecture d'un inputstream.

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu peux être plus précis sur ce point? Il n'y a pas 36.000 façons de gérer la lecture d'un inputstream.
    Voici la partie de mon code qui permet de lire un flux
    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
    21
    22
    23
    int carac_lu;
     
    try
    {
    	do
           {
    	 /**
              * read nous renvoie le nombre de caractéres lues
              */
    		  carac_lu = in.read(buffer);
    		   if(carac_lu == -1)
    		    {
    		    	System.out.println("l'onduleur n'est pas présent");
    		    }
    		    chaine_reponse += new String(buffer,0,carac_lu);
     
    	}
     
    	/**
             * Tant que la fin de chaine_reponse ne correspond pas<br>
             * au retour chariot on continue à lire
             */
    while((!chaine_reponse.endsWith("\r")));
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    d'abord, ton code devris faire un break si on rencontre -1.

    Ensuite, -1 signifie fin du stream, je ne pense pas que ca signifie que l'onduleur aie été débranché pour autant.

    Quand tu débranche l'onduleur, read te retourne quoi? As-tu une exception ou autre?

  5. #5
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    catch(IOException erreurIO)
        	{
        		System.out.println(erreurIO.getCause());
        		System.out.println(erreurIO.getMessage());
     
        	}
    voici l'exception que je gère mais lorsque j'éteins l'onduleur et que j'exécute mon programme, je n'ai pas d'exception qui est généré.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    d'abord, si elle déclenche, tu fais un printstacktrace de ton exception , sinon elle est inutile (le message est souvent moins utilie que le stack de l'erreur)


    Maintenant, pour ton problème précis, read retourne quoi? 0?

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

Discussions similaires

  1. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54
  2. Problème avec la fonction read.
    Par Whaouu dans le forum Langage
    Réponses: 10
    Dernier message: 23/09/2005, 10h33
  3. valeur de retour de la fonction "system" en C
    Par benhoeil dans le forum C
    Réponses: 14
    Dernier message: 16/09/2005, 11h30
  4. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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