Buenos días, en FirmWare nos hemos encontrado con el reto de manejar el puerto serial para algunos conocido como ” DB9 ,RS232 o COM “, enviar, recibir información, secuencias de escape y Todo desde JAVA.

Como es conocido en el mundo del Hardware todo dispositivo que se conecte a un pc debe ser instalado en conjunto con un controlador o driver.

¿Que es un Driver o Controlador?

Es un conjunto de  secuencias de comandos denominadas (ESC/POS), que permiten al Sistema Operativo interactuar con dicho dispositivo y muchas veces con una interfaz de usuario estándar.

Para más información sobre el tema (Drivers o Controladores), puede dirigirse al siguiente enlace de WikiPedia:

http://es.wikipedia.org/wiki/Driver

Para poder realizar la interacción en java vamos a necesitar la siguiente librería:

Giovynet

link de descarga: http://code.google.com/p/giovynetserialport/downloads/list

Para la codificación he utilizado IDE Eclipse HELIOS, y creamos un java project

Después de haber descargado él .zip se procede a descomprimir, vamos a copiar los siguientes archivos:

1. GiovynetDriver.jar

2. libSerialPort.dll

3.libSOSerialPort.so

y los pegamos en el proyecto que se había creado con anterioridad en Eclipse, seguido de esto se debe dar click derecho en el proyecto y seleccionamos la opción “Properties“, en la ventana que aparece a continuación se debe buscar la opción “Java Build Path“, entre la pestaña de ítems para esta opción se debe dar click en “Libraries“, luego se da click en “ADD JARS” y seleccionar el archivo GiovynetDriver.jar.

Despues de haber pegado los archivos y agregado el .jar en el proyecto java vamos a abrir el .java, en mi caso se llama puertoSerial.java y se digita el siguiente codigo:


import giovynet.nativelink.SerialPort;
import giovynet.serial.Baud;
import giovynet.serial.Com;
import giovynet.serial.Parameters;
import java.util.List;

public class puertoSerial {

public static void main(String[] args)throws Exception{

//Definición de parametros
Parameters settings = new Parameters();

//definición del puerto que se va a utilizar
settings.setPort("COM1");

//definición de la velocidad de impresión, se debe tener en cuenta dicho argumento en las especificacion de velocidad del dispositivo

settings.setBaudRate(Baud._38400);

settings.setMinDelayWrite(10);

//asignamos los parametros al objeto com1
Com com1 = new Com(settings);

//envio de cadena de caracteres
com1.sendString("Hola Mundo\n");

//inicio de envio de secuencias de escape ESC/POS
char[] data1={27,'a',2    };
com1.sendArrayChar(data1);
// fin de envio de secuencias de escape ESC/POS

com1.close();

}
}

Para su respectivo uso en el siguiente link se encuentra el proyecto de ejemplo que hemos utilizado en FirmWare.

serialFirmWare

Gracias y hasta la próxima.