Anteproyecto – P.I.D.E.M.E. (Prototype Interface Driver to Enable Measuring with Equipment)

Capa de comunicación con hardware a través de scripts en LUA para hacer del proceso de acceso y control de equipos de medición electrónica por PC más accesible en proyectos multidisciplinarios.

Nelson G. Lombardo

Resumen

En este trabajo presento el diseño de un sistema que permite escribir software para la interfases con drivers de los periféricos más populares en la comunicación con equipos electrónicos de medición, para usar bajo diferentes plataformas, cómo así, para lograr obtener prototipos y poder hacer un debug más rápido de los equipos electrónicos. La comunicación primaria para el sistema son scripts en LUA, un lenguaje interprete liviano, embebible y multiplataforma muy elegante y sencillo al momento de aprender que permite trabajar orientado a objetos. Nuestra aplicación principal que es la que produce el pedido hacia los equipos puede estar escrita en cualquier lenguajes y se dispone de una filosofía UNIX para la comunicación con el sistema P.I.D.E.M.E..

1 Introducción

Uno de los problemas que se presentan al momento de hacer mediciones o bien captura de datos con un equipo electrónico moderno es el software para su control. En general los inconvenientes pueden deberse:
  • Software incompatible con el sistema operativo utilizado.
  • Necesidad de realización de un software sin los conocimientos necesarios por el entorno en dónde se trabaja.
  • Se requiere adaptar en varias etapas los datos que se capturan para proceder a algún formato específico.
  • La depuración es muy complicada y lenta.
  • La actualización del software es muy dependiente de la plataforma en la que se está.
Una solución que se presenta desde el punto de vista del diseño es establecer un sistema con el qué se generará el software de control y captura que posea un frame work de trabajo acorde. Un frame work es un conjunto de facilidades presentes en este sistema para la programación. Por ejemplo, puede ser una librería para manejar el puerto rs-232 en el lenguaje C con un compilador en particular. Este tipo de estrategia es la más popular hoy en día y muchos productos la promueven. El problema de este enfoque es que aunque hace el trabajo mucho más sencillo posee algunos inconvenientes sumamente notorios:
  • Aunque se requiera hacer pruebas sencillas se necesita escribir en general gran parte del código final del software para controlar y capturar los datos del equipo de medición.
  • Los frame work son muy ventajosos siempre y cuando se trabaje sobre el sistema (lenguaje, compilador, etc) en el que fueron desarrollados, no permiten interoperabilidad en la mayoría de los casos.
  • De necesitar sólo una etapa intermedia, cómo sólo capturar datos y llevarlos a una base de datos para luego procesarlos, siempre se requiere del software final y por encima de este hay que esperar que nos presente o tenga soportado este tipo de acciones.
Lo que se presenta en este trabajo es una capa de abstracción por software, de alto nivel, que permite una mayor flexibilidad y facilidad para el desarrollo del programa que trabaja a nivel de usuario. Esta capa de abstracción es una forma de acceso de alto nivel hacia diferentes tipos de puertos de comunicación de una PC, cómo también otro tipo de plataformas, utilizando cómo mensajes entre las aplicaciones archivos.

Figura 1 Flujo básico de los datos en el sistema PIDEME.
El resumen de la idea sería presentar librerías multiplataformas de acceso a los puertos de comunicación más utilizados y a través del lenguaje interprete LUA, generar prototipos de código de rápida aplicación para hacer pruebas y/o el desarrollo final de los aplicativos. Un buen punto de partida es observar la gráfica 1↑.

2 Generalidades

2.1 Resumen

El trabajo presenta un paquete de librarías más el lenguaje LUA y scripts para lograr desarrollar software de control y captura de datos para equipos de medición.
En general el proceso de desarrollo será:
  1. Establecer la plataforma de trabajo, o sea, sí es una PC, consola de juegos, etc.
  2. Definir el sistema operativo sobre el cual correrá la aplicación.
  3. Revisar los tipos de puertos de comunicación por los cuales se producirá el intercambio de información.
  4. Armar el conjunto LUA+libs necesarias según lo anteriormente tratado.
  5. Desarrollo de los scripts según las necesidades.

2.2 Ventajas y desventajas

Es difícil presentar ventajas, puesto que requiere determinar un escenario de trabajo puntual, sin embargo, voy a proceder a darlas entregando un contexto en cada una:
  • La utilización del lenguaje interprete LUA otorga el medio para escribir código simple, pequeño, rápido y poderoso, permitiendo así facilitar la labor del técnico/ingeniero que debe interactuar con el equipo de medición. Frente a otros lenguajes del mismo estilo, LUA presenta ventajas técnicas y además gran popularidad al momento de programar.
  • Gracias a que el código de LUA está desarrollado íntegramente en ansi-C ha sido portado a innumerables plataformas, lo que asegura que nuestra capa de abstracción siga funcionando de forma razonable a pesar de los cambios en los equipos.
  • Se puede acceder a crear base de datos en sqlite, un pseudo-motor de base de datos con un footprint bastante reducido pero que es muy utilizado en miles de aplicaciones para muchísimo tipos de acciones cómo resolver pedidos en servidores hasta general historial de rápido acceso de sitios en navegadores web. Si bien muchos lenguajes comerciales de alto nivel ofrecen acceso a base de datos, estás superan el tamaño y posibilidad de operación cruzada.
  • Acceso sencillo y rápido a los equipos de medición por las interfases más populares, escribiendo una cantidad de código bastante reducida en relación a otros lenguajes.
  • La utilización de este sistema ahorra muchísimo tiempo y esfuerzo al momento de conectarse con un equipo. Todo esto permite concentrarse más en el código de principal dejando de lado la comunicación a bajo nivel. Esto representa una gran motivación al desarrollador, en general más si su especialidad es del área electrónica o afín, puesto que permite trabajar con herramientas a alto nivel y así no tener que aprender a utilizar código complicado.
  • Puesto que PIDEME es un conjunto de herramientas de código abierto y libre compatible con la popular licencia GPL2, nos permite desarrollar no sólo proyectos más barato puesto que podemos ofrecer un coste nulo por que estás herramientas también son gratuitas sino de una calidad mucho mayor, la confianza en las herramientas libres se ha incrementado considerablemente por su modelo de revisión, modificaciones e interoperabilidad que poseen.

3 Conclusiones

Si bien existen una cierta cantidad de soluciones para la misma funcionalidad, este sistema logra una forma multiplataforma y realmente sencilla de realizar la comunicación con los equipos. A un bajo costo computacional obtenemos interfases muy rápidas con los drivers y además poseemos soporte para la utilización de una base de datos cómo Sqlite3.
Otro punto a favor es que las herramientas utilizadas propias del sistema con licencias libres y compatibles con la GPL2. Esto nó solamente presenta una ventaja moral sino también un control muy importante en nuestro proyecto informático, puesto que permite modificaciones y adaptaciones que de otra manera no se podrían.
Desde el punto de vista económico genera varias ventajas claras que insiden directamente sobre el precio de nuestro desarrollo.

2 thoughts on “Anteproyecto – P.I.D.E.M.E. (Prototype Interface Driver to Enable Measuring with Equipment)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s