|
|
@@ -1,7 +1,7 @@
|
|
|
"""
|
|
|
Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
|
|
|
|
|
|
-Date: Wed Oct 12 17:07:09 2016
|
|
|
+Date: Thu Oct 13 12:15:48 2016
|
|
|
|
|
|
Model author: Sadaf Mustafiz and Bruno Barroca and Claudio Gomes and Simon Van Mierlo
|
|
|
Model name: FSASimulator
|
|
|
@@ -272,32 +272,35 @@ class FSASimulator(RuntimeClassBase):
|
|
|
self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"].setEnter(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_enter)
|
|
|
self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"].setExit(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_exit)
|
|
|
|
|
|
+ # state /Main/SimulationFlow/DoSimulation/PreMicroStepPrepared
|
|
|
+ self.states["/Main/SimulationFlow/DoSimulation/PreMicroStepPrepared"] = State(25, self)
|
|
|
+
|
|
|
# state /Main/SimulationFlow/DoSimulation/MicroStepPrepared
|
|
|
- self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"] = State(25, self)
|
|
|
+ self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"] = State(26, self)
|
|
|
|
|
|
# state /Main/SimulationFlow/Stopped
|
|
|
- self.states["/Main/SimulationFlow/Stopped"] = State(26, self)
|
|
|
+ self.states["/Main/SimulationFlow/Stopped"] = State(27, self)
|
|
|
|
|
|
# state /Main/BreakpointManager
|
|
|
- self.states["/Main/BreakpointManager"] = State(27, self)
|
|
|
+ self.states["/Main/BreakpointManager"] = State(28, self)
|
|
|
|
|
|
# state /Main/BreakpointManager/Listening
|
|
|
- self.states["/Main/BreakpointManager/Listening"] = State(28, self)
|
|
|
+ self.states["/Main/BreakpointManager/Listening"] = State(29, self)
|
|
|
|
|
|
# state /Main/GodEventManager
|
|
|
- self.states["/Main/GodEventManager"] = State(29, self)
|
|
|
+ self.states["/Main/GodEventManager"] = State(30, self)
|
|
|
|
|
|
# state /Main/GodEventManager/Listening
|
|
|
- self.states["/Main/GodEventManager/Listening"] = State(30, self)
|
|
|
+ self.states["/Main/GodEventManager/Listening"] = State(31, self)
|
|
|
|
|
|
# state /Main/UserOutput
|
|
|
- self.states["/Main/UserOutput"] = State(31, self)
|
|
|
+ self.states["/Main/UserOutput"] = State(32, self)
|
|
|
|
|
|
# state /Main/UserOutput/Waiting
|
|
|
- self.states["/Main/UserOutput/Waiting"] = State(32, self)
|
|
|
+ self.states["/Main/UserOutput/Waiting"] = State(33, self)
|
|
|
|
|
|
# state /SimulationComplete
|
|
|
- self.states["/SimulationComplete"] = State(33, self)
|
|
|
+ self.states["/SimulationComplete"] = State(34, self)
|
|
|
|
|
|
# add children
|
|
|
self.states[""].addChild(self.states["/Main"])
|
|
|
@@ -329,6 +332,7 @@ class FSASimulator(RuntimeClassBase):
|
|
|
self.states["/Main/SimulationFlow/CheckTermination"].addChild(self.states["/Main/SimulationFlow/CheckTermination/MacroStepProcessed"])
|
|
|
self.states["/Main/SimulationFlow/DoSimulation"].addChild(self.states["/Main/SimulationFlow/DoSimulation/MacroStepPrepared"])
|
|
|
self.states["/Main/SimulationFlow/DoSimulation"].addChild(self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"])
|
|
|
+ self.states["/Main/SimulationFlow/DoSimulation"].addChild(self.states["/Main/SimulationFlow/DoSimulation/PreMicroStepPrepared"])
|
|
|
self.states["/Main/SimulationFlow/DoSimulation"].addChild(self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"])
|
|
|
self.states["/Main/BreakpointManager"].addChild(self.states["/Main/BreakpointManager/Listening"])
|
|
|
self.states["/Main/GodEventManager"].addChild(self.states["/Main/GodEventManager/Listening"])
|
|
|
@@ -450,17 +454,23 @@ class FSASimulator(RuntimeClassBase):
|
|
|
self.states["/Main/SimulationFlow/DoSimulation/MacroStepPrepared"].addTransition(_Main_SimulationFlow_DoSimulation_MacroStepPrepared_0)
|
|
|
|
|
|
# transition /Main/SimulationFlow/DoSimulation/MicroStepProcessed
|
|
|
- _Main_SimulationFlow_DoSimulation_MicroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"], [self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"]])
|
|
|
+ _Main_SimulationFlow_DoSimulation_MicroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"], [self.states["/Main/SimulationFlow/DoSimulation/PreMicroStepPrepared"]])
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepProcessed_0.setAction(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_0_exec)
|
|
|
- _Main_SimulationFlow_DoSimulation_MicroStepProcessed_0.setTrigger(None)
|
|
|
+ _Main_SimulationFlow_DoSimulation_MicroStepProcessed_0.setTrigger(Event("_7after"))
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepProcessed_0.setGuard(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_0_guard)
|
|
|
self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"].addTransition(_Main_SimulationFlow_DoSimulation_MicroStepProcessed_0)
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepProcessed_1 = Transition(self, self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"], [self.states["/Main/SimulationFlow/CheckTermination"]])
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepProcessed_1.setAction(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_1_exec)
|
|
|
- _Main_SimulationFlow_DoSimulation_MicroStepProcessed_1.setTrigger(Event("_7after"))
|
|
|
+ _Main_SimulationFlow_DoSimulation_MicroStepProcessed_1.setTrigger(Event("_8after"))
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepProcessed_1.setGuard(self._Main_SimulationFlow_DoSimulation_MicroStepProcessed_1_guard)
|
|
|
self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"].addTransition(_Main_SimulationFlow_DoSimulation_MicroStepProcessed_1)
|
|
|
|
|
|
+ # transition /Main/SimulationFlow/DoSimulation/PreMicroStepPrepared
|
|
|
+ _Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0 = Transition(self, self.states["/Main/SimulationFlow/DoSimulation/PreMicroStepPrepared"], [self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"]])
|
|
|
+ _Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0.setTrigger(None)
|
|
|
+ _Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0.setGuard(self._Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0_guard)
|
|
|
+ self.states["/Main/SimulationFlow/DoSimulation/PreMicroStepPrepared"].addTransition(_Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0)
|
|
|
+
|
|
|
# transition /Main/SimulationFlow/DoSimulation/MicroStepPrepared
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepPrepared_0 = Transition(self, self.states["/Main/SimulationFlow/DoSimulation/MicroStepPrepared"], [self.states["/Main/SimulationFlow/DoSimulation/MicroStepProcessed"]])
|
|
|
_Main_SimulationFlow_DoSimulation_MicroStepPrepared_0.setAction(self._Main_SimulationFlow_DoSimulation_MicroStepPrepared_0_exec)
|
|
|
@@ -575,6 +585,7 @@ class FSASimulator(RuntimeClassBase):
|
|
|
|
|
|
def _Main_SimulationFlow_InitializeDebugger_enter(self):
|
|
|
self.initializeDebugger()
|
|
|
+ print('Going to MacroStepProcessed... ')
|
|
|
|
|
|
def _Main_SimulationFlow_CheckTermination_MacroStepProcessed_enter(self):
|
|
|
self.addTimer(5, self.sccd_yield())
|
|
|
@@ -597,10 +608,12 @@ class FSASimulator(RuntimeClassBase):
|
|
|
print(self.selectedTransition)
|
|
|
|
|
|
def _Main_SimulationFlow_DoSimulation_MicroStepProcessed_enter(self):
|
|
|
- self.addTimer(7, self.sccd_yield())
|
|
|
+ self.addTimer(7, self.sccd_yield() * 2)
|
|
|
+ self.addTimer(8, self.sccd_yield())
|
|
|
|
|
|
def _Main_SimulationFlow_DoSimulation_MicroStepProcessed_exit(self):
|
|
|
self.removeTimer(7)
|
|
|
+ self.removeTimer(8)
|
|
|
|
|
|
def _Main_0_exec(self, parameters):
|
|
|
self.finalize()
|
|
|
@@ -635,10 +648,10 @@ class FSASimulator(RuntimeClassBase):
|
|
|
self.initialize()
|
|
|
|
|
|
def _Main_SimulationFlow_Initialized_0_exec(self, parameters):
|
|
|
- print('Going to MacroStepProcessed... ')
|
|
|
+ print('Going to InitializeDebugger... ')
|
|
|
|
|
|
def _Main_SimulationFlow_CheckTermination_MacroStepProcessed_0_exec(self, parameters):
|
|
|
- print('Going to End... ')
|
|
|
+ print('Going to Stopped... ')
|
|
|
|
|
|
def _Main_SimulationFlow_CheckTermination_MacroStepProcessed_0_guard(self, parameters):
|
|
|
return self.inState(["/Main/SimulationState/Stopped"])
|
|
|
@@ -676,6 +689,9 @@ class FSASimulator(RuntimeClassBase):
|
|
|
def _Main_SimulationFlow_DoSimulation_MicroStepProcessed_1_guard(self, parameters):
|
|
|
return self.selectedTransition == None
|
|
|
|
|
|
+ def _Main_SimulationFlow_DoSimulation_PreMicroStepPrepared_0_guard(self, parameters):
|
|
|
+ return self.inState(["/Main/SimulationState/Running"])
|
|
|
+
|
|
|
def _Main_SimulationFlow_DoSimulation_MicroStepPrepared_0_exec(self, parameters):
|
|
|
print('Going to MicroStepProcessed, taking transition and reading events... ')
|
|
|
print('Transition to be taken: ' + str(self.selectedTransition))
|