commit 50d35ace88a6ba6f9e0d0d47e66062d4d0b58ef7
parent cac567e3eb23025574afe511b74740e498f658fc
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Sat, 4 Oct 2025 16:28:00 -0300
Update `README.md`
Diffstat:
| M | README.md | | | 103 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- |
1 file changed, 97 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
@@ -164,19 +164,110 @@ incremente de 13 us a 106 us.
### Archivo `app/src/task_sensor.c`
En este archivo se implementa las funciones del modelo sensor, el cual se
-modela, en esta instancia como un botón, utilizando una maquina de estados.
+modela, como multiples botones, utilizando una maquina de estados por cada uno.
+
+Las subrutinas que se presentan son `task_sensor_init`, `task_sensor_update` y
+`task_sensor_statechart`. La primera `task_sensor_init` se invoca por única vez
+al iniciar la tarea (cuando se invoca `app_init`) e inicializa las variables de
+todas las maquinas de estados de modelo sensor disponibles (definidas en
+`task_sensor_cfg_list` y `task_sensor_dta_list`). Las ultimas dos subrutinas
+`task_sensor_update` y `task_sensor_statechart` se invocan continuamente en el
+superloop, al invocar `app_update`, en particular en `app_update` se llama a
+`task_sensor_update` y esta internamente invoca la función
+`task_sensor_statechart`, la cual actualiza el estado de cada una de la maquina
+de estados disponibles del modelo `task_sensor`.
### Archivo `app/src/task_sensor_attribute.h`
+En este archivo se describen los atributos de la maquina de estados del modelo
+sensor, como son los eventos que recibe y los estados posibles, también se
+definen las estructuras que representan esta maquina de estados, de manera tal
+de poder representar multiples sensores.
+
### Archivo `app/task_sensor.png`
-## Diagrama de estados de tareas
+En este archivo se presenta el diagrama de estados completo de la maquina de
+estados que representa al sensor. Por ser un diagrama de estados se muestran
+todos los posibles estados, como también el inicial, y como cambian estos al
+recibir eventos.
+
+
-Como se mencionó previamente, las tareas se modelan mediante maquinas de
-estados, a continuación se muestras los diagramas respectivos.
+### Archivo `app/src/task_system.c`
-
+En este archivo se implementa las funciones del modelo system, el cual se
+modela, como una única maquina de estados.
-
+Las subrutinas que se presentan son `task_system_init`, `task_system_update` y
+`task_system_statechart`. La primera `task_system_init` se invoca por única vez
+al iniciar la tarea (cuando se invoca `app_init`) e inicializa las variables de
+la maquina de estados del modelo system (definidas en la instancia de la
+estructura `task_system_dta_t`, `task_system_dta`). Las ultimas dos subrutinas
+`task_system_update` y `task_system_statechart` se invocan continuamente en el
+superloop, al invocar `app_update`, en particular en `app_update` se llama a
+`task_system_update` y esta internamente invoca la función
+`task_system_statechart`, la cual actualiza el estado de la maquina de estados
+del modelo system de acuerdo al estado en que este y los eventos que se reciben.
+
+### Archivo `app/src/task_system_attribute.h`
+
+En este archivo se describen los atributos de la maquina de estados del modelo
+system, como son los eventos que recibe y los estados posibles, también se
+definen las estructuras que representan esta maquina de estados.
+
+### Archivo `app/src/task_system_interface.h`
+
+En este archivo se define una serie de subrutinas para interactuar con el modelo
+system, de manera de enviar y recibir eventos, por ejemplo recibir eventos del
+modelo system y enviar eventos al modelo actuator.
+
+Las subrutinas que se definen son `init_queue_event_task_system`,
+`put_event_task_system`, `task_system_ev_t get_event_task_system` y
+`any_event_task_system`.
+
+### Archivo `app/task_system.png`
+
+En este archivo se presenta el diagrama de estados completo de la maquina de
+estados que representa al sistema. Por ser un diagrama de estados se muestran
+todos los posibles estados, incluyendo el estado inicial, y como cambian estos
+al recibir eventos.

+
+### Archivo `app/src/task_actuator.c`
+
+En este archivo se implementa las funciones del modelo actuator, el cual se
+modela, como una única maquina de estados.
+
+Las subrutinas que se presentan son `task_actuator_init`, `task_actuator_update` y
+`task_actuator_statechart`. La primera `task_actuator_init` se invoca por única vez
+al iniciar la tarea (cuando se invoca `app_init`) e inicializa las variables de
+todas las maquinas de estados de modelo actuator (definidas en la lista de instancias de la
+estructura `task_actuator_dta_t`, `task_actuator_dta_list`). Las ultimas dos
+subrutinas `task_actuator_update` y `task_actuator_statechart` se invocan
+continuamente en el superloop, al invocar `app_update`, en particular en
+`app_update` se llama a `task_actuator_update` y esta internamente invoca la
+función `task_actuator_statechart`, la cual actualiza el estado de la maquina de
+estados de cada uno de las instancias de modelo actuator de acuerdo al estado en
+que este y los eventos que recibe.
+
+### Archivo `app/src/task_actuator_attribute.h`
+
+En este archivo se describen los atributos de la maquina de estados del modelo
+actuator, como son los eventos que recibe y los estados posibles, también se
+definen las estructuras que representan esta maquina de estados.
+
+### Archivo `app/src/task_actuator_interface.h`
+
+En este archivo se define una subrutina para interactuar con el modelo
+actuator `put_event_task_actuator`, esta subrutina tiene como único fin enviar
+eventos al modelo actuator, por ejemplo desde el modelo system.
+
+### Archivo `app/task_actuator.png`
+
+En este archivo se presenta el diagrama de estados completo de la maquina de
+estados que representa al actuador. Por ser un diagrama de estados se muestran
+todos los posibles estados, incluyendo el estado inicial, y como cambian estos
+al recibir eventos.
+
+