octubre
10

Esta semana mientras trabajaba me ha surgido un problema. Tenía que controlar y escuchar un GPS bluetooth mediante java. Obviamente lo interesante no ha sido el escuchar al gps y parsear los datos, eso es una tarea bastante normalucha. Pero si que ha sido interesante descubrir como se puede uno comunicar mediante java a cualquier puerto del ordenador correctamente configurado.

Para ello es necesaria una libreria de comunicaciones. En su día funcionó muy bien la famosa comm.jar, pero ya está en desuso y ahora se utiliza la RXTXcomm.jar No se muy bien cuales son las ventajas y desventajas, pero sun se desentendió de su librería y ahora no hay mas remedio que utilizar esta (si alguien conoce otra forma que lo diga).

Os la podeis descargar desde aquí:

ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip

En el zip encontrareis el jar y luego varios añadidos dependiendo del sistema operativo. Para windows hay que copiar unls dll en el directorio de java. Miraros las instrucciones que están muy bien.

Una vez que teneis todo instalado, podeis comunicaros con los puertos serie y paralelo. Puertos como COM y LPT, que controla impresoras, dispositivos externos, escaners… y podeis trabajar con ellos.

Un codigo para leer los puertos existentes:

/**

* private method that lists all the available ports of the device and then ask the user to select one

* @return selected port

*/

private String ListPorts() {

Vector names = null;

int index = -1;

while (index == -1) {

int j = 1;

names = new Vector();System.

out.println(“Available ports: “);

CommPortIdentifier c;

for (Enumeration i = CommPortIdentifier.getPortIdentifiers() ; i.hasMoreElements() ;) {

c = (CommPortIdentifier) i.nextElement();

System.out.print(j++ +“. “ + c.getName());

names.add(c.getName());

if (c.getPortType() == CommPortIdentifier.PORT_SERIAL)

System.out.print(“\t SERIAL\n”);

if (c.getPortType() == CommPortIdentifier.PORT_PARALLEL)System.out.print(“\t PARALLEL\n”);

}

System.out.print(“Select port: “);

String input = readFromUser();

 

try {

index = Integer.parseInt(input);}

catch (NumberFormatException e) {

index = -1;

continue;

}

 

if ( (index < 1) || (index >= names.size()) ) {

index = -1;

continue;

}

}

 

return names.elementAt(index – 1).toString();

}

Con este codigo podeis listar toodos los puertos que estan disponibles en vuestro pc y listarlos para elegir el que quereis seleccionar.

 Para abrir un puerto no hay mas que:

CommPort port = CommPortIdentifier.getPortIdentifier(portname).open(“NMEAPrueba”, 3000);

Donde el portname es una variable String que contiene el nombre del puerto a abrir, en mi caso era “COM18″. Esta variable era el retorno del codigo que he puesto antes. Y “NMEAPrueba” es el nombre de quien lo abre, para que al poseerlo los demas sepan quien es el dueño.

Una vez abierto el puerto, podemos obtener un InputStream y un OutputStream para mandar y recibir informacion. Yo utilizo BufferedInputStream porque me es mas comodo

BufferedInputStream input = new BufferedInputStream(port.getInputStream());

BufferedOutputStream output = new BufferedOutputStream(port.getOutputStream());

Una vez con  estos objetos ya todo depende del desarrollador. Por ejemplo para el GPS bluetooth solo hay que escuchar los datos que se reciben e interpretarlo, no hace falta enviar (bueno, se pueden enviar cosas dependiendo del protocolo que siga el GPS pero en general sin enviar nada se puede escuchar continuamente lo que manda el GPS). Todo depende del programador y del destino.

IMPORTANTIIIISIMO: cerrar los puertos y los streams que si no, se bloquean a veces y quedan inservibles. Hasta que me di cuenta de un error de codigo que tenía en mi GPS, me pase dos días configurando cada 5 minutos un nuevo puerto porque el viejo ya no funcionaba.

Mas o menos así

input.close();

output.flush();

output.close();

port.close();

Dudas, a los comentarios

Technorati , , , ,

(69) Comments    Read More   
octubre
05
Filed Under (IMHO) by Sr. Wilson on 05-10-2007

Estaba hoy mirando unas cositas… y me encontré con esta publicidad…

match_com

Aparentemente, nada raro: una chica en una web de contactos para reclamar la atención del mayor público masculino de este tipo de webs.

Pero si miramos bien la imagen, especialmente en el nombre aparece una cosa… llamemosla curiosa, o graciosa, en relación con el tema del anuncio y la frase “Busco un hombre que sea capaz de renunciar a una cena por un buen partido de fútbol”, EL NOMBRE DE LA SUPUESTA USUARIO: GOL_FIYA26.

Desde luego un reclamo para los que esperan “algo más” de este tipo de portales, jajajaja.

Technorati , , , , , ,

(1) Comment    Read More   
octubre
05
Filed Under (Tres y uno es español) by Sr. Wilson on 05-10-2007

Acabo de ver una página web que os quiero recomendar… sobre todo para los amantes de los simpsons.

Cuando veáis la web, caeréis en esto de Mr. X, jejeje. Sobre todo aquellos que hayáis sido más fieles a su emisión.

Esta es la url: http://www.mrxswebpage.com

Technorati , , , , , , ,

(0) Comments    Read More   
octubre
03
Filed Under (Tres y uno es español) by Acid on 03-10-2007

No, este sitio tampoco es un sitio islamista, aunque comience por islam (esto podría ser otro “que no es Isla Manzana”).

Recientemente me enviaron una imagen…

Contactar con chicas en Afghanistan

Y aparte de esa imagen de Meetic afgano, también hay otra que vi en Espejo Lúdico creada por Alberto Montt.

Aziza, estás igualita!!

Technorati , , , , ,

(2) Comments    Read More   
octubre
01

Lo prometido es deuda.

Aquí tenéis una página que actualizan todas las semanas con un nuevo capítulo de The IT Crowd:

http://blog.tempwin.net/2007/08/25/the-it-crowd-segunda-temporada/

Espero que os guste ;) Идея за подарък

Technorati , , , , , ,

(8) Comments    Read More   
octubre
01
Filed Under (Mira que he aprendido hoy!!) by Sr. Wilson on 01-10-2007

Hola gente!

Acabo de ver en meneame.net (creo) otra web en la que hay libros para aburrir.

Lo mejor que trae es un buen buscador, y ordenación por autor/género para encontrar un buen libro que nos interese.

La web es esta: http://hansi.libroz.com.ar

Espero que os guste.

Technorati ,

(0) Comments    Read More   
octubre
01
Filed Under (Hogar dulce hogar) by chupetin on 01-10-2007

  Parece ser que la entrada “Que no es Isla Manzana II” esta teniendo unos ataques de spam.

Los primeros mensajes no tenían sentido:

 jhrzid wfjylghr ljns jvhcozid johtlcq vupjmwqf ftmelxu por un tal gdzalor whzgij (IP: 140.247.53.18 , dhcp-0000083538-c4-d7.client.fas.harvard.edu)

Pero los ultimos ya publicitan cosas.

Parece que los mensajes no aparecen ya en el blog, pero mi dirección de correo ha sido testigo de todo.

Así que ya sabéis compañeros náufragos, si queréis viagra, jugar en algún casino o que nos lean desde Hardvard  solo tenéis que incluir la palabra sexo en vuestras entradas.

Technorati , , ,

(4) Comments    Read More