Skip to content

Commit

Permalink
Reading canGetAndSetFMUstate and canSerializeFMUstate from model desc…
Browse files Browse the repository at this point in the history
…ription file
  • Loading branch information
davidhjp01 committed Jan 24, 2025
1 parent d3252ef commit 7c2480c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
10 changes: 10 additions & 0 deletions include/cosim/model_description.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ enum variable_variability
continuous
};

/// Subset of Co-Simulation v2 capabilities in the XML schema
struct cosim_capabilities
{
bool can_get_and_set_fmu_state{};
bool can_serialize_fmu_state{};
};


/// Returns a textual representation of `v`.
constexpr const char* to_text(variable_type v)
Expand Down Expand Up @@ -195,6 +202,9 @@ struct model_description

/// Variable descriptions.
std::vector<variable_description> variables;

/// FMI 2.0 Co-simulation capabilities
cosim_capabilities capabilities;
};

/// Getter for returning a variable description.
Expand Down
6 changes: 6 additions & 0 deletions src/cosim/fmi/v2/fmu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ fmu::fmu(
modelDescription_.description = fmi2_import_get_description(handle_);
modelDescription_.author = fmi2_import_get_author(handle_);
modelDescription_.version = fmi2_import_get_model_version(handle_);
modelDescription_.capabilities.can_get_and_set_fmu_state = !!fmi2_import_get_capability(
handle_,
fmi2_cs_canGetAndSetFMUstate);
modelDescription_.capabilities.can_serialize_fmu_state = !!fmi2_import_get_capability(
handle_,
fmi2_cs_canSerializeFMUstate);
const auto varList = fmi2_import_get_variable_list(handle_, 0);
const auto _ = gsl::finally([&]() {
fmi2_import_free_variable_list(varList);
Expand Down

0 comments on commit 7c2480c

Please sign in to comment.