Acquisition port serie com 1

Fermé
Kerozen77 Messages postés 10 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 7 septembre 2015 - 18 avril 2013 à 11:43
Kerozen77 Messages postés 10 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 7 septembre 2015 - 18 avril 2013 à 13:07
Bonjours,

Je suis actuellement en stage et mon responsable me demande de réaliser un programme ou de trouver un logiciel permettant d'afficher de façon lisible les information reçut par le port com 1. Ces informations était destiné à une imprimante Epson Lx-300+ qui les imprimaient au fil de l'eau, mais je voudrait à présent les stoker dans un ficher.txt .

Merci d'avance
A voir également:

2 réponses

Kerozen77 Messages postés 10 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 7 septembre 2015
Modifié par Kerozen77 le 18/04/2013 à 12:16
Voici le code que j'ai récupéré:

import javax.comm.*;  
import java.io.*;  
import java.util.*;  
/*  
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 Lire{  
 CommPortIdentifier portId;  
 BufferedReader in;  
 PrintWriter out;  
 SerialPort serialPort;  
 /*  
Constructeur de la classe test qui prend en paramètre le port série à utiliser.  
Dans un premier temps on liste les ports disponibles sur le pc  
  */  
 public Lire (String com)  
 {  
  System.out.println("liste des ports série disponibles:" );  
  listePortsDispo();  
  try  
  {  
   // ouverture du port série:  
   portId=CommPortIdentifier.getPortIdentifier(com);  
   serialPort=(SerialPort)portId.open("Envoi",2000);  
   // on sélectionne tous les paramètres de la connexion série:  
   serialPort.setSerialPortParams(1200,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  
   String codeBarre = new String();  
   try {  
    //lecture du buffer et affichage  
    codeBarre = (String) in.readLine();  
    System.out.println(codeBarre);  
   } catch (IOException e) {  
   }  
   in.close();  
  }  
  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());  
  } //fin while  
 } //fin de la methode listePortsDispo()  

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


Et l'erreur produite:

javax.comm.PortInUseException: Port currently owned by comrs232  
 at javax.comm.CommPortIdentifier.open(CommPortIdentifier.java:337)  
 at Lire.<init>(Lire.java:25)  
 at Lire.main(Lire.java:71)
0
Kerozen77 Messages postés 10 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 7 septembre 2015
18 avril 2013 à 13:07
Avec le logiciel d'acquisition Serial Port Monitor j'obtient ceci:

Terminal view:

€.€€ø€.ø€€ø€.€.€.€x.ø€€xüxü€øx<.øxü€ø€xÀ.€.xüx<.ø€€xüxÀ€øxü€øx<.ø.x<ÿ€€xüx<.ø.€xü.€x.xü.ø€xüx<ðøø.ø.øø€xÀ.€ø€xüxÀøø€ø.øø€x.xüøøx<ðø.€.€.€.ø€øxÀx.€.€øxÀx.€ø€€.€x.€.€€ø€.ø€€ø€.€.€.€x.ø€€xüxü€øx<.øxü€øx<.ø€€ø.x<ÿ.€€øxüø€ø€€øx<.øø€xü.€€€€.ø€xüxÀ€€€.ø€.€.€ø.€xü.€x..€.€xü.€øxüø€ø€€øx<.øø€xü.€€€€.ø€xüxÀ€€€.ø€.€.€ø.€.€.€.ø€øxÀx.€.€øxÀx.€ø€€.€x.€.€€ø€.ø€€ø€.€.€.€x.ø€€xüxü€øx<.øxü€øx<.ø€€ø.x<ÿ.€x<.ø.øøxÀøø.øø€xÀ.€.€.€.€.€.€.€.€.€.€.€xü.€x.............................................................................................................................................................................................................


Line view:

[18/04/2013 10:47:00]
4023  IRP_MJ_DEVICE_CONTROL - Request operates a serial port
   STATUS_SUCCESS
         IOCTL_SERIAL_GET_COMMSTATUS - Request returns information about the communication status of a COM port
            Errors - 3
            HoldReasons - 0
            AmountInInQueue - 13
            AmountInOutQueue - 0
            EofReceived - 0
            WaitForImmediate - 0
----------------------------------------------------------------------------------
[18/04/2013 10:47:00]
4025  IRP_MJ_READ - Transfers data from a COM port to a client
   STATUS_SUCCESS
      00 f8 80 78 fc 78 c0 80 80 80 00 f8 80          	.ø€xüxÀ€€€.ø€
0