2 Copyright (C) 2012 Modelon AB
\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.
7 the Free Software Foundation, version 3 of the License.
\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
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
21 #pragma GCC visibility push(default)
\r
23 /* Standard FMI 1.0 ME and CS types */
\r
24 #include <FMI1/fmiModelTypes.h>
\r
25 #include <FMI1/fmiModelFunctions.h>
\r
27 #include <fmu_dummy/fmu1_model.h>
\r
28 #include "config_test.h"
\r
30 typedef enum {fmiDoStepStatus,
\r
32 fmiLastSuccessfulTime} fmiStatusKind;
\r
34 #include "fmu1_model.c"
\r
36 #define MODEL_IDENTIFIER FMU_DUMMY_ME_MODEL_IDENTIFIER
\r
38 /* FMI 1.0 Common Functions */
\r
39 DllExport const char* fmiGetVersion()
\r
41 return fmi_get_version();
\r
44 DllExport fmiStatus fmiSetDebugLogging(fmiComponent c, fmiBoolean loggingOn)
\r
46 return fmi_set_debug_logging(c, loggingOn);
\r
49 DllExport fmiStatus fmiGetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])
\r
51 return fmi_get_real(c, vr, nvr, value);
\r
54 DllExport fmiStatus fmiGetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])
\r
56 return fmi_get_integer(c, vr, nvr, value);
\r
59 DllExport fmiStatus fmiGetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])
\r
61 return fmi_get_boolean(c, vr, nvr, value);
\r
64 DllExport fmiStatus fmiGetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[])
\r
66 return fmi_get_string(c, vr, nvr, value);
\r
69 DllExport fmiStatus fmiSetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])
\r
71 return fmi_set_real(c, vr, nvr, value);
\r
74 DllExport fmiStatus fmiSetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])
\r
76 return fmi_set_integer(c, vr, nvr, value);
\r
79 DllExport fmiStatus fmiSetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])
\r
81 return fmi_set_boolean(c, vr, nvr, value);
\r
84 DllExport fmiStatus fmiSetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[])
\r
86 return fmi_set_string(c, vr, nvr, value);
\r
89 /* FMI 1.0 ME Functions */
\r
90 DllExport const char* fmiGetModelTypesPlatform()
\r
92 return fmi_get_model_types_platform();
\r
95 DllExport fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID, fmiCallbackFunctions functions, fmiBoolean loggingOn)
\r
97 return fmi_instantiate_model(instanceName, GUID, functions, loggingOn);
\r
100 DllExport void fmiFreeModelInstance(fmiComponent c)
\r
102 fmi_free_model_instance(c);
\r
105 DllExport fmiStatus fmiSetTime(fmiComponent c, fmiReal fmitime)
\r
107 return fmi_set_time(c, fmitime);
\r
110 DllExport fmiStatus fmiSetContinuousStates(fmiComponent c, const fmiReal x[], size_t nx)
\r
112 return fmi_set_continuous_states(c, x, nx);
\r
115 DllExport fmiStatus fmiCompletedIntegratorStep(fmiComponent c, fmiBoolean* callEventUpdate)
\r
117 return fmi_completed_integrator_step(c, callEventUpdate);
\r
120 DllExport fmiStatus fmiInitialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal relativeTolerance, fmiEventInfo* eventInfo)
\r
122 return fmi_initialize(c, toleranceControlled, relativeTolerance, eventInfo);
\r
125 DllExport fmiStatus fmiGetDerivatives(fmiComponent c, fmiReal derivatives[] , size_t nx)
\r
127 return fmi_get_derivatives(c, derivatives, nx);
\r
130 DllExport fmiStatus fmiGetEventIndicators(fmiComponent c, fmiReal eventIndicators[], size_t ni)
\r
132 return fmi_get_event_indicators(c, eventIndicators, ni);
\r
135 DllExport fmiStatus fmiEventUpdate(fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo* eventInfo)
\r
137 return fmi_event_update(c, intermediateResults, eventInfo);
\r
140 DllExport fmiStatus fmiGetContinuousStates(fmiComponent c, fmiReal states[], size_t nx)
\r
142 return fmi_get_continuous_states(c, states, nx);
\r
145 DllExport fmiStatus fmiGetNominalContinuousStates(fmiComponent c, fmiReal x_nominal[], size_t nx)
\r
147 return fmi_get_nominal_continuousstates(c, x_nominal, nx);
\r
150 DllExport fmiStatus fmiGetStateValueReferences(fmiComponent c, fmiValueReference vrx[], size_t nx)
\r
152 return fmi_get_state_value_references(c, vrx, nx);
\r
155 DllExport fmiStatus fmiTerminate(fmiComponent c)
\r
157 return fmi_terminate(c);
\r