target.py 84 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079
  1. """
  2. Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
  3. Date: Fri Oct 21 17:39:54 2016
  4. Model author: Sadaf Mustafiz and Bruno Barroca and Claudio Gomes
  5. Model name: Weaved_CBD_FSA_Simulator_Manual
  6. Model description:
  7. Automatically woven CBD and FSA simulators with the FSA being the dominant.
  8. """
  9. from sccd.runtime.statecharts_core import *
  10. from sccd.runtime.libs.ui import *
  11. from sccd.runtime.libs.utils import *
  12. import copy
  13. from CBD_Controller import CBDController
  14. import Options
  15. from fsa_cbd_weaved_classes import CBDState
  16. from weaved_cbd_fsa_lib import FSACBDLib
  17. # package "Weaved_CBD_FSA_Simulator_Manual"
  18. class Weaved_CBD_FSA_Simulator(RuntimeClassBase):
  19. def __init__(self, controller, cbd_options, amodel, fsa_events):
  20. RuntimeClassBase.__init__(self, controller)
  21. self.semantics.big_step_maximality = StatechartSemantics.TakeMany
  22. self.semantics.internal_event_lifeline = StatechartSemantics.Queue
  23. self.semantics.input_event_lifeline = StatechartSemantics.FirstComboStep
  24. self.semantics.priority = StatechartSemantics.SourceParent
  25. self.semantics.concurrency = StatechartSemantics.Single
  26. # build Statechart structure
  27. self.build_statechart_structure()
  28. # user defined attributes
  29. self.weaved_global_state = None
  30. self.fsa_elapsed = None
  31. self.cbd_options = None
  32. self.weaved_lib = None
  33. self.woven_child_initialized = None
  34. self.cbd_clock = None
  35. self.fsa_currentEvent = None
  36. self.weaved_delta = None
  37. self.weaved_model = None
  38. self.cbd_controller = None
  39. self.fsa_timestep = None
  40. self.cbd_currentCompIdx = None
  41. self.fsa_eventList = None
  42. self.cbd_depGraph = None
  43. self.fsa_selectedTransition = None
  44. self.cbd_strongComponentList = None
  45. self.weaved_previous_global_state = None
  46. self.cbd_delta = None
  47. self.weaved_triggered_when_transition = None
  48. self.cbd_iteration = None
  49. self.fsa_logicalTime = None
  50. self.fsa_currentState = None
  51. # call user defined constructor
  52. Weaved_CBD_FSA_Simulator.user_defined_constructor(self, cbd_options, amodel, fsa_events)
  53. def user_defined_constructor(self, cbd_options, amodel, fsa_events):
  54. self.weaved_lib = FSACBDLib()
  55. self.cbd_options = cbd_options
  56. self.cbd_delta = self.cbd_options.getDeltaT() * 1000.0
  57. self.weaved_model = amodel
  58. self.fsa_eventList = fsa_events
  59. self.fsa_timestep = 1.0 * 1000.0
  60. self.initialized = False
  61. def user_defined_destructor(self):
  62. pass
  63. # user defined method
  64. def fsa_processEvent(self, event):
  65. if (event != None):
  66. self.fsa_eventList.popEvent(event)
  67. event.processed = True
  68. # user defined method
  69. def updateCBDState(self):
  70. self.weaved_lib.updateCBDState(self.weaved_global_state, self.fsa_currentState.cbd)
  71. # user defined method
  72. def cbd_maxIterationsReached(self):
  73. return self.cbd_iteration >= self.cbd_options.getMaxIterations()
  74. # user defined method
  75. def fsa_getInputEventAt(self, time):
  76. return self.fsa_eventList.getInputAt(time)
  77. # user defined method
  78. def cbd_computeBlock(self):
  79. if self.cbd_currentComponentIsCycle():
  80. self.cbd_controller.computeNextAlgebraicLoop(self.cbd_strongComponentList[self.cbd_currentCompIdx], self.cbd_iteration)
  81. else:
  82. self.cbd_controller.computeNextBlock(self.cbd_strongComponentList[self.cbd_currentCompIdx], self.cbd_iteration)
  83. # user defined method
  84. def updateGlobalState(self):
  85. self.weaved_previous_global_state = copy.deepcopy(self.weaved_global_state)
  86. self.weaved_lib.updateGlobalState(self.weaved_global_state, self.fsa_currentState.cbd, self.cbd_clock / 1000.0)
  87. # user defined method
  88. def cbd_currentComponentIsCycle(self):
  89. return self.cbd_controller.componentIsCycle(self.cbd_strongComponentList[self.cbd_currentCompIdx], self.cbd_depGraph)
  90. # user defined method
  91. def cbd_hasNextStrongComponent(self):
  92. return (self.cbd_currentCompIdx) < len(self.cbd_strongComponentList)
  93. # user defined method
  94. def getTriggeredWhenTransition(self):
  95. return self.weaved_lib.getTriggeredWhenTransition(self.weaved_model, self.fsa_currentState, self.weaved_global_state, self.weaved_previous_global_state)
  96. # user defined method
  97. def fsa_initialize(self):
  98. self.weaved_delta = min(self.fsa_timestep, self.cbd_delta)
  99. self.fsa_logicalTime = 0.0
  100. self.fsa_elapsed = 0
  101. self.fsa_timestep = self.weaved_delta
  102. self.fsa_currentState = self.weaved_model.initialState
  103. self.initialized = True
  104. # user defined method
  105. def fsa_finalize(self):
  106. print 'Simulation finalized.'
  107. # user defined method
  108. def weaved_initialize(self):
  109. self.weaved_global_state = dict()
  110. self.weaved_previous_global_state = dict()
  111. self.woven_child_initialized = False
  112. # user defined method
  113. def initializeDebugger(self):
  114. self.breakpoints = []
  115. self.triggered_bp = None
  116. # user defined method
  117. def fsa_endCondition(self):
  118. return self.initialized and self.fsa_currentState and self.fsa_currentState.final
  119. # user defined method
  120. def cbd_endCondition(self):
  121. return self.initialized and self.cbd_iteration >= self.cbd_options.getMaxIterations()
  122. # user defined method
  123. def addBreakpoint(self, name, function, enabled = None, disable_on_trigger = None):
  124. if enabled == None: enabled = true
  125. if disable_on_trigger == None: disable_on_trigger = true
  126. if len([bp for bp in self.breakpoints if bp.name == name]) > 0:
  127. return -1
  128. self.breakpoints.append(Breakpoint(name, function, enabled, disable_on_trigger))
  129. return 0
  130. # user defined method
  131. def delBreakpoint(self, name):
  132. if len([bp for bp in self.breakpoints if bp.name == name]) == 0:
  133. return -1
  134. self.breakpoints = [bp for bp in self.breakpoints if bp.name != name]
  135. return 0
  136. # user defined method
  137. def toggleBreakpoint(self, name):
  138. if len([bp for bp in self.breakpoints if bp.name == name]) == 0:
  139. return -1
  140. for bp in self.breakpoints:
  141. if bp.name == name:
  142. bp.enabled = enabled
  143. break
  144. return 0
  145. # user defined method
  146. def breakpointTriggers(self, is_realtime_simulation):
  147. self.triggered_bp = None
  148. for bp in self.breakpoints:
  149. if not bp.enabled:
  150. continue
  151. # include the function in the scope...
  152. exec(bp.function)
  153. # ... and execute it, note that the breakpoint thus has to start with "def breakpoint("
  154. # note that we pass self.time_next instead of self.simulated_time in the case of as-fast-as-possible simulation (or stepping)
  155. # this is to make sure that the simulation is stopped BEFORE the specified time is reached, and not AFTER (because we don't necessarily implement 'step back')
  156. # in case of realtime simulation, we do pass the current simulated time, since we can stop at (more or less) exactly the right time
  157. if breakpoint({'clock': (self.clock if is_realtime_simulation else self.time_next) / 1000.0, 'state': self.currentState, 'event': self.currentEvent}):
  158. # triggered!
  159. self.triggered_bp = bp.name
  160. if bp.disable_on_trigger:
  161. bp.enabled = False
  162. return True
  163. else:
  164. # not triggered, so continue
  165. continue
  166. return False
  167. # user defined method
  168. def godEvent(self, new_state):
  169. filtered_states = [s for s in self.model.states if s.name == new_state]
  170. if not len(filtered_states) == 1:
  171. return -1
  172. self.currentState = filtered_states[0]
  173. return 0
  174. # builds Statechart structure
  175. def build_statechart_structure(self):
  176. # state <root>
  177. self.states[""] = State(0, self)
  178. # state /Main
  179. self.states["/Main"] = ParallelState(1, self)
  180. # state /Main/SimulationState
  181. self.states["/Main/SimulationState"] = State(2, self)
  182. # state /Main/SimulationState/Paused
  183. self.states["/Main/SimulationState/Paused"] = State(3, self)
  184. # state /Main/SimulationState/PrePaused
  185. self.states["/Main/SimulationState/PrePaused"] = State(4, self)
  186. self.states["/Main/SimulationState/PrePaused"].setEnter(self._Main_SimulationState_PrePaused_enter)
  187. self.states["/Main/SimulationState/PrePaused"].setExit(self._Main_SimulationState_PrePaused_exit)
  188. # state /Main/SimulationState/PreBreakpointTriggered
  189. self.states["/Main/SimulationState/PreBreakpointTriggered"] = State(5, self)
  190. self.states["/Main/SimulationState/PreBreakpointTriggered"].setEnter(self._Main_SimulationState_PreBreakpointTriggered_enter)
  191. self.states["/Main/SimulationState/PreBreakpointTriggered"].setExit(self._Main_SimulationState_PreBreakpointTriggered_exit)
  192. # state /Main/SimulationState/Running
  193. self.states["/Main/SimulationState/Running"] = State(6, self)
  194. # state /Main/SimulationState/Running/Continuous
  195. self.states["/Main/SimulationState/Running/Continuous"] = State(7, self)
  196. # state /Main/SimulationState/Running/BigStep
  197. self.states["/Main/SimulationState/Running/BigStep"] = State(8, self)
  198. # state /Main/SimulationState/Running/BigStepDone
  199. self.states["/Main/SimulationState/Running/BigStepDone"] = State(9, self)
  200. self.states["/Main/SimulationState/Running/BigStepDone"].setEnter(self._Main_SimulationState_Running_BigStepDone_enter)
  201. self.states["/Main/SimulationState/Running/BigStepDone"].setExit(self._Main_SimulationState_Running_BigStepDone_exit)
  202. # state /Main/SimulationState/Running/SmallStep
  203. self.states["/Main/SimulationState/Running/SmallStep"] = State(10, self)
  204. # state /Main/SimulationState/Running/SmallStepDone
  205. self.states["/Main/SimulationState/Running/SmallStepDone"] = State(11, self)
  206. self.states["/Main/SimulationState/Running/SmallStepDone"].setEnter(self._Main_SimulationState_Running_SmallStepDone_enter)
  207. self.states["/Main/SimulationState/Running/SmallStepDone"].setExit(self._Main_SimulationState_Running_SmallStepDone_exit)
  208. # state /Main/SimulationState/Running/Realtime
  209. self.states["/Main/SimulationState/Running/Realtime"] = State(12, self)
  210. self.states["/Main/SimulationState/Running/Realtime"].setEnter(self._Main_SimulationState_Running_Realtime_enter)
  211. # state /Main/SimulationState/PreStopped
  212. self.states["/Main/SimulationState/PreStopped"] = State(13, self)
  213. self.states["/Main/SimulationState/PreStopped"].setEnter(self._Main_SimulationState_PreStopped_enter)
  214. self.states["/Main/SimulationState/PreStopped"].setExit(self._Main_SimulationState_PreStopped_exit)
  215. # state /Main/SimulationState/Stopped
  216. self.states["/Main/SimulationState/Stopped"] = State(14, self)
  217. # state /Main/SimulationFlow
  218. self.states["/Main/SimulationFlow"] = State(15, self)
  219. # state /Main/SimulationFlow/FSA
  220. self.states["/Main/SimulationFlow/FSA"] = State(16, self)
  221. # state /Main/SimulationFlow/FSA/Started
  222. self.states["/Main/SimulationFlow/FSA/Started"] = State(17, self)
  223. # state /Main/SimulationFlow/FSA/Initialized
  224. self.states["/Main/SimulationFlow/FSA/Initialized"] = State(18, self)
  225. # state /Main/SimulationFlow/FSA/DebuggerInitialized
  226. self.states["/Main/SimulationFlow/FSA/DebuggerInitialized"] = State(19, self)
  227. # state /Main/SimulationFlow/FSA/CheckTermination
  228. self.states["/Main/SimulationFlow/FSA/CheckTermination"] = State(20, self)
  229. # state /Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed
  230. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"] = State(21, self)
  231. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"].setEnter(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_enter)
  232. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"].setExit(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_exit)
  233. # state /Main/SimulationFlow/FSA/Waiting
  234. self.states["/Main/SimulationFlow/FSA/Waiting"] = State(22, self)
  235. # state /Main/SimulationFlow/FSA/DoSimulation
  236. self.states["/Main/SimulationFlow/FSA/DoSimulation"] = State(23, self)
  237. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared
  238. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"] = State(24, self)
  239. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused
  240. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"] = State(25, self)
  241. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected
  242. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected"] = State(26, self)
  243. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected
  244. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"] = State(27, self)
  245. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized
  246. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"] = State(28, self)
  247. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized
  248. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized"] = State(29, self)
  249. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD
  250. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD"] = State(30, self)
  251. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started
  252. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"] = State(31, self)
  253. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized
  254. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized"] = State(32, self)
  255. # state /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed
  256. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"] = State(33, self)
  257. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed
  258. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"] = State(34, self)
  259. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused
  260. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"] = State(35, self)
  261. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected
  262. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected"] = State(36, self)
  263. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected
  264. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected"] = State(37, self)
  265. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized
  266. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized"] = State(38, self)
  267. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD
  268. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"] = State(39, self)
  269. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination
  270. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"] = State(40, self)
  271. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed
  272. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"] = State(41, self)
  273. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation
  274. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"] = State(42, self)
  275. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared
  276. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared"] = State(43, self)
  277. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed
  278. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"] = State(44, self)
  279. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared
  280. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared"] = State(45, self)
  281. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/Terminated
  282. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/Terminated"] = State(46, self)
  283. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused
  284. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"] = State(47, self)
  285. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected
  286. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected"] = State(48, self)
  287. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected
  288. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected"] = State(49, self)
  289. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed
  290. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"] = State(50, self)
  291. # state /Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared
  292. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared"] = State(51, self)
  293. # state /Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed
  294. self.states["/Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed"] = State(52, self)
  295. # state /Main/SimulationFlow/FSA/Terminated
  296. self.states["/Main/SimulationFlow/FSA/Terminated"] = State(53, self)
  297. # state /Main/SimulationFlow/ParentStarted
  298. self.states["/Main/SimulationFlow/ParentStarted"] = State(54, self)
  299. # state /HybridTerminated
  300. self.states["/HybridTerminated"] = State(55, self)
  301. # add children
  302. self.states[""].addChild(self.states["/Main"])
  303. self.states[""].addChild(self.states["/HybridTerminated"])
  304. self.states["/Main"].addChild(self.states["/Main/SimulationState"])
  305. self.states["/Main"].addChild(self.states["/Main/SimulationFlow"])
  306. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/Paused"])
  307. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/PrePaused"])
  308. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/PreBreakpointTriggered"])
  309. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/Running"])
  310. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/PreStopped"])
  311. self.states["/Main/SimulationState"].addChild(self.states["/Main/SimulationState/Stopped"])
  312. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/Continuous"])
  313. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/BigStep"])
  314. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/BigStepDone"])
  315. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/SmallStep"])
  316. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/SmallStepDone"])
  317. self.states["/Main/SimulationState/Running"].addChild(self.states["/Main/SimulationState/Running/Realtime"])
  318. self.states["/Main/SimulationFlow"].addChild(self.states["/Main/SimulationFlow/FSA"])
  319. self.states["/Main/SimulationFlow"].addChild(self.states["/Main/SimulationFlow/ParentStarted"])
  320. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/Started"])
  321. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/Initialized"])
  322. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/DebuggerInitialized"])
  323. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/CheckTermination"])
  324. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/Waiting"])
  325. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation"])
  326. self.states["/Main/SimulationFlow/FSA"].addChild(self.states["/Main/SimulationFlow/FSA/Terminated"])
  327. self.states["/Main/SimulationFlow/FSA/CheckTermination"].addChild(self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"])
  328. self.states["/Main/SimulationFlow/FSA/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"])
  329. self.states["/Main/SimulationFlow/FSA/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"])
  330. self.states["/Main/SimulationFlow/FSA/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared"])
  331. self.states["/Main/SimulationFlow/FSA/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed"])
  332. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"])
  333. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected"])
  334. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"])
  335. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"])
  336. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized"])
  337. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD"])
  338. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"])
  339. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"])
  340. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized"])
  341. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"])
  342. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected"])
  343. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected"])
  344. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized"])
  345. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"])
  346. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"])
  347. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected"])
  348. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected"])
  349. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"])
  350. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"])
  351. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"])
  352. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/Terminated"])
  353. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"])
  354. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared"])
  355. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"])
  356. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"].addChild(self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared"])
  357. self.states[""].fixTree()
  358. self.states[""].default_state = self.states["/Main"]
  359. self.states["/Main/SimulationState"].default_state = self.states["/Main/SimulationState/Paused"]
  360. self.states["/Main/SimulationState/Running"].default_state = self.states["/Main/SimulationState/Running/Continuous"]
  361. self.states["/Main/SimulationFlow"].default_state = self.states["/Main/SimulationFlow/FSA"]
  362. self.states["/Main/SimulationFlow/FSA"].default_state = self.states["/Main/SimulationFlow/FSA/Started"]
  363. self.states["/Main/SimulationFlow/FSA/CheckTermination"].default_state = self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"]
  364. self.states["/Main/SimulationFlow/FSA/DoSimulation"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"]
  365. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"]
  366. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"]
  367. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"]
  368. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"]
  369. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"]
  370. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"].default_state = self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared"]
  371. # transition /Main/SimulationState/Paused
  372. _Main_SimulationState_Paused_0 = Transition(self, self.states["/Main/SimulationState/Paused"], [self.states["/Main/SimulationState/Running/Continuous"]])
  373. _Main_SimulationState_Paused_0.setTrigger(Event("continuous", "user_input"))
  374. self.states["/Main/SimulationState/Paused"].addTransition(_Main_SimulationState_Paused_0)
  375. _Main_SimulationState_Paused_1 = Transition(self, self.states["/Main/SimulationState/Paused"], [self.states["/Main/SimulationState/Running/Realtime"]])
  376. _Main_SimulationState_Paused_1.setAction(self._Main_SimulationState_Paused_1_exec)
  377. _Main_SimulationState_Paused_1.setTrigger(Event("realtime", "user_input"))
  378. self.states["/Main/SimulationState/Paused"].addTransition(_Main_SimulationState_Paused_1)
  379. _Main_SimulationState_Paused_2 = Transition(self, self.states["/Main/SimulationState/Paused"], [self.states["/Main/SimulationState/Running/BigStep"]])
  380. _Main_SimulationState_Paused_2.setTrigger(Event("big_step", "user_input"))
  381. self.states["/Main/SimulationState/Paused"].addTransition(_Main_SimulationState_Paused_2)
  382. _Main_SimulationState_Paused_3 = Transition(self, self.states["/Main/SimulationState/Paused"], [self.states["/Main/SimulationState/Running/SmallStep"]])
  383. _Main_SimulationState_Paused_3.setTrigger(Event("small_step", "user_input"))
  384. self.states["/Main/SimulationState/Paused"].addTransition(_Main_SimulationState_Paused_3)
  385. _Main_SimulationState_Paused_4 = Transition(self, self.states["/Main/SimulationState/Paused"], [self.states["/Main/SimulationState/PreStopped"]])
  386. _Main_SimulationState_Paused_4.setTrigger(None)
  387. _Main_SimulationState_Paused_4.setGuard(self._Main_SimulationState_Paused_4_guard)
  388. self.states["/Main/SimulationState/Paused"].addTransition(_Main_SimulationState_Paused_4)
  389. # transition /Main/SimulationState/PrePaused
  390. _Main_SimulationState_PrePaused_0 = Transition(self, self.states["/Main/SimulationState/PrePaused"], [self.states["/Main/SimulationState/Paused"]])
  391. _Main_SimulationState_PrePaused_0.setAction(self._Main_SimulationState_PrePaused_0_exec)
  392. _Main_SimulationState_PrePaused_0.setTrigger(Event("_0after"))
  393. self.states["/Main/SimulationState/PrePaused"].addTransition(_Main_SimulationState_PrePaused_0)
  394. # transition /Main/SimulationState/PreBreakpointTriggered
  395. _Main_SimulationState_PreBreakpointTriggered_0 = Transition(self, self.states["/Main/SimulationState/PreBreakpointTriggered"], [self.states["/Main/SimulationState/Paused"]])
  396. _Main_SimulationState_PreBreakpointTriggered_0.setAction(self._Main_SimulationState_PreBreakpointTriggered_0_exec)
  397. _Main_SimulationState_PreBreakpointTriggered_0.setTrigger(Event("_1after"))
  398. self.states["/Main/SimulationState/PreBreakpointTriggered"].addTransition(_Main_SimulationState_PreBreakpointTriggered_0)
  399. # transition /Main/SimulationState/Running/BigStep
  400. _Main_SimulationState_Running_BigStep_0 = Transition(self, self.states["/Main/SimulationState/Running/BigStep"], [self.states["/Main/SimulationState/Running/BigStepDone"]])
  401. _Main_SimulationState_Running_BigStep_0.setTrigger(Event("big_step_done", None))
  402. self.states["/Main/SimulationState/Running/BigStep"].addTransition(_Main_SimulationState_Running_BigStep_0)
  403. # transition /Main/SimulationState/Running/BigStepDone
  404. _Main_SimulationState_Running_BigStepDone_0 = Transition(self, self.states["/Main/SimulationState/Running/BigStepDone"], [self.states["/Main/SimulationState/Paused"]])
  405. _Main_SimulationState_Running_BigStepDone_0.setTrigger(Event("_2after"))
  406. self.states["/Main/SimulationState/Running/BigStepDone"].addTransition(_Main_SimulationState_Running_BigStepDone_0)
  407. # transition /Main/SimulationState/Running/SmallStep
  408. _Main_SimulationState_Running_SmallStep_0 = Transition(self, self.states["/Main/SimulationState/Running/SmallStep"], [self.states["/Main/SimulationState/Running/SmallStepDone"]])
  409. _Main_SimulationState_Running_SmallStep_0.setTrigger(Event("small_step_done", None))
  410. self.states["/Main/SimulationState/Running/SmallStep"].addTransition(_Main_SimulationState_Running_SmallStep_0)
  411. # transition /Main/SimulationState/Running/SmallStepDone
  412. _Main_SimulationState_Running_SmallStepDone_0 = Transition(self, self.states["/Main/SimulationState/Running/SmallStepDone"], [self.states["/Main/SimulationState/Paused"]])
  413. _Main_SimulationState_Running_SmallStepDone_0.setTrigger(Event("_3after"))
  414. self.states["/Main/SimulationState/Running/SmallStepDone"].addTransition(_Main_SimulationState_Running_SmallStepDone_0)
  415. # transition /Main/SimulationState/PreStopped
  416. _Main_SimulationState_PreStopped_0 = Transition(self, self.states["/Main/SimulationState/PreStopped"], [self.states["/Main/SimulationState/Stopped"]])
  417. _Main_SimulationState_PreStopped_0.setAction(self._Main_SimulationState_PreStopped_0_exec)
  418. _Main_SimulationState_PreStopped_0.setTrigger(Event("_4after"))
  419. self.states["/Main/SimulationState/PreStopped"].addTransition(_Main_SimulationState_PreStopped_0)
  420. # transition /Main/SimulationFlow/FSA/Started
  421. _Main_SimulationFlow_FSA_Started_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/Started"], [self.states["/Main/SimulationFlow/ParentStarted"]])
  422. _Main_SimulationFlow_FSA_Started_0.setAction(self._Main_SimulationFlow_FSA_Started_0_exec)
  423. _Main_SimulationFlow_FSA_Started_0.setTrigger(None)
  424. self.states["/Main/SimulationFlow/FSA/Started"].addTransition(_Main_SimulationFlow_FSA_Started_0)
  425. # transition /Main/SimulationFlow/FSA/Initialized
  426. _Main_SimulationFlow_FSA_Initialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/Initialized"], [self.states["/Main/SimulationFlow/FSA/DebuggerInitialized"]])
  427. _Main_SimulationFlow_FSA_Initialized_0.setAction(self._Main_SimulationFlow_FSA_Initialized_0_exec)
  428. _Main_SimulationFlow_FSA_Initialized_0.setTrigger(None)
  429. self.states["/Main/SimulationFlow/FSA/Initialized"].addTransition(_Main_SimulationFlow_FSA_Initialized_0)
  430. # transition /Main/SimulationFlow/FSA/DebuggerInitialized
  431. _Main_SimulationFlow_FSA_DebuggerInitialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DebuggerInitialized"], [self.states["/Main/SimulationFlow/FSA/CheckTermination"]])
  432. _Main_SimulationFlow_FSA_DebuggerInitialized_0.setAction(self._Main_SimulationFlow_FSA_DebuggerInitialized_0_exec)
  433. _Main_SimulationFlow_FSA_DebuggerInitialized_0.setTrigger(None)
  434. self.states["/Main/SimulationFlow/FSA/DebuggerInitialized"].addTransition(_Main_SimulationFlow_FSA_DebuggerInitialized_0)
  435. # transition /Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed
  436. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/Terminated"]])
  437. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0.setAction(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0_exec)
  438. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0.setTrigger(Event("_5after"))
  439. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0.setGuard(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0_guard)
  440. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0)
  441. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/Waiting"]])
  442. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1.setTrigger(None)
  443. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1.setGuard(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1_guard)
  444. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1)
  445. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2 = Transition(self, self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation"]])
  446. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2.setAction(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2_exec)
  447. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2.setTrigger(None)
  448. _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2.setGuard(self._Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2_guard)
  449. self.states["/Main/SimulationFlow/FSA/CheckTermination/MacroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2)
  450. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused
  451. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"]])
  452. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0_exec)
  453. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0.setTrigger(None)
  454. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0_guard)
  455. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0)
  456. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected"]])
  457. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1_exec)
  458. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1.setTrigger(None)
  459. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1_guard)
  460. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ParentPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1)
  461. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected
  462. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"]])
  463. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0_exec)
  464. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0.setTrigger(None)
  465. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0)
  466. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected
  467. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"]])
  468. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0_exec)
  469. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0.setTrigger(None)
  470. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0_guard)
  471. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0)
  472. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized"]])
  473. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1_exec)
  474. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1.setTrigger(None)
  475. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1_guard)
  476. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1)
  477. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized
  478. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"]])
  479. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0_exec)
  480. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0.setTrigger(None)
  481. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0)
  482. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized
  483. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"]])
  484. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0_exec)
  485. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0.setTrigger(None)
  486. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildNotInitialized"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0)
  487. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started
  488. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized"]])
  489. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0_exec)
  490. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0.setTrigger(None)
  491. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Started"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0)
  492. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized
  493. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildInitialized"]])
  494. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0_exec)
  495. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0.setTrigger(None)
  496. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/CBD/Initialized"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0)
  497. # transition /Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed
  498. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed"]])
  499. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0_exec)
  500. _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0.setTrigger(None)
  501. self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared/ChildProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0)
  502. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused
  503. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected"]])
  504. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0_exec)
  505. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0.setTrigger(None)
  506. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0_guard)
  507. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0)
  508. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected"]])
  509. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1_exec)
  510. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1.setTrigger(None)
  511. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1_guard)
  512. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ParentPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1)
  513. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected
  514. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"]])
  515. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0_exec)
  516. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0.setTrigger(None)
  517. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildNotDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0)
  518. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected
  519. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized"]])
  520. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0_exec)
  521. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0.setTrigger(None)
  522. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0_guard)
  523. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0)
  524. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized
  525. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination"]])
  526. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0_exec)
  527. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0.setTrigger(None)
  528. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildInitialized"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0)
  529. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed
  530. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/Terminated"]])
  531. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0_exec)
  532. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0.setTrigger(None)
  533. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0_guard)
  534. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0)
  535. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation"]])
  536. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1_exec)
  537. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1.setTrigger(None)
  538. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1_guard)
  539. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/CheckTermination/MacroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1)
  540. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared
  541. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"]])
  542. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0_exec)
  543. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0.setTrigger(None)
  544. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MacroStepPrepared"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0)
  545. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed
  546. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared"]])
  547. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0_exec)
  548. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0.setTrigger(None)
  549. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0_guard)
  550. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0)
  551. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"]])
  552. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1_exec)
  553. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1.setTrigger(None)
  554. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1_guard)
  555. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1)
  556. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared
  557. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepProcessed"]])
  558. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0_exec)
  559. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0.setTrigger(None)
  560. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/DoSimulation/MicroStepPrepared"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0)
  561. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused
  562. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected"]])
  563. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0_exec)
  564. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0.setTrigger(None)
  565. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0_guard)
  566. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0)
  567. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected"]])
  568. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1_exec)
  569. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1.setTrigger(None)
  570. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1_guard)
  571. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildPaused"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1)
  572. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected
  573. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"]])
  574. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0_exec)
  575. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0.setTrigger(None)
  576. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/NoStateEventDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0)
  577. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected
  578. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"]])
  579. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0_exec)
  580. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0.setTrigger(None)
  581. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/StateEventDetected"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0)
  582. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed
  583. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared"]])
  584. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0_exec)
  585. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0.setTrigger(None)
  586. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0_guard)
  587. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0)
  588. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"], [self.states["/Main/SimulationFlow/FSA/CheckTermination"]])
  589. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1_exec)
  590. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1.setTrigger(None)
  591. _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1.setGuard(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1_guard)
  592. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/ChildProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1)
  593. # transition /Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared
  594. _Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed"]])
  595. _Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0_exec)
  596. _Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0.setTrigger(None)
  597. self.states["/Main/SimulationFlow/FSA/DoSimulation/MicroStepPrepared"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0)
  598. # transition /Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed
  599. _Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0 = Transition(self, self.states["/Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed"], [self.states["/Main/SimulationFlow/FSA/DoSimulation/MacroStepPrepared"]])
  600. _Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0.setAction(self._Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0_exec)
  601. _Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0.setTrigger(None)
  602. self.states["/Main/SimulationFlow/FSA/DoSimulation/ParentMicroStepProcessed"].addTransition(_Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0)
  603. # transition /Main/SimulationFlow/ParentStarted
  604. _Main_SimulationFlow_ParentStarted_0 = Transition(self, self.states["/Main/SimulationFlow/ParentStarted"], [self.states["/Main/SimulationFlow/FSA/Initialized"]])
  605. _Main_SimulationFlow_ParentStarted_0.setAction(self._Main_SimulationFlow_ParentStarted_0_exec)
  606. _Main_SimulationFlow_ParentStarted_0.setTrigger(None)
  607. self.states["/Main/SimulationFlow/ParentStarted"].addTransition(_Main_SimulationFlow_ParentStarted_0)
  608. # transition /Main
  609. _Main_0 = Transition(self, self.states["/Main"], [self.states["/HybridTerminated"]])
  610. _Main_0.setAction(self._Main_0_exec)
  611. _Main_0.setTrigger(None)
  612. _Main_0.setGuard(self._Main_0_guard)
  613. self.states["/Main"].addTransition(_Main_0)
  614. # transition /Main/SimulationState/Running
  615. _Main_SimulationState_Running_0 = Transition(self, self.states["/Main/SimulationState/Running"], [self.states["/Main/SimulationState/PreStopped"]])
  616. _Main_SimulationState_Running_0.setTrigger(None)
  617. _Main_SimulationState_Running_0.setGuard(self._Main_SimulationState_Running_0_guard)
  618. self.states["/Main/SimulationState/Running"].addTransition(_Main_SimulationState_Running_0)
  619. _Main_SimulationState_Running_1 = Transition(self, self.states["/Main/SimulationState/Running"], [self.states["/Main/SimulationState/PrePaused"]])
  620. _Main_SimulationState_Running_1.setTrigger(Event("pause", "user_input"))
  621. self.states["/Main/SimulationState/Running"].addTransition(_Main_SimulationState_Running_1)
  622. _Main_SimulationState_Running_2 = Transition(self, self.states["/Main/SimulationState/Running"], [self.states["/Main/SimulationState/PreBreakpointTriggered"]])
  623. _Main_SimulationState_Running_2.setTrigger(None)
  624. _Main_SimulationState_Running_2.setGuard(self._Main_SimulationState_Running_2_guard)
  625. self.states["/Main/SimulationState/Running"].addTransition(_Main_SimulationState_Running_2)
  626. def _Main_SimulationState_PrePaused_enter(self):
  627. self.addTimer(0, self.sccd_yield() * 2)
  628. def _Main_SimulationState_PrePaused_exit(self):
  629. self.removeTimer(0)
  630. def _Main_SimulationState_PreBreakpointTriggered_enter(self):
  631. self.addTimer(1, self.sccd_yield() * 2)
  632. def _Main_SimulationState_PreBreakpointTriggered_exit(self):
  633. self.removeTimer(1)
  634. def _Main_SimulationState_Running_BigStepDone_enter(self):
  635. self.addTimer(2, self.sccd_yield())
  636. def _Main_SimulationState_Running_BigStepDone_exit(self):
  637. self.removeTimer(2)
  638. def _Main_SimulationState_Running_SmallStepDone_enter(self):
  639. self.addTimer(3, self.sccd_yield())
  640. def _Main_SimulationState_Running_SmallStepDone_exit(self):
  641. self.removeTimer(3)
  642. def _Main_SimulationState_Running_Realtime_enter(self):
  643. # If the simulation was paused, we need to reset the start time of the simulation.
  644. # The start time of the simulation is equal to the point in wall-clock time where simulated time is 0.
  645. # If the simulation was paused, we have to recompute this point in time: it is the difference of the wall-clock time and the simulated time.
  646. # If the scale was changed after the pause, this point of course moves backwards (for scales smaller than 1) or forwards (for scales larger than 1)
  647. self.realtime_start_time = accurate_time.time() - (self.clock / self.realtime_scale)
  648. def _Main_SimulationState_PreStopped_enter(self):
  649. self.addTimer(4, self.sccd_yield() * 2)
  650. def _Main_SimulationState_PreStopped_exit(self):
  651. self.removeTimer(4)
  652. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_enter(self):
  653. self.addTimer(5, self.sccd_yield())
  654. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_exit(self):
  655. self.removeTimer(5)
  656. def _Main_0_exec(self, parameters):
  657. self.fsa_finalize()
  658. def _Main_0_guard(self, parameters):
  659. return self.inState(["/Main/SimulationState/Stopped"]) and (self.inState(["/Main/SimulationFlow/FSA/Terminated"]) or self.inState(["/Main/SimulationFlow/FSA/DoSimulation/MicroStepProcessed/CBD/Terminated"]))
  660. def _Main_SimulationState_Running_0_guard(self, parameters):
  661. return self.fsa_endCondition()
  662. def _Main_SimulationState_Running_2_guard(self, parameters):
  663. return self.breakpointTriggers(self.inState(["/Main/SimulationState/Running/Realtime"]))
  664. def _Main_SimulationState_Paused_1_exec(self, parameters):
  665. realtime_scale = parameters[0]
  666. self.realtime_scale = float(realtime_scale)
  667. def _Main_SimulationState_Paused_4_guard(self, parameters):
  668. return self.fsa_endCondition()
  669. def _Main_SimulationState_PrePaused_0_exec(self, parameters):
  670. self.raiseInternalEvent(Event("paused", None, []))
  671. def _Main_SimulationState_PreBreakpointTriggered_0_exec(self, parameters):
  672. self.raiseInternalEvent(Event("breakpoint_triggered", None, []))
  673. def _Main_SimulationState_PreStopped_0_exec(self, parameters):
  674. self.raiseInternalEvent(Event("termination_condition", None, []))
  675. def _Main_SimulationFlow_FSA_Started_0_exec(self, parameters):
  676. print('From FSA/Started to ParentStarted... ')
  677. self.fsa_initialize()
  678. def _Main_SimulationFlow_FSA_Initialized_0_exec(self, parameters):
  679. print('From FSA/Initialized to FSA/CheckTermination... ')
  680. self.initializeDebugger()
  681. def _Main_SimulationFlow_FSA_DebuggerInitialized_0_exec(self, parameters):
  682. print('From FSA/Initialized to FSA/CheckTermination... ')
  683. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0_exec(self, parameters):
  684. print('From FSA/CheckTermination/MacroStepProcessed to Terminated... ')
  685. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_0_guard(self, parameters):
  686. return self.inState(["/Main/SimulationState/Stopped"])
  687. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_1_guard(self, parameters):
  688. return self.inState(["/Main/SimulationState/Running/Realtime"])
  689. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2_exec(self, parameters):
  690. print('From FSA/CheckTermination/MacroStepProcessed to FSA/DoSimulation and reading events... ')
  691. self.fsa_currentEvent = self.fsa_getInputEventAt(self.fsa_logicalTime / 1000.0)
  692. self.fsa_selectedTransition = self.weaved_model.getTransitionFrom(self.fsa_currentState, self.fsa_currentEvent, self.fsa_elapsed)
  693. print('Current event:' + str(self.fsa_currentEvent))
  694. print('Current transition:' + str(self.fsa_selectedTransition))
  695. print('Child detected?:' + str(isinstance(self.fsa_currentState, CBDState)))
  696. def _Main_SimulationFlow_FSA_CheckTermination_MacroStepProcessed_2_guard(self, parameters):
  697. return self.inState(["/Main/SimulationState/Running/Continuous"]) or self.inState(["/Main/SimulationState/Running/BigStep"]) or self.inState(["/Main/SimulationState/Running/SmallStep"])
  698. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0_exec(self, parameters):
  699. print('From FSA/ParentPaused to FSA/ChildDetected... ')
  700. self.cbd_model = self.fsa_currentState.cbd
  701. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_0_guard(self, parameters):
  702. return isinstance(self.fsa_currentState, CBDState)
  703. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1_exec(self, parameters):
  704. print('From ParentPaused to ChildNotDetected without any child to process... ')
  705. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ParentPaused_1_guard(self, parameters):
  706. return not isinstance(self.fsa_currentState, CBDState)
  707. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotDetected_0_exec(self, parameters):
  708. print('From ChildNotDetected to ChildProcessed... ')
  709. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0_exec(self, parameters):
  710. print('From ChildDetected to ChildInitialized... ')
  711. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_0_guard(self, parameters):
  712. return self.woven_child_initialized
  713. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1_exec(self, parameters):
  714. print('From ChildDetected to ChildNotInitialized... ')
  715. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildDetected_1_guard(self, parameters):
  716. return not self.woven_child_initialized
  717. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildInitialized_0_exec(self, parameters):
  718. print('From ChildInitialized to ChildProcessed... ')
  719. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildNotInitialized_0_exec(self, parameters):
  720. print('From ChildNotInitialized to CBD/Started... ')
  721. self.cbd_delta = self.weaved_delta
  722. self.updateCBDState()
  723. self.woven_child_initialized = True
  724. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Started_0_exec(self, parameters):
  725. print('From CBD/Started to Initialized... ')
  726. print('Performing initialization...')
  727. self.cbd_iteration = 0
  728. self.cbd_clock = 0
  729. self.cbd_controller = CBDController(self.cbd_model, self.cbd_delta / 1000.0)
  730. self.cbd_controller.initSimulation()
  731. print('Performing initialization... DONE')
  732. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_CBD_Initialized_0_exec(self, parameters):
  733. print('From CBD/Initialized to ChildInitialized... ')
  734. def _Main_SimulationFlow_FSA_DoSimulation_MacroStepPrepared_ChildProcessed_0_exec(self, parameters):
  735. print('From MacroStepPrepared/ChildProcessed to MicroStepProcessed... ')
  736. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0_exec(self, parameters):
  737. print('From FSA/ParentPaused to FSA/ChildDetected... ')
  738. self.cbd_model = self.fsa_currentState.cbd
  739. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_0_guard(self, parameters):
  740. return isinstance(self.fsa_currentState, CBDState)
  741. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1_exec(self, parameters):
  742. print('From ParentPaused to ChildNotDetected without any child to process... ')
  743. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ParentPaused_1_guard(self, parameters):
  744. return not isinstance(self.fsa_currentState, CBDState)
  745. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildNotDetected_0_exec(self, parameters):
  746. print('From ChildNotDetected to ChildProcessed... ')
  747. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0_exec(self, parameters):
  748. print('From ChildDetected to ChildInitialized... ')
  749. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildDetected_0_guard(self, parameters):
  750. return self.woven_child_initialized
  751. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildInitialized_0_exec(self, parameters):
  752. print('From ChildInitialized to ChildProcessed... ')
  753. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0_exec(self, parameters):
  754. print('From CBD/MacroStepProcessed to Terminated... ')
  755. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_0_guard(self, parameters):
  756. return self.cbd_endCondition()
  757. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1_exec(self, parameters):
  758. print('From CBD/MacroStepProcessed to MacroStepPrepared... ')
  759. self.cbd_currentCompIdx = 0
  760. self.cbd_depGraph = self.cbd_controller.createDepGraph(self.cbd_iteration)
  761. self.cbd_strongComponentList = self.cbd_controller.createStrongComponents(self.cbd_depGraph, self.cbd_iteration)
  762. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_CheckTermination_MacroStepProcessed_1_guard(self, parameters):
  763. return not self.cbd_endCondition()
  764. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MacroStepPrepared_0_exec(self, parameters):
  765. print('From CBD/MacroStepPrepared to MicroStepProcessed... ')
  766. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0_exec(self, parameters):
  767. print('From CBD/MicroStepProcessed to MicroStepPrepared')
  768. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_0_guard(self, parameters):
  769. return self.cbd_hasNextStrongComponent()
  770. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1_exec(self, parameters):
  771. print('From CBD/MicroStepProcessed to ChildPaused and detecting triggered transitions... ')
  772. self.updateGlobalState()
  773. self.weaved_lib.dumpGlobalState(self.weaved_model, self.weaved_global_state, self.fsa_logicalTime / 1000.0, self.fsa_currentState)
  774. self.weaved_triggered_when_transition = self.getTriggeredWhenTransition()
  775. self.cbd_clock = self.cbd_clock + self.cbd_delta
  776. self.cbd_iteration = self.cbd_iteration + 1
  777. self.cbd_controller.advanceTimeStep()
  778. print('CBD clock: ' + str(self.cbd_clock / 1000.0))
  779. print('CBD iteration: ' + str(self.cbd_iteration))
  780. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepProcessed_1_guard(self, parameters):
  781. return not self.cbd_hasNextStrongComponent()
  782. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_CBD_DoSimulation_MicroStepPrepared_0_exec(self, parameters):
  783. print('From CBD/MicroStepPrepared to MicroStepProcessed...')
  784. self.cbd_computeBlock()
  785. self.cbd_currentCompIdx = self.cbd_currentCompIdx + 1
  786. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0_exec(self, parameters):
  787. print('From ChildPaused to NoStateEventDetected... ')
  788. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_0_guard(self, parameters):
  789. return self.weaved_triggered_when_transition == None
  790. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1_exec(self, parameters):
  791. print('From ChildPaused to StateEventDetected... ')
  792. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildPaused_1_guard(self, parameters):
  793. return self.weaved_triggered_when_transition != None
  794. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_NoStateEventDetected_0_exec(self, parameters):
  795. print('From NoStateEventDetected to ChildProcessed... ')
  796. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_StateEventDetected_0_exec(self, parameters):
  797. print('From StateEventDetected to ChildProcessed... ')
  798. if self.fsa_selectedTransition == None:
  799. self.fsa_selectedTransition = self.weaved_triggered_when_transition
  800. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0_exec(self, parameters):
  801. print('From FSA/MicroStepProcessed/ChildProcessed to MicroStepPrepared... ')
  802. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_0_guard(self, parameters):
  803. return self.fsa_selectedTransition != None
  804. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1_exec(self, parameters):
  805. print('From FSA/MicroStepProcessed/ChildProcessed to FSA/CheckTermination and advancing time... ')
  806. self.fsa_logicalTime = self.fsa_logicalTime + self.fsa_timestep
  807. self.fsa_elapsed = self.fsa_elapsed + self.fsa_timestep
  808. print('fsa_logicalTime: %s' % (self.fsa_logicalTime / 1000.0))
  809. print('fsa_elapsed: %s' % (self.fsa_elapsed / 1000.0))
  810. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepProcessed_ChildProcessed_1_guard(self, parameters):
  811. return self.fsa_selectedTransition == None
  812. def _Main_SimulationFlow_FSA_DoSimulation_MicroStepPrepared_0_exec(self, parameters):
  813. print('From FSA/MicroStepPrepared to ParentMicroStepProcessed and attempting to take transition... ')
  814. print('Transition to be taken: ' + str(self.fsa_selectedTransition))
  815. self.fsa_currentState = self.fsa_selectedTransition.target
  816. self.fsa_elapsed = 0
  817. self.fsa_processEvent(self.fsa_currentEvent)
  818. self.weaved_lib.dumpDiscreteEvent(self.weaved_model, self.fsa_logicalTime / 1000.0, self.fsa_currentState, self.fsa_selectedTransition)
  819. self.weaved_lib.dumpGlobalState(self.weaved_model, self.weaved_global_state, self.fsa_logicalTime / 1000.0, self.fsa_currentState)
  820. print('New state: ' + str(self.fsa_currentState))
  821. print('Reading events:')
  822. self.fsa_currentEvent = self.fsa_getInputEventAt(self.fsa_logicalTime / 1000.0)
  823. self.fsa_selectedTransition = self.weaved_model.getTransitionFrom(self.fsa_currentState, self.fsa_currentEvent, self.fsa_elapsed /1000.0)
  824. print(self.fsa_currentEvent)
  825. print(self.fsa_selectedTransition)
  826. def _Main_SimulationFlow_FSA_DoSimulation_ParentMicroStepProcessed_0_exec(self, parameters):
  827. print('From ParentMicroStepProcessed to ParentPaused and resetting the child... ')
  828. self.woven_child_initialized = False
  829. def _Main_SimulationFlow_ParentStarted_0_exec(self, parameters):
  830. print('From ParentStarted to FSA/Initialized... ')
  831. self.weaved_initialize()
  832. def initializeStatechart(self):
  833. # enter default state
  834. self.default_targets = self.states["/Main"].getEffectiveTargetStates()
  835. RuntimeClassBase.initializeStatechart(self)
  836. class ObjectManager(ObjectManagerBase):
  837. def __init__(self, controller):
  838. ObjectManagerBase.__init__(self, controller)
  839. def instantiate(self, class_name, construct_params):
  840. if class_name == "Weaved_CBD_FSA_Simulator":
  841. instance = Weaved_CBD_FSA_Simulator(self.controller, construct_params[0], construct_params[1], construct_params[2])
  842. instance.associations = {}
  843. else:
  844. raise Exception("Cannot instantiate class " + class_name)
  845. return instance
  846. class Controller(ThreadsControllerBase):
  847. def __init__(self, cbd_options, amodel, fsa_events, keep_running = None, behind_schedule_callback = None):
  848. if keep_running == None: keep_running = True
  849. if behind_schedule_callback == None: behind_schedule_callback = None
  850. ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
  851. self.addInputPort("user_input")
  852. self.addOutputPort("user_output")
  853. self.object_manager.createInstance("Weaved_CBD_FSA_Simulator", [cbd_options, amodel, fsa_events])