FMI Library: part of JModelica.org
fmi2_import.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2012 Modelon AB
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the BSD style license.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  FMILIB_License.txt file for more details.
11 
12  You should have received a copy of the FMILIB_License.txt file
13  along with this program. If not, contact Modelon AB <http://www.modelon.com>.
14 */
15 
20 #ifndef FMI2_IMPORT_H_
21 #define FMI2_IMPORT_H_
22 
23 #include <stddef.h>
24 #include <fmilib_config.h>
25 #include <JM/jm_callbacks.h>
26 #include <FMI/fmi_import_util.h>
27 #include <FMI/fmi_import_context.h>
28 /* #include <FMI2/fmi2_xml_model_description.h> */
29 
30 #include <FMI2/fmi2_types.h>
31 #include <FMI2/fmi2_functions.h>
32 #include <FMI2/fmi2_enums.h>
33 
34 #include "fmi2_import_type.h"
35 #include "fmi2_import_unit.h"
36 #include "fmi2_import_variable.h"
38 
39 #include "fmi2_import_capi.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
79 
87 
105 
108 
114 
120 
126 
132 
138 
144 
150 
155 
160 
165 
170 
175 
179 
182 
185 
188 
191 
194 
197 
200 
203 
206 
213 
223 
230 
233 
235 FMILIB_EXPORT const char* fmi2_import_get_vendor_name(fmi2_import_t* fmu, size_t index);
236 
239 
241 FMILIB_EXPORT const char* fmi2_import_get_log_category(fmi2_import_t* fmu, size_t index);
242 
245 
248 
251 
254 
257 
265 
274 
282 
290 
298 
306 
316 FMILIB_EXPORT void fmi2_import_get_outputs_dependencies(fmi2_import_t* fmu, size_t** startIndex, size_t** dependency, char** factorKind);
317 
327 FMILIB_EXPORT void fmi2_import_get_derivatives_dependencies(fmi2_import_t* fmu, size_t** startIndex, size_t** dependency, char** factorKind);
328 
338 FMILIB_EXPORT void fmi2_import_get_discrete_states_dependencies(fmi2_import_t* fmu, size_t** startIndex, size_t** dependency, char** factorKind);
339 
349 FMILIB_EXPORT void fmi2_import_get_initial_unknowns_dependencies(fmi2_import_t* fmu, size_t** startIndex, size_t** dependency, char** factorKind);
350 
353 #ifdef __cplusplus
354 }
355 #endif
356 
357 #endif
FMILIB_EXPORT void fmi2_import_get_outputs_dependencies(fmi2_import_t *fmu, size_t **startIndex, size_t **dependency, char **factorKind)
Get dependency information in row-compressed format.
fmi2_base_type_enu_t
Base types used in type definitions.
Definition: fmi2_enums.h:118
FMILIB_EXPORT const char * fmi2_import_get_generation_tool(fmi2_import_t *fmu)
Get FMU generation tool.
Library configuration file generated by the build system.
FMILIB_EXPORT double fmi2_import_get_default_experiment_tolerance(fmi2_import_t *fmu)
Get the tolerance for default experiment as specified in the XML file.
FMILIB_EXPORT const char * fmi2_import_get_model_version(fmi2_import_t *fmu)
Get FMU version.
FMILIB_EXPORT fmi2_import_variable_t * fmi2_import_get_variable_by_vr(fmi2_import_t *fmu, fmi2_base_type_enu_t baseType, fmi2_value_reference_t vr)
Get variable by value reference.
FMILIB_EXPORT double fmi2_import_get_default_experiment_stop(fmi2_import_t *fmu)
Get the stop time for default experiment as specified in the XML file.
Import context is the entry point to the library. It is used to initialize, unzip, get FMI version and start parsing.
FMILIB_EXPORT const char * fmi2_import_get_source_file_me(fmi2_import_t *fmu, size_t index)
Get the ME source file by index.
FMILIB_EXPORT unsigned int fmi2_import_get_capability(fmi2_import_t *, fmi2_capabilities_enu_t id)
Retrieve capability flags by ID.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_outputs_list(fmi2_import_t *fmu)
Get the list of all the output variables in the model.
struct fmi2_import_variable_list_t fmi2_import_variable_list_t
List of variables.
fmi2_capabilities_enu_t
Capability flags for ModelExchange and CoSimulation.
Definition: fmi2_enums.h:158
FMILIB_EXPORT const char * fmi2_import_get_author(fmi2_import_t *fmu)
Get FMU author.
FMILIB_EXPORT fmi2_import_type_definitions_t * fmi2_import_get_type_definitions(fmi2_import_t *)
Get the list of all the type definitions in the model.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_variable_list(fmi2_import_t *fmu, int sortOrder)
Get the list of all the variables in the model.
FMILIB_EXPORT fmi2_variable_naming_convension_enu_t fmi2_import_get_naming_convention(fmi2_import_t *fmu)
Get variable naming convention used.
FMILIB_EXPORT int fmi2_import_clear_last_error(fmi2_import_t *fmu)
Clear the error message.
FMILIB_EXPORT const char * fmi2_import_get_vendor_name(fmi2_import_t *fmu, size_t index)
Get the name of the vendor with that had annotations in the XML by index.
FMILIB_EXPORT void fmi2_import_get_initial_unknowns_dependencies(fmi2_import_t *fmu, size_t **startIndex, size_t **dependency, char **factorKind)
Get dependency information in row-compressed format.
FMILIB_EXPORT void fmi2_import_get_discrete_states_dependencies(fmi2_import_t *fmu, size_t **startIndex, size_t **dependency, char **factorKind)
Get dependency information in row-compressed format.
struct fmi2_xml_unit_definitions_t fmi2_import_unit_definitions_t
The list of all the unit definitions in the model.
FMILIB_EXPORT size_t fmi2_import_get_number_of_event_indicators(fmi2_import_t *fmu)
Get the number of event indicators.
FMILIB_EXPORT fmi2_import_variable_t * fmi2_import_get_variable_alias_base(fmi2_import_t *fmu, fmi2_import_variable_t *)
Get the variable with the same value reference that is not an alias.
FMILIB_EXPORT const char * fmi2_import_get_model_standard_version(fmi2_import_t *fmu)
Get FMI standard version (always 2.0).
Public interface to the FMI XML C-library. Handling of variable lists.
return v
FMILIB_EXPORT const char * fmi2_import_get_model_name(fmi2_import_t *fmu)
Get model name.
Public interface to the FMI import C-library. Handling of model variables.
FMILIB_EXPORT fmi2_fmu_kind_enu_t fmi2_import_get_fmu_kind(fmi2_import_t *fmu)
Get the type of the FMU (model exchange or co-simulation)
#define FMILIB_EXPORT
Used to declare the public API of the library needed for dynamic linking.
FMILIB_EXPORT double fmi2_import_get_default_experiment_step(fmi2_import_t *fmu)
Get the step size for default experiment as specified in the XML file.
FMILIB_EXPORT const char * fmi2_import_get_license(fmi2_import_t *fmu)
Get FMU license information.
fmi1_capi_t * fmu
FMILIB_EXPORT const char * fmi2_import_get_copyright(fmi2_import_t *fmu)
Get FMU copyright information.
struct fmi2_xml_variable_t fmi2_import_variable_t
General variable type.
FMILIB_EXPORT size_t fmi2_import_get_source_files_me_num(fmi2_import_t *fmu)
Get the number of source files for ME defined in the XML.
FMILIB_EXPORT fmi2_import_variable_t * fmi2_import_get_variable_by_name(fmi2_import_t *fmu, const char *name)
Get variable by variable name.
FMILIB_EXPORT const char * fmi2_import_get_generation_date_and_time(fmi2_import_t *fmu)
Get FMU generation date and time.
FMILIB_EXPORT const char * fmi2_import_get_model_identifier_CS(fmi2_import_t *fmu)
Get model identifier for CoSimulation.
Public interface to the FMI import C-library. Handling of variable units.
fmi2_fmu_kind_enu_t
FMU 2.0 kinds.
Definition: fmi2_enums.h:49
FMILIB_EXPORT const char * fmi2_import_get_log_category_description(fmi2_import_t *fmu, size_t index)
Get the log category description by index.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_create_var_list(fmi2_import_t *fmu, fmi2_import_variable_t *v)
Create a variable list with a single variable.
FMILIB_EXPORT double fmi2_import_get_default_experiment_start(fmi2_import_t *fmu)
Get the start time for default experiment as specified in the XML file.
FMILIB_EXPORT size_t fmi2_import_get_log_categories_num(fmi2_import_t *fmu)
Get the number of log categories defined in the XML.
struct fmi2_xml_type_definitions_t fmi2_import_type_definitions_t
Opaque list of the type definitions in the model.
FMILIB_EXPORT size_t fmi2_import_get_source_files_cs_num(fmi2_import_t *fmu)
Get the number of source files for CS defined in the XML.
FMILIB_EXPORT fmi2_import_unit_definitions_t * fmi2_import_get_unit_definitions(fmi2_import_t *fmu)
Get a list of all the unit definitions in the model.
FMILIB_EXPORT size_t fmi2_import_get_vendors_num(fmi2_import_t *fmu)
Get the number of vendors that had annotations in the XML.
FMILIB_EXPORT void fmi2_import_free(fmi2_import_t *fmu)
Release the memory allocated.
FMILIB_EXPORT const char * fmi2_import_get_log_category(fmi2_import_t *fmu, size_t index)
Get the log category by index.
FMILIB_EXPORT const char * fmi2_import_get_source_file_cs(fmi2_import_t *fmu, size_t index)
Get the CS source file by index.
FMILIB_EXPORT size_t fmi2_import_get_number_of_continuous_states(fmi2_import_t *fmu)
Get the number of continuous states.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_discrete_states_list(fmi2_import_t *fmu)
Get the list of all the discrete state variables in the model.
Public interface to the FMI XML C-library: variable types handling.
FMILIB_EXPORT const char * fmi2_import_get_description(fmi2_import_t *fmu)
Get FMU description.
FMILIB_EXPORT const char * fmi2_import_get_GUID(fmi2_import_t *fmu)
Get FMU GUID.
fmi2_variable_naming_convension_enu_t
Naming convention for the variables in XML file.
Definition: fmi2_enums.h:38
Public interface to the FMI import C-library. Convenience functions.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_initial_unknowns_list(fmi2_import_t *fmu)
Get the list of all the initial unknown variables in the model.
FMILIB_EXPORT void fmi2_import_get_derivatives_dependencies(fmi2_import_t *fmu, size_t **startIndex, size_t **dependency, char **factorKind)
Get dependency information in row-compressed format.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_variable_aliases(fmi2_import_t *fmu, fmi2_import_variable_t *)
Definions the enum types used with FMI 2.0 libs.
FMILIB_EXPORT const char * fmi2_import_get_last_error(fmi2_import_t *fmu)
Retrieve the last error message.
FMILIB_EXPORT fmi2_import_variable_list_t * fmi2_import_get_derivatives_list(fmi2_import_t *fmu)
Get the list of all the derivative variables in the model.
FMILIB_EXPORT const char * fmi2_import_get_model_identifier_ME(fmi2_import_t *fmu)
Get model identifier for ModelExchange.
struct fmi2_import_t fmi2_import_t
FMU version 2.0 object.