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

Java Discussion :

Affichage d'un frame récupéré à partir d'un port USB


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Par défaut Affichage d'un frame récupéré à partir d'un port USB
    Salut a tous ,
    mon objectif est de récupérer une trame a partir d'un port USB et de l'afficher avec un code java .
    voila le 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    package projet;
     
    import gnu.io.CommPortIdentifier;
    import gnu.io.SerialPort;
     
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.*;
    import java.util.*;
     
     
    public class dalel1 {
     CommPortIdentifier portId;
    BufferedReader in;
    PrintWriter out;
    SerialPort serialPort;
    String com;
    /*
    Constructeur de la classe test qui prend en paramètre le port série à utiliser.
    Dans un premier temps on liste les ports disponibles sur le pc
    */
    public dalel1 ()
    {super(); }//fin constructeur
     
    public  void connect()
    {
        System.out.println("donnez le numero de port com: ");
        Scanner sc = new Scanner(System.in);
        com=sc.nextLine();
     
    try
    {
    //	ouverture du port série:
        portId=CommPortIdentifier.getPortIdentifier("COM"+com);
    serialPort=(SerialPort)portId.open("projet",2000);//2000=time out
    //	on sélectionne tous les paramètres de la connexion série:
    serialPort.setSerialPortParams(38400,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//38400=rate
    System.out.println("Ouverture du port COM"+com);
     
    //	pour lire avec des streams:
    in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
    if (!in.equals(""))System.out.println("ok");
    //	Teste de lecture sur le port série
    if (!in.ready())System.out.println("ok");
    String frame= new String();
    try {
     
     //lecture du buffer et affichage
     frame = in.readLine();
    //System.out.println("ok");
     System.out.println(frame);
    } catch (IOException e) {
     
    }
    in.close();
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    }
     
     
    public void listePortsDispo()
    {
    System.err.println("recherche..." );
    Enumeration portList=CommPortIdentifier.getPortIdentifiers();
    if (portList==null)
    {
    System.err.println("Aucun port de communication détecté" );
    return;
    }
    while (portList.hasMoreElements())
    {
    portId=(CommPortIdentifier)portList.nextElement();
    System.out.println("* "+portId.getName());
    System.out.println(portId);
    } //fin while
    } //fin de la methode listePortsDispo()
    /*
    Methode main qui permet de tester notre classe de tester en ouvrant une connexion sur le port COM1.
    */
    public static void main(String args[])
    {
        dalel1 d=new dalel1();
        System.out.println("liste des ports série disponibles:" );
    d.listePortsDispo();
     
    d.connect();
     
    }//fin du main
    }//fin de la classe
    l'affichage est :
    liste des ports série disponibles:
    recherche...
    Stable Library
    =========================================
    Native lib Version = RXTX-2.1-7
    Java lib Version = RXTX-2.1-7
    * COM6
    gnu.io.CommPortIdentifier@71a97
    * COM7
    gnu.io.CommPortIdentifier@62b39f
    donnez le numero de port com:
    6
    Ouverture du port COM6
    ok
    ok



    Svp aidez mois pour résoudre cette problème .
    l'ouverture de port ça va ça marche mais reste l'affichage .
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Quel problème, je ne vois pas de problèmes ici.

    Affichage de quoi ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Par défaut
    Salut ,
    je souhaite afficher des trames envoyés par un capteur relié à mon PC vu à un port USB .
    j'essayé avec ça:
    in = serialPort.getInputStream();
    while ((len = this.in.read(buffer)) > -1) {
    String next=new String(buffer,0,len);
    System.out.print(next);

    out.print(next);

    }
    ça marche mais il affiche des caractères non compréhensible exemple d'affichage:

    ½b��
    �b��
    �@A�
    �A�
    �AA�
    ����
    pour le decodage j'essayé avec :
    /String next=new String(buffer,"US-ASCII");
    //String next=new String(buffer,"UTF-8");
    mais il ne donne pas le resultat attendu
    Lorsque je fait :
    in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
    il me donne l'affichage suivante :
    donnez le numero de port com:
    7
    Ouverture du port COM7
    java.io.IOException: Underlying input stream returned zero bytes
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.Reader.read(Reader.java:140)
    at projet.dalel1.connect(dalel1.java:55)
    c à dire il récupère le trame comme un inputstream mais il n'arrive pas à le convertir en inputstremreader


    mon objectif est d'affiché le message original qui est sous forme de String et des entiers

    svp donnez mois une méthode simple pour passer de byte au string ou bien dite moi pour quoi il récupère le trame comme un inputstream mais lorsque je passe au inputstreamredear il affiche:"input stream returned zero bytes"
    j'attend vos réponses

  4. #4
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Par défaut
    Salut,
    la problème a été résolu c'est a cause de mal configuration de port série j'ai mal choisir la valeur de paudrate

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

Discussions similaires

  1. Lire à partir d'un port USB
    Par midou256 dans le forum C#
    Réponses: 4
    Dernier message: 29/08/2011, 11h12
  2. Lire des données à partir d'un port USB
    Par asoka13 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 03/11/2010, 19h54
  3. affichage d'une image dans un frame a partir de la base
    Par amel_smiler dans le forum Langage
    Réponses: 1
    Dernier message: 17/04/2009, 17h40
  4. écrire/lire à partir d'un port USB
    Par gouss dans le forum Langage
    Réponses: 1
    Dernier message: 20/02/2009, 18h44
  5. Réponses: 13
    Dernier message: 15/11/2004, 10h14

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