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 intERASEDGelöscht - Zustand.protected static intINITVorstart - Zustand.protected static intNEWNeu - Zustand.protected static intPAUSEPause - Zustand.protected static intSTARTStart - Zustand.protected static intSTOPStop - Zustand.static intUNDEFINEDUndefinierter 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 voidcontinueInitStateGetParams()- Anmelden auf Information, welche Daten archiviert werden sollen.protected voidcontinueInitStateSubscribe(de.bsvrz.dav.daf.main.ResultData resultData)Fortsetzung Zustand 'Vorstart'. - Meldet das Archivsystem auf die Simulationsdaten an.voiddataDeleted(boolean successful)Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.protected voidenterErasedState()Zustand 'Gelöscht' wird erreicht. - Löschen der Datenprotected voidenterInitState()Zustand 'Vorstart' wird erreicht. - Löschen der archivierten Simulationsdaten.protected voidenterNewState()Zustand 'Neu' wird erreicht.protected voidenterStartState()Zustand 'Start' wird erreicht.protected voidenterStopState()Zustand 'Stop' wird erreicht. - 'Ende'-Meldung senden - Abmeldung vom Datenempfangprotected voidfinishErasedState()Wird aufgerufen, nachdem alle Daten gelöscht wurden.protected voidfinishInitState(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.shortgetSimVar()Liefert die Simulationsvariante der Simulation.protected booleansendSimulationState(boolean archiveReady)Legt den Simulationsstatus auf den Datenverteiler.protected voidsendSimulationStateAndUnsubscribe(boolean archiveReady)Legt den Simulationsstatus auf den Datenverteiler.voidterminate()Beendet den Automaten.java.lang.StringtoString()booleantransition()Transition in den neuen Zustand.voidupdate(de.bsvrz.dav.daf.main.ResultData[] results)Callback Methode die vom Dav aufgerufen wird, wenn neue Daten zum Simulationsobjekt eingehen.voidwakeUp()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:
truefalls der Automat in den neuen Zustand überführt werden konnte.falsesonst.
-
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 SimulationINITist. -
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 ZustandERASEDist. - 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:
truefalls 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:
updatein 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.
UNDEFINEDfalls noch nicht initialisiert.
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-