Saving sim results
This commit is contained in:
@@ -14,6 +14,10 @@ from threading import Event, Lock, Thread, current_thread
|
||||
from typing import Any
|
||||
|
||||
from bedit.core.application_log import get_logger
|
||||
from bedit.core.simulation.results import (
|
||||
SimulationExecutionResult,
|
||||
load_openmodelica_csv,
|
||||
)
|
||||
|
||||
|
||||
log = get_logger(__name__)
|
||||
@@ -263,7 +267,7 @@ def _run_model_with_tcp(
|
||||
temp_dir: Path,
|
||||
progress_callback: Callable[[SimulationProgress], None] | None,
|
||||
message_callback: Callable[[SimulationMessage], None] | None,
|
||||
) -> int:
|
||||
) -> SimulationExecutionResult:
|
||||
executable_path = Path(executable)
|
||||
executable_command = executable
|
||||
if not executable_path.is_absolute() and executable_path.parent == Path("."):
|
||||
@@ -324,7 +328,20 @@ def _run_model_with_tcp(
|
||||
raise RuntimeError(
|
||||
f"Simulation process exited with status {return_code}{detail}"
|
||||
)
|
||||
return int(return_code)
|
||||
result_path = temp_dir / f"{Path(executable).stem}_res.csv"
|
||||
if not result_path.is_file():
|
||||
raise RuntimeError(
|
||||
f"OpenModelica did not create the expected result file {result_path.name!r}"
|
||||
)
|
||||
data = load_openmodelica_csv(result_path)
|
||||
log.info(
|
||||
"Loaded %d result columns from %s", len(data), result_path.name
|
||||
)
|
||||
return SimulationExecutionResult(
|
||||
return_code=int(return_code),
|
||||
result_file=str(result_path),
|
||||
data=data,
|
||||
)
|
||||
|
||||
|
||||
def _accept_simulation_connection(
|
||||
|
||||
Reference in New Issue
Block a user