Ajouter un commentaire

gethy06
Lecture sur Port serie

Salut a tous.
J'ai fait des recherche sur ce theme et je n'ai pas trouvé mon probleme evoqué quelque part.

Alors voila.
J'ai un flasheur de code a barre qui est connecté sur le port COM1 de mon PC.
Je veux lire ce qui se passe sur ce port et afficher la trame.
J'utilise ce code :

import javax.comm.*;
import java.io.*;
import java.util.*;
import com.sun.comm.Win32Driver;

/*
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 TesteJavaComm
{
 CommPortIdentifier portId;
 BufferedReader in;
 PrintWriter out;
 SerialPort serialPort;

 /*
 Constructeur de la classe TesteJavaComm qui prend en paramètre le port série à utiliser.
 Dans un premier temps on liste les ports disponibles sur le pc
 */
 public TesteJavaComm (String com)
 {
  Win32Driver w32Driver= new Win32Driver();
  w32Driver.initialize();
  System.out.println("listage des ports série disponibles:");
  listePortsDispo();
  try
  {
   //ouverture du port série:
   portId=CommPortIdentifier.getPortIdentifier(com);
   serialPort=(SerialPort)portId.open("Envoi",2000);

   int i=0;
   do
   {
    //on sélectionne tous les paramètres de la connexion série:
    serialPort.setSerialPortParams(38400,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
    int b = in.read();
    System.out.println(in.read());
    System.out.println(b);
    in.close();
    i++;
   }while(i!=3);
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
 }//fin constructeur

 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());
  } // while
 } //fin de la methode listePortsDispo()

 /*
 Methode main qui permet de tester notre classe de teste en ouvrant une connexion sur le port COM1.
 */
 public static void main(String args[])
 {
  new TesteJavaComm ("COM1");
 }//fin du main
}//fin de la classe

Voila ce que cela m'affiche :

Quote:
Listage des ports série disponibles
recherche...
* COM2
* COM1
* LPT1
* LPT2
Ouverture du port COM1
49
2

Mon soucis c'est que je ne comprends pas ce que represente les valeurs '49' (in.read(); ) et '2' (int b) et comment afficher la trame que je flashe.

Merci pour toute l'aide que vous pourrez m'apporter.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 ZZZZZ  DDD   BBBB   DDD   FFFF 
Z D D B B D D F
Z D D BBBB D D FFF
Z D D B B D D F
ZZZZZ DDD BBBB DDD F