State Machine
Questa sezione offre una panoramica dei possibili stati operativi del software per edge device smartCORE e delle loro relazioni.
Motivazione
Durante l'esecuzione del software smartCORE vengono di norma attraversati diversi stati operativi.
Avvio dell'esercizio di misura
Per l'avvio corretto dell'esercizio di misura vengono attraversati in successione i seguenti stati.
| Stato | Significato | |
|---|---|---|
| 1. | Ready | Stato iniziale dopo l'avvio dell'applicazione |
| 2. | LoadSystemConfig | Caricamento della configurazione di sistema /sdi/config/smartcore.json |
| 3. | LoadSystemModules | Caricamento dei moduli specificati nella configurazione di sistema |
| 4. | InitSystemModules | Inizializzazione dei moduli specificati nella configurazione di sistema |
| 5. | InitSystemProducerChannels | Creazione dei canali da produrre per tutti i moduli specificati nella configurazione di sistema |
| 6. | InitSystemConsumerChannels | Selezione dei canali da consumare per tutti i moduli specificati nella configurazione di sistema |
| 7. | Ready | Stato di transito dopo l'elaborazione corretta della configurazione di sistema |
| 8. | LoadMeasurementConfig | Caricamento della configurazione di misura /sdi/config/smartcore_dynamic.json |
| 9. | LoadMeasurementModules | Caricamento dei moduli specificati nella configurazione di misura |
| 10. | InitMeasurementModules | Inizializzazione dei moduli specificati nella configurazione di misura |
| 11. | InitMeasurementProducerChannels | Creazione dei canali da produrre per tutti i moduli specificati nella configurazione di misura |
| 12. | InitMeasurementConsumerChannels | Selezione dei canali da consumare per tutti i moduli specificati nella configurazione di misura |
| 13. | StartConsume | Avvio della funzionalità consumatrice di tutti i moduli |
| 14. | StartProduce | Avvio della funzionalità produttrice di tutti i moduli |
| 15. | Running | Stato dopo il raggiungimento dell'esercizio di misura |
I canali creati nei moduli di sistema possono essere selezionati e consumati sia nei moduli di sistema sia nei moduli di misura, mentre i canali creati nei moduli di misura NON possono essere selezionati nei moduli di sistema e quindi NON possono essere consumati.
Vengono creati per primi i canali producer, in modo che da essi possa poi avvenire una selezione dei canali consumer.
Al contrario, vengono avviati per primi i meccanismi di consumo di tutti i moduli e solo dopo i meccanismi di produzione, per evitare overflow.
Mentre i canali (producer) possono essere creati ESCLUSIVAMENTE negli stati previsti per la creazione (inizializzazione) di tali canali, esistono sì stati per la selezione ai fini del consumo (anch'essi denominati inizializzazione), ma una nuova selezione dei canali da consumare può avvenire in qualsiasi momento. Ciò accade in particolare in scenari con selezione interattiva (come ad es. il consumo/la messa a disposizione dei dati via SCPI).
Arresto/riavvio esplicito
L'arresto di smartCORE avviene solo se l'utente lo richiede esplicitamente (ad es. nell'ambito di un aggiornamento della configurazione).
Esistono i seguenti meccanismi
- per arrestare l'esercizio di misura
- per arrestare l'intero esercizio di misura e di sistema di smartCORE
nonché per riavviare il dispositivo di misura.
Arresto esplicito dell'esercizio di misura
Durante l'arresto dell'esercizio di misura vengono attraversati in sequenza i seguenti stati.
| Stato / Operazione | Significato | |
|---|---|---|
| 1. | Running | Stato di partenza (esercizio di misura) |
| 2. | StopProduce | Arresto della funzionalità produttrice di tutti i moduli |
| 3. | StopConsume | Arresto della funzionalità consumatrice di tutti i moduli |
| 4. | CleanupMeasurementModules | Distruzione dei moduli specificati nella configurazione di misura |
| 5. | Ready | Stato dopo l'arresto corretto dell'esercizio di misura |
Un riavvio opzionale avviene come descritto sopra in Avvio del sistema (parte II).
Arresto esplicito dell'esercizio di sistema
Durante l'arresto dell'esercizio di sistema (ovvero dell'intero smartCORE) vengono attraversati in sequenza i seguenti stati.
| Stato / Operazione | Significato | |
|---|---|---|
| 1. | Running | Stato di partenza (esercizio di misura) |
| 2. | StopProduce | Arresto della funzionalità produttrice di tutti i moduli |
| 3. | StopConsume | Arresto della funzionalità consumatrice di tutti i moduli |
| 4. | CleanupMeasurementModules | Distruzione dei moduli specificati nella configurazione di misura |
| 5. | CleanupSystemModules | Distruzione dei moduli specificati nella configurazione di sistema |
| 6. | Ready | Stato dopo l'arresto corretto dell'esercizio di misura |
Un riavvio opzionale avviene come descritto sopra in Avvio del sistema (parte I) seguito da Avvio del sistema (parte II).
La differenza tra l'arresto dell'esercizio di misura e quello di sistema consiste quindi soltanto nella distruzione di tutti i moduli di sistema. Di conseguenza è opportuno includere nella configurazione di sistema i moduli che devono essere persistenti rispetto a un riavvio dell'esercizio di misura.
Riavvio del dispositivo
Il riavvio del dispositivo comporta l'arresto dell'esercizio di sistema, seguito dall'avvio dell'esercizio di misura dopo il riavvio del dispositivo di misura.