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 int
Gelöscht - Zustand.protected static final int
Vorstart - Zustand.protected static final int
Neu - Zustand.protected static final int
Pause - Zustand.protected static final int
Start - Zustand.protected static final int
Stop - Zustand.static final int
Undefinierter 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 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
Zustand 'Gelöscht' wird erreicht. - Löschen der Datenprotected void
Zustand 'Vorstart' wird erreicht. - Löschen der archivierten Simulationsdaten.protected void
Zustand 'Neu' wird erreicht.protected void
Zustand 'Start' wird erreicht.protected void
Zustand 'Stop' wird erreicht. - 'Ende'-Meldung senden - Abmeldung vom Datenempfangprotected void
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
Liefert die Simulationsvariante der Simulation.protected boolean
sendSimulationState
(boolean archiveReady) Legt den Simulationsstatus auf den Datenverteiler.void
Beendet den Automaten.toString()
boolean
Transition in den neuen Zustand.protected void
Stoppt die Simulationsanmeldung.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.
-
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:
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.
-
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:
update
in 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.
UNDEFINED
falls noch nicht initialisiert.
-
toString
-