]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model_me.c
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / Test / FMI2 / fmu_dummy / fmu2_model_me.c
diff --git a/org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model_me.c b/org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model_me.c
new file mode 100644 (file)
index 0000000..3a3932a
--- /dev/null
@@ -0,0 +1,185 @@
+/*\r
+Copyright (C) 2012 Modelon AB\r
+\r
+This program is free software: you can redistribute it and/or modify\r
+it under the terms of the BSD style license.\r
+\r
+the Free Software Foundation, version 3 of the License.\r
+\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+FMILIB_License.txt file for more details.\r
+\r
+You should have received a copy of the FMILIB_License.txt file\r
+along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
+*/\r
+\r
+#include <string.h>\r
+\r
+#if __GNUC__ >= 4\r
+    #pragma GCC visibility push(default)\r
+#endif\r
+/* Standard FMI 2.0 ME and CS types */\r
+#include <FMI2/fmi2TypesPlatform.h>\r
+#include <FMI2/fmi2Functions.h>\r
+\r
+#include <fmu_dummy/fmu2_model.h>\r
+#include "config_test.h"\r
+\r
+#include "fmu2_model.c"\r
+\r
+/* #define MODEL_IDENTIFIER FMU_DUMMY_ME_MODEL_IDENTIFIER*/\r
+\r
+/* FMI 2.0 Common Functions */\r
+FMI2_Export const char* fmi2GetVersion()\r
+{\r
+       return fmi_get_version();\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n , const fmi2String cat[])\r
+{\r
+       return fmi_set_debug_logging(c, loggingOn);\r
+}\r
+\r
+FMI2_Export fmi2Component fmi2Instantiate(fmi2String instanceName,\r
+  fmi2Type fmuType, fmi2String GUID, fmi2String location,\r
+  const fmi2CallbackFunctions* functions, fmi2Boolean visible,\r
+  fmi2Boolean loggingOn)\r
+{\r
+    return fmi_instantiate(instanceName, fmuType, GUID, location, functions,\r
+                           visible, loggingOn);\r
+}\r
+\r
+FMI2_Export void fmi2FreeInstance(fmi2Component c)\r
+{\r
+       fmi_free_instance(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetupExperiment(fmi2Component c, \r
+    fmi2Boolean toleranceDefined, fmi2Real tolerance,\r
+    fmi2Real startTime, fmi2Boolean stopTimeDefined,\r
+    fmi2Real stopTime)\r
+{\r
+    return fmi_setup_experiment(c, toleranceDefined, tolerance, startTime,\r
+                                stopTimeDefined, stopTime);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2EnterInitializationMode(fmi2Component c)\r
+{\r
+    return fmi_enter_initialization_mode(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2ExitInitializationMode(fmi2Component c)\r
+{\r
+    return fmi_exit_initialization_mode(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])\r
+{\r
+       return fmi_get_real(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])\r
+{\r
+       return fmi_get_integer(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])\r
+{\r
+       return fmi_get_boolean(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String  value[])\r
+{\r
+       return fmi_get_string(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])\r
+{\r
+       return fmi_set_real(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])\r
+{\r
+       return fmi_set_integer(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])\r
+{\r
+       return fmi_set_boolean(c, vr, nvr, value);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String  value[])\r
+{\r
+       return fmi_set_string(c, vr, nvr, value);\r
+}\r
+\r
+/* FMI 2.0 ME Functions */\r
+FMI2_Export const char* fmi2GetTypesPlatform()\r
+{\r
+       return fmi_get_model_types_platform();\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2EnterEventMode(fmi2Component c)\r
+{\r
+    return fmi_enter_event_mode(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2NewDiscreteStates(fmi2Component c, fmi2EventInfo* eventInfo)\r
+{\r
+    return fmi_new_discrete_states(c, eventInfo);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2EnterContinuousTimeMode(fmi2Component c)\r
+{\r
+    return fmi_enter_continuous_time_mode(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetTime(fmi2Component c, fmi2Real fmitime)\r
+{\r
+       return fmi_set_time(c, fmitime);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2SetContinuousStates(fmi2Component c, const fmi2Real x[], size_t nx)\r
+{\r
+       return fmi_set_continuous_states(c, x, nx);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2CompletedIntegratorStep(fmi2Component c,\r
+    fmi2Boolean noSetFMUStatePriorToCurrentPoint,\r
+    fmi2Boolean* enterEventMode, fmi2Boolean* terminateSimulation)\r
+{\r
+    return fmi_completed_integrator_step(c, noSetFMUStatePriorToCurrentPoint,\r
+                                         enterEventMode, terminateSimulation);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetDerivatives(fmi2Component c, fmi2Real derivatives[] , size_t nx)\r
+{\r
+       return fmi_get_derivatives(c, derivatives, nx);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetEventIndicators(fmi2Component c, fmi2Real eventIndicators[], size_t ni)\r
+{\r
+       return fmi_get_event_indicators(c, eventIndicators, ni);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetContinuousStates(fmi2Component c, fmi2Real states[], size_t nx)\r
+{\r
+       return fmi_get_continuous_states(c, states, nx);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2GetNominalsOfContinuousStates(fmi2Component c, fmi2Real x_nominal[], size_t nx)\r
+{\r
+       return fmi_get_nominals_of_continuousstates(c, x_nominal, nx);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2Terminate(fmi2Component c)\r
+{\r
+       return fmi_terminate(c);\r
+}\r
+\r
+FMI2_Export fmi2Status fmi2Reset(fmi2Component c)\r
+{\r
+       return fmi_reset(c);\r
+}\r