miércoles, 18 de julio de 2012


Configurar java comunication API

Es el API que proporciona Sun mediante el cual podemos controlar el Puerto Serie (RS-232) y el Paralelo (IEEE-1284). Con este API se puede acceder a dichos puertos para poder leer o escribir en ellos.
La versión 3.0 de Sun no está disponible para Windows pero se puede usar la javax.comm 2.0.3.
Instalación

    Descargar e instalar la última versión del JDK de la página web de Sun.
    Descargar el javax.comm para Windows.
    Una vez descargado, se descomprime y, entre otras cosas, aparecen 3 archivos que habrá que mover a diferentes ubicaciones:
        win32comm.dll -> C:\Archivos de Programa\Java\jdk1.6.0_12\jre\bin
        javax.comm.properties -> C:\Archivos de Programa\Java\jdk1.6.0_12\jre\lib
        comm.jar -> C:\Archivos de Programa\Java\jdk1.6.0_12\jre\lib\ext

 Sólo falta un último paso, en el proyecto ya creado pinchar con el botón derecho > Properties > Java Buid Path > Libraries > Add External JARs y una vez allí añadimos el archivo comm.jar (C:\Archivos de Programa\Java\jdk1.6.0_12\jre\lib\ext)

Descarga javax comm

Codigo de prueba

import java.util.*;
import javax.comm.*;
import javax.swing.*;

public class PortList {
   
static Enumeration listaPort;
static CommPortIdentifier idPort;

public static void main(String[] args)
{
listaPort = CommPortIdentifier.getPortIdentifiers();
ListaPuertos();
}

private static void ListaPuertos()
{
String lista="";
lista +="Los puertos disponibles son:";
while (listaPort.hasMoreElements())
{
idPort = (CommPortIdentifier) listaPort.nextElement();
lista +="PUERTO: " + idPort.getName() + " ";

if (idPort.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
lista +="RS-232 (" + idPort.getPortType() + ")";
} else if (idPort.getPortType() == CommPortIdentifier.PORT_PARALLEL)
{
lista +="IEEE 1284 (" + idPort.getPortType() + ")";
} else lista +="Tipo de puerto desconocido";

// Describimos si esta disponible.
if (idPort.isCurrentlyOwned())
lista +="OCUPADO por: " +
idPort.getCurrentOwner();
else
lista +="DISPONIBLE";

lista +="\n---------------------------------------------\n";
}
JOptionPane.showMessageDialog(null,lista);

}
}