Fixed simulation advancing with play button
This commit is contained in:
@@ -47,8 +47,8 @@ class SimulationRunController(QObject):
|
||||
def start(self) -> None:
|
||||
if self._running or self.session is None:
|
||||
return
|
||||
start_time = self.session.current_end_time
|
||||
stop_time = start_time + self.session.settings.duration
|
||||
start_time = self.session.settings.start_time
|
||||
stop_time = self.session.current_end_time + self.session.settings.duration
|
||||
self._running = True
|
||||
self._update_actions()
|
||||
logger.info("Starting simulation from %s to %s", start_time, stop_time)
|
||||
|
||||
@@ -46,13 +46,15 @@ class SimulationSession:
|
||||
return self._simulation.is_running
|
||||
|
||||
async def run_next(self) -> SimulationResult:
|
||||
start_time = self.current_end_time
|
||||
stop_time = start_time + self.settings.duration
|
||||
intervals = math.ceil(self.settings.duration / self.settings.step_size) if self.settings.use_timed_steps else self.settings.number_of_steps
|
||||
start_time = self.settings.start_time
|
||||
stop_time = self.current_end_time + self.settings.duration
|
||||
run_duration = stop_time - start_time
|
||||
intervals = math.ceil(run_duration / self.settings.step_size) if self.settings.use_timed_steps else math.ceil(self.settings.number_of_steps * run_duration / self.settings.duration)
|
||||
options = SimulationOptions(start_time=start_time, stop_time=stop_time, number_of_intervals=intervals, tolerance=self.settings.tolerance, method=self.settings.method)
|
||||
result = await self._simulation.run(options)
|
||||
# TODO: Continue from OpenModelica restart state instead of recomputing the full time range.
|
||||
self.current_end_time = stop_time
|
||||
self.results.append(result)
|
||||
self.results[:] = [result]
|
||||
return result
|
||||
|
||||
def cancel(self) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user