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 :

[Port] dialogue entre 2 RS485


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut [Port] dialogue entre 2 RS485
    Bonjour,

    mon but est de faire dialoger mon programme avec un autre programme via une RS485.

    Disposant de 2 port RS485 sur mon PC j'ai écrit un petit prog pour faire un teste.

    voici le code de la classe de mon programme principale :


    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
    package communication;
     
    import gnu.io.* ;
     
    import java.io.* ;
    import java.lang.Thread ;
     
    public class BalanceTeste extends Thread
    {
        private RXTXPort port ;
        private RXTXCommDriver portDriver ;
     
        private BufferedInputStream in ;
        private BufferedOutputStream out ;
     
        /** Creates a new instance of BalanceTeste */
        public BalanceTeste()
        {
            try
            {
                port = new RXTXPort ("COM3") ;
                port.setSerialPortParams(
                        9600, // baudrate
                        8, // databits
                        2, // stopbits
                        0 // parity
                        ) ;
                in = new BufferedInputStream(port.getInputStream()) ;
                out = new BufferedOutputStream(port.getOutputStream()) ;
            }
            catch (PortInUseException ePortInUse)
            {
                System.err.println("communication, BalanceTeste," +
                        " construction : " + ePortInUse) ;
            }
            catch (UnsupportedCommOperationException eUnsuported)
            {
                System.err.println("communication, BalanceTeste," +
                        " construction : " + eUnsuported) ; 
            }
        } 
     
        public void run ()
        {
            byte[] b = new byte[4] ;
            String s ;
            while (true)
            {
                try
                {
                    System.out.println("avant le read") ;
                    in.read(b) ;
                    s = new String (b) ;
                    System.out.println("apres le read b = " + s + " (" + b + ")") ;
                }
                catch (IOException e)
                {
                    System.err.println("communication, " +
                            "BalanceTeste, run : " + e) ;
                }
            }
        }
    }

    et voici le code de la classe de mon prod de teste :


    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 gnu.io.* ;
     
    import java.io.* ;
    import java.lang.Thread ;
     
    /**
     *
     * @author Florent Ruyssen
     */
    public class Comm
    {
        private RXTXPort port ;
        private RXTXCommDriver portDriver ;
     
        private BufferedInputStream in ;
        private BufferedOutputStream out ;
     
        /** Creates a new instance of Comm */
        public Comm()
        {
            try
            {
                port = new RXTXPort ("COM4") ;
                port.setSerialPortParams(
                        9600, // baudrate
                        8, // databits
                        2, // stopbits
                        0 // parity
                        ) ;
                in = new BufferedInputStream(port.getInputStream()) ;
                out = new BufferedOutputStream(port.getOutputStream()) ;
            }
            catch (PortInUseException ePortInUse)
            {
                System.err.println("communication, BalancePrecia," +
                        " construction : " + ePortInUse) ;
            }
            catch (UnsupportedCommOperationException eUnsuported)
            {
                System.err.println("communication, BalancePrecia," +
                        " construction : " + eUnsuported) ; 
            }
        }
     
     
        public void run ()
        {
            byte[] b = new byte[49] ;
            String s ;
            while (true)
            {
                try
                {
                    out.write("0D0A".getBytes());
                    System.out.println(new String ("0D0A".getBytes())) ;
                    System.out.println("avant le read") ;
                    in.read(b) ;
                    s = new String(b) ;
                    System.out.println("apres le read b = " + s) ; 
                }
                catch (IOException e)
                {
                    System.err.println("communication, " +
                            "BalancePrecia, run : " + e) ;
                }
            }
        }
    }
    le problème est que le premier devrait recevoir la chaine "0D0A" envoyé par le deuxième mais ce n'est pas le cas : il resoit a interva régulier quelque chose qui est transcrit par 4 carre... que le prog de teste soit lancé ou non ...

    Si vous avait une idée...

    Merci, floanne.

  2. #2
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    J'ai modifié l'affichage et ce que je lis sur mon port ce sont des 0...

    ++ floanne.

  3. #3
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    T'es-tu amusé avec HyperTreminal pour contrôler ce que tu transmets?

    [EDIT]N'as-tu pas un PC de récupération pour peut jouer le rôle de la balance.[/EDIT]

  4. #4
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    oui je me suis amusé mais ca ne marchait pas...

    Sinon, d'après un colège, il est possible que ce soit mon cable qui n'aille pas... j'ai testé avec un cable droit et en croisant les files 1 et 2 : meme résultat. Je vais me documenter sur internet pour récupérer un shémat de cablage...

    Merci, floanne.

  5. #5
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    Je pense de plus en plus que c'est mon cable qui ne va pas...

    Si quelqu'un pouvait m'indiquer comment le cabler proprement...

    Pour le monent j'ai testé le cable droit, le cable croisé avec les files 1 et 2 d'invercés et le cable croisé avec les files 2 et 3 d'incercés...

    ++ floanne.

  6. #6
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Tu n'as pas un schéma de ton convertiseur rs232/rs485?

  7. #7
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    j'ai une vrais carte RS485 avec deus ports.

    Merci, floanne.

  8. #8
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Je suis rassuré.

    J'avais peur que tu voulqis fire du rs485 avec le port série "normal" de ton PC.


    Et tu n'as pas le schéma de ta carte?

  9. #9
    Membre confirmé Avatar de floanne
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    Je viens de configurer la carte en full duplex...

    J'ai toujours pas trouvé le shémat de cablage du cable...

    merci, floanne

Discussions similaires

  1. dialogue entre fenetres
    Par funkadelic dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/01/2006, 13h55
  2. dialogue entre frames
    Par funkadelic dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/12/2005, 11h09
  3. Réponses: 72
    Dernier message: 05/12/2005, 10h45
  4. Dialogue entre systemes embarqués sur un réseau.
    Par zodd dans le forum Développement
    Réponses: 1
    Dernier message: 10/11/2005, 09h34
  5. [FLASH MX2004] [AS2] Dialogue entre 2 SWF- tellTarget ???
    Par Geilgestorm dans le forum ActionScript 1 & ActionScript 2
    Réponses: 11
    Dernier message: 24/10/2004, 22h07

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