]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/native/FMILibrary/src/CAPI/src/FMI2/fmi2_capi_cs.c
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / src / CAPI / src / FMI2 / fmi2_capi_cs.c
diff --git a/org.simantics.fmil.core/native/FMILibrary/src/CAPI/src/FMI2/fmi2_capi_cs.c b/org.simantics.fmil.core/native/FMILibrary/src/CAPI/src/FMI2/fmi2_capi_cs.c
new file mode 100644 (file)
index 0000000..9d1a69d
--- /dev/null
@@ -0,0 +1,59 @@
+/*\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
+    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
+#ifdef __cplusplus \r
+extern "C" {\r
+#endif\r
+\r
+#include <FMI2/fmi2_capi.h>\r
+#include <FMI2/fmi2_capi_impl.h>\r
+\r
+\r
+fmi2_status_t fmi2_capi_set_real_input_derivatives(fmi2_capi_t* fmu, const  fmi2_value_reference_t vr[], size_t nvr, const fmi2_integer_t order[], const  fmi2_real_t value[])  \r
+{\r
+       return fmu->fmi2SetRealInputDerivatives(fmu->c, vr, nvr, order, value);\r
+}\r
+\r
+fmi2_status_t fmi2_capi_get_real_output_derivatives(fmi2_capi_t* fmu, const  fmi2_value_reference_t vr[], size_t nvr, const fmi2_integer_t order[], fmi2_real_t value[])   \r
+{\r
+       return fmu->fmi2GetRealOutputDerivatives(fmu->c, vr, nvr, order, value);\r
+}\r
+\r
+fmi2_status_t fmi2_capi_cancel_step(fmi2_capi_t* fmu)   \r
+{\r
+       return fmu->fmi2CancelStep(fmu->c);\r
+}\r
+\r
+fmi2_status_t fmi2_capi_do_step(fmi2_capi_t* fmu, fmi2_real_t currentCommunicationPoint, fmi2_real_t communicationStepSize, fmi2_boolean_t newStep)\r
+{\r
+       return fmu->fmi2DoStep(fmu->c, currentCommunicationPoint, communicationStepSize, newStep);\r
+}\r
+\r
+/* fmiGetStatus* */\r
+#define FMIGETSTATUSX(FNAME1, FNAME2,FSTATUSTYPE) \\r
+fmi2_status_t FNAME1(fmi2_capi_t* fmu, const fmi2_status_kind_t s, FSTATUSTYPE*  value) \\r
+{ \\r
+       return fmu->FNAME2(fmu->c, s, value); \\r
+}\r
+\r
+FMIGETSTATUSX(fmi2_capi_get_status,            fmi2GetStatus,          fmi2_status_t)\r
+FMIGETSTATUSX(fmi2_capi_get_real_status,               fmi2GetRealStatus,      fmi2_real_t)\r
+FMIGETSTATUSX(fmi2_capi_get_integer_status,    fmi2GetIntegerStatus,   fmi2_integer_t)\r
+FMIGETSTATUSX(fmi2_capi_get_boolean_status,    fmi2GetBooleanStatus,   fmi2_boolean_t)\r
+FMIGETSTATUSX(fmi2_capi_get_string_status,             fmi2GetStringStatus,    fmi2_string_t)\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r