]> gerrit.simantics Code Review - simantics/fmil.git/blob - FMI2/fmu_dummy/fmu2_model_cs.c
Switch to full JavaSE-11+ compatibility
[simantics/fmil.git] / FMI2 / fmu_dummy / fmu2_model_cs.c
1 /*\r
2 Copyright (C) 2012 Modelon AB\r
3 \r
4 This program is free software: you can redistribute it and/or modify\r
5 it under the terms of the BSD style license.\r
6 \r
7 the Free Software Foundation, version 3 of the License.\r
8 \r
9 This program is distributed in the hope that it will be useful,\r
10 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12 FMILIB_License.txt file for more details.\r
13 \r
14 You should have received a copy of the FMILIB_License.txt file\r
15 along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
16 */\r
17 \r
18 #include <string.h>\r
19 \r
20 \r
21 \r
22 #if __GNUC__ >= 4\r
23     #pragma GCC visibility push(default)\r
24 #endif\r
25 \r
26 /* Standard FMI 2.0 ME and CS types */\r
27 #include <FMI2/fmi2Functions.h>\r
28 \r
29 #include <fmu_dummy/fmu2_model.h>\r
30 #include "config_test.h"\r
31 /* #define MODEL_IDENTIFIER FMU_DUMMY_CS_MODEL_IDENTIFIER */\r
32 \r
33 #include "fmu2_model.c"\r
34 \r
35 \r
36 \r
37 /* FMI 2.0 Common Functions */\r
38 FMI2_Export const char* fmi2GetVersion()\r
39 {\r
40         return fmi_get_version();\r
41 }\r
42 \r
43 FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n, const fmi2String cat[])\r
44 {\r
45         return fmi_set_debug_logging(c, loggingOn);\r
46 }\r
47 \r
48 FMI2_Export fmi2Component fmi2Instantiate(fmi2String instanceName,\r
49   fmi2Type fmuType, fmi2String GUID, fmi2String location,\r
50   const fmi2CallbackFunctions* functions, fmi2Boolean visible,\r
51   fmi2Boolean loggingOn)\r
52 {\r
53     return fmi_instantiate(instanceName, fmuType, GUID, location, functions,\r
54                            visible, loggingOn);\r
55 }\r
56 \r
57 FMI2_Export void fmi2FreeInstance(fmi2Component c)\r
58 {\r
59         fmi_free_instance(c);\r
60 }\r
61 \r
62 FMI2_Export fmi2Status fmi2SetupExperiment(fmi2Component c, \r
63     fmi2Boolean toleranceDefined, fmi2Real tolerance,\r
64     fmi2Real startTime, fmi2Boolean stopTimeDefined,\r
65     fmi2Real stopTime)\r
66 {\r
67     return fmi_setup_experiment(c, toleranceDefined, tolerance, startTime,\r
68                                 stopTimeDefined, stopTime);\r
69 }\r
70 \r
71 FMI2_Export fmi2Status fmi2EnterInitializationMode(fmi2Component c)\r
72 {\r
73     return fmi_enter_initialization_mode(c);\r
74 }\r
75 \r
76 FMI2_Export fmi2Status fmi2ExitInitializationMode(fmi2Component c)\r
77 {\r
78     return fmi_exit_initialization_mode(c);\r
79 }\r
80 \r
81 FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])\r
82 {\r
83         return fmi_get_real(c, vr, nvr, value);\r
84 }\r
85 \r
86 FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])\r
87 {\r
88         return fmi_get_integer(c, vr, nvr, value);\r
89 }\r
90 \r
91 FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])\r
92 {\r
93         return fmi_get_boolean(c, vr, nvr, value);\r
94 }\r
95 \r
96 FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String  value[])\r
97 {\r
98         return fmi_get_string(c, vr, nvr, value);\r
99 }\r
100 \r
101 FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])\r
102 {\r
103         return fmi_set_real(c, vr, nvr, value);\r
104 }\r
105 \r
106 FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])\r
107 {\r
108         return fmi_set_integer(c, vr, nvr, value);\r
109 }\r
110 \r
111 FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])\r
112 {\r
113         return fmi_set_boolean(c, vr, nvr, value);\r
114 }\r
115 \r
116 FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String  value[])\r
117 {\r
118         return fmi_set_string(c, vr, nvr, value);\r
119 }\r
120 \r
121 /* FMI 2.0 CS Functions */\r
122 FMI2_Export const char* fmi2GetTypesPlatform()\r
123 {\r
124         return fmi_get_types_platform();\r
125 }\r
126 \r
127 FMI2_Export fmi2Status fmi2Terminate(fmi2Component c)\r
128 {\r
129         return fmi_terminate(c);\r
130 }\r
131 \r
132 FMI2_Export fmi2Status fmi2Reset(fmi2Component c)\r
133 {\r
134         return fmi_reset(c);\r
135 }\r
136 \r
137 FMI2_Export fmi2Status fmi2SetRealInputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], const fmi2Real value[])\r
138 {\r
139         return fmi_set_real_input_derivatives(c, vr, nvr, order, value);\r
140 }\r
141 \r
142 FMI2_Export fmi2Status fmi2GetRealOutputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], fmi2Real value[])\r
143 {\r
144         return fmi_get_real_output_derivatives(c, vr, nvr, order, value);\r
145 }\r
146 \r
147 FMI2_Export fmi2Status fmi2CancelStep(fmi2Component c)\r
148 {\r
149         return fmi_cancel_step(c);\r
150 }\r
151 \r
152 FMI2_Export fmi2Status fmi2DoStep(fmi2Component c, fmi2Real currentCommunicationPoint, fmi2Real communicationStepSize, fmi2Boolean newStep)\r
153 {\r
154         return fmi_do_step(c, currentCommunicationPoint, communicationStepSize, newStep);\r
155 }\r
156 \r
157 FMI2_Export fmi2Status fmi2GetStatus(fmi2Component c, const fmi2StatusKind s, fmi2Status*  value)\r
158 {\r
159         return fmi_get_status(c, s, value);\r
160 }\r
161 \r
162 FMI2_Export fmi2Status fmi2GetRealStatus(fmi2Component c, const fmi2StatusKind s, fmi2Real*    value)\r
163 {\r
164         return fmi_get_real_status(c, s, value);\r
165 }\r
166 \r
167 FMI2_Export fmi2Status fmi2GetIntegerStatus(fmi2Component c, const fmi2StatusKind s, fmi2Integer* value)\r
168 {\r
169         return fmi_get_integer_status(c, s, value);\r
170 }\r
171 \r
172 FMI2_Export fmi2Status fmi2GetBooleanStatus(fmi2Component c, const fmi2StatusKind s, fmi2Boolean* value)\r
173 {\r
174         return fmi_get_boolean_status(c, s, value);\r
175 }\r
176 \r
177 FMI2_Export fmi2Status fmi2GetStringStatus(fmi2Component c, const fmi2StatusKind s, fmi2String*  value)\r
178 {\r
179         return fmi_get_string_status(c, s, value);\r
180 }\r