diff --git a/include/cosim/observer/file_observer.hpp b/include/cosim/observer/file_observer.hpp index 6a2ea5b3..3fe6ba7c 100644 --- a/include/cosim/observer/file_observer.hpp +++ b/include/cosim/observer/file_observer.hpp @@ -15,6 +15,7 @@ #include #include +#include #include diff --git a/src/cosim/observer/file_observer.cpp b/src/cosim/observer/file_observer.cpp index a3c19f91..73d912df 100644 --- a/src/cosim/observer/file_observer.cpp +++ b/src/cosim/observer/file_observer.cpp @@ -581,6 +581,14 @@ file_observer_config file_observer_config::parse(const filesystem::path& configP config.log_simulator_variables(modelName, variableNames, decimationFactor); } } + if (const auto configuration = ptree.get_child_optional("configuration")) { + if (const auto timestamps = get_optional_attribute(*configuration, "timestampedFilenames")) { + config.set_timestamped_filenames(*timestamps); + } + if (const auto precision = get_optional_attribute(*configuration, "floatingPointPrecision")) { + config.fixed_precision(*precision); + } + } return config; } diff --git a/tests/data/LogConfig.xml b/tests/data/LogConfig.xml index e5bcd976..9621355e 100644 --- a/tests/data/LogConfig.xml +++ b/tests/data/LogConfig.xml @@ -1,5 +1,5 @@ - + diff --git a/tests/file_observer_logging_from_config_test.cpp b/tests/file_observer_logging_from_config_test.cpp index f8378557..4e0d8d45 100644 --- a/tests/file_observer_logging_from_config_test.cpp +++ b/tests/file_observer_logging_from_config_test.cpp @@ -64,6 +64,9 @@ int main() auto simResult = execution.simulate_until(endTime); REQUIRE(simResult); + REQUIRE(cosim::filesystem::exists(cosim::filesystem::path(csvPath / "slave.csv"))); + REQUIRE(cosim::filesystem::exists(cosim::filesystem::path(csvPath / "slave2.csv"))); + } catch (const std::exception& e) { std::cerr << "Error: " << e.what() << std::endl; return 1;