Package de.bsvrz.ars.ars.mgmt.simulation
Class SimulationAutomaton
java.lang.Object
de.bsvrz.ars.ars.mgmt.simulation.SimulationAutomaton
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientReceiverInterface
- Direct Known Subclasses:
OfflineSimulation
,OnlineSimulation
public class SimulationAutomaton
extends java.lang.Object
implements de.bsvrz.dav.daf.main.ClientReceiverInterface
Deterministischer endlicher Automat für die Simulation. Nicht erlaubte Transitionen werden ignoriert. Treten Fehler auf, so werden diese geloggt.
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description SimulationAutomaton(SimulationManager simManager, de.bsvrz.dav.daf.main.config.SystemObject simulation, de.bsvrz.dav.daf.main.DataDescription simulationControl)
Erzeugt einen neuen Automaten für eine Simulation. -
Method Summary
Modifier and Type Method Description protected void
continueInitStateGetParams()
- Anmelden auf Information, welche Daten archiviert werden sollen.protected void
continueInitStateSubscribe(de.bsvrz.dav.daf.main.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 Datenprotected 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 Datenempfangprotected 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.java.lang.String
toString()
boolean
transition()
Transition in den neuen Zustand.void
update(de.bsvrz.dav.daf.main.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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
UNDEFINED
public static final int UNDEFINEDUndefinierter Zustand / Undefinierte Simulationsvariante- See Also:
- Constant Field Values
-
NEW
protected static final int NEWNeu - Zustand.- See Also:
- Constant Field Values
-
INIT
protected static final int INITVorstart - Zustand.- See Also:
- Constant Field Values
-
START
protected static final int STARTStart - Zustand.- See Also:
- Constant Field Values
-
PAUSE
protected static final int PAUSEPause - Zustand.- See Also:
- Constant Field Values
-
STOP
protected static final int STOPStop - Zustand.- See Also:
- Constant Field Values
-
ERASED
protected static final int ERASEDGelöscht - Zustand.- See Also:
- Constant Field Values
-
-
Constructor Details
-
SimulationAutomaton
public SimulationAutomaton(SimulationManager simManager, de.bsvrz.dav.daf.main.config.SystemObject simulation, de.bsvrz.dav.daf.main.DataDescription simulationControl)Erzeugt einen neuen Automaten für eine Simulation. Meldet den Automaten als Empfänger für das Simuationsobjekt an.- Parameters:
simManager
- Simulationsverwaltungsimulation
- Simulationsobjekt.simulationControl
- Steuerungsinformationen, auf die sich die Simulation beim Dav anmelden soll.
-
-
Method Details
-
transition
public boolean transition()Transition in den neuen Zustand. Es wird überprüft, ob die Transition möglich ist.- Returns:
true
falls der Automat in den neuen Zustand überführt werden konnte.false
sonst.
-
enterNewState
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. -
enterInitState
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. -
continueInitStateGetParams
protected void continueInitStateGetParams()- Anmelden auf Information, welche Daten archiviert werden sollen. Geht diese Information ein, wirdcontinueInitStateSubscribe(ResultData)
durchupdate(ResultData[])
aufgerufen. Diese Methode Wird vondataDeleted(boolean)
aufgerufen, wenn der Zustand der SimulationINIT
ist. -
continueInitStateSubscribe
protected void continueInitStateSubscribe(de.bsvrz.dav.daf.main.ResultData resultData)Fortsetzung Zustand 'Vorstart'. - Meldet das Archivsystem auf die Simulationsdaten an. Wird durchupdate(ResultData[])
aufgerufen, sobald die zu archivierenden Daten bekannt sind.- Parameters:
resultData
- Information, auf welche Daten sich das Archivsystem anmelden soll.
-
finishInitState
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.- Parameters:
successful
- Zeigt an ob der Auftrag erfolgreich durchgeführt wurde.
-
enterStartState
protected void enterStartState()Zustand 'Start' wird erreicht. Meldet die Simulation vom Empfang von Anmeldeinformationen -
enterStopState
protected void enterStopState()Zustand 'Stop' wird erreicht. - 'Ende'-Meldung senden - Abmeldung vom Datenempfang -
enterErasedState
protected void enterErasedState()Zustand 'Gelöscht' wird erreicht. - Löschen der Daten -
finishErasedState
protected void finishErasedState()Wird aufgerufen, nachdem alle Daten gelöscht wurden. Wird durchdataDeleted(boolean)
aufgerufen, wenn der ZustandERASED
ist. - Benachrichtigung senden, dass Simulationsobjekt gelsöcht werden kann. -
sendSimulationState
protected boolean sendSimulationState(boolean archiveReady)Legt den Simulationsstatus auf den Datenverteiler. Blockiert, bis das Senden abgeschlossen wurde, maximal jedoch 10 Sekunden.- Parameters:
archiveReady
- Ist das Archiv für die Simulation bereit?- Returns:
true
falls das Senden erfolgreich durchgeführt wurde.
-
sendSimulationStateAndUnsubscribe
protected void sendSimulationStateAndUnsubscribe(boolean archiveReady)Legt den Simulationsstatus auf den Datenverteiler. Wartet nicht.- Parameters:
archiveReady
- Ist das Archiv für die Simulation bereit?
-
dataDeleted
public void dataDeleted(boolean successful)Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.- Parameters:
successful
- Zeigt an ob die Daten gelöscht werden konnten.
-
terminate
public void terminate()Beendet den Automaten. Meldet den Empfang von Daten ab. -
update
public void update(de.bsvrz.dav.daf.main.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.- Specified by:
update
in interfacede.bsvrz.dav.daf.main.ClientReceiverInterface
- See Also:
SimulationManager.addTransition(SimulationAutomaton)
-
wakeUp
public void wakeUp()Benachrichtigt die Simulation, dass die Wartezeit abgelaufen ist. -
getSimVar
public short getSimVar()Liefert die Simulationsvariante der Simulation.- Returns:
- Simulationsvariante.
UNDEFINED
falls noch nicht initialisiert.
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-