]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/src/Util/include/FMI1/fmi1_enums.h
e0d21841d1af94fa58d64da632508064bc0b8681
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / src / Util / include / FMI1 / fmi1_enums.h
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 */\r
15 \r
16 #ifndef FMI1_ENUMS_H_\r
17 #define FMI1_ENUMS_H_\r
18 \r
19 #include <fmilib_config.h>\r
20 \r
21 #ifdef __cplusplus\r
22 extern "C" {\r
23 #endif\r
24 \r
25 /** \file fmi1_enums.h \r
26         \brief Definions the enum types used with FMI 1.0 libs\r
27 */\r
28 \r
29 /**     \addtogroup fmi1_utils\r
30         @{\r
31         \addtogroup fmi1_enums\r
32         @}\r
33 */
34 /** \addtogroup fmi1_enums Enum types used with FMI 1.0 libs\r
35         @{\r
36 */\r
37 /** \brief Naming convention for the variables in XML file*/\r
38 typedef enum fmi1_variable_naming_convension_enu_t\r
39\r
40         fmi1_naming_enu_flat,\r
41         fmi1_naming_enu_structured,\r
42         fmi1_naming_enu_unknown\r
43 } fmi1_variable_naming_convension_enu_t;\r
44 \r
45 /** \brief Convert a #fmi1_variable_naming_convension_enu_t constant into string */\r
46 FMILIB_EXPORT const char* fmi1_naming_convention_to_string(fmi1_variable_naming_convension_enu_t convention);\r
47 \r
48 /**  \brief FMU 1.0 kinds */\r
49 typedef enum fmi1_fmu_kind_enu_t\r
50 {\r
51         fmi1_fmu_kind_enu_me = 0,\r
52         fmi1_fmu_kind_enu_cs_standalone,\r
53         fmi1_fmu_kind_enu_cs_tool,\r
54                 fmi1_fmu_kind_enu_unknown\r
55 } fmi1_fmu_kind_enu_t;\r
56 \r
57 /** \brief Convert a #fmi1_fmu_kind_enu_t constant into string  */\r
58 FMILIB_EXPORT const char* fmi1_fmu_kind_to_string(fmi1_fmu_kind_enu_t kind);\r
59 \r
60 /**  \brief Variability property for variables */\r
61 typedef enum fmi1_variability_enu_t {
62         fmi1_variability_enu_constant,
63         fmi1_variability_enu_parameter,
64         fmi1_variability_enu_discrete,
65         fmi1_variability_enu_continuous,
66                 fmi1_variability_enu_unknown
67 } fmi1_variability_enu_t;
68
69 /** \brief Convert a #fmi1_variability_enu_t constant into string  */
70 FMILIB_EXPORT const char* fmi1_variability_to_string(fmi1_variability_enu_t v);
71
72 /**  \brief Causality property for variables */
73 typedef enum fmi1_causality_enu_t {
74         fmi1_causality_enu_input,
75         fmi1_causality_enu_output,
76         fmi1_causality_enu_internal,
77         fmi1_causality_enu_none,
78         fmi1_causality_enu_unknown
79 } fmi1_causality_enu_t;
80
81 /** \brief Convert a #fmi1_causality_enu_t constant into string  */
82 FMILIB_EXPORT const char* fmi1_causality_to_string(fmi1_causality_enu_t c);
83 \r
84 /** \brief Alias property for variables */\r
85 typedef enum fmi1_variable_alias_kind_enu_t {
86     fmi1_variable_is_negated_alias = -1,
87     fmi1_variable_is_not_alias = 0,
88     fmi1_variable_is_alias = 1
89 } fmi1_variable_alias_kind_enu_t;
90
91 /** \brief Base types used in type definitions */
92 typedef enum fmi1_base_type_enu_t
93 {
94         fmi1_base_type_real,
95         fmi1_base_type_int,
96         fmi1_base_type_bool,
97         fmi1_base_type_str,
98         fmi1_base_type_enum
99 } fmi1_base_type_enu_t;
100
101 /**  \brief Convert base type constant to string 
102         \param bt Base type identifier.
103         \return Corresponding base type name.
104         */
105 FMILIB_EXPORT const char* fmi1_base_type_to_string(fmi1_base_type_enu_t bt);
106
107 /**     \r
108  @}\r
109 */
110 #ifdef __cplusplus\r
111 }\r
112 #endif\r
113
114 #endif /* End of header file FMI1_ENUMS_H_ */