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 sealed class SimulationAutomaton
extends Object
implements de.bsvrz.dav.daf.main.ClientReceiverInterface
permits OfflineSimulation, OnlineSimulation
Deterministischer endlicher Automat für die Simulation. Nicht erlaubte Transitionen werden ignoriert. Treten Fehler auf, so werden diese geloggt.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intGelöscht - Zustand.protected static final intVorstart - Zustand.protected static final intNeu - Zustand.protected static final intPause - Zustand.protected static final intStart - Zustand.protected static final intStop - Zustand.static final intUndefinierter Zustand / Undefinierte Simulationsvariante -
Constructor Summary
ConstructorsConstructorDescriptionSimulationAutomaton(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 TypeMethodDescriptionprotected void- 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 voidZustand 'Gelöscht' wird erreicht. - Löschen der Datenprotected voidZustand 'Vorstart' wird erreicht. - Löschen der archivierten Simulationsdaten.protected voidZustand 'Neu' wird erreicht.protected voidZustand 'Start' wird erreicht.protected voidZustand 'Stop' wird erreicht. - 'Ende'-Meldung senden - Abmeldung vom Datenempfangprotected voidWird 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.shortLiefert die Simulationsvariante der Simulation.protected booleansendSimulationState(boolean archiveReady) Legt den Simulationsstatus auf den Datenverteiler.voidBeendet den Automaten.toString()booleanTransition in den neuen Zustand.protected voidStoppt die Simulationsanmeldung.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.
-
Field Details
-
UNDEFINED
public static final int UNDEFINEDUndefinierter Zustand / Undefinierte Simulationsvariante- See Also:
-
NEW
protected static final int NEWNeu - Zustand.- See Also:
-
INIT
protected static final int INITVorstart - Zustand.- See Also:
-
START
protected static final int STARTStart - Zustand.- See Also:
-
PAUSE
protected static final int PAUSEPause - Zustand.- See Also:
-
STOP
protected static final int STOPStop - Zustand.- See Also:
-
ERASED
protected static final int ERASEDGelöscht - Zustand.- See Also:
-
-
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.
-
unsubscribe
protected void unsubscribe()Stoppt die Simulationsanmeldung. Wartet nicht. -
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(SimulationManager.Transition)
-
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
-