State Machine
En esta sección se ofrece una visión general de los posibles estados de funcionamiento del software de Edge Device smartCORE y de sus relaciones.
Motivación
Durante la ejecución del software smartCORE se recorren habitualmente distintos estados de funcionamiento.
Inicio del modo de medición
Para iniciar con éxito el modo de medición se recorren sucesivamente los siguientes estados.
| Estado | Significado | |
|---|---|---|
| 1. | Ready | Estado inicial tras el inicio de la aplicación |
| 2. | LoadSystemConfig | Carga de la configuración del sistema /sdi/config/smartcore.json |
| 3. | LoadSystemModules | Carga de los módulos especificados en la configuración del sistema |
| 4. | InitSystemModules | Inicialización de los módulos especificados en la configuración del sistema |
| 5. | InitSystemProducerChannels | Creación de los canales que se van a producir para todos los módulos especificados en la configuración del sistema |
| 6. | InitSystemConsumerChannels | Selección de los canales que se van a consumir para todos los módulos especificados en la configuración del sistema |
| 7. | Ready | Estado de transición tras el procesamiento correcto de la configuración del sistema |
| 8. | LoadMeasurementConfig | Carga de la configuración de medición /sdi/config/smartcore_dynamic.json |
| 9. | LoadMeasurementModules | Carga de los módulos especificados en la configuración de medición |
| 10. | InitMeasurementModules | Inicialización de los módulos especificados en la configuración de medición |
| 11. | InitMeasurementProducerChannels | Creación de los canales que se van a producir para todos los módulos especificados en la configuración de medición |
| 12. | InitMeasurementConsumerChannels | Selección de los canales que se van a consumir para todos los módulos especificados en la configuración de medición |
| 13. | StartConsume | Inicio de la funcionalidad consumidora de todos los módulos |
| 14. | StartProduce | Inicio de la funcionalidad productora de todos los módulos |
| 15. | Running | Estado tras alcanzar el modo de medición |
Los canales creados en módulos del sistema pueden seleccionarse y consumirse tanto en módulos del sistema como en módulos de medición, mientras que los canales creados en módulos de medición NO pueden seleccionarse en módulos del sistema y, por tanto, tampoco consumirse.
Primero se crean los canales de productor, para que a partir de ellos pueda realizarse después una selección de los canales de consumidor.
En cambio, primero se inician los mecanismos de consumo de todos los módulos y solo después los mecanismos de producción, con el fin de evitar desbordamientos.
Mientras que los canales (de productor) SOLO pueden crearse en los estados previstos para la creación (inicialización) de dichos canales, existen también estados para la selección con fines de consumo (denominados igualmente inicialización); sin embargo, en cualquier momento puede realizarse una nueva selección de los canales que se van a consumir. Esto sucede en particular en escenarios con selección interactiva (como, por ejemplo, el consumo/la provisión de datos mediante SCPI).
Apagado/reinicio explícito
El apagado del smartCORE se realiza únicamente cuando el usuario lo solicita explícitamente (p. ej., en el marco de una actualización de la configuración).
A continuación existen mecanismos
- para detener el modo de medición
- para detener todo el funcionamiento de medición y de sistema del smartCORE
así como, además, para reiniciar el equipo de medición.
Apagado explícito del modo de medición
Durante el apagado del modo de medición se recorren secuencialmente los siguientes estados.
| Estado / Proceso | Significado | |
|---|---|---|
| 1. | Running | Estado inicial (modo de medición) |
| 2. | StopProduce | Detención de la funcionalidad productora de todos los módulos |
| 3. | StopConsume | Detención de la funcionalidad consumidora de todos los módulos |
| 4. | CleanupMeasurementModules | Destrucción de los módulos especificados en la configuración de medición |
| 5. | Ready | Estado tras el apagado correcto del modo de medición |
Un reinicio opcional se realiza como se describe más arriba en Inicio del sistema (parte II).
Apagado explícito del funcionamiento del sistema
Durante el apagado del funcionamiento del sistema (o de todo el smartCORE) se recorren secuencialmente los siguientes estados.
| Estado / Proceso | Significado | |
|---|---|---|
| 1. | Running | Estado inicial (modo de medición) |
| 2. | StopProduce | Detención de la funcionalidad productora de todos los módulos |
| 3. | StopConsume | Detención de la funcionalidad consumidora de todos los módulos |
| 4. | CleanupMeasurementModules | Destrucción de los módulos especificados en la configuración de medición |
| 5. | CleanupSystemModules | Destrucción de los módulos especificados en la configuración del sistema |
| 6. | Ready | Estado tras el apagado correcto del modo de medición |
Un reinicio opcional se realiza como se describe más arriba en Inicio del sistema (parte I), seguido de Inicio del sistema (parte II).
La diferencia entre el apagado del modo de medición y el del funcionamiento del sistema reside, por tanto, únicamente en la destrucción de todos los módulos del sistema. En consecuencia, resulta conveniente incluir en la configuración del sistema los módulos que deban ser persistentes ante un reinicio del modo de medición.
Reinicio del dispositivo
El reinicio del dispositivo da lugar a un apagado del funcionamiento del sistema, con el posterior inicio del modo de medición tras reiniciarse el equipo de medición.