public class SimulationAutomaton extends java.lang.Object implements ClientReceiverInterface
Deterministischer endlicher Automat für die Simulation. Nicht erlaubte Transitionen werden ignoriert. Treten Fehler auf, so werden diese geloggt.
Modifier and Type | Field and Description |
---|---|
protected static int |
ERASED
Gelöscht - Zustand.
|
protected static int |
INIT
Vorstart - Zustand.
|
protected static int |
NEW
Neu - Zustand.
|
protected static int |
PAUSE
Pause - Zustand.
|
protected static int |
START
Start - Zustand.
|
protected static int |
STOP
Stop - Zustand.
|
static int |
UNDEFINED
Undefinierter Zustand / Undefinierte Simulationsvariante
|
Constructor and Description |
---|
SimulationAutomaton(SimulationManager simManager,
SystemObject simulation,
DataDescription simulationControl)
Erzeugt einen neuen Automaten für eine Simulation.
|
Modifier and Type | Method and Description |
---|---|
protected void |
continueInitStateGetParams()
Anmelden auf Information, welche Daten archiviert werden sollen.
|
protected void |
continueInitStateSubscribe(ResultData resultData)
Fortsetzung Zustand ‘Vorstart’. - Meldet das Archivsystem auf die Simulationsdaten an.
|
void |
dataDeleted(boolean successful)
Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.
|
protected void |
enterErasedState()
Zustand ‘Gelöscht’ wird erreicht. - Löschen der Daten
|
protected void |
enterInitState()
Zustand ‘Vorstart’ wird erreicht. - Löschen der archivierten Simulationsdaten.
|
protected void |
enterNewState()
Zustand ‘Neu’ wird erreicht.
|
protected void |
enterStartState()
Zustand ‘Start’ wird erreicht.
|
protected void |
enterStopState()
Zustand ‘Stop’ wird erreicht. - ‘Ende’-Meldung senden - Abmeldung vom Datenempfang
|
protected void |
finishErasedState()
Wird aufgerufen, nachdem alle Daten gelöscht wurden.
|
protected void |
finishInitState(boolean successful)
Wird vom ArchivConfig Task aufgerufen, nachdem das Archivsystem sich auf die Simulationsdaten angemeldet hat - Sendet die ‘Bereit’ Meldung, wenn Daten gelöscht, falls der Automat im Zustand Vorstart und die Anmeldung auf die zu archivierenden Simulationsdaten erfolgreich verlaufen ist.
|
short |
getSimVar()
Liefert die Simulationsvariante der Simulation.
|
protected boolean |
sendSimulationState(boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler.
|
protected void |
sendSimulationStateAndUnsubscribe(boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler.
|
void |
terminate()
Beendet den Automaten.
|
boolean |
transition()
Transition in den neuen Zustand.
|
void |
update(ResultData[] results)
Callback Methode die vom Dav aufgerufen wird, wenn neue Daten zum Simulationsobjekt eingehen.
|
void |
wakeUp()
Benachrichtigt die Simulation, dass die Wartezeit abgelaufen ist.
|
public static final int UNDEFINED
Undefinierter Zustand / Undefinierte Simulationsvariante
protected static final int NEW
Neu - Zustand.
protected static final int INIT
Vorstart - Zustand.
protected static final int START
Start - Zustand.
protected static final int PAUSE
Pause - Zustand.
protected static final int STOP
Stop - Zustand.
protected static final int ERASED
Gelöscht - Zustand.
public SimulationAutomaton(SimulationManager simManager, SystemObject simulation, DataDescription simulationControl)
Erzeugt einen neuen Automaten für eine Simulation. Meldet den Automaten als Empfänger für das Simuationsobjekt an.
simManager
- Simulationsverwaltungsimulation
- Simulationsobjekt.simulationControl
- Steuerungsinformationen, auf die sich die Simulation beim Dav anmelden soll.public boolean transition()
Transition in den neuen Zustand. Es wird überprüft, ob die Transition möglich ist.
true
falls der Automat in den neuen Zustand überführt werden konnte. false
sonst.protected void enterNewState()
Zustand ‘Neu’ wird erreicht. Meldet den Empfang von Steuerungsdaten an. Sendet, dass das Archivsystem nicht für die Durchführung der Simulation zur Verfügung steht.
protected void enterInitState()
Zustand ‘Vorstart’ wird erreicht. - Löschen der archivierten Simulationsdaten. Ist diese Aufgabe abgeschlossen, wird die Callback MethodedataDeleted(boolean)
vom Löschtask aufgerufen.
protected void continueInitStateGetParams()
continueInitStateSubscribe(ResultData)
durch update(ResultData[])
aufgerufen. Diese Methode Wird von dataDeleted(boolean)
aufgerufen, wenn der Zustand der Simulation INIT
ist.protected void continueInitStateSubscribe(ResultData resultData)
Fortsetzung Zustand ‘Vorstart’. - Meldet das Archivsystem auf die Simulationsdaten an. Wird durch update(ResultData[])
aufgerufen, sobald die zu archivierenden Daten bekannt sind.
resultData
- Information, auf welche Daten sich das Archivsystem anmelden soll.protected void finishInitState(boolean successful)
Wird vom ArchivConfig Task aufgerufen, nachdem das Archivsystem sich auf die Simulationsdaten angemeldet hat - Sendet die ‘Bereit’ Meldung, wenn Daten gelöscht, falls der Automat im Zustand Vorstart und die Anmeldung auf die zu archivierenden Simulationsdaten erfolgreich verlaufen ist.
successful
- Zeigt an ob der Auftrag erfolgreich durchgeführt wurde.protected void enterStartState()
Zustand ‘Start’ wird erreicht. Meldet die Simulation vom Empfang von Anmeldeinformationen
protected void enterStopState()
Zustand ‘Stop’ wird erreicht. - ‘Ende’-Meldung senden - Abmeldung vom Datenempfang
protected void enterErasedState()
Zustand ‘Gelöscht’ wird erreicht. - Löschen der Daten
protected void finishErasedState()
Wird aufgerufen, nachdem alle Daten gelöscht wurden. Wird durch dataDeleted(boolean)
aufgerufen, wenn der Zustand ERASED
ist. - Benachrichtigung senden, dass Simulationsobjekt gelsöcht werden kann.
protected boolean sendSimulationState(boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler. Blockiert, bis das Senden abgeschlossen wurde, maximal jedoch 10 Sekunden.
archiveReady
- Ist das Archiv für die Simulation bereit?true
falls das Senden erfolgreich durchgeführt wurde.protected void sendSimulationStateAndUnsubscribe(boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler. Wartet nicht.
archiveReady
- Ist das Archiv für die Simulation bereit?public void dataDeleted(boolean successful)
Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.
successful
- Zeigt an ob die Daten gelöscht werden konnten.public void terminate()
Beendet den Automaten. Meldet den Empfang von Daten ab.
public void update(ResultData[] results)
Callback Methode die vom Dav aufgerufen wird, wenn neue Daten zum Simulationsobjekt eingehen. Benachrichtigt Simulationsverwaltung, wenn eine Zustandsänderung der Simulation eingegangen ist.
update
in interface ClientReceiverInterface
results
- Feld mit den empfangenen Ergebnisdatensätzen.ClientReceiverInterface.update(ResultData[])
,
SimulationManager.addTransition(SimulationAutomaton)
public void wakeUp()
Benachrichtigt die Simulation, dass die Wartezeit abgelaufen ist.
public short getSimVar()
Liefert die Simulationsvariante der Simulation.
UNDEFINED
falls noch nicht initialisiert.