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

Entrée/Sortie Java Discussion :

[javaComm]Communication port COM


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut [javaComm]Communication port COM
    Bonjour,

    apres investigation de ma part, j'ai telecharge, configure, et utilise la librairie javax.comm. Le probleme etant que les samples fournit avec cette librairie, ne fonctionnent pas sur ma machine pour je ne sais quelle raison : vu par les application, je n'ai aucun port serie (la machine en possede deux)

    D'autre part j'aimerais savoir, pourquoi dans les sources donnes par Sun SimpleRead.java et SimpleWrite.java le port par defaut est /dev/term/a ce qui est a mon avis le port par defaut sur des systemes de type UNIX.

    Merci d'avance.




    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java
    Gentoo, Debian, Debian sid

  2. #2
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Tout a fait le model par defaut est pour Unix.
    Pour un poste sous Windows le changement dans la méthode main de l'exemple SimpleRead est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      public static void main(String[] args) {
    		portList = CommPortIdentifier.getPortIdentifiers();
     
    		while (portList.hasMoreElements()) {
    			portId = (CommPortIdentifier) portList.nextElement();
    			if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
    				if (portId.getName().equals("COM1")) {
    					SimpleRead reader = new SimpleRead();
    				}
    			}
    		}
    	}
    De meme il faut verifier pour les autres exemples.
    Tu peux essayer de renvoyer a l'ecran ton enumeration portList pour voir les noms de tes ports.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Salut,

    et bien justement le probleme c'est que j'ai essaye d'afficher a l'ecran la liste des ports disponibles mais visiblement je n'en ai aucune. Je vais ressayer cela plus en details je crois.

    Merci pour le code.
    Gentoo, Debian, Debian sid

  4. #4
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Essaie ce bout de 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
     
    import java.util.*;
    import javax.comm.*;
     
    public class SimpleRead {
    	static CommPortIdentifier portId;
    	static Enumeration portList;
     
    	public static void main(String[] args) {
    		portList = CommPortIdentifier.getPortIdentifiers();
     
    		while (portList.hasMoreElements()) {
    			portId = (CommPortIdentifier) portList.nextElement();
    			System.out.println (portId.getName());
     
    		}
    	}
    }
    Chez moi ca me renvoie la liste des ports
    COM3
    COM1
    LPT1
    LPT2

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Ok merci je vais essayer de faire comme cela !
    Gentoo, Debian, Debian sid

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Apres divers essais :

    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
    import java.util.*; 
    import javax.comm.*; 
     
    public class SimpleRead { 
       static CommPortIdentifier portId; 
       static Enumeration portList; 
     
       public static void main(String[] args) { 
          portList = CommPortIdentifier.getPortIdentifiers(); 
     
          while (portList.hasMoreElements()) { 
             portId = (CommPortIdentifier) portList.nextElement(); 
             System.out.println (portId.getName()); 
     
          } 
       } 
    }
    Ce code ne me renvoi rien du tout pour une raison qui m'est inconnue. Un des ports serie marche, c'est sur, car je l'utilise pour controller un robot.

    Peut etre y a-t-il des services particuliers a demarer (le poste en question ne dipose pas de connexion reseau, d'imprimante,...), ou une manipulation a faire dans le panneau de configuration...

    Si vous avez des remarques concernant ceci je suis preneur.

    Merci.
    Gentoo, Debian, Debian sid

  7. #7
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Là je seche...
    A tout hasard, as-tu bien télécharger la bonne version du jar, celle pour Windows et pas celle pour Solaris?
    As-tu bien mis le javax.comm.properties avec le comm.jar? D'ailleur dans la FAQ il recommande de ne pas l'éditer.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Salut,

    oui en effet j'ai bien la version de Sun. Je n'ai pas edite le fichier javax.comm.properties, mais par contr eje l'ai bien mis avec comm.jar

    Le probleme etant que les application se compilent sans probleme, c'est juste que les "samples" ne trouvent aucun port que ce soit COM1, COM2, ou LPT1,...

    Merci.
    Gentoo, Debian, Debian sid

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Salut,

    j'ai essaye d'installer le package javax.comm sur une autre machine (Windows XP) et le resultat est exactement le meme que precedemment : les samples presents dans l'archive de Sun ne repertorient aucun port serie ni parallele (SerialDemo, ....).


    Une question me vient cependant : dans le Readme de Sun present dans l'archive, les exemples ce font avec le jdk1.1.6.

    Est-ce le bon lien ?
    http://java.sun.com/products/javacom...oads/index.htm

    Merci
    Gentoo, Debian, Debian sid

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Re,

    alors comme je suis pas facile a decourager j'ai cherche, cherche.

    Puis je suis tombe sur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
              Win32Driver w32Driver = new Win32Driver(); //Init your Native Driver
              w32Driver.initialize();
              portId1 = CommPortIdentifier.getPortIdentifier("COM1");
              ComControl reader = new ComControl();
          }
     
        catch
          (Exception e) {
    Et la grande surprise (il faut aussi l'import correspondant : import com.sun.comm.* mon aplication me repertorie la liste des ports presents sur la machine. Que de joie (2 semaines que je cherchais; surement mal ).

    Merci.
    Gentoo, Debian, Debian sid

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 33
    Points : 38
    Points
    38
    Par défaut Merci
    Salut,

    Je te remercie pour ton aide...
    Ca marche a la perfection, j'arrive a voir les COM et les LPT merci encore...

    Juste un détail, en analysant un peu le code j'ai vu qu'en fait il suffit d'initialiser le driver pour Windows
    Soit:



    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
    import java.util.*; 
    import javax.comm.*; 
    import com.sun.comm.*;
     
    public class Moteur { 
       static CommPortIdentifier portId; 
       static Enumeration portList; 
     
       public static void main(String[] args) { 
          portList = CommPortIdentifier.getPortIdentifiers(); 
     
              Win32Driver w32Driver = new Win32Driver(); 
              w32Driver.initialize();   
     
          while (portList.hasMoreElements()) { 
             portId = (CommPortIdentifier) portList.nextElement(); 
             System.out.println (portId.getName()); 
     
          }      
       } 
    }
    est suffisant....


    Merci encore pour ton aide...

    Encore une petite question:
    Comment envoyer une chaine(de caractere ou d'entier....) sur un port precis (port COM1).....


    Merci d'avance.....

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    jette un oeil dans le package que tu as telecharge chez Sun dans les samples SimpleWrite...
    Gentoo, Debian, Debian sid

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

Discussions similaires

  1. Communication port COM
    Par momo l'plus bô dans le forum Bibliothèques, systèmes et outils
    Réponses: 1
    Dernier message: 17/09/2013, 20h38
  2. Communication port COM via PySerial
    Par declerckcyril dans le forum Général Python
    Réponses: 2
    Dernier message: 28/02/2013, 14h45
  3. Communication Port Com et VB6
    Par eldiablo13 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/07/2010, 18h52
  4. Réponses: 1
    Dernier message: 01/07/2008, 12h33
  5. Communication port com.
    Par Alga007 dans le forum C++
    Réponses: 2
    Dernier message: 08/06/2007, 08h58

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