]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model.h
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.h
diff --git a/org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model.h b/org.simantics.fmil.core/native/FMILibrary/Test/FMI2/fmu_dummy/fmu2_model.h
new file mode 100644 (file)
index 0000000..c0c7cd2
--- /dev/null
@@ -0,0 +1,248 @@
+/*\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
+#ifndef FMU2_MODEL_H_\r
+#define FMU2_MODEL_H_\r
+#include <FMI2/fmi2Functions.h>\r
+\r
+#include <fmu_dummy/fmu2_model_defines.h>\r
+#ifndef FMI2_Export\r
+       #define FMI2_Export DllExport\r
+#endif\r
+typedef struct {\r
+       /*************** FMI ME 2.0 ****************/\r
+       fmi2Real                                        states                  [N_STATES];\r
+       fmi2Real                                        states_nom              [N_STATES];\r
+       fmi2Real                                        states_der              [N_STATES];\r
+       fmi2Real                                        event_indicators[N_EVENT_INDICATORS];\r
+       fmi2Real                                        reals                   [N_REAL];\r
+       fmi2Integer                             integers                [N_INTEGER];\r
+       fmi2Boolean                             booleans                [N_BOOLEAN];\r
+       fmi2String                              strings                 [N_STRING];\r
+\r
+       /* fmiInstantiateModel */\r
+       fmi2Boolean                             loggingOn;\r
+       char                                    instanceName    [BUFFER];\r
+       char                                    GUID                    [BUFFER];\r
+       const fmi2CallbackFunctions*    functions;\r
+\r
+       /* fmiSetTime */\r
+       fmi2Real                                        fmitime;\r
+\r
+       /* fmiInitializeModel */\r
+       fmi2Boolean                             toleranceControlled;\r
+       fmi2Real                                        relativeTolerance;\r
+       fmi2EventInfo                   eventInfo;\r
+\r
+       /*************** FMI CS 2.0. Depends on the ME fields above and functions ****************/\r
+       fmi2Real                                        states_prev             [N_STATES];\r
+\r
+       /* fmiInstantiateSlave */\r
+       char                                    fmuLocation             [BUFFER];\r
+       fmi2Boolean                             visible;\r
+\r
+       /* fmiInitializeSlave */\r
+       fmi2Real                                        tStart;\r
+       fmi2Boolean                             StopTimeDefined;\r
+       fmi2Real                                        tStop;\r
+\r
+       /* fmiSetRealInputDerivatives */\r
+       fmi2Real                                        input_real              [N_INPUT_REAL][N_INPUT_REAL_MAX_ORDER + 1];\r
+\r
+       /* fmiGetRealOutputDerivatives */\r
+       fmi2Real                                        output_real             [N_OUTPUT_REAL][N_OUTPUT_REAL_MAX_ORDER + 1];\r
+\r
+} component_t;\r
+\r
+typedef component_t* component_ptr_t;\r
+\r
+/* FMI 2.0 Common Functions */\r
+const char*            fmi_get_version();\r
+\r
+fmi2Status             fmi_set_debug_logging(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Boolean loggingOn);\r
+\r
+fmi2Component fmi_instantiate (\r
+    fmi2String instanceName,\r
+    fmi2Type fmuType,\r
+    fmi2String fmuGUID,\r
+    fmi2String fmuLocation,\r
+    const fmi2CallbackFunctions* functions,\r
+    fmi2Boolean visible,\r
+    fmi2Boolean loggingOn);\r
+\r
+void fmi_free_instance(\r
+    fmi2Component c);\r
+\r
+fmi2Status fmi_setup_experiment(fmi2Component c,\r
+    fmi2Boolean toleranceDefined, fmi2Real tolerance,\r
+    fmi2Real startTime, fmi2Boolean stopTimeDefined,\r
+    fmi2Real stopTime);\r
+fmi2Status             fmi_enter_initialization_mode(fmi2Component c);\r
+fmi2Status             fmi_exit_initialization_mode(fmi2Component c);\r
+\r
+fmi2Status             fmi_terminate(fmi2Component c);\r
+\r
+fmi2Status             fmi_reset(\r
+                                                                                                       fmi2Component c);\r
+\r
+\r
+fmi2Status             fmi_get_real(                   \r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr, fmi2Real value[]);\r
+\r
+fmi2Status             fmi_get_integer(        \r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       fmi2Integer value[]);\r
+fmi2Status             fmi_get_boolean(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       fmi2Boolean value[]);\r
+\r
+fmi2Status             fmi_get_string(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       fmi2String  value[]);\r
+\r
+fmi2Status             fmi_set_real(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2Real value[]);\r
+fmi2Status             fmi_set_integer(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2Integer value[]);\r
+\r
+fmi2Status             fmi_set_boolean(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2Boolean value[]);\r
+\r
+fmi2Status             fmi_set_string(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2String  value[]);\r
+\r
+/* FMI 2.0 ME Functions */\r
+const char*            fmi_get_model_types_platform();\r
+\r
+fmi2Status             fmi_enter_event_mode(fmi2Component c);\r
+fmi2Status             fmi_new_discrete_states(fmi2Component c, fmi2EventInfo* eventInfo);\r
+fmi2Status             fmi_enter_continuous_time_mode(fmi2Component c);\r
+\r
+fmi2Status             fmi_set_time(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real fmitime);\r
+\r
+fmi2Status             fmi_set_continuous_states(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2Real x[],\r
+                                                                                                       size_t nx);\r
+\r
+fmi2Status fmi_completed_integrator_step(\r
+    fmi2Component c,\r
+    fmi2Boolean noSetFMUStatePriorToCurrentPoint,\r
+    fmi2Boolean* enterEventMode, fmi2Boolean* terminateSimulation);\r
+\r
+fmi2Status             fmi_get_derivatives(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real derivatives[],\r
+                                                                                                       size_t nx);\r
+\r
+fmi2Status             fmi_get_event_indicators(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real eventIndicators[],\r
+                                                                                                       size_t ni);\r
+\r
+fmi2Status             fmi_get_continuous_states(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real states[],\r
+                                                                                                       size_t nx);\r
+\r
+fmi2Status             fmi_get_nominals_of_continuousstates(   \r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real x_nominal[],\r
+                                                                                                       size_t nx);\r
+\r
+\r
+/* FMI 2.0 CS Functions */\r
+#ifdef fmi2Functions_h\r
+\r
+const char*            fmi_get_types_platform();\r
+\r
+void                   fmi_free_slave_instance(\r
+                                                                                                       fmi2Component c);\r
+\r
+fmi2Status             fmi_set_real_input_derivatives(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2Integer order[],\r
+                                                                                                       const fmi2Real value[]);\r
+\r
+fmi2Status             fmi_get_real_output_derivatives(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2ValueReference vr[],\r
+                                                                                                       size_t nvr,\r
+                                                                                                       const fmi2Integer order[],\r
+                                                                                                       fmi2Real value[]);\r
+\r
+fmi2Status             fmi_cancel_step(\r
+                                                                                                       fmi2Component c);\r
+fmi2Status             fmi_do_step(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       fmi2Real currentCommunicationPoint,\r
+                                                                                                       fmi2Real communicationStepSize,\r
+                                                                                                       fmi2Boolean newStep);\r
+\r
+fmi2Status             fmi_get_status(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2StatusKind s,\r
+                                                                                                       fmi2Status*  value);\r
+\r
+fmi2Status             fmi_get_real_status(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2StatusKind s,\r
+                                                                                                       fmi2Real*    value);\r
+\r
+fmi2Status             fmi_get_integer_status(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2StatusKind s,\r
+                                                                                                       fmi2Integer* value);\r
+\r
+fmi2Status             fmi_get_boolean_status(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2StatusKind s,\r
+                                                                                                       fmi2Boolean* value);\r
+\r
+fmi2Status             fmi_get_string_status(\r
+                                                                                                       fmi2Component c,\r
+                                                                                                       const fmi2StatusKind s,\r
+                                                                                                       fmi2String*  value);\r
+\r
+#endif /* End of fmi2Functions_h */\r
+#endif /* End of header FMU2_MODEL_H_ */\r