Table of Contents
National Instruments propone los controladores NI-DAQmx como la base para explotar la mayoría de sus productos de adquisición de datos. Dicha propuesta es muy productiva y eficiente, pues unifica la manera de crear código y la hace compatible con distintos productos sin necesidad de hacer adaptaciones.
La siguiente figura muestra la relación de NI-DAQmx con los distintos componentes de un sistema de adquisición de datos. Esta abstracción uniformiza el acceso a distintos tipos de harware y lo pone a disposición de distintas aproximaciones del desarrollo de software.
Esta propuesta no es nueva, ni mucho menos. Hace ya muchos años que existe una propuesta parecida para sistemas abiertos (Linux, ...) que se llama COMEDI con la misma idea.
Por otra parte, en la plataforma Microsoft Windows, el software proporcionado por National Instruments está preparado para que se puedan desarrollar programa en Microsoft Visual Studio, por lo que son necesarios ciertos ajustes si deseamos poder utilizarlo en otras plataformas de desarrollo.
El propósito de esta página es proporcionar información para adaptar NI-DAQmx a Nokia Qt de la manera más sencilla posible.
El primer paso será la instalación del software NIDAQmx.
Para ello hay que registrarse en la página de National Instruments y descargar el software NI-DAQmx para Microsoft Windows. Para localizar el software, ir a la pestaña "soporte" de la página.
El archivo descargado tiene un tamaño cercano a 1 GByte, por lo que se necesitará tiempo para la descarga. Una vez instalado en el ordenador, puede llegar a consumir varios GBytes de espacio en disco.
La instalación de NIDAQmx incluye montones de información, utilidades, ejemplos, etc. que son muy útiles para aprender a usarla.
La versión LGPL de Qt para Windows emplea por debajo el compilador mingw (minimalists GNU for Windows), que es una adaptación de la herramientas libres GNU al entorno Windows.
Para que funcione en esta versión de Qt "basta" con lograr adaptar los elementos de NIDAQmx a este compilador. Para ello se pueden seguir los siguientes pasos.
Primero adaptar el archivo de proyecto Qt (.pro) añadiendo el siguiente código:
# configuracin para National Instruments NIDAQmx # en Windows con Qt LGPL (compilador mingw) win32 { # aadimos la ruta para localizar la cabecera de la tarjeta INCLUDEPATH += "C:/Archivos de programa/National Instruments/NI-DAQ/DAQmx ANSI C Dev/include" # aadimos la ruta de busqueda de las bibliotecas (opcin -L) LIBS += -L"C:/Archivos de programa/National Instruments/NI-DAQ/DAQmx ANSI C Dev/lib/msvc" #LIBS += -L$$PWD # donde esta mi programa # aadimos la librera "NIDAQmx.lib" quitando partes del nombre del archivo, (opcin -l) LIBS += -lNIDAQmx } # configuración para Linux, etc. (O PARA ENGAÑARLOS A TODOS) unix { # paquetes falsos para poder compilar y tirar p'alante INCLUDEPATH += nidaqmx_dummy SOURCES += nidaqmx_dummy/nidaqmx_dummy.cpp }
Básicamente consiste en añadir las rutas de busqueda de las bibliotecas y de las cabeceras. Estas rutas las deberemos adaptar en función de dónde hayamos instalado las bibliotecas.
A continuación, incluir la cabecera NIDAQmx.h en el módulo C/C++ que haga uso de las funciones de la biblioteca. Además, será necesario añadir código ANTES de dicha inclusión para "engañar" al preprocesador y lograr que la biblioteca sea compatible con mingw.
Este podría ser un típico fragmento de código:
// Líneas a añadir ANTES de incluir la cabecera NIDAQmx.h para NIDAQmx versión 9.1.7 // Actúan manipulando el comportamiento del preprocesador, // así que dependen mucho del compilador y de la versión de NIDAQmx usada #include <QtGlobal> #ifdef Q_OS_WIN32 typedef unsigned long long uInt64; #define __int64 long long int #endif #include <NIDAQmx.h>
De momento aún no está listo.
¿Lo estará?. Pues no se sabe, es cuestión de invertir tiempo.
Para que se pueda trabajar en Linux, se ha preparado un paquete que permite que, al menos, la aplicación compile. Con ello se puede lograr desarrollar el resto de la aplicación sin depender de esta parte.
Las instruciones para usarlo son:
descargarse el módulo dummy para que compile NIDAQmx en Linux
descomprimir la deescarga el directorio del proyecto
usar las mismas instrucciones que para el apartado Windows (fijarse en que hay partes para Unix).