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 :

Acquisition par le port RS232 COM1


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut Acquisition par le port RS232 COM1
    Bonjour,

    Je cherche à afficher puis stocker les informations reçues par mon port série COM1.

    Voici mon 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
    import javax.comm.*;
    import java.io.*;
    import java.util.*;
    /**
     * Cette classe permet de tester les ports séries disponibles en les listant
     * puis en créant un stream d'entrée et de sortie
     */
    public class Lecture{
        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 Lecture (String com)
        {
            System.out.println("liste des ports série disponibles:" );
            listePortsDispo();
            try
            {
                //    ouverture du port série:
                portId=CommPortIdentifier.getPortIdentifier(com);
                serialPort=(SerialPort)portId.open("Envoi",2000);
                //    on sélectionne tous les paramètres de la connexion série:
                serialPort.setSerialPortParams(300,SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                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 codeBarre = new String();
                try {
                    //lecture du buffer et affichage
                    codeBarre = (String) in.readLine();
                    System.out.println(codeBarre);
                } 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());
            }
        } 
     
        public static void main(String args[])
        {
            new Lecture ("COM1" );
        }
    }
    Voici ma console:
    Liste des ports série disponibles :
    recherche...
    javax.comm.NoSuchPortException
    at javax.comm.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:105)
    at Lecture.<init>(Lecture.java:24)
    at Lecture.main(Lecture.java:71)
    Pour information, la communication fonctionne très bien puisqu'avec le logiciel HyperTerminal je peux voir les informations reçues au fil de l'eau.

    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 099
    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 099
    Par défaut
    Affiche quoi dans la console ?
    (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 averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    Afficher les port disponible ainsi que les données reçut comme le fait HypperTerminal

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 099
    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 099
    Par défaut
    Oui ca je m'en doute, je te demandais un copier coller ^^
    (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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    Un exemple d'information reçu ?

    Voilà ce que j'obtiens avec HyperTerminal:

    Sect. SystŠme 04/19/13 16:12 IMPRIM. OFF LINE
    Sect. SystŠme 04/19/13 16:27 IMPRIM. ON LINE
    Sect. SystŠme 04/19/13 16:27 IMPRIM. OFF LINE
    Sect. SystŠme 04/19/13 16:32 IMPRIM. ON LINE

    Normalement la fonction listePortsDispo() devrais afficher ceci:
    recherche...
    * com1
    * com3
    * LTP1

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 099
    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 099
    Par défaut
    Oui c'était ce que je demandais.

    Hormis le fait que tu aies demandé COM1 et que la fonction te retourne com1 (majuscule/minuscule), ce qui pourrait faire qu'il ne trouve effectivement pas le port, je ne vois pas. Tu devrais peut être essayer de passer par la méthode avec un identifiant (entier surement) au lieu de la méthode avec un string ? (vraiment au pif).
    (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

Discussions similaires

  1. Pas d’accès à l'interface de l'onduleur par le port rs232
    Par hacbao dans le forum Périphériques
    Réponses: 16
    Dernier message: 16/06/2014, 10h08
  2. Acquisition par les ports COM sous SIMULINK
    Par lfall dans le forum Simulink
    Réponses: 0
    Dernier message: 06/03/2012, 11h25
  3. affichage dans une interface des valeurs renvoyées par le port rs232
    Par EmilieGh dans le forum Bibliothèques, systèmes et outils
    Réponses: 5
    Dernier message: 20/05/2011, 17h51
  4. Réponses: 9
    Dernier message: 12/06/2009, 16h25
  5. Acquisition de données sur un port RS232
    Par Techbio dans le forum C
    Réponses: 13
    Dernier message: 30/01/2006, 15h21

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