]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/src/XML/src/FMI2/fmi2_xml_model_description_impl.h
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / src / XML / src / FMI2 / fmi2_xml_model_description_impl.h
1 #ifndef fmi2_xml_model_decription_impl_h_\r
2 #define fmi2_xml_model_decription_impl_h_\r
3 \r
4 #include <stdarg.h>\r
5 \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
11 \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
15 \r
16 #ifdef __cplusplus\r
17 extern "C" {\r
18 #endif\r
19 \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
25 \r
26 /*  ModelDescription is the entry point for the package*/\r
27 struct fmi2_xml_model_description_t {\r
28 \r
29     jm_callbacks* callbacks;\r
30 \r
31     fmi2_xml_model_description_status_enu_t status;\r
32 \r
33     jm_vector(char) fmi2_xml_standard_version;\r
34 \r
35     jm_vector(char) modelName;\r
36 \r
37     jm_vector(char) GUID;\r
38 \r
39     jm_vector(char) description;\r
40 \r
41     jm_vector(char) author;\r
42     jm_vector(char) copyright;\r
43     jm_vector(char) license;\r
44 \r
45     jm_vector(char) version;\r
46     jm_vector(char) generationTool;\r
47     jm_vector(char) generationDateAndTime;\r
48 \r
49     fmi2_variable_naming_convension_enu_t namingConvension;\r
50 \r
51     size_t numberOfContinuousStates;\r
52 \r
53     size_t numberOfEventIndicators;\r
54 \r
55     double defaultExperimentStartTime;\r
56 \r
57     double defaultExperimentStopTime;\r
58 \r
59 #define FMI2_DEFAULT_EXPERIMENT_TOLERANCE 1e-4\r
60 \r
61     double defaultExperimentTolerance;\r
62 \r
63 #define FMI2_DEFAULT_EXPERIMENT_STEPSIZE 1e-2\r
64 \r
65     double defaultExperimentStepSize;\r
66 \r
67 \r
68     jm_vector(char) modelIdentifierME;\r
69 \r
70         jm_vector(char) modelIdentifierCS;\r
71 \r
72     jm_vector(jm_string) sourceFilesME;\r
73     jm_vector(jm_string) sourceFilesCS;\r
74 \r
75     jm_vector(jm_string) logCategories;\r
76     jm_vector(jm_string) logCategoryDescriptions;\r
77 \r
78         jm_vector(jm_string) vendorList;\r
79 \r
80     jm_vector(jm_named_ptr) unitDefinitions;\r
81     jm_vector(jm_named_ptr) displayUnitDefinitions;\r
82 \r
83     fmi2_xml_type_definitions_t typeDefinitions;\r
84 \r
85     jm_string_set descriptions;\r
86 \r
87         jm_vector(jm_named_ptr) variablesByName;\r
88 \r
89     jm_vector(jm_voidp)* variablesOrigOrder;\r
90 \r
91         jm_vector(jm_voidp)* variablesByVR;\r
92 \r
93     fmi2_fmu_kind_enu_t fmuKind;\r
94 \r
95     unsigned int capabilities[fmi2_capabilities_Num];\r
96 \r
97         fmi2_xml_model_structure_t* modelStructure;\r
98 };\r
99 \r
100 void fmi2_xml_report_error(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...);\r
101 \r
102 void fmi2_xml_report_error_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);\r
103 \r
104 void fmi2_xml_report_warning(fmi2_xml_model_description_t* md, const char* module, const char* fmt, ...);\r
105 \r
106 void fmi2_xml_report_warning_v(fmi2_xml_model_description_t* md, const char* module, const char* fmt, va_list ap);\r
107 \r
108 \r
109 #ifdef __cplusplus\r
110 }\r
111 #endif\r
112 \r
113 #endif\r
114 \r