Ir al contenido principal

Entradas

Implementando un cliente MQTT en sistemas reactivos

Descubrí en este artículo cómo lograr un cliente MQTT escrito en C en un sistema embebido reactivo, usando máquinas de estados del tipo Statecharts, la programación dirigida por eventos y la biblioteca MQTT-Reactive , libre y de código abierto. Actualmente MQTT es uno de los protocolos más utilizados en los dispositivos IoT , ya que es simple, liviano y robusto. Además, ha sido diseñado para comunicaciones donde el enlace de datos es de alta latencia y de baja tasa de transferencia de datos, como ocurre en las redes GSM. Aquí el artículo completo:  https://www.embedded.com/implementing-an-mqtt-client-for-reactive-systems/
Entradas recientes

Modelos y frameworks en embedded software de manera simple - Parte III "Framework RKH"

La presente publicación es la tercera y última parte del artículo "Modelos y frameworks en embedded software de manera simple", que explora las características y los beneficios de utilizar modelos y frameworks para disminuir el costo, la complejidad y el tiempo de desarrollo del software de un embedded system. Esta última parte presenta y describe el framework RKH de Vortex , sus servicios, principales características, las ventajas de su uso y su estructura interna. Parte 1: "Modelos y frameworks en embedded software de manera simple - Usando modelos" Parte 2: "Modelos y frameworks en embedded software de manera simple - Usando frameworks" ¿Qué es RKH? Es un paquete de software multiplataforma que provee un conjunto de servicios comunes y fundamentales entre aplicaciones del mismo dominio, en especial los embedded systems, cuyo objetivo es facilitar el desarrollo de sistemas parcialmente o totalmente reactivos, en los cuales su comportamiento di

Modelos y frameworks en embedded software de manera simple - Parte II "Usando Frameworks"

La presente publicación es la segunda parte del artículo Modelos y frameworks en embedded software de manera simple, que explora las características y los beneficios de utilizar modelos y frameworks para disminuir el costo, la complejidad y el tiempo de desarrollo del software de un embedded system. Específicamente, esta parte analiza el uso de los frameworks más tradicionales del mercado, para lograr que los conceptos expuestos en la primera parte se materialicen y se conviertan rápidamente en parte de nuestro software. Para que la codificación de los Statecharts concurrentes y colaborativos, no se convierta en un obstáculo, limite o impida su uso, existen paquetes de software disponibles, que proveen la manera y las reglas adecuadas para codificar el modelo de comportamiento diseñado, en un embedded system, dentro de un marco formal, simple, bien definido y estructurado, como ser el framework QP de Quantum Leaps , Rational Rhapsody de IBM , o el framework RKH . Al mismo tiem

Modelos y frameworks en embedded software de manera simple - Parte I "Usando modelos"

El artículo, que se compone de tres partes, explora las características y los beneficios de utilizar modelos y frameworks para disminuir el costo, la complejidad y el tiempo de desarrollo del software de un embedded system. La primera parte aborda el modelo de comportamiento dinámico que define la funcionalidad del sistema y en donde frecuentemente se producen las mayores complicaciones. Por ser de los más utilizados en este tipo de sistemas, el artículo se enfoca en los diagramas de comportamiento del tipo máquinas de estados, en especial aquellas de estados anidados o Statecharts [11], como así también en el modelo de ejecución Objeto Activo [1,2], el cual permite la ejecución simultánea de múltiples máquinas, colaborando entre sí y con el resto del sistema, de manera segura y transportable. Adicionalmente presenta los tópicos actuales más importantes para lograr un desarrollo de software realmente efectivo. La segunda parte analiza el uso de los frameworks más tradicionales d

Prueba de máquinas de estados planas y jerárquicas mediante casos de prueba

El artículo explora una serie de estrategias, como punto de partida, para probar software que representa máquinas de estados tanto tradicionales (o planas) como de estados anidados (o jerárquicas). Estas últimas también conocidas como Statecharts [5] o máquinas UML. Dichas estrategias se aplican bajo conceptos como el desacople de módulos, el uso de stub , spy y mock [1][6], los casos de prueba unitarios y sus fases , entre otros, los cuales permiten aplicar de manera inmediata el desarrollo de software dirigido por pruebas ( TDD ), en este caso para las máquinas de estados, con los beneficios que ello implica. Aunque lamentablemente poco explorado para la aplicación en software dirigido por eventos (reactivo). Cada una de las estrategias expuestas se respalda con ejemplos de código fuente, escritos en lenguaje C para el framework de prueba Unity y Cmock , aunque pueden extrapolarse fácilmente a otros similares.  Finalmente, el presente artículo muestra una estrategia p

Especificación de Máquinas de Estados UML y Compatibilidad en RKH

El presente artículo describe en detalle la semántica y notación de cada uno de los elementos que constituyen las máquinas de estados especificadas por UML, las cuales se basan en el modelo de comportamiento dinámico Statechart escrito por el profesor David Harel [1]. Adicionalmente, describe la compatibilidad y grado de cumplimiento de la versión 2.4.4 o superior del framework RKH [2] con la especificación de máquinas de estados definida por OMG, en la especificación “OMG Unified Modeling Language”, Version 2.5 , Capítulo 14 “StateMachine”, pág. 319 [3]. Si bien la especificación UML de OMG es libre y pública, dista bastante de ser fácil de leer e interpretar, por aquellas personas que no se dedican exclusivamente a estos temas, pero si requieren formalizar la manera en que desarrollan software, en especial aquel aplicado a los embedded systems . Por tal motivo, el objetivo fundamental del presente artículo, es acercar la especificación (semántica y notación) de U