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 :

ecriture sur port série


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut ecriture sur port série
    bonjour,
    voila je suis en train de faire un programme qui gére la connexion d'un pc et d'un GPS sur un port série. j'ai pu etablir la connexion et recevoir les données puis les enregistrer dans un fichier text, ce qui me manque c'est d'envoyer des commandes(chaines de caractères) vers le GPS, la methode utilisée dans mon programme ne fait pas l'affaire


    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    /*
     * test2.java
     */
     
    package javaapplication11;
     
     
     
    import javax.comm.*;
    import com.sun.comm.Win32Driver;
    import java.io.*; 
    import java.util.*;
     
    import java.io.FileDescriptor;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
     
    public class test2
    {
        public test2()
        {
            super();
            Win32Driver w32Driver = new Win32Driver();
    		w32Driver.initialize();
     
        }
     
        void connect ( String portName ) throws Exception
        {
            CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
     
            if ( portIdentifier.isCurrentlyOwned() )
            {
                System.out.println("Erreur : port série indisponible");
            }
            else
            {
                CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
     
                if ( commPort instanceof SerialPort )
                {
                    SerialPort serialPort = (SerialPort) commPort;
                    serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
     
                    InputStream in = serialPort.getInputStream();
                    OutputStream out = serialPort.getOutputStream();
     
     
                    (new Thread(new SerialWriter(out))).start();
                    (new Thread(new SerialReader(in))).start();
     
     
                }
                else
                {
                    System.out.println("Erreur");
                }
            }     
        }
     
     
        public static class SerialReader implements Runnable 
        {
            InputStream in;
     
            public SerialReader ( InputStream in )
            {
                this.in = in;
            }
     
            public void run ()
            {
                byte[] buffer = new byte[1024];
                int len = -1;
                try
                {
                    while ( ( len = this.in.read(buffer)) > -1 )
                    {
                        System.out.print(new String(buffer,0,len));
                        ObjectOutputStream SerialReader = new ObjectOutputStream(new FileOutputStream(("fichier.txt"),true));  
                         SerialReader.writeObject(new String(buffer,0,len));
                    }
     
     
                }
                catch ( IOException e )
                {
                    e.printStackTrace();
                }            
            }
        }
     
        public static class SerialWriter implements Runnable 
        {
            OutputStream out;
     
            public SerialWriter ( OutputStream out )
            {
                this.out = out;
            }
     
            public void run ()
            {
                try
                { 
     
                  int c ;
                    while ( (  c = System.in.read()) > -1 )
                    {
                        this.out.write(c);
                        System.out.println("message envoyé");
     
                    } 
     
                }
                catch ( IOException e )
                {
                    e.printStackTrace();
                }            
            }
        }
     
     
     
        public static void main ( String[] args )
        {
            try
            {
                (new test2()).connect("COM5");
            }
            catch ( Exception e )
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        }

    merci pour votre aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    pour plus de précisions :
    la connexion avec le GPS est geré, il me retourne des informations, mon seul probleme c'est dans la methode SerialWriter qui ne fait que d'envoyer des bits, et moi j'aurais besoin d'envoyer une chaine de caractère en ASCII.

    j'espère que le problème est maintenant plus clair.

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Je ne comprends pas trop ton souci dsl Pourquoi tu n'envoies pas ta chaîne bit à bit ?

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    je ne peux pas envoyer ma chaine bit/bit parce que le GPS ne la reconnait pas .

  5. #5
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Et pourquoi ne pas utiliser le write(byte[]) ?

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    j'ai deja essayé mais ça marchait pas.

Discussions similaires

  1. [JNI] Lecture/Ecriture sur port série RS232
    Par jabesq dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 20/09/2010, 17h01
  2. Ecriture sur port série
    Par jackk dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 09/03/2009, 16h03
  3. Recevoir "NULL" sur port série
    Par WinY57 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 04/03/2005, 11h37
  4. Etat de CTS sur port série
    Par Juste_Une_IlluZion dans le forum C++Builder
    Réponses: 9
    Dernier message: 12/09/2004, 10h46
  5. [Débutant] Réception sur port série
    Par Tophe59 dans le forum Langage
    Réponses: 43
    Dernier message: 28/06/2004, 11h04

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