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
23 #pragma GCC visibility push(default)
\r
26 /* Standard FMI 2.0 ME and CS types */
\r
27 #include <FMI2/fmi2Functions.h>
\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
33 #include "fmu2_model.c"
\r
37 /* FMI 2.0 Common Functions */
\r
38 FMI2_Export const char* fmi2GetVersion()
\r
40 return fmi_get_version();
\r
43 FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n, const fmi2String cat[])
\r
45 return fmi_set_debug_logging(c, loggingOn);
\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
53 return fmi_instantiate(instanceName, fmuType, GUID, location, functions,
\r
54 visible, loggingOn);
\r
57 FMI2_Export void fmi2FreeInstance(fmi2Component c)
\r
59 fmi_free_instance(c);
\r
62 FMI2_Export fmi2Status fmi2SetupExperiment(fmi2Component c,
\r
63 fmi2Boolean toleranceDefined, fmi2Real tolerance,
\r
64 fmi2Real startTime, fmi2Boolean stopTimeDefined,
\r
67 return fmi_setup_experiment(c, toleranceDefined, tolerance, startTime,
\r
68 stopTimeDefined, stopTime);
\r
71 FMI2_Export fmi2Status fmi2EnterInitializationMode(fmi2Component c)
\r
73 return fmi_enter_initialization_mode(c);
\r
76 FMI2_Export fmi2Status fmi2ExitInitializationMode(fmi2Component c)
\r
78 return fmi_exit_initialization_mode(c);
\r
81 FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])
\r
83 return fmi_get_real(c, vr, nvr, value);
\r
86 FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])
\r
88 return fmi_get_integer(c, vr, nvr, value);
\r
91 FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])
\r
93 return fmi_get_boolean(c, vr, nvr, value);
\r
96 FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String value[])
\r
98 return fmi_get_string(c, vr, nvr, value);
\r
101 FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])
\r
103 return fmi_set_real(c, vr, nvr, value);
\r
106 FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])
\r
108 return fmi_set_integer(c, vr, nvr, value);
\r
111 FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])
\r
113 return fmi_set_boolean(c, vr, nvr, value);
\r
116 FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String value[])
\r
118 return fmi_set_string(c, vr, nvr, value);
\r
121 /* FMI 2.0 CS Functions */
\r
122 FMI2_Export const char* fmi2GetTypesPlatform()
\r
124 return fmi_get_types_platform();
\r
127 FMI2_Export fmi2Status fmi2Terminate(fmi2Component c)
\r
129 return fmi_terminate(c);
\r
132 FMI2_Export fmi2Status fmi2Reset(fmi2Component c)
\r
134 return fmi_reset(c);
\r
137 FMI2_Export fmi2Status fmi2SetRealInputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], const fmi2Real value[])
\r
139 return fmi_set_real_input_derivatives(c, vr, nvr, order, value);
\r
142 FMI2_Export fmi2Status fmi2GetRealOutputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], fmi2Real value[])
\r
144 return fmi_get_real_output_derivatives(c, vr, nvr, order, value);
\r
147 FMI2_Export fmi2Status fmi2CancelStep(fmi2Component c)
\r
149 return fmi_cancel_step(c);
\r
152 FMI2_Export fmi2Status fmi2DoStep(fmi2Component c, fmi2Real currentCommunicationPoint, fmi2Real communicationStepSize, fmi2Boolean newStep)
\r
154 return fmi_do_step(c, currentCommunicationPoint, communicationStepSize, newStep);
\r
157 FMI2_Export fmi2Status fmi2GetStatus(fmi2Component c, const fmi2StatusKind s, fmi2Status* value)
\r
159 return fmi_get_status(c, s, value);
\r
162 FMI2_Export fmi2Status fmi2GetRealStatus(fmi2Component c, const fmi2StatusKind s, fmi2Real* value)
\r
164 return fmi_get_real_status(c, s, value);
\r
167 FMI2_Export fmi2Status fmi2GetIntegerStatus(fmi2Component c, const fmi2StatusKind s, fmi2Integer* value)
\r
169 return fmi_get_integer_status(c, s, value);
\r
172 FMI2_Export fmi2Status fmi2GetBooleanStatus(fmi2Component c, const fmi2StatusKind s, fmi2Boolean* value)
\r
174 return fmi_get_boolean_status(c, s, value);
\r
177 FMI2_Export fmi2Status fmi2GetStringStatus(fmi2Component c, const fmi2StatusKind s, fmi2String* value)
\r
179 return fmi_get_string_status(c, s, value);
\r