Saludos y comentarios del nuevo componente LCDScreen

Rodrigo Araya raraya en inf.utfsm.cl
Vie Jul 27 11:48:45 CLT 2007


Mauricio � wrote:
> On Fri, Jul 27, 2007 at 05:40:20AM +0200, Jorge Ibsen wrote:
>   
>> Hola Alejandro,
>>
>> Ojala que tu desarrollo este disponible en algun servidor de CVS o SVN 
>> para tener acceso al codigo una vez que tengas algo para compartir. A lo 
>> mejor seria una buena idea coordinarlo con Mauricio, para ver si ellos 
>> te pueden dar accesso a su servidor SVN para que archives tu codigo. 
>>     
> [...]
>   
>>> Como les habia comentado antes, se me ocurrio la idea de poner en 
>>> practica lo que aprendi en el workshop creando un componente acs que 
>>> reciba un mensaje (string) de algun otro componente y lo muestre en 
>>> una pantalla LCD (con chipset HD44780) via puerto paralelo.
>>>       
>
> Pensandolo bien, aun no me queda claro si es necesario una property para
> eso, puede ser suficiente con un AcsComponent y un par de metodos...
>
> [...]
>   
>>> Hoy avance bastante y ya logre la creacion del componente que no hace 
>>> nada, el modulo se llama LCDScreen y esta basado en el modulo 
>>> Telescope que hicimos en el workshop para el proyecto UOS.
>>>       
>
> Tienes definida la IDL?
>
>   
Estoy de acuerdo con lo que dice maray, deberías hacer un DEVIO.
Te recomiendo que hagas algo similar a lo que hicimos con el modulo 
'telescope', de manera que hagas un módulo de más alto nivel (por 
ejemplo 'smallDisplay') con una interfaz genérica para recibir mensajes 
y luego a este módulo le puedas enchufar uno que interactue directamente 
con el hd44780 (el DEVIO).

De esta manera puedes definir mensajes de algún tipo específico 
(warning, error, Alert, etc) los que pueden ser desplegados de alguna 
forma especial según el tipo de pantalla.
Estas pantallas cuentan con un número determinado de caracteres por fila 
y número de filas (según el modelo que estés usando), con lo que vas a 
tener que utilizar scrolling en algunos casos. Estos comandos de scroll 
los provee el chip hd44778, así como el mapa de caracteres que puedes 
utilizar (o crear nuevos caracteres), salto de linea, borra pantalla, 
escribir en el buffer, etc..

Si algún día se quiere cambiar la pantalla por alguna de otro tipo, como 
una pantalla gráfica, estas tienen noción de pixeles y algunas ademaś 
disponen de colores, por lo que el trato es distinto. En este caso solo 
tendrás (o el que quiera tendrá) que construir un nuevo DEVIO para esa 
pantalla definiendo tal vez un mensaje de alerta con un color 
especifico, etc..

[...]
>>> La solucion resulto correcta y el componente esta funcionando bien, 
>>> asique ahora puedo comenzar a buscar codigo existente que sirva para 
>>> enviar un string al LCD, codigo que ya he visto en algunas 
>>> implementaciones, asique veremos que tal queda.
>>>       
Sobre esto hay bastante documentación, y el manejo del puerto paralelo 
es bastante sencillo, solo accedes a una direccion y escribes un byte.
Tal vez con lo que debas tener cuidado es el timing, es decir, a los 
tiempos que esperas (delay) entre pulsos que envias al chip, ya que es 
un poco quisquilloso en este sentido.

> Un devIO tal vez?
> http://www.eso.org/~almamgr/AlmaAcs/OtherDocs/ACSPapersAndSlides/ADASS2003-ALMA-DevIO.pdf
> http://www.eso.org/~gchiozzi/AlmaAcs/OnlineDocs/ACS_docs/cpp/classDevIO.html
> http://www.eso.org/projects/alma/develop/acs/OnlineDocs/BACI_Device_Server_Programming_Tutorial.pdf
>   
Me parece un aporte bastante bueno, espero verlo pronto en el SVN (o CVS 
o GIT) de contribuciones de ACS-UTFSM .. ;)

Suerte!
Saludos,

Rodrigo Araya.


Más información sobre la lista de distribución ACS-es