Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

lister les ports com



  1. #1
    dalel.ed

    lister les ports com


    ------

    Salut a tous,
    j'ai un problème avec les ports serie .j'ai instaler les api et créé un code java pour voir les ports disponibles de mon PC sur netbeans (windows) et j'ai copié le rxtxserial.dll dans windows>system32 et dans java>jdk . . .j'ai fait tous les étapes nécessaires mais il ne détecte pas les ports .
    le code :

    Code:
    package exemple;
    import gnu.io.CommPort;
    import gnu.io.CommPortIdentifier;
    import gnu.io.SerialPort;
    import java.util.*;
    
    public class Exemple {
        
      
    public static void main(String[] args) throws Exception {
            //récupération de l'énumération
    Enumeration portList=CommPortIdentifier.getPortIdentifiers();
    //affichage des noms des ports
    CommPortIdentifier portId;
    while (portList.hasMoreElements()){
    	portId=(CommPortIdentifier)portList.nextElement();
    	System.out.println(portId.getName());
    }
    if(!portList.hasMoreElements())
    {
        System.out.println("n'existe pas de port ");
    }
    
    }
    }
    le résultat dans le console:
    run:
    Stable Library
    ============================== ===========
    Native lib Version = RXTX-2.1-7
    Java lib Version = RXTX-2.1-7
    n'existe pas de port


    Voila je voudrais savoir si quelqu'un pourrais m'aider
    Merci a tt ceux qui pourront m'aider

    -----
    Dernière modification par JPL ; 19/03/2012 à 01h17. Motif: Ajout de la balise Code pour garder l'indentation

  2. #2
    polo974

    Re : lister les ports com

    Puisque tu es déjà à Gnu, passe à linux, ça marche tout seul sans rien ajouter...
    Jusqu'ici tout va bien...

  3. #3
    dalel.ed

    Re : lister les ports com

    Merci a tous,
    la problème a été résolu sur Windows il faut connectez un dispositif sur le port pour le code arriver a détecté les ports disponibles .

  4. #4
    dalel.ed

    Re : lister les ports com

    salut,
    Mon objectif est la lecture d'un trame envoyé par la dispositif connecté au port serie j'ai réussi à lister les ports disponible de mon PC mais le problème c'est que le programme n'arrive pas a ouvrir le port serie .
    code:

    Code:
    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;
    /*
    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);
        String com=sc.nextLine();
    
    try
    {
    //	ouverture du port série:
    portId=CommPortIdentifier.getPortIdentifier(com);
    
    serialPort=(SerialPort)portId.open("wasp_start_program_full_802_v1",2000);//2000=time out
    //	on sélectionne tous les paramètres de la connexion série:
    serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//38400=rate
    System.out.println("Ouverture du port "+com);
    //	pour lire avec des streams:
    in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
    //	Teste de lecture sur le port série
    String frame = new String();
    try {
     //lecture du buffer et affichage
     frame = (String) in.readLine();
     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());
    } //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

    résultat:
    run:
    liste des ports série disponibles:
    recherche...
    Stable Library
    ============================== ===========
    Native lib Version = RXTX-2.1-7
    Java lib Version = RXTX-2.1-7
    * COM6
    donnez le numero de port com:
    6
    gnu.io.NoSuchPortException
    at gnu.io.CommPortIdentifier.getP ortIdentifier(CommPortIdentifi er.java:218)
    at projet.dalel1.connect(dalel1.j ava:35)
    at projet.dalel1.main(dalel1.java :84)
    BUILD SUCCESSFUL (total time: 7 seconds)


    Voila je voudrais savoir si quelqu'un pourrais m'aider
    Merci a tt ceux qui pourront m'aider.
    Dernière modification par JPL ; 19/03/2012 à 13h59. Motif: Ajout de la balise Code pour garder l'indentation

  5. A voir en vidéo sur Futura
  6. #5
    JPL
    Responsable des forums

    Re : lister les ports com

    Merci de penser à utiliser la balise Code.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  7. #6
    dalel.ed

    Re : lister les ports com

    Salut,
    pour la méthode SerialPort.open(nom d'application ,2000) ;
    comment je peux récupérer le "nom d'application" je ne comprends pas a qu'elle application parle t il?
    Merci d'avance.

  8. #7
    dalel.ed

    Re : lister les ports com

    ça va le problème été résolu pour le nom de l'app c le nom de package de class .reste maintenant l'affichage de frame ça marche pas

  9. #8
    dalel.ed

    Re : lister les ports com

    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");
    et avec ça :
    String next=new String(buffer,"UTF-8");
    mais il ne donne pas le resultat attendu
    Lorsque je fait :
    in=new BufferedReader(new InputStreamReader(serialPort.g etInputStream()));
    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.readB ytes(StreamDecoder.java:287)
    at sun.nio.cs.StreamDecoder.implR ead(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.jav a:140)
    at projet.dalel1.connect(dalel1.j ava: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
    Dernière modification par dalel.ed ; 22/03/2012 à 20h51.

  10. #9
    dalel.ed

    Re : lister les ports com

    Salut ,
    la problème a été résolu

Discussions similaires

  1. comment lister tous les fichiers d'un même dossier ?
    Par jmdulimousin dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 09/04/2014, 20h14
  2. lister les programmes sous ubuntu
    Par alovesupreme dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 10/05/2011, 21h00
  3. Routeur Ouvrir Les Ports
    Par $$alex$$ dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 24/11/2007, 00h54
  4. Doubler les ports RS232
    Par matika dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 13/03/2005, 10h57