sábado, 3 de enero de 2015

Manejando las pantallas TouchScreen de 4DSystems con Microframework

Iniciamos este nuevo año con una publicación sobre la interfaz gráfica 
uLCD-32PTU de la empresa australiana 4dSystems.

Si hacen clic en el link del producto podrán ver todas las bondades.

El modelo 32PTU se maneja a través del puerto serial, eso nos permite desarrollar una interfaz gráfica prácticamente en todos los tipos de microprocesadores que hay en el mercado incluyendo por supuesto en nuestro apreciado IntelEdison, claro hay que aclarar que no estaríamos ejecutando Gnome ni KDE ni nada que se le parezca solamente algo mas sencillo que nos permita interactuar con el usuario.

El módulo es muy completo prácticamente se puede hacer de todo, uno puede trabajar en bajo nivel con un lenguaje script que se llama 4dgl y también se puede usar el modo ViSi que posee un conjunto de controles gráficos preconstruidos.

El detalle que le veo a este modulo en particular es que sólo está soportado para Arduino y Raspberry; en realidad cuando uno trabaja con estas librerías ellas se encargan de ocultar el protocolo del fabricante para que el desarrollador se enfoque en lo que desea mostrar en la pantalla.

El esquema de la libreria a primera vista suele ser un poco incómodo uno no está acostumbrado a trabajar de la manera en que están construidas, uno quisiera al menos que se parezca a trabajar con Qt. Aunado al hecho de que últimamente he estado trabajando con microframework específicamente con el NetduinoPlus decidí iniciar la construcción de una librería en C#.

Si ustedes tienen la oportunidad de trabajar con Arduino y desean manejar muchas pantallas el código se va tornando inmanejable; debido a eso empecé a desarrollar una implementación de WinForm para Microframework utilizando el protocolo de ViSi y le puse como nombre VisiForm.

Estoy muy conforme con la implantación que estoy haciendo ya que prácticamente uno cree que está trabajando con C# en Windows y resulta que es Netduino con la pantalla de 4DSystems.

Si ustedes han desarrollado en C# en Windows verán que la librería VisiForm prácticamente está quedando igual:


Se puede observar que la ventana MessageBox hereda de Form igual que Windows, VisiForm.Form contiene el manejo de mensajes del protocolo VisiGenie codificado en microframework permitiendo que el programador se centre en su código C# como si trabajara para una ventana de Windows, por otra parte quise respetar el nombre de los controles de Visi por que no son exactamente iguales a los de WinForm, por ejemplo hay 11 tipos de botones frente a 1 en Windows, si quieres más tipos de botones en Windows tienes que hacerlos o comprarlos a un tercero. El control Strings que se ve en el código fuente anterior es equivalente al Label de Windows, ViSi también tiene un label pero es solo lectura así que preferí dejar el nombre del control original.

Ahora veamos el punto de entrada, se puede observar que es muy parecido al de WinForm.



Créanme que trabajar un sistema con muchas ventanas en Arduino o Raspberry con esta pantalla es algo difícil de mantener, con la implantación que estoy desarrollando VisiForm es súper sencillo ya que todo el protocolo ViSi está codificado en C# al estilo de manejo de mensajes de Windows, me tocó recordar mis viejos tiempo cuando desarrollaba en Windows 3.1 con Lenguaje C, jejeje.

La libreria VisiForm aún esta en desarrollo, es un poco grande también pienso hacer un VisiForm para C++ aunque creo que solo para Raspberry no estoy muy seguro de que el Arduino tenga suficiente memoria para soportarla de todas maneras haré el intento.

A continuación un pequeño video de un sistema biométrico con Netduino y la pantalla de 4dSystems