Foros del Web » Programación para mayores de 30 ;) » Java »

Libreria RXTX para puerto serial

Estas en el tema de Libreria RXTX para puerto serial en el foro de Java en Foros del Web. Saludos, estoy intentando obtener datos del puerto serial de un conmutador(SO= windows), para esto encontre la libreria RXTXcomm.jar, tengo el siguiente código, pero no logro ...
  #1 (permalink)  
Antiguo 30/08/2011, 19:00
Avatar de KND
KND
 
Fecha de Ingreso: septiembre-2008
Mensajes: 9
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Libreria RXTX para puerto serial

Saludos, estoy intentando obtener datos del puerto serial de un conmutador(SO= windows), para esto encontre la libreria RXTXcomm.jar, tengo el siguiente código, pero no logro que funcione:
Código:
public class MonitorS
{
    public MonitorS()
    {
        super();
    }
   
    
    void connect ( String portName ) throws Exception
    {
        CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
        if ( portIdentifier.isCurrentlyOwned() )
        {
            System.out.println("Error: Port is currently in use");
        }
        else
        {
            CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
            
            if ( commPort instanceof SerialPort )
            {
                SerialPort serialPort = (SerialPort) commPort;
                serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
                
                InputStream in = serialPort.getInputStream();
                //OutputStream out = serialPort.getOutputStream();
                
                (new Thread(new SerialReader(in))).start();
                //(new Thread(new SerialWriter(out))).start();

            }
            else
            {
                System.out.println("Error: Only serial ports are handled by this example.");
            }
        }     
    }
    
    /** */
    public static class SerialReader implements Runnable 
    {
        InputStream in;
        
        public SerialReader ( InputStream in )
        {
            this.in = in;
        }
        
        @Override
        public void run ()
        {
            byte[] buffer = new byte[1024];
            int len = -1;
            try
            {
                while ( ( len = this.in.read(buffer)) > -1 )
                {
                    System.out.print(new String(buffer,0,len));
                }
            }
            catch ( IOException e )
            {
                  e.printStackTrace();
            }
                        
        }
    }
tengo el archivo con el main aparte y desde ahí trato de conectar pero recibo una excepcion:

Código:
public static void main(String[] args) throws Exception {
        // TODO code application logic here
        new MonitorS().connect("COM1");


    }
Cita:
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
Exception in thread "main" gnu.io.NoSuchPortException
at gnu.io.CommPortIdentifier.getPortIdentifier(CommPo rtIdentifier.java:218)
at monitors.MonitorS.connect(MonitorS.java:35)
at monitors.Main.main(Main.java:18)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Lo que quiero es primero recibir los datos por el puerto serie, para despues mandarlos a una base de datos mysql, con esto ultimo no tengo problema.

Otra pregunta, esta libreria utiliza un driver especifico que debe incluirse en la ruta de instalación de java, existe una forma de incluir ese driver al momento que empaqueto la aplicación?, esto para no tener que copiar el driver y tener que ejecutar el .jar que empaqueto desde la ruta de instalación de java.

Espero haberme dado a entender, gracias de antemano

Etiquetas: puerto, rxtx, serial
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.