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 :

[Série] pb de listener


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Par défaut [Série] pb de listener
    bonjour ....

    j'arrive pas afaire un listener sur la fonction serialEvent ou faire apel a une autre fonction d'une autre class..

    voici la class qui contient serialEvent .....
    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
     
    package client;
     
    import javax.comm.*;
    import com.sun.comm.Win32Driver;
    import java.io.*;
    import java.util.*;
     
    public class RFIDTagReader extends Thread implements SerialPortEventListener {
        public RFIDTagReader() {
            try {
                jbInit();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
     
        String codeBarre = new String();
        CommPortIdentifier portId;
        SerialPort serialPort;
        BufferedReader fluxLecture;
        boolean running;
     
            /**
             * Constructeur qui récupère l'identifiant du port et lance l'ouverture.
             */
            public RFIDTagReader(String port) {
     
                //initialisation du driver
                Win32Driver w32Driver = new Win32Driver();
                w32Driver.initialize();
                //récupération de l'identifiant du port
                    try {
                            portId = CommPortIdentifier.getPortIdentifier(port);
                    } catch (NoSuchPortException e) {
                    }
     
                    //ouverture du port
                    try {
                            serialPort = (SerialPort) portId.open("ModeEvenement", 2000);
                    } catch (PortInUseException e) {
                    }
                    //récupération du flux
                    try {
                            fluxLecture =
                                    new BufferedReader(
                                            new InputStreamReader(serialPort.getInputStream()));
                    } catch (IOException e) {
                    }
                    //ajout du listener
                    try {
                            serialPort.addEventListener(this);
                    } catch (TooManyListenersException e) {
                    }
                    //paramétrage du port
                    serialPort.notifyOnDataAvailable(true);
                    try {
                            serialPort.setSerialPortParams(
                                    9600,
                                    SerialPort.DATABITS_7,
                                    SerialPort.STOPBITS_1,
                                    SerialPort.PARITY_EVEN);
                    } catch (UnsupportedCommOperationException e) {
                    }
                    System.out.println("port ouvert, attente de lecture");
            }
            public void run() {
                    running = true;
                    while (running) {
                            try {
                                    Thread.sleep(2000);
                            } catch (InterruptedException e) {
                            }
                    }
                    //fermeture du flux et port
                    try {
                            fluxLecture.close();
                    } catch (IOException e) {
                    }
                    serialPort.close();
            }
            /**
             * Méthode de gestion des événements.
             */
            public void serialEvent(SerialPortEvent event) {
     
        //gestion des événements sur le port :
                    //on ne fait rien sauf quand les données sont disponibles
     
                    switch (event.getEventType()) {
                           case SerialPortEvent.BI :
                            case SerialPortEvent.OE :
                            case SerialPortEvent.FE :
                            case SerialPortEvent.PE :
                            case SerialPortEvent.CD :
                            case SerialPortEvent.CTS :
                            case SerialPortEvent.DSR :
                            case SerialPortEvent.RI :
                            case SerialPortEvent.OUTPUT_BUFFER_EMPTY :
                                    break;
                            case SerialPortEvent.DATA_AVAILABLE :
     
                                    try {
                                            //lecture du buffer et affichage
                                            codeBarre = (String) fluxLecture.readLine();
                                            System.out.println(codeBarre);
                                    } catch (IOException e) {
                                    }
                                    break;
                    }
            }
     
            /**
             * Permet l'arrêt du thread
             */
            public void stopThread() {
                    running = false;
            }
     
        private void jbInit() throws Exception {
        }
    }
    [/code]

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Messages: 1
    * A réviser, la balise * Remplacer les K par des QU exemple :
    Ki = Qui...
    * Virer le Urgent du titre, (il est Urgent que j'aille dormir, demain esst un autre jour)

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Par défaut
    c'est pas tres clair, mais commence par mettre des traces dans tou tes catch peut etre que tu as une exception quand tu ouvres le port ou autre et tu le sais pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
    ...
    catch (Exception e ) {
      System.out.println("error dans le blabla du code : " + e);
      e.printStrakTrace();
    }
     
    ...
    et utilises les tag code pour que cela soit plus lisible

    cordialement,

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Par défaut explication
    je v essayer d'etre plus clair je voudrai:
    - creer un evenement (faire apel a une autre class ou methode) d que je recois une chaine de caracter codeBarre dans serialEvent.

    - soit faire un listener apartire d'une class exterieur sur la methode serialEvent.

    merci d'avance..

Discussions similaires

  1. [JSlider] listener sur Jslider
    Par Garion dans le forum Composants
    Réponses: 4
    Dernier message: 31/05/2004, 13h33
  2. [JSP]comment créer un listener pour ma base de données
    Par Ekimasu dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/05/2004, 14h49
  3. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14
  4. TNS:listener could not resolve SERVICE_NAME given in connect
    Par Sinclair dans le forum Administration
    Réponses: 15
    Dernier message: 20/08/2003, 17h26
  5. DoubleClick Listener & ENTER
    Par Pro_Fete dans le forum Composants
    Réponses: 4
    Dernier message: 27/01/2003, 13h23

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