FMI Library: part of JModelica.org
fmi2_enums.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 
16 #ifndef FMI2_ENUMS_H_
17 #define FMI2_ENUMS_H_
18 
19 #include <fmilib_config.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
39 {
44 
46 FMILIB_EXPORT const char* fmi2_naming_convention_to_string(fmi2_variable_naming_convension_enu_t convention);
47 
49 typedef enum fmi2_fmu_kind_enu_t
50 {
54  fmi2_fmu_kind_me_and_cs = 3 /* defined to be equal to (fmi2_fmu_kind_me|fmi2_fmu_kind_cs) */
56 
59 
61 typedef enum fmi2_variability_enu_t {
69 
72 
74 typedef enum fmi2_causality_enu_t {
83 
86 
88 typedef enum fmi2_initial_enu_t {
92  fmi2_initial_enu_unknown /* must be last*/
94 
96 FMILIB_EXPORT const char* fmi2_initial_to_string(fmi2_initial_enu_t c);
97 
104 
109 FMILIB_EXPORT fmi2_initial_enu_t fmi2_get_valid_initial(fmi2_variability_enu_t v, fmi2_causality_enu_t c, fmi2_initial_enu_t i);
110 
116 
119 {
126 
131 FMILIB_EXPORT const char* fmi2_base_type_to_string(fmi2_base_type_enu_t bt);
132 
134 #define FMI2_ME_CAPABILITIES(H) \
135  H(needsExecutionTool) \
136  H(completedIntegratorStepNotNeeded) \
137  H(canBeInstantiatedOnlyOncePerProcess) \
138  H(canNotUseMemoryManagementFunctions) \
139  H(canGetAndSetFMUstate) \
140  H(canSerializeFMUstate) \
141  H(providesDirectionalDerivatives)\
142  H(completedEventIterationIsProvided)
143 
145 #define FMI2_CS_CAPABILITIES(H) \
146  H(needsExecutionTool) \
147  H(canHandleVariableCommunicationStepSize) \
148  H(canInterpolateInputs) \
149  H(maxOutputDerivativeOrder) \
150  H(canRunAsynchronuously) \
151  H(canBeInstantiatedOnlyOncePerProcess) \
152  H(canNotUseMemoryManagementFunctions) \
153  H(canGetAndSetFMUstate) \
154  H(canSerializeFMUstate) \
155  H(providesDirectionalDerivatives)
156 
159 #define FMI2_EXPAND_ME_CAPABILITIES_ENU(c) fmi2_me_ ## c,
160 #define FMI2_EXPAND_CS_CAPABILITIES_ENU(c) fmi2_cs_ ## c,
165 
170 FMILIB_EXPORT const char * fmi2_capability_to_string(fmi2_capabilities_enu_t id);
171 
173 #define FMI2_SI_BASE_UNITS(H) \
174  H(kg) H(m) H(s) H(A) H(K) H(mol) H(cd) H(rad)
175 
178 #define FMI2_EXPAND_SI_BASE_UNIT_ENU(c) fmi2_SI_base_unit_ ## c,
182 
187 FMILIB_EXPORT const char * fmi2_SI_base_unit_to_string(fmi2_SI_base_units_enu_t id);
188 
197 FMILIB_EXPORT size_t fmi2_SI_base_unit_exp_to_string(const int exp[fmi2_SI_base_units_Num], size_t bufSize, char buf[]);
198 
199 
202 {
210 
215 FMILIB_EXPORT const char* fmi2_dependency_factor_kind_to_string(fmi2_dependency_factor_kind_enu_t fc);
219 #ifdef __cplusplus
220 }
221 #endif
222 
223 #endif /* End of header file FMI2_ENUMS_H_ */
#define FMI2_CS_CAPABILITIES(H)
List of capability flags for CoSimulation.
Definition: fmi2_enums.h:145
fmi2_base_type_enu_t
Base types used in type definitions.
Definition: fmi2_enums.h:118
fmi2_dependency_factor_kind_enu_t
Dependency factor kinds are used as part of ModelStructure definition.
Definition: fmi2_enums.h:201
fmi2_variable_alias_kind_enu_t
Alias property for variables.
Definition: fmi2_enums.h:112
Library configuration file generated by the build system.
FMILIB_EXPORT const char * fmi2_variability_to_string(fmi2_variability_enu_t v)
Convert a fmi2_variability_enu_t constant into string.
FMILIB_EXPORT const char * fmi2_fmu_kind_to_string(fmi2_fmu_kind_enu_t kind)
Convert a fmi2_fmu_kind_enu_t constant into string.
fmi2_causality_enu_t
Causality property for variables.
Definition: fmi2_enums.h:74
size_t jm_callbacks * c
#define FMI2_EXPAND_SI_BASE_UNIT_ENU(c)
Definition: fmi2_enums.h:178
fmi2_capabilities_enu_t
Capability flags for ModelExchange and CoSimulation.
Definition: fmi2_enums.h:158
FMILIB_EXPORT fmi2_initial_enu_t fmi2_get_valid_initial(fmi2_variability_enu_t v, fmi2_causality_enu_t c, fmi2_initial_enu_t i)
Check if the combination of variability, causality and initial is valid.
#define FMI2_SI_BASE_UNITS(H)
List of SI base units used in Unit defitions.
Definition: fmi2_enums.h:173
return v
FMILIB_EXPORT fmi2_initial_enu_t fmi2_get_default_initial(fmi2_variability_enu_t v, fmi2_causality_enu_t c)
Get default initial attribute value for the given variability and causality combination.
#define FMILIB_EXPORT
Used to declare the public API of the library needed for dynamic linking.
FMILIB_EXPORT const char * fmi2_SI_base_unit_to_string(fmi2_SI_base_units_enu_t id)
Convert SI base unit ID a string.
FMILIB_EXPORT const char * fmi2_causality_to_string(fmi2_causality_enu_t c)
Convert a fmi2_causality_enu_t constant into string.
fmi2_initial_enu_t
Initial property for variables.
Definition: fmi2_enums.h:88
#define FMI2_ME_CAPABILITIES(H)
List of capability flags for ModelExchange.
Definition: fmi2_enums.h:134
fmi2_fmu_kind_enu_t
FMU 2.0 kinds.
Definition: fmi2_enums.h:49
#define FMI2_EXPAND_CS_CAPABILITIES_ENU(c)
Definition: fmi2_enums.h:160
fmi2_variable_naming_convension_enu_t
Naming convention for the variables in XML file.
Definition: fmi2_enums.h:38
FMILIB_EXPORT const char * fmi2_initial_to_string(fmi2_initial_enu_t c)
Convert a fmi2_initial_enu_t constant into string.
FMILIB_EXPORT size_t fmi2_SI_base_unit_exp_to_string(const int exp[fmi2_SI_base_units_Num], size_t bufSize, char buf[])
Convert a list of SI base unit exponents (corresponding to the IDs from fmi2_SI_base_units_enu_t) to ...
fmi2_variability_enu_t
Variability property for variables.
Definition: fmi2_enums.h:61
FMILIB_EXPORT const char * fmi2_base_type_to_string(fmi2_base_type_enu_t bt)
Convert base type constant to string.
FMILIB_EXPORT const char * fmi2_dependency_factor_kind_to_string(fmi2_dependency_factor_kind_enu_t fc)
Convert dependency factor kind constant to string.
fmi2_SI_base_units_enu_t
SI base units used in Unit defitions.
Definition: fmi2_enums.h:177
FMILIB_EXPORT const char * fmi2_naming_convention_to_string(fmi2_variable_naming_convension_enu_t convention)
Convert a fmi2_variable_naming_convension_enu_t constant into string.
#define FMI2_EXPAND_ME_CAPABILITIES_ENU(c)
Definition: fmi2_enums.h:159
FMILIB_EXPORT const char * fmi2_capability_to_string(fmi2_capabilities_enu_t id)
Convert capability flag to a string.