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 :

Détection de nouveau périphérique avec Javax.comm


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 29
    Points
    29
    Par défaut Détection de nouveau périphérique avec Javax.comm
    Bonjour,

    je suis actuellement sur un projet qui utilise l'API javax.comm.
    Je me suis basé sur le tuto de Christophe Jollivet sur ce lien (super comme tuto!)
    J'ai fais une IHM qui me permet de visualiser la liste de tous les ports! De ce coté aucun problème.

    J'ai voulu rajouter une petite fonction "Actualiser" avec un bouton, mais mon problème commence ici... Après de nombreux tests, j'ai compris que pour connaitre à nouveau la liste des ports il m'est nécessaire de relancer la fonction Win32Driver.initialize() . Je récupère alors la nouvelle liste des ports, mais également la précédente...
    Voici un exemple du résultat que j'obtiens:
    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
     
    Etat initial:
    COM1
    LPT1
     
    Je connecte un périphérique et clique sur "Actualiser":
    COM1
    LPT1
    COM1
    COM2
    LPT1
     
    Je connecte un nouveau périphérique et reclique sur "Actualiser":
    COM1
    LPT1
    COM1
    COM2
    LPT1
    COM1
    COM2
    COM3
    LPT1
    Je voulais savoir si quelqu'un possède une solution? Les idées qui me sont passées par la tête était par exemple de rafraichir le Win32Driver, ou de le désactiver pour le réactiver par la suite mais cette classe ne possède que 2 fonctions initialize() et getCommPort(String, int)...

    Merci par avance pour l'aide!

    PS : Si un bout de code est nécessaire je peux vous en fournir un mais je pense avoir été clair(enfin j'espère ).

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    bonjour.

    la fonction win32Driver.initialize() est dans quel package, netbeans m'affiche une erreur. merci d'avance.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Voici l'import que tu doit faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import com.sun.comm.Win32Driver;

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    bonjour Romvaillant!

    1er ement merci pour votre répence.

    pour votre problem pk vous ne videz pas la liste des ports (la variable de type enumeration =null) avant de recupérer la nouvelle liste (avant de relancer la fonction initialize() ).

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut problème de programmation des ports series
    salut.

    j'ai commencé par lire le tuto de http://christophej.developpez.com/tu...java/javacomm/ , j'ai téléchargé la version de l'API javaComm depuis le site de sun mais elle ne contient qu'un fichier .jar (ni .dll ni .properties), j'ai trouvé une autre version dans un autre site, j'ai suivi la procédure d'installation, j'ai commencé la programmation par ecrire la fonction qui affiche la liste des ports, aucun problem pour la compilation, mais pour l'exécution il m'affiche une exeption et 2 erreurs, je me suis rendu après que cette API ne fonctionne correctement qu'avec l'API rxtx, j'ai installé ce dernier, et j'ai ajouté un fichier "javax.comm.properties" qui contient les deux lignes de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Driver de RXTX
    Driver=gnu.io.RXTXCommDriver
    cette fois il m'a pas affiché l'exeption, mais tjrs les deux erreurs:

    Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
    et :
    Caught java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/StringI while loading driver com.sun.comm.SolarisDriver

    mon programme est juste, aucun probleme pour la compilation, j'ai un port série qui fonctionne bien, (un port USB que j'ai converti en rs232 avec un adaptateur, j'ai installé le pilote, et il est affiché dans gestionnaire de périphérique com5), voila mon problème

    je pense à ajouter (installer) une autre version de windows plus ancienne, mais je ne suis pas sur si le problème vient de la version de windows j'ai "vista familiale". alors qulqu peut-il m'aider à arriver à une solution.

    voici mon code: (sur netbeans)
    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
    package tpreseau2;
    
    import java.util.*;
    import javax.comm.*;
    import com.sun.comm.*;
    
    //la classe jframe
    
    public class NewJFrame extends javax.swing.JFrame {
    
         static CommPortIdentifier portId;
         static String s;    
         static Enumeration listeDesPorts;
        
    /** Creates new form NewJFrame */
        public NewJFrame() {
            initComponents();
        }
    
    //la fonction qui liste les ports disponibles
    
    public String listPortDisponible(){
        Win32Driver w32Driver= new Win32Driver();
        w32Driver.initialize();
         listeDesPorts= CommPortIdentifier.getPortIdentifiers();
        if (listeDesPorts==null)  s=("aucun ports détecté");
        while (listeDesPorts.hasMoreElements()){
             portId=(CommPortIdentifier)listeDesPorts.nextElement();
            s=(portId.getName());}
      
        return (s);
    } 
        
        
        
        // la suite du programme concernant l'interface
        
           ...............
    
         ............
      
      //l'affichage de la résultat sur un label en cliquant sur un boutton  
    
    
    private void jToggleButton1MouseClicked(java.awt.event.MouseEvent evt) {                                            
        jLabel1.setText(listPortDisponible());
    }                                           
    
      
            .....
    
           .......
    
    }
    merci d'avance.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour, je suis très intéressé par le problème de Romvaillant.

    J'ai également ce petit soucis avec la ré-actualisation de ma liste des ports.

    Quelqu'un a trouvé une solution plus ou moins élégante ?

    Merci d'avance

Discussions similaires

  1. Ma carte ne réponds pas avec l'API Javax.comm
    Par blackhock dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 16/09/2009, 13h33
  2. Double resultat avec javax.comm
    Par seb2020 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 01/10/2008, 18h20
  3. blocage de l'application avec javax.comm
    Par caloun62 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/03/2007, 19h59
  4. Probleme avec l'API javax.comm
    Par rousni dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 16/06/2006, 12h48
  5. Décrocher avec javax.comm
    Par gskoala dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 08/04/2006, 21h15

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