QextSerialPort: Controlando el puerto Serie con Qt

Ir abajo

QextSerialPort: Controlando el puerto Serie con Qt

Mensaje por aztk el Lun 5 Oct 2009 - 2:42

Pss me he encontrado una librería interesante para el control del puerto serie con Qt, esta se llama QextSerialPort.

Aunque la verdad nunca aprendí C++ y no he podido hacer ningún programa, y eso que intente usar QDevelop + Qt4Designer T_T, haber si me pueden echar un cable. Sin embargo he podido correr el programa de ejemplo que viene junto con la librería, les dejo el procedimiento:

* Descargar la librería, para ello pueden hacerlo desde la página del proyecto (http://sourceforge.net/projects/qextserialport/files/) o con wget: (la versión a utilizar es la 1.1)
Código:

$ wget http://softlayer.dl.sourceforge.net/project/qextserialport/qextserialport/1.1/qextserialport-1.1.tar.gz

* Luego descomprimimos el *.tar.gz y entramos al directorio generado:
Código:

$ tar zxf qextserialport-1.1.tar.gz
$ cd qextserialport/

* Para posteriormente compilarla, usaremos 'qmake' y 'make' por lo que debemos de tener instalados los paquetes 'make', 'qt4-dev-tools' y los 'build-essential' (creo esos son los paquetes necesarios, si estoy en un error, comenten )
Código:

$ qmake
$ make

* Esto entre otras cosas nos generará el fichero 'build/libqextserialport.so.1.0.0' el cual debemos copiarlo al directorio /usr/lib/ y poner unos cuantos enlaces simbólicos:
Código:

$ sudo cp libqextserialport.so.1.0.0 /usr/lib/
$ sudo ln -s /usr/lib/libqextserialport.so.1.0.0 /usr/lib/libqextserialport.so
$ sudo ln -s /usr/lib/libqextserialport.so.1.0.0 /usr/lib/libqextserialport.so.1
$ sudo ln -s /usr/lib/libqextserialport.so.1.0.0 /usr/lib/libqextserialport.so.1.0

* Ahora seguiría compilar el ejemplo, pero primero se tiene que editar el fichero 'examples/qespta/QespTest.cpp' para configurar el puerto serie a nuestras necesidades, el segmento de código de nuestro interés a editar es:
Código:

    //modify the port settings on your own
  port = new QextSerialPort("/dev/ttyUSB0");
  port->setBaudRate(BAUD19200); 
  port->setFlowControl(FLOW_OFF);
  port->setParity(PAR_NONE);   
  port->setDataBits(DATA_[img]http://illiweb.com/fa/i/smiles/icon_cool.gif[/img]; 
  port->setStopBits(STOP_1);

* Guardado el anterior fichero con las modificaciones seguiría compilarlo, no? pero yo obtuve un error de que faltaba un fichero y para solucionarlo hice lo siguiente:
Código:

$ cd examples/qespta/
$ cp QespTest.h qesptest.h

* Jejeje, ahora si vamos a compilarlo y a correr el programa:
Código:

$ qmake
$ make
$ ./QESPTA

Espero que esto emocione un poco a los programadores de C++ para que creen más ejemplos ( de preferencia con Qt4Designer+QDevelop jeje) y los compartan, jejejeje

Por cierto, puede que les interese QPort que es un widget para Qt4Designer basado en el QextSerialPort, se ve que está chido, pero estoy bien n00b en el uso de C++, xD.

Buena Vibra!

aztk
Participante Activo
Participante Activo

Mensajes : 52
Fecha de inscripción : 08/06/2009
Edad : 30
Localización : Tenochtitlan

Volver arriba Ir abajo

Hola que tal, muy buen aporte.

Mensaje por martinartaza el Jue 15 Jul 2010 - 4:24

Hola, creo que eh instalado la libreria que dices, eh seguido los pasos enumerados y logro compilarlo y ejecutarlo, la hacerlo no pasa nada, se queda tildada la maquina, está bien así o debo conectarle un dispositivo que mande datos por el puerto serie?
bueno eso queria preguntarte.

martinartaza
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 29/06/2010

Volver arriba Ir abajo

Re: QextSerialPort: Controlando el puerto Serie con Qt

Mensaje por aztk el Sáb 17 Jul 2010 - 0:48

martinartaza escribió:Hola, creo que eh instalado la libreria que dices, eh seguido los pasos enumerados y logro compilarlo y ejecutarlo, la hacerlo no pasa nada, se queda tildada la maquina, está bien así o debo conectarle un dispositivo que mande datos por el puerto serie?
bueno eso queria preguntarte.

Hey! hola!

No, pss no debería de tildarse la maquina (supongo que al decir "tildada" es que la maquina se queda congelada, que ya no responde???), si no conectas ningún dispositivo al puerto serie, cuando en el programita de ejemplo le des en el botón 'Open' simplemente no será capaz de conectarte a nada y por tanto no recibirás ni enviaras info.

Que SO estás usando? yo ahora estoy utilizando Ubuntu 10.04, y agregué la librería y compile y ejecuté correctamente el programa de ejemplo. Bueno, tuve que comentar (o eliminar si lo prefieres) la línea 87 del fichero MessageWindow.cpp y agregarle un punto-y-coma (para no joderse la estructura del if-then-else); porque me marcaba un error al compilar.

Cuando compilas no te aparece algún error, mira con atención lo que te arroje el terminal.

Saludos!

aztk
Participante Activo
Participante Activo

Mensajes : 52
Fecha de inscripción : 08/06/2009
Edad : 30
Localización : Tenochtitlan

Volver arriba Ir abajo

yo tambien comente esa linea.

Mensaje por martinartaza el Sáb 17 Jul 2010 - 1:20

Con tildar quiero decir que compilo sin problemas, (despues de comentar esa misma linea que vos y cuando ejecuto desde una consola, la consola no hace nada, nada de nada y tengo que apretar control + c para poder seguir usando la misma consola.
voy a seguier probando, Nos vemos.

martinartaza
Nuevo Usuario
Nuevo Usuario

Mensajes : 3
Fecha de inscripción : 29/06/2010

Volver arriba Ir abajo

Re: QextSerialPort: Controlando el puerto Serie con Qt

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.