]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/native/FMILibrary/Test/FMI1/fmu_dummy/fmu1_model_me.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_me.c
diff --git a/org.simantics.fmil.core/native/FMILibrary/Test/FMI1/fmu_dummy/fmu1_model_me.c b/org.simantics.fmil.core/native/FMILibrary/Test/FMI1/fmu_dummy/fmu1_model_me.c
new file mode 100644 (file)
index 0000000..231b8ce
--- /dev/null
@@ -0,0 +1,158 @@
+/*\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
+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 1.0 ME and CS types */\r
+#include <FMI1/fmiModelTypes.h>\r
+#include <FMI1/fmiModelFunctions.h>\r
+\r
+#include <fmu_dummy/fmu1_model.h>\r
+#include "config_test.h"\r
+\r
+   typedef enum {fmiDoStepStatus,\r
+                 fmiPendingStatus,\r
+                 fmiLastSuccessfulTime} fmiStatusKind;\r
+\r
+#include "fmu1_model.c"\r
+\r
+#define MODEL_IDENTIFIER FMU_DUMMY_ME_MODEL_IDENTIFIER\r
+\r
+/* FMI 1.0 Common Functions */\r
+DllExport const char* fmiGetVersion()\r
+{\r
+       return fmi_get_version();\r
+}\r
+\r
+DllExport fmiStatus fmiSetDebugLogging(fmiComponent c, fmiBoolean loggingOn)\r
+{\r
+       return fmi_set_debug_logging(c, loggingOn);\r
+}\r
+\r
+DllExport fmiStatus fmiGetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])\r
+{\r
+       return fmi_get_real(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiGetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])\r
+{\r
+       return fmi_get_integer(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiGetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])\r
+{\r
+       return fmi_get_boolean(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiGetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString  value[])\r
+{\r
+       return fmi_get_string(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiSetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])\r
+{\r
+       return fmi_set_real(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiSetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])\r
+{\r
+       return fmi_set_integer(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiSetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])\r
+{\r
+       return fmi_set_boolean(c, vr, nvr, value);\r
+}\r
+\r
+DllExport fmiStatus fmiSetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString  value[])\r
+{\r
+       return fmi_set_string(c, vr, nvr, value);\r
+}\r
+\r
+/* FMI 1.0 ME Functions */\r
+DllExport const char* fmiGetModelTypesPlatform()\r
+{\r
+       return fmi_get_model_types_platform();\r
+}\r
+\r
+DllExport fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID, fmiCallbackFunctions functions, fmiBoolean loggingOn)\r
+{\r
+       return fmi_instantiate_model(instanceName, GUID, functions, loggingOn);\r
+}\r
+\r
+DllExport void fmiFreeModelInstance(fmiComponent c)\r
+{\r
+       fmi_free_model_instance(c);\r
+}\r
+\r
+DllExport fmiStatus fmiSetTime(fmiComponent c, fmiReal fmitime)\r
+{\r
+       return fmi_set_time(c, fmitime);\r
+}\r
+\r
+DllExport fmiStatus fmiSetContinuousStates(fmiComponent c, const fmiReal x[], size_t nx)\r
+{\r
+       return fmi_set_continuous_states(c, x, nx);\r
+}\r
+\r
+DllExport fmiStatus fmiCompletedIntegratorStep(fmiComponent c, fmiBoolean* callEventUpdate)\r
+{\r
+       return fmi_completed_integrator_step(c, callEventUpdate);\r
+}\r
+\r
+DllExport fmiStatus fmiInitialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal relativeTolerance, fmiEventInfo* eventInfo)\r
+{\r
+       return fmi_initialize(c, toleranceControlled, relativeTolerance, eventInfo);\r
+}\r
+\r
+DllExport fmiStatus fmiGetDerivatives(fmiComponent c, fmiReal derivatives[] , size_t nx)\r
+{\r
+       return fmi_get_derivatives(c, derivatives, nx);\r
+}\r
+\r
+DllExport fmiStatus fmiGetEventIndicators(fmiComponent c, fmiReal eventIndicators[], size_t ni)\r
+{\r
+       return fmi_get_event_indicators(c, eventIndicators, ni);\r
+}\r
+\r
+DllExport fmiStatus fmiEventUpdate(fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo* eventInfo)\r
+{\r
+       return fmi_event_update(c, intermediateResults, eventInfo);\r
+}\r
+\r
+DllExport fmiStatus fmiGetContinuousStates(fmiComponent c, fmiReal states[], size_t nx)\r
+{\r
+       return fmi_get_continuous_states(c, states, nx);\r
+}\r
+\r
+DllExport fmiStatus fmiGetNominalContinuousStates(fmiComponent c, fmiReal x_nominal[], size_t nx)\r
+{\r
+       return fmi_get_nominal_continuousstates(c, x_nominal, nx);\r
+}\r
+\r
+DllExport fmiStatus fmiGetStateValueReferences(fmiComponent c, fmiValueReference vrx[], size_t nx)\r
+{\r
+       return fmi_get_state_value_references(c, vrx, nx);\r
+}\r
+\r
+DllExport fmiStatus fmiTerminate(fmiComponent c)\r
+{\r
+       return fmi_terminate(c);\r
+}\r