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.
\r
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 2.0 ME and CS types */
\r
24 #include <FMI2/fmi2TypesPlatform.h>
\r
25 #include <FMI2/fmi2Functions.h>
\r
27 #include <fmu_dummy/fmu2_model.h>
\r
28 #include "config_test.h"
\r
30 #include "fmu2_model.c"
\r
32 /* #define MODEL_IDENTIFIER FMU_DUMMY_ME_MODEL_IDENTIFIER*/
\r
34 /* FMI 2.0 Common Functions */
\r
35 FMI2_Export const char* fmi2GetVersion()
\r
37 return fmi_get_version();
\r
40 FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n , const fmi2String cat[])
\r
42 return fmi_set_debug_logging(c, loggingOn);
\r
45 FMI2_Export fmi2Component fmi2Instantiate(fmi2String instanceName,
\r
46 fmi2Type fmuType, fmi2String GUID, fmi2String location,
\r
47 const fmi2CallbackFunctions* functions, fmi2Boolean visible,
\r
48 fmi2Boolean loggingOn)
\r
50 return fmi_instantiate(instanceName, fmuType, GUID, location, functions,
\r
51 visible, loggingOn);
\r
54 FMI2_Export void fmi2FreeInstance(fmi2Component c)
\r
56 fmi_free_instance(c);
\r
59 FMI2_Export fmi2Status fmi2SetupExperiment(fmi2Component c,
\r
60 fmi2Boolean toleranceDefined, fmi2Real tolerance,
\r
61 fmi2Real startTime, fmi2Boolean stopTimeDefined,
\r
64 return fmi_setup_experiment(c, toleranceDefined, tolerance, startTime,
\r
65 stopTimeDefined, stopTime);
\r
68 FMI2_Export fmi2Status fmi2EnterInitializationMode(fmi2Component c)
\r
70 return fmi_enter_initialization_mode(c);
\r
73 FMI2_Export fmi2Status fmi2ExitInitializationMode(fmi2Component c)
\r
75 return fmi_exit_initialization_mode(c);
\r
78 FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])
\r
80 return fmi_get_real(c, vr, nvr, value);
\r
83 FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])
\r
85 return fmi_get_integer(c, vr, nvr, value);
\r
88 FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])
\r
90 return fmi_get_boolean(c, vr, nvr, value);
\r
93 FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String value[])
\r
95 return fmi_get_string(c, vr, nvr, value);
\r
98 FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])
\r
100 return fmi_set_real(c, vr, nvr, value);
\r
103 FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])
\r
105 return fmi_set_integer(c, vr, nvr, value);
\r
108 FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])
\r
110 return fmi_set_boolean(c, vr, nvr, value);
\r
113 FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String value[])
\r
115 return fmi_set_string(c, vr, nvr, value);
\r
118 /* FMI 2.0 ME Functions */
\r
119 FMI2_Export const char* fmi2GetTypesPlatform()
\r
121 return fmi_get_model_types_platform();
\r
124 FMI2_Export fmi2Status fmi2EnterEventMode(fmi2Component c)
\r
126 return fmi_enter_event_mode(c);
\r
129 FMI2_Export fmi2Status fmi2NewDiscreteStates(fmi2Component c, fmi2EventInfo* eventInfo)
\r
131 return fmi_new_discrete_states(c, eventInfo);
\r
134 FMI2_Export fmi2Status fmi2EnterContinuousTimeMode(fmi2Component c)
\r
136 return fmi_enter_continuous_time_mode(c);
\r
139 FMI2_Export fmi2Status fmi2SetTime(fmi2Component c, fmi2Real fmitime)
\r
141 return fmi_set_time(c, fmitime);
\r
144 FMI2_Export fmi2Status fmi2SetContinuousStates(fmi2Component c, const fmi2Real x[], size_t nx)
\r
146 return fmi_set_continuous_states(c, x, nx);
\r
149 FMI2_Export fmi2Status fmi2CompletedIntegratorStep(fmi2Component c,
\r
150 fmi2Boolean noSetFMUStatePriorToCurrentPoint,
\r
151 fmi2Boolean* enterEventMode, fmi2Boolean* terminateSimulation)
\r
153 return fmi_completed_integrator_step(c, noSetFMUStatePriorToCurrentPoint,
\r
154 enterEventMode, terminateSimulation);
\r
157 FMI2_Export fmi2Status fmi2GetDerivatives(fmi2Component c, fmi2Real derivatives[] , size_t nx)
\r
159 return fmi_get_derivatives(c, derivatives, nx);
\r
162 FMI2_Export fmi2Status fmi2GetEventIndicators(fmi2Component c, fmi2Real eventIndicators[], size_t ni)
\r
164 return fmi_get_event_indicators(c, eventIndicators, ni);
\r
167 FMI2_Export fmi2Status fmi2GetContinuousStates(fmi2Component c, fmi2Real states[], size_t nx)
\r
169 return fmi_get_continuous_states(c, states, nx);
\r
172 FMI2_Export fmi2Status fmi2GetNominalsOfContinuousStates(fmi2Component c, fmi2Real x_nominal[], size_t nx)
\r
174 return fmi_get_nominals_of_continuousstates(c, x_nominal, nx);
\r
177 FMI2_Export fmi2Status fmi2Terminate(fmi2Component c)
\r
179 return fmi_terminate(c);
\r
182 FMI2_Export fmi2Status fmi2Reset(fmi2Component c)
\r
184 return fmi_reset(c);
\r