begin process at 2010 03 19 13:55:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

RS232


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RS232

mardi 6 mai 2008 à 21:42:39 | RS232

didoux95

Bonjour à tous, ..

J'ai un petit mais relativelment embêtant.
En fait c'est que je viens de me rendre compte que mon application recoit pas les données qui sont censées lui parvenir (au travers d'un port RS232). Pour tester mon appli, j'ai créer deux ports virutels aux quels j'ai connecté un émulateur et mon programme. Comme je ne recevais rien, j'ai essayé avec deux emaulateurs (connectés l'un à l'autre). Comme les deux emulateurs recoivents les données, c'est que le problème vient de mon code (du moins, c'est ce que je penses). J'ai ajouté des "System.out.println(" ici ... ");"  un peut partout dans la classe qui gère le RS232 (notemment dans les évènement). Et il ne s'affiche jamais rien .. :( .. comme si le programme ne recevait jamais aucune données ou notifications (d'où l'absence d'évènement ..).

Pour communiqué (enfin .. essayé xD),  j'utilise l'API rxtx

Voici le code que j'utilise pour ouvrir et initialiser la connexion..

public boolean open () throws SerialConnectionException {
  
  //If there is no selected port
  if (tmpPort.equals(""))
   configure();
  
  //If we are using a port, we close it before opening an other
  if (isOpen())
   close();
  
  //Connection's way
  try {
   
   //Trying to get authorization for this application
   CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(tmpPort);
   serialPort = (SerialPort)cpi.open(appName, 1000);
   
   //Opening
   System.out.println("Opening .. ;o) !! =]");
   serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
   serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
   serialPort.addEventListener(new SerialPortEventListener () {
    public void serialEvent (SerialPortEvent spe) {
     System.out.print("event !!");
     switch (spe.getEventType()) {
      case SerialPortEvent.BI :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.OE :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.FE :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.PE :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.CD :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.CTS :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.DSR :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.RI :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.OUTPUT_BUFFER_EMPTY :
       System.out.println("enfin !");
       break;
      case SerialPortEvent.DATA_AVAILABLE :
       System.out.println("reception donnees .. :p ");
       recieveData();
       break;
     }
    }
   });
   
   open = true;
   
  }catch (NoSuchPortException nspe) {
   throw new SerialConnectionException("The asked port does not exists .. ");
  }catch (PortInUseException piue) {
   throw new SerialConnectionException("The asked port is already used by an other program .. ");
  }catch (UnsupportedCommOperationException ucoe) {
   throw new SerialConnectionException("The defined port does not support minimal configuration ..");
  }catch (TooManyListenersException tmle) {
   
  }

  //Is port open ?
  return open;
  
 }



En vous remerciant pr avance de bien vouloir me donner un 'tit coup de pouce :p
Merci ..
mercredi 7 mai 2008 à 19:45:16 | Re : RS232

didoux95

Réponse acceptée !

Bonjour
Je suis parvenu à trouvé une solution (sans utiliser les évènements ..) :

   //This is the reading thread (read input data)
   new Thread () {
    
    public void run () {
     
     //We do it allways (while theprogram is running)
     while (true) {
      
      //Where data will be saved
      String temporaryData = "";
      
      try {
       
       //Where data come from
       BufferedReader br = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
       
       //Getting each trame of "dataNulber" bytes
       int dataNumber = 11;
       for (int a=0; a<dataNumber; a++) {
        
        //Sleep while there is no data available
        while (!br.ready());
        
        //Saving data
        temporaryData += " " + br.read();
        
       }
       
      }catch (Exception e) {e.printStackTrace();}
      
      //Validing data ..
      inData = temporaryData;
      
      //To inform that all recieved data are available
      dataListener.dataAvailable(new RS232DataEvent(this));
      
     }
     
    }
    
   }.start();
   


voila.



Cette discussion est classée dans : system, out, println, enfin, serialportevent


Répondre à ce message

Sujets en rapport avec ce message

[java]creation de fichier ... [ par suber600 ] voila je dois creer un fichier composé d entier et de double. le fichier ne doit pas etre lisible par un editeur de texte comment dois je faire ? je v Besoin d'aide programme etudiants, assez simple [ par The Waxy Man ] J'ai re-besoin d'aide !!!ERREUR:C:\jdk1.3\bin\javaw.exe -classpath "C:\jdk1.3\jre\lib\rt.jar;C:\DATA\2ti\Eleves\Englebert" Englebertjava.lang.NullPoi prob avec vector et fichier [ par bruno270579 ] je dois faire un projet en java et j'ai une colle je dois faire un objet Client qui contiendrai les champs suivant String nom, prenom, adresse; et un URGENT!!! Problème avec applets et jdbc [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a Problème APPLET JDBC ACCESS [ par PhilippeA ] Bonjour,voilà j'ai créer un fichier java me permettant d'accéder à une base access. Ca marche. Mais il faut que je passe ce fichier en applet donc j'a free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr free et jdbc [URGENT !!!] [ par kerlutinhoec ] bien le bonjour !Bon, moi, je suis emmerdé par jdbc.J'utilise le driver org.gjt.mm.mysql.Driver pour essayer de me co a une bdd type MySQL.Alors le pr System.out.println en série... [ par eraserhead ] Salut à tous,Voici le problème que je dois résoudre:Une machine m produit des pièces numérotées à partir de 1 qu'elle dispose sur un tapis roulant t (


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales