1 #ifndef fmi2_xml_model_decription_impl_h_
\r
2 #define fmi2_xml_model_decription_impl_h_
\r
6 #include <JM/jm_callbacks.h>
\r
7 #include <JM/jm_vector.h>
\r
8 #include <JM/jm_named_ptr.h>
\r
9 #include <JM/jm_string_set.h>
\r
10 #include <FMI2/fmi2_xml_model_description.h>
\r
12 #include "fmi2_xml_unit_impl.h"
\r
13 #include "fmi2_xml_type_impl.h"
\r
14 #include "fmi2_xml_variable_impl.h"
\r
20 typedef enum fmi2_xml_model_description_status_enu_t {
\r
21 fmi2_xml_model_description_enu_empty,
\r
22 fmi2_xml_model_description_enu_ok,
\r
23 fmi2_xml_model_description_enu_error
\r
24 } fmi2_xml_model_description_status_enu_t;
\r
26 /* ModelDescription is the entry point for the package*/
\r
27 struct fmi2_xml_model_description_t {
\r
29 jm_callbacks* callbacks;
\r
31 fmi2_xml_model_description_status_enu_t status;
\r
33 jm_vector(char) fmi2_xml_standard_version;
\r
35 jm_vector(char) modelName;
\r
37 jm_vector(char) GUID;
\r
39 jm_vector(char) description;
\r
41 jm_vector(char) author;
\r
42 jm_vector(char) copyright;
\r
43 jm_vector(char) license;
\r
45 jm_vector(char) version;
\r
46 jm_vector(char) generationTool;
\r
47 jm_vector(char) generationDateAndTime;
\r
49 fmi2_variable_naming_convension_enu_t namingConvension;
\r
51 size_t numberOfContinuousStates;
\r
53 size_t numberOfEventIndicators;
\r
55 double defaultExperimentStartTime;
\r
57 double defaultExperimentStopTime;
\r
59 #define FMI2_DEFAULT_EXPERIMENT_TOLERANCE 1e-4
\r
61 double defaultExperimentTolerance;
\r
63 #define FMI2_DEFAULT_EXPERIMENT_STEPSIZE 1e-2
\r
65 double defaultExperimentStepSize;
\r
68 jm_vector(char) modelIdentifierME;
\r
70 jm_vector(char) modelIdentifierCS;
\r
72 jm_vector(jm_string) sourceFilesME;
\r
73 jm_vector(jm_string) sourceFilesCS;
\r
75 jm_vector(jm_string) logCategories;
\r
76 jm_vector(jm_string) logCategoryDescriptions;
\r
78 jm_vector(jm_string) vendorList;
\r
80 jm_vector(jm_named_ptr) unitDefinitions;
\r
81 jm_vector(jm_named_ptr) displayUnitDefinitions;
\r
83 fmi2_xml_type_definitions_t typeDefinitions;
\r
85 jm_string_set descriptions;
\r
87 jm_vector(jm_named_ptr) variablesByName;
\r
89 jm_vector(jm_voidp)* variablesOrigOrder;
\r
91 jm_vector(jm_voidp)* variablesByVR;
\r
93 fmi2_fmu_kind_enu_t fmuKind;
\r
95 unsigned int capabilities[fmi2_capabilities_Num];
\r
97 fmi2_xml_model_structure_t* modelStructure;
\r
100 void fmi2_xml_report_error(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...);
\r
102 void fmi2_xml_report_error_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);
\r
104 void fmi2_xml_report_warning(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...);
\r
106 void fmi2_xml_report_warning_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);
\r