martes, 6 de mayo de 2014

QtSerialPort, un módulo de la biblioteca Qt que permite la comunicación a través del puerto serie.

clip_image002

El módulo QtSerialPort es una extensión (módulo add-on) para la biblioteca QT5, proporcionando una interfaz única para el hardware y los puertos serie virtuales [1]. Proporciona las funcionalidades básicas, que incluye la configuración, operaciones entrada / salida (I / O), obtener y establecer las señales de control de la interfaz RS-232.

Las interfaces seriales, debido a su sencillez y fiabilidad, siguen siendo populares en algunos sectores como el desarrollo de sistemas embebidos, robótica, etc.

Con el módulo QtSerialPort, los desarrolladores pueden reducir significativamente el tiempo necesario para implementar aplicaciones Qt que requieren acceso a una interfaz serial.

Historia
QtSerialPort se originó a partir de la biblioteca de terceros QSerialDevice [gitorious.org] (rama 2.0), que se mudó recientemente a un repositorio en https://codereview.qt-project.org/. Esto se hizo para permitir un desarrollo más abierto, y para reunir y coordinar a una comunidad que está interesada en el desarrollo de este módulo.

Funcionalidad
Actualmente, la API de módulo contiene dos clases: QSerialPort y QSerialPortInfo:

QSerialPort es la clase base del módulo y proporciona un conjunto de métodos y propiedades básicas para acceder a los recursos de los puertos serie.
Soporta los siguientes sistemas operativos:

Sistema Operativo

Estado de Sorporte

Nota

Windows NT/2K/XP/Vista/7

SI

Soporte completo

Windows CE

SI

Probado solo en emuladores de las plataformas 5 y 6

Gnu/Linux

SI

Soporte completo

MacOSX

SI

Soporte completo

Otros Unix

SI

Todos los compatibles con POSIX

Symbian1

SI

Parcialmente, probado solo en el emulador

QSerialPortInfo es una clase de ayuda. Proporciona información sobre los puertos serie disponibles en el sistema.

Soporta los siguientes sistemas operativos:

Sistema operativo

Estado de soporte

Nota

Windows NT/2K/XP/Vista/7

SI

Soporte completo (using SetupAPI)

Windows CE

SI

Probado solo en emuladores de las plataformas 5 y 6

Gnu/Linux

SI

Soporte completo (using libudev or simple search in /dev)

MacOSX

SI

Soporte completo

Otros Unix

SI

Todos los compatibles con POSIX (only simple search in /dev)

Symbian2

SI

Parcialmente, probado solo en el emulador

Ver el código fuente

Puesto en marcha recientemente un espejo público del proyecto de repositorio en Gitorious [qt.gitorious.org]

Ahora todo el mundo puede ver libremente y rápidamente los últimos cambios a través de un navegador web.

Obtener el código fuente

Para obtener la instantánea actual del código fuente como un archivo, haga clic en este enlace [qt.gitorious.org].

Para aquellos que quieren usar Git puede ejecutar el siguiente comando:

  1. git clone git://gitorious.org/qt/qtserialport.git

Construcción e Instalación

Construir e instalar desde la línea de comandos

Antes de la construcción usted necesita:

· Instalar Perl 3

· Asegurarse de que las variables de entorno están establecidas correctamente:

- Correctamente especificado la ruta de acceso al Qt4/Qt5 instalado

- Correctamente especificado la ruta para usar el compilador

- Correctamente especificado la ruta de acceso al Perl 3

· Crear un directorio de construcción que esté en el mismo nivel que el directorio con el código fuente

- /

- / SerialPort-src

- / SerialPort-build

Los siguientes son los procedimientos recomendados para la construcción de la biblioteca QtSerialPort en Qt4/Qt5 desde la línea de comandos.

  • cd serialport-build
  • qmake .. / serialport-src/qtserialport.pro
  • make [o 'nmake' para el compilador MSVC o '-make mingw32' para el compilador MinGW]
  • make install [o 'nmake install' para el compilador MSVC o 'mingw32-make install' para el compilador MinGW]

Nota: en los sistemas * nix es posible que se requieran privilegios de superusuario:

sudo make install

Construir e instalar desde la QtCreator

Antes de la construcción de lo que necesita:

  • Instalar el Perl 3 y estar convencido de que ha especificado correctamente la ruta al Perl en un ambiente global.
  • Estar convencido de que las cadenas de herramientas que desee ( kits) del QtCreator se ha configurado correctamente

Los procedimientos recomendados para la construcción de la biblioteca QtSerialPort para Qt4/Qt5 del QtCreator:

  • Descargar y desempaquetar el código fuente de QtSerialPort
  • Ejecutar QtCreator y abra el archivo de proyecto "qtserialport.pro"
  • Llegar a " Projects->(Your Kit)->Build->Build Steps "
  • Añadir un nuevo make "Build Step" y escribir en los " argumentos" (“Make arguments) el objetivo a compilar.
  • Haga clic en el menú "Rebuild Project qtserialport".

Como resultado, la biblioteca QtSerialPort será compilada e instalado automáticamente en la instancia de Qt deseada (depende del Kit seleccionado). El uso QtCreator - la manera más sencilla y rápida de instalación manual de la biblioteca.

Nota: en los sistemas *nix este método puede fallar si Qt fue instalado desde los repositorios en los directorios del sistema. Los privilegios de superusuario podrían ser necesarios para ejecutar "make install".

3 Perl sólo se requiere en el caso de QT5, consulte aquí [qt- project.org]. Al usar Qt4 omita este punto.

//**

Uso

Para utilizar la biblioteca adicione serialport al fichero *.pro de tu proyecto.

Qt4
  1. CONFIG += serialport
Qt5
  1. QT += serialport

Incluya los archivos de cabecera de QtSerialPort donde sea necesario:

  1. ...
  2. #include <QtSerialPort/QSerialPort>
  3. #include <QtSerialPort/QSerialPortInfo>
  4. ...
Ejemplo simple

Debajo se muestra un ejemplo sencillo del main.cpp:

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
QT_USE_NAMESPACE
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Example use QSerialPortInfo
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();
// Example use QSerialPort
QSerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite))
serial.close();
}
return a.exec();
}

Nota: CONFIG += serial port / QT += serialport debe ser la primera o la segunda linea en tu fichero .pro.

Es todo por hoy esperamos que esta entrada le hay resultado de utilidad.


¿Te ha gustado este Post? Compártelo con tus amigos.

2 comentarios:

  1. en windows me sale un error que dice que las librerias runtime fueron terminadas de una manera inusual por parte de la aplicacion. se supone que me tiene que mostrar los puertos libres no?

    ResponderEliminar
  2. Hola el problema es que al parecer usted tuvo algun error en la instalación.
    Entre a la url: http://qt-project.org/downloads
    Seleccione el link de descarga correcto,
    por ejemplo si esta en Windows descargue:
    http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-opensource-windows-x86-mingw482_opengl-5.3.0.exe
    Ese instalador contiene todas las bibliotecas necesarias para
    compilación y ejecución, tambien incluye el IDE Qtcreator y la
    documentacion del Framework Qt.
    Enel siguiente enlace puede descargar un proyecto de QtCreator con el código que contiene el artículo.
    http://softpei.com/files/PruebaQT.rar

    Saludos.

    ResponderEliminar

IconIconIcon