LCD virtual (1)

      No Comments on LCD virtual (1)

Estoy intentando hacer un LCD virtual que muestre en una página web la misma información que el LCD físico que tengo conentado a mi servidor para así monitorizarlo remotamente. Mi servidor es un Linux y estoy usando lcdproc para alimentar al LCD actualmente como ya comenté en mi post Gran Azul.
El LCDproc posee un driver que saca texto plano y que está pensado para tareas de debug principalmente.
Yo lo he usado como fuente para hacer el lcd virtual. He redirigido esa salida de texto hacia un programa que escribe un fichero que queda disponible por http ya sea para cargarlo desde un flash y representarlo en el, bien para mediante php y el generador de imagenes, construir un GIF con el contenido, o ambas opciones.

Lo primero es compilar de nuevo el lcdproc por que no tenia activado el driver de texto, para lo cual uso la orden

make clean
./configure –prefix=/usr/local/ –enable-drivers=hd44780,text
make
make install

El hd44780 es el driver para mi LCD físico, un CFAH2004A-TMI-JP de crystalfontz conectado por el puerto paralelo con el cableado estilo winamp y con control para apagar el backlight por software siguiendo este esquema.

El make clean es necesario para eliminar los restos de la anterior compilación que metian errores en el make.

Ahora ya tengo un LCDd (el daemon del LCD que actua de servidor) al que puedo invocar de esta forma:

LCDd -d text -f -a 127.0.0.1 > textoutput

para obtener las primeras pruebas de funcionamiento, que son medio exitosas.
El fichero ‘textooutput’ se llena de pantallitas del LCDd, pero unas detras de otras, y yo solo quiero que aparezca una en el fichero, la mas reciente.

+--------------------+
|## LCDproc Server ##|
|Clients: 0          |
|Screens: 0          |
|                    |
+--------------------+

Para conseguir una sola pantalla por fichero he tenido que programar un pequeño programa en C que a partir de la
entrada estandar, stdin, reconoce cuando empieza y termina una pantalla (‘+---------------------+‘ muy sencillo :)) y escribe una y otra vez el fichero que se le pasa por parametro con la pantalla que le va llegando. De este modo, redireccionando la salida del LCDd mediante un pipe la envio a mi programa que va generando un fichero con una sola pantalla, siempre la última.

LCDd -d text -f -a 127.0.0.1 | lcdtool textoutput

El único problema que veo es que la creación y destrucción del fichero generado por lcdtool sea tan frecuente que cuando se haga la petición de este fichero por http el apache no pueda servirlo por que esté a medio escribir o simplemente vacio por que acaba de volver a ser creado.
Esto lo probaré en cuanto tenga listo el Flash que mediante un loadVariables va a pedir dicho fichero y lo va a presentar como si fuera un LCD virtual.

Pronto contaré como ha ido.

Leave a Reply

Your email address will not be published. Required fields are marked *