]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/Test/FMI1/fmu_dummy/fmu1_model_cs.c
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / Test / FMI1 / fmu_dummy / fmu1_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.
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 1.0 ME and CS types */\r
27 #include <FMI1/fmiPlatformTypes.h>\r
28 #include <FMI1/fmiFunctions.h>\r
29 \r
30 #include <fmu_dummy/fmu1_model.h>\r
31 #include "config_test.h"\r
32 #define MODEL_IDENTIFIER FMU_DUMMY_CS_MODEL_IDENTIFIER\r
33 \r
34 #include "fmu1_model.c"\r
35 \r
36 \r
37 \r
38 /* FMI 1.0 Common Functions */\r
39 DllExport const char* fmiGetVersion()\r
40 {\r
41         return fmi_get_version();\r
42 }\r
43 \r
44 DllExport fmiStatus fmiSetDebugLogging(fmiComponent c, fmiBoolean loggingOn)\r
45 {\r
46         return fmi_set_debug_logging(c, loggingOn);\r
47 }\r
48 \r
49 DllExport fmiStatus fmiGetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])\r
50 {\r
51         return fmi_get_real(c, vr, nvr, value);\r
52 }\r
53 \r
54 DllExport fmiStatus fmiGetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])\r
55 {\r
56         return fmi_get_integer(c, vr, nvr, value);\r
57 }\r
58 \r
59 DllExport fmiStatus fmiGetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])\r
60 {\r
61         return fmi_get_boolean(c, vr, nvr, value);\r
62 }\r
63 \r
64 DllExport fmiStatus fmiGetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString  value[])\r
65 {\r
66         return fmi_get_string(c, vr, nvr, value);\r
67 }\r
68 \r
69 DllExport fmiStatus fmiSetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])\r
70 {\r
71         return fmi_set_real(c, vr, nvr, value);\r
72 }\r
73 \r
74 DllExport fmiStatus fmiSetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])\r
75 {\r
76         return fmi_set_integer(c, vr, nvr, value);\r
77 }\r
78 \r
79 DllExport fmiStatus fmiSetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])\r
80 {\r
81         return fmi_set_boolean(c, vr, nvr, value);\r
82 }\r
83 \r
84 DllExport fmiStatus fmiSetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString  value[])\r
85 {\r
86         return fmi_set_string(c, vr, nvr, value);\r
87 }\r
88 \r
89 /* FMI 1.0 CS Functions */\r
90 DllExport const char* fmiGetTypesPlatform()\r
91 {\r
92         return fmi_get_types_platform();\r
93 }\r
94 \r
95 DllExport fmiComponent fmiInstantiateSlave(fmiString instanceName, fmiString fmuGUID, fmiString fmuLocation, fmiString mimeType, fmiReal timeout, fmiBoolean visible, fmiBoolean interactive, fmiCallbackFunctions functions, fmiBoolean loggingOn)\r
96 {\r
97         return fmi_instantiate_slave(instanceName, fmuGUID, fmuLocation, mimeType, timeout, visible, interactive, functions, loggingOn);\r
98 }\r
99 \r
100 DllExport fmiStatus fmiInitializeSlave(fmiComponent c, fmiReal tStart, fmiBoolean StopTimeDefined, fmiReal tStop)\r
101 {\r
102         return fmi_initialize_slave(c, tStart, StopTimeDefined, tStop);\r
103 }\r
104 \r
105 DllExport fmiStatus fmiTerminateSlave(fmiComponent c)\r
106 {\r
107         return fmi_terminate_slave(c);\r
108 }\r
109 \r
110 DllExport fmiStatus fmiResetSlave(fmiComponent c)\r
111 {\r
112         return fmi_reset_slave(c);\r
113 }\r
114 \r
115 DllExport void fmiFreeSlaveInstance(fmiComponent c)\r
116 {\r
117         fmi_free_slave_instance(c);\r
118 }\r
119 \r
120 DllExport fmiStatus fmiSetRealInputDerivatives(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger order[], const fmiReal value[])\r
121 {\r
122         return fmi_set_real_input_derivatives(c, vr, nvr, order, value);\r
123 }\r
124 \r
125 DllExport fmiStatus fmiGetRealOutputDerivatives(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger order[], fmiReal value[])\r
126 {\r
127         return fmi_get_real_output_derivatives(c, vr, nvr, order, value);\r
128 }\r
129 \r
130 DllExport fmiStatus fmiCancelStep(fmiComponent c)\r
131 {\r
132         return fmi_cancel_step(c);\r
133 }\r
134 \r
135 DllExport fmiStatus fmiDoStep(fmiComponent c, fmiReal currentCommunicationPoint, fmiReal communicationStepSize, fmiBoolean newStep)\r
136 {\r
137         return fmi_do_step(c, currentCommunicationPoint, communicationStepSize, newStep);\r
138 }\r
139 \r
140 DllExport fmiStatus fmiGetStatus(fmiComponent c, const fmiStatusKind s, fmiStatus*  value)\r
141 {\r
142         return fmi_get_status(c, s, value);\r
143 }\r
144 \r
145 DllExport fmiStatus fmiGetRealStatus(fmiComponent c, const fmiStatusKind s, fmiReal*    value)\r
146 {\r
147         return fmi_get_real_status(c, s, value);\r
148 }\r
149 \r
150 DllExport fmiStatus fmiGetIntegerStatus(fmiComponent c, const fmiStatusKind s, fmiInteger* value)\r
151 {\r
152         return fmi_get_integer_status(c, s, value);\r
153 }\r
154 \r
155 DllExport fmiStatus fmiGetBooleanStatus(fmiComponent c, const fmiStatusKind s, fmiBoolean* value)\r
156 {\r
157         return fmi_get_boolean_status(c, s, value);\r
158 }\r
159 \r
160 DllExport fmiStatus fmiGetStringStatus(fmiComponent c, const fmiStatusKind s, fmiString*  value)\r
161 {\r
162         return fmi_get_string_status(c, s, value);\r
163 }\r