diff --git a/sw/utility/simulation.py b/sw/utility/simulation.py index b3eaeb6..8d63a9d 100644 --- a/sw/utility/simulation.py +++ b/sw/utility/simulation.py @@ -300,6 +300,7 @@ class SimulationDeSerializer: # TODO: Fix typing.Any or Simulator +# TODO: Autosave simulation every so often class SimulationManager: """This class only contains functions relating to stopping and restarting of simulations (and storing of the simulation state in a file, to be resumed at a later date). @@ -324,8 +325,9 @@ class SimulationManager: signal.signal(signal.SIGHUP, self._exit_gracefully) def _sim_configured(self) -> bool: - return (self._simulator is not None)\ - and (self._sim_name is not None)\ + """Check whether 'configure_simulation()' has been called.""" + return (self._simulator is not None) \ + and (self._sim_name is not None) \ and (self._metadata is not None) def configure_simulation(self, simulator: typing.Any, name: str, column_labels: typing.Sequence[str]) -> None: @@ -338,7 +340,6 @@ class SimulationManager: """Check whether the savefile of a previously unfinished simulation is present.""" return self._de_serializer.unfinished_sim_present(sim_name) - # TODO: Where should the files be removed? def load_unfinished(self, sim_name: str) -> None: """Load the state of an unfinished simulation its savefile. @@ -352,10 +353,7 @@ class SimulationManager: self._de_serializer.remove_unfinished_sim(sim_name) def _exit_gracefully(self, *args) -> None: - """Handler called when the program is interrupted. - - Pauses and saves the currently running simulation - """ + """Handler called when the program is interrupted. Pauses and saves the currently running simulation.""" if self._sim_configured(): self._simulator.stop() self._de_serializer.save_state(self._simulator, self._sim_name, self._metadata) @@ -363,17 +361,9 @@ class SimulationManager: exit() - def start(self) -> None: - """Start the simulation. - - This is a blocking call. A call to the stop() function - from another thread will stop this function. - """ + def simulate(self) -> None: + """Start the simulation. This is a blocking call.""" assert self._sim_configured() self._simulator.start() - - def save_results(self) -> None: - assert self._sim_configured() - - self._de_serializer.save_results(self._simulator, self._sim_name, self._metadata) \ No newline at end of file + self._de_serializer.save_results(self._simulator, self._sim_name, self._metadata)