image/svg+xml stopped [IN(/simulation_state/stopped)and IN(/simulation_flow/stopped)] / self.finalize() statechart {inports: in; outports: out, semantics: {internal_event_lifeline=next_combo_step}} UserOutput waiting termination_condition / out::terminated, out::current_state(self.simulated_time, self.state) paused / out::paused, out::current_state(self.simulated_time, self.state) big_step_done [IN(/simulation_state/running/realtime) or IN(/simulation_state/running/big_step) or IN(/simulation_state/running/big_step_done)] / out::stepped, out::current_state(self.simulated_time, self.state) breakpoint_triggered out::breakpoint_triggered(self.simulated_time, self.triggered_bp) Listening in::add_breakpoint(name, function, enabled, disable_on_trigger) / result = self.addBreakpoint(name, function, enabled, disable_on_trigger), out::add_breakpoint_result(result) in::del_breakpoint(name) / result = self.delBreakpoint(name), out::del_breakpoint_result(result) in::toggle_breakpoint(name) / result = self.toggleBreakpoint(name), out::toggle_breakpoint_result(result) BreakpointManager listening in::god_event(state_var, new_val) [IN(/simulation_state/paused)] / result = self.godEvent(state_var, new_val), god_event_result(result) GodEventManager SimulationState Paused Stopped in::continuous self.endCondition() / termination_condition Continuous Running in::pause Realtime in::realtime(scale) onentry: self.resetStartTime() BigStep BigStepDone big_step_done in::big_step after(sccd_yield()) PrePaused PreBreakpointTriggered after(sccd_yield()*2) / paused [self.breakpointTriggers(INSTATE(Realtime))] after(sccd_yield()*2) / breakpoint_triggered SimulationFlow Initialize / self.initialize() CheckTermination [ IN(/SimulationState/Running/Continuous)or IN(/SimulationState/Running/BigStep)or IN(/SimulationState/Running/SmallStep)] after(sccd_yield()) / big_step_done Waiting [IN(/SimulationState/Running/Realtime)] after(sccd_yield()) / self.syncSimulatedTime() [self.waitTime() <= sccd_yield()] InitializeDebugger / self.initializeDebugger() ExecuteStep CheckNextComponent PreCheckCycle CheckCycle IsolateStrongComponents onentry: self.strongComponentList = self.createStrongComponents() CreateDepGraph onentry: self.depGraph = self.createDepGraph() [IN(/SimulationState/Running)] after(sccd_yield() * 2)[self.hasNextStrongComponent()] [not self.currentComponentIsCycle()] / self.computeBlock(), small_step_done [self.currentComponentIsCycle()] / self.computeCycle(), small_step_done after(sccd_yield())[not self.hasNextStrongComponent()] SmallStep SmallStepDone small_step_done in::small_step after(sccd_yield()) Stopped [IN(/SimulationState/Stopped)]