FMI Library: part of JModelica.org
fmu1_model_me.c
Go to the documentation of this file.
1 /*
2 Copyright (C) 2012 Modelon AB
3 
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the BSD style license.
6 
7 the Free Software Foundation, version 3 of the License.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 FMILIB_License.txt file for more details.
13 
14 You should have received a copy of the FMILIB_License.txt file
15 along with this program. If not, contact Modelon AB <http://www.modelon.com>.
16 */
17 
18 #include <string.h>
19 
20 #if __GNUC__ >= 4
21  #pragma GCC visibility push(default)
22 #endif
23 /* Standard FMI 1.0 ME and CS types */
24 #include <FMI1/fmiModelTypes.h>
25 #include <FMI1/fmiModelFunctions.h>
26 
27 #include <fmu_dummy/fmu1_model.h>
28 #include "config_test.h"
29 
30  typedef enum {fmiDoStepStatus,
33 
34 #include "fmu1_model.c"
35 
36 #define MODEL_IDENTIFIER FMU_DUMMY_ME_MODEL_IDENTIFIER
37 
38 /* FMI 1.0 Common Functions */
39 DllExport const char* fmiGetVersion()
40 {
41  return fmi_get_version();
42 }
43 
44 DllExport fmiStatus fmiSetDebugLogging(fmiComponent c, fmiBoolean loggingOn)
45 {
46  return fmi_set_debug_logging(c, loggingOn);
47 }
48 
49 DllExport fmiStatus fmiGetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])
50 {
51  return fmi_get_real(c, vr, nvr, value);
52 }
53 
54 DllExport fmiStatus fmiGetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])
55 {
56  return fmi_get_integer(c, vr, nvr, value);
57 }
58 
59 DllExport fmiStatus fmiGetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])
60 {
61  return fmi_get_boolean(c, vr, nvr, value);
62 }
63 
64 DllExport fmiStatus fmiGetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[])
65 {
66  return fmi_get_string(c, vr, nvr, value);
67 }
68 
69 DllExport fmiStatus fmiSetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])
70 {
71  return fmi_set_real(c, vr, nvr, value);
72 }
73 
74 DllExport fmiStatus fmiSetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])
75 {
76  return fmi_set_integer(c, vr, nvr, value);
77 }
78 
79 DllExport fmiStatus fmiSetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])
80 {
81  return fmi_set_boolean(c, vr, nvr, value);
82 }
83 
84 DllExport fmiStatus fmiSetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[])
85 {
86  return fmi_set_string(c, vr, nvr, value);
87 }
88 
89 /* FMI 1.0 ME Functions */
90 DllExport const char* fmiGetModelTypesPlatform()
91 {
93 }
94 
95 DllExport fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID, fmiCallbackFunctions functions, fmiBoolean loggingOn)
96 {
97  return fmi_instantiate_model(instanceName, GUID, functions, loggingOn);
98 }
99 
101 {
103 }
104 
105 DllExport fmiStatus fmiSetTime(fmiComponent c, fmiReal fmitime)
106 {
107  return fmi_set_time(c, fmitime);
108 }
109 
110 DllExport fmiStatus fmiSetContinuousStates(fmiComponent c, const fmiReal x[], size_t nx)
111 {
112  return fmi_set_continuous_states(c, x, nx);
113 }
114 
115 DllExport fmiStatus fmiCompletedIntegratorStep(fmiComponent c, fmiBoolean* callEventUpdate)
116 {
117  return fmi_completed_integrator_step(c, callEventUpdate);
118 }
119 
120 DllExport fmiStatus fmiInitialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal relativeTolerance, fmiEventInfo* eventInfo)
121 {
122  return fmi_initialize(c, toleranceControlled, relativeTolerance, eventInfo);
123 }
124 
125 DllExport fmiStatus fmiGetDerivatives(fmiComponent c, fmiReal derivatives[] , size_t nx)
126 {
127  return fmi_get_derivatives(c, derivatives, nx);
128 }
129 
130 DllExport fmiStatus fmiGetEventIndicators(fmiComponent c, fmiReal eventIndicators[], size_t ni)
131 {
132  return fmi_get_event_indicators(c, eventIndicators, ni);
133 }
134 
135 DllExport fmiStatus fmiEventUpdate(fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo* eventInfo)
136 {
137  return fmi_event_update(c, intermediateResults, eventInfo);
138 }
139 
140 DllExport fmiStatus fmiGetContinuousStates(fmiComponent c, fmiReal states[], size_t nx)
141 {
142  return fmi_get_continuous_states(c, states, nx);
143 }
144 
145 DllExport fmiStatus fmiGetNominalContinuousStates(fmiComponent c, fmiReal x_nominal[], size_t nx)
146 {
147  return fmi_get_nominal_continuousstates(c, x_nominal, nx);
148 }
149 
150 DllExport fmiStatus fmiGetStateValueReferences(fmiComponent c, fmiValueReference vrx[], size_t nx)
151 {
152  return fmi_get_state_value_references(c, vrx, nx);
153 }
154 
155 DllExport fmiStatus fmiTerminate(fmiComponent c)
156 {
157  return fmi_terminate(c);
158 }
DllExport fmiStatus fmiGetNominalContinuousStates(fmiComponent c, fmiReal x_nominal[], size_t nx)
fmiStatus fmi_event_update(fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo *eventInfo)
Definition: fmu1_model.c:408
fmiStatus fmi_set_debug_logging(fmiComponent c, fmiBoolean loggingOn)
Definition: fmu1_model.c:82
size_t jm_callbacks * c
DllExport fmiStatus fmiSetContinuousStates(fmiComponent c, const fmiReal x[], size_t nx)
DllExport fmiStatus fmiSetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])
Definition: fmu1_model_me.c:74
fmiComponent fmi_instantiate_model(fmiString instanceName, fmiString GUID, fmiCallbackFunctions functions, fmiBoolean loggingOn)
Definition: fmu1_model.c:254
fmiStatus fmi_get_string(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[])
Definition: fmu1_model.c:141
fmiStatus fmi_initialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal relativeTolerance, fmiEventInfo *eventInfo)
Definition: fmu1_model.c:349
fmiStatus fmi_set_boolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])
Definition: fmu1_model.c:189
DllExport fmiStatus fmiGetInteger(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])
Definition: fmu1_model_me.c:54
#define fmiBoolean
Definition: fmi1_types.h:37
fmiStatus fmi_completed_integrator_step(fmiComponent c, fmiBoolean *callEventUpdate)
Definition: fmu1_model.c:338
fmiStatus fmi_get_real(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])
Definition: fmu1_model.c:93
DllExport fmiStatus fmiTerminate(fmiComponent c)
DllExport const char * fmiGetVersion()
Definition: fmu1_model_me.c:39
fmiStatus fmi_get_nominal_continuousstates(fmiComponent c, fmiReal x_nominal[], size_t nx)
Definition: fmu1_model.c:436
fmiStatus fmi_set_string(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[])
Definition: fmu1_model.c:203
DllExport void fmiFreeModelInstance(fmiComponent c)
fmiStatus fmi_get_event_indicators(fmiComponent c, fmiReal eventIndicators[], size_t ni)
Definition: fmu1_model.c:391
fmiStatus fmi_get_derivatives(fmiComponent c, fmiReal derivatives[], size_t nx)
Definition: fmu1_model.c:374
DllExport fmiStatus fmiGetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])
Definition: fmu1_model_me.c:49
fmiStatus fmi_get_continuous_states(fmiComponent c, fmiReal states[], size_t nx)
Definition: fmu1_model.c:421
DllExport fmiStatus fmiSetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[])
Definition: fmu1_model_me.c:84
fmiStatus fmi_get_state_value_references(fmiComponent c, fmiValueReference vrx[], size_t nx)
Definition: fmu1_model.c:450
DllExport fmiStatus fmiGetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])
Definition: fmu1_model_me.c:59
#define fmiString
Definition: fmi1_types.h:38
void fmi_free_model_instance(fmiComponent c)
Definition: fmu1_model.c:302
DllExport fmiStatus fmiGetStateValueReferences(fmiComponent c, fmiValueReference vrx[], size_t nx)
#define fmiValueReference
Definition: fmi1_types.h:34
fmiStatus fmi_get_integer(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])
Definition: fmu1_model.c:113
fmiStatus fmi_set_continuous_states(fmiComponent c, const fmiReal x[], size_t nx)
Definition: fmu1_model.c:324
DllExport fmiStatus fmiSetDebugLogging(fmiComponent c, fmiBoolean loggingOn)
Definition: fmu1_model_me.c:44
DllExport fmiStatus fmiCompletedIntegratorStep(fmiComponent c, fmiBoolean *callEventUpdate)
DllExport fmiStatus fmiGetEventIndicators(fmiComponent c, fmiReal eventIndicators[], size_t ni)
#define fmiReal
Definition: fmi1_types.h:35
DllExport fmiStatus fmiSetBoolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])
Definition: fmu1_model_me.c:79
DllExport fmiStatus fmiSetReal(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])
Definition: fmu1_model_me.c:69
const char * fmi_get_version()
Definition: fmu1_model.c:77
DllExport fmiStatus fmiEventUpdate(fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo *eventInfo)
DllExport fmiStatus fmiGetContinuousStates(fmiComponent c, fmiReal states[], size_t nx)
fmiStatus fmi_set_integer(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])
Definition: fmu1_model.c:175
DllExport fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID, fmiCallbackFunctions functions, fmiBoolean loggingOn)
Definition: fmu1_model_me.c:95
#define fmiInteger
Definition: fmi1_types.h:36
fmiStatus fmi_set_time(fmiComponent c, fmiReal fmitime)
Definition: fmu1_model.c:313
DllExport const char * fmiGetModelTypesPlatform()
Definition: fmu1_model_me.c:90
DllExport fmiStatus fmiInitialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal relativeTolerance, fmiEventInfo *eventInfo)
DllExport fmiStatus fmiSetTime(fmiComponent c, fmiReal fmitime)
fmiStatus fmi_get_boolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])
Definition: fmu1_model.c:127
fmiStatus fmi_set_real(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])
Definition: fmu1_model.c:155
fmiStatus fmi_terminate(fmiComponent c)
Definition: fmu1_model.c:464
DllExport fmiStatus fmiGetDerivatives(fmiComponent c, fmiReal derivatives[], size_t nx)
fmiStatusKind
Definition: fmu1_model_me.c:30
const char * fmi_get_model_types_platform()
Definition: fmu1_model.c:242
DllExport fmiStatus fmiGetString(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[])
Definition: fmu1_model_me.c:64
#define fmiComponent
Definition: fmi1_types.h:33