 
			
				29/09/2010, 17:53
			
			
			     |  
      |    |    |    Fecha de Ingreso: septiembre-2010  
						Mensajes: 1
					  Antigüedad: 15 años, 1 mes Puntos: 0     |        |  
  |      ERROR al leer del puerto serial con java        Saludos a todos, mi duda es la siguiente: 
Tengo una  aplicacion en JAVA que lee desde el puerto serial el peso del un vehiculo proporcionado por una bascula la cual posee un indicador digital del peso, y de dicho indicador sale un cable que se comunica con la PC a treves de puerto serial. 
La mayoria de la  mayoria de las veces lee bien, incluso dura horas trabajando excelentemente..Peero aveces no lee el puerto es como si no supiera que esta ahy, cuando surge este error, cierro la aplicacion y la vulevo abrir y nada, la solucion para que siga leyendo el puerto ha sido REINICIAR la pc.     
No tengo ni la mas minima idea de este error pues no sale seguido , si alguien me pudiera ofrecer alguna sugerencia gracias.. 
utilizo la libreira Giovynet y el sistema operativo es Windows.     
import giovynet.nativelink.SerialPort; 
import giovynet.serial.Baud; 
import giovynet.serial.Com; 
import giovynet.serial.Parameters; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
public class PuertoIngreso { 
//variables que uso para interacturar con el Puerto 
    List<String> listar; 
      SerialPort puerto = new SerialPort(); 
        Com com1;   
//esta mascara la uso porque algunas veces lee estos caracteres raros de la bascula y se lo puse para cuando los lea los 
//convierta a "" 
    Pattern p=Pattern.compile("[ÉÞþÓó$$&Â(æA`à@ÿÌ]");   
    public PuertoIngreso() {     
        try { 
          listar = puerto.getFreeSerialPort(); 
          System.out.println(listar); 
          if (listar!=null&&listar.size()>0) { 
          for (String free : listar) { 
          System.out.println("Free port: "+free); 
           } 
           }//if   
           Parameters set = new Parameters(); 
           set.setPort("COM1"); 
           set.setBaudRate(Baud._2400); 
           set.getByteSize(); 
            com1 = new Com(set);   
        }//try 
        catch (Exception e) 
        { 
// ESTE ES LA EXEPCION QUE SE LANZA CUANDO NO CONSIGUE EL PUERTO 
            System.out.println("Exception 1" +e +" \n "+ e.getCause() + "\n" +e.getLocalizedMessage()); 
            JOptionPane.showMessageDialog(null, "No se Consigue el puerto", "ERROR", JOptionPane.ERROR_MESSAGE); 
          //eset codigo lo puse en la catch para que al lanzar la excepcion cierre el puerto 
 try{ 
            com1.close(); 
           }catch(Exception es) 
           { 
               System.out.println(es); 
           } 
        }//catch   
     //este for lo puse porq con las practica vi que requeria aproximadamnete de este numero de repeticiones 
      //para leer el peso 
        for(int a=0 ; a<=14; a++){     try 
                {   
        { 
                caracter = com1.receiveSingleString(); 
                     recibido += caracter; 
                     Matcher m=p.matcher(recibido); 
                     peso=m.replaceAll("");   
        }   
                } 
                catch(Exception es) 
                { 
                    System.out.println("Exception 2 " + es); 
//eset codigo lo puse en la catch para que al lanzar la excepcion cierre el puerto 
                     try{ 
            com1.close(); 
           }catch(Exception est) 
           { 
               System.out.println(est); 
           } 
                }   
                      }       
//por ultimo al  irse a la ventana que mostrara los pesos cierro el puerto para que no lo //deje abierto    
 try{ 
            com1.close(); 
           }catch(Exception es) 
           { 
               System.out.println(es); 
           } 
           MiVentana  ventana=new MiVentana(parametros); 
            ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CL  OSE); 
            ventana.setSize(1100, 600); 
            ventana.setVisible(true);   
              } 
} 
GRACIAS POR SU AYUDA           |