State Machine
In diesem Abschnitt wird eine Übersicht über mögliche Betriebszustände der smartCORE Edge-Device Software und ihre Zusammenhänge vermittelt.
Motivation
Im Rahmen einer Laufzeit der smartCORE Software werden für gewöhnlich unterschiedliche Betriebszustände durchlaufen.
Start des Messbetriebs
Zum erfolgreichen Start des Messbetriebs werden nacheinander folgende Zustände durchlaufen.
Zustand | Bedeutung | |
---|---|---|
1. | Ready | Initialer Zustand nach dem Start der Anwendung |
2. | LoadSystemConfig | Laden der Systemkonfiguration /sdi/config/smartcore.json |
3. | LoadSystemModules | Laden der innerhalb der Systemkonfiguration spezifizierten Module |
4. | InitSystemModules | Initialisierung der innerhalb der Systemkonfiguration spezifizierten Module |
5. | InitSystemProducerChannels | Erstellung der zu produzierenden Kanäle für alle innerhalb der Systemkonfiguration spezifizierten Module |
6. | InitSystemConsumerChannels | Auswahl der zu konsumierenden Kanäle für alle innerhalb der Systemkonfiguration spezifizierten Module |
7. | Ready | Durchgangszustand nach erfolgreicher Verarbeitung der Systemkonfiguration |
8. | LoadMeasurementConfig | Laden der Messkonfiguration /sdi/config/smartcore_dynamic.json |
9. | LoadMeasurementModules | Laden der innerhalb der Messkonfiguration spezifizierten Module |
10. | InitMeasurementModules | Initialisierung der innerhalb der Messkonfiguration spezifizierten Module |
11. | InitMeasurementProducerChannels | Anlegen der zu produzierenden Kanäle für alle innerhalb der Messkonfiguration spezifizierten Module |
12. | InitMeasurementConsumerChannels | Auswahl der zu konsumierenden Kanäle für alle innerhalb der Messkonfiguration spezifizierten Module |
13. | StartConsume | Start der konsumierenden Funktionalität aller Module |
14. | StartProduce | Start der produzierenden Funktionalität aller Module |
15. | Running | Zustand nach Erreichen des Messbetriebs |
Es können in Systemmodulen angelegte Kanäle sowohl in System- als auch in Messmodulen ausgewählt und konsumiert werden, während in Messmodulen angelegte Kanäle NICHT in Systemmodulen ausgewählt und somit auch NICHT konsumiert werden können.
Es werden zunächst die Producer-Kanäle angelegt, damit aus diesen dann eine Selektion der Consumer-Kanäle erfolgen kann.
Demgegenüber werden zunächst die Konsumptionsmechanismen aller Module gestartet und erst danach die Produktionsmechanismen, um Überläufe zu vermeiden.
Während (Producer-)Kanäle AUSSCHLIESSLICH in den für die Erstellung (Initialisierung) dieser Kanäle vorgesehenen Zuständen angelegt werden können, existieren zwar Zustände für die Auswahl zur Konsumption (ebenfalls als Initialisierung bezeichnet), es kann jedoch darüberhinaus jederzeit eine Neuauswahl zu konsumierender Kanäle erfolgen. Dies ist insbesondere in Szenarien mit interaktiver Auswahl (wie z.B. der Daten-Konsumption/-bereitstellung via SCPI) der Fall.
Explizites Herunterfahren/Neustarten
Das Herunterfahren des smartCORE erfolgt lediglich dann, wenn es der Anwender (z.B. im Rahmen einer Aktualisierung der Konfiguration) explizit anfragt.
Es bestehen im folgenden Mechanismen
- zum Stoppen des Messbetriebs
- zum Stoppen des kompletten smartCORE Mess- und Systembetriebs
sowie darüberhinaus auch zum Neustart des Messgeräts.
Explizites Herunterfahren des Messbetriebs
Während des Herunterfahrens des Messbetriebs werden folgende Zustände sequentiell durchlaufen.
Zustand / Vorgang | Bedeutung | |
---|---|---|
1. | Running | Ausgangszustand (Messbetrieb) |
2. | StopProduce | Stop der produzierenden Funktionalität aller Module |
3. | StopConsume | Stop der konsumierenden Funktionalität aller Module |
4. | CleanupMeasurementModules | Destruktion der innerhalb der Messkonfiguration spezifizierten Module |
5. | Ready | Zustand nach erfolgreichem Herunterfahren des Messbetriebs |
Ein optionaler Neustart erfolgt wie oben unter Systemstart (Teil II) beschrieben.
Explizites Herunterfahren des Systembetriebs
Während des Herunterfahrens des Systembetriebs (bzw. des kompletten smartCORE) werden folgende Zustände sequentiell durchlaufen.
Zustand / Vorgang | Bedeutung | |
---|---|---|
1. | Running | Ausgangszustand (Messbetrieb) |
2. | StopProduce | Stop der produzierenden Funktionalität aller Module |
3. | StopConsume | Stop der konsumierenden Funktionalität aller Module |
4. | CleanupMeasurementModules | Destruktion der innerhalb der Messkonfiguration spezifizierten Module |
5. | CleanupSystemModules | Destruktion der innerhalb der Messkonfiguration spezifizierten Module |
5. | Ready | Zustand nach erfolgreichem Herunterfahren des Messbetriebs |
Ein optionaler Neustart erfolgt wie oben unter Systemstart (Teil I) gefolgt von Systemstart (Teil II) beschrieben.
Der Unterschied zwischen dem Herunterfahren des Mess- bzw. Systembetriebs liegt also lediglich in der Destruktion aller Systemmodule. Folglich bietet es sich an, Module, die bzgl. eines Neustarts des Messbetriebs persistent sein sollen, in der Systemkonfiguration mit aufzunehmen.
Geräteneustart
Der Geräteneustart resultiert in einem Herunterfahren des Systembetriebs mit anschließendem Start des Messbetriebs nach Neustart des Messgeräts.