Probablemente gran parte del software que desarrollamos para los
embedded systems tenga que lidiar con la ocurrencia de eventos y como consecuencia, con las acciones a ejecutar ante estos, en un determinado contexto.
En este tipo de sistemas, es común describir su comportamiento por medio de frases como:
“cuando se recibe una falla de energía en modo de operación normal, si el sistema de comunicaciones está activo, se cambia a modo falla activando los mecanismos de protección y enviando dicha falla al sistema de control” o
“al perder registro con la celda GSM en modo comunicación de voz, se activa tono de ocupado y se cambia al estado de falla de red”.
Las máquinas de estados finitos y sus correspondientes diagramas de estados son el mecanismo formal y natural para reunir estos fragmentos en un todo, logrando que el manejo de eventos sea explícitamente dependiente tanto de la naturaleza del evento como así también del contexto (estado) del sistema. Estos conceptos forman parte de lo que se denomina
programación dirigida por eventos.
Ahora, si a las máquinas de estados tradicionales (Mealy/Moore) le aplicamos los conceptos y técnicas modernas como
Statechart probablemente desarrollemos software más sólido, eficiente y mantenible.
Una de las herramientas que permite aplicar estos y otros conceptos es el framework
RKH, el cual facilita la modelización de los sistemas reactivos manteniendo una implementación sólida y eficiente. En términos generales,
RKH ha sido diseñado desde su origen para utilizarse en plataformas de 8-bits pero a su vez puede adaptarse fácilmente a plataformas de 16 y 32-bits.
Les dejo un ejemplo como para que evaluen la representación de un diagrama de estados mediante RKH:
aquí. También desde sourceforge pueden
descargarla y acceder a su
manual de referencia.
Aguardo sus comentarios y opiniones no sólo de la herramienta sino de su experiencia en estos temas.
Saludos!