FMI Library: part of JModelica.org
fmu2_model_cs.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 
21 
22 #if __GNUC__ >= 4
23  #pragma GCC visibility push(default)
24 #endif
25 
26 /* Standard FMI 2.0 ME and CS types */
27 #include <FMI2/fmi2Functions.h>
28 
29 #include <fmu_dummy/fmu2_model.h>
30 #include "config_test.h"
31 /* #define MODEL_IDENTIFIER FMU_DUMMY_CS_MODEL_IDENTIFIER */
32 
33 #include "fmu2_model.c"
34 
35 
36 
37 /* FMI 2.0 Common Functions */
39 {
40  return fmi_get_version();
41 }
42 
43 FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n, const fmi2String cat[])
44 {
45  return fmi_set_debug_logging(c, loggingOn);
46 }
47 
49  fmi2Type fmuType, fmi2String GUID, fmi2String location,
50  const fmi2CallbackFunctions* functions, fmi2Boolean visible,
51  fmi2Boolean loggingOn)
52 {
53  return fmi_instantiate(instanceName, fmuType, GUID, location, functions,
54  visible, loggingOn);
55 }
56 
58 {
60 }
61 
63  fmi2Boolean toleranceDefined, fmi2Real tolerance,
64  fmi2Real startTime, fmi2Boolean stopTimeDefined,
65  fmi2Real stopTime)
66 {
67  return fmi_setup_experiment(c, toleranceDefined, tolerance, startTime,
68  stopTimeDefined, stopTime);
69 }
70 
72 {
74 }
75 
77 {
79 }
80 
81 FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])
82 {
83  return fmi_get_real(c, vr, nvr, value);
84 }
85 
86 FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])
87 {
88  return fmi_get_integer(c, vr, nvr, value);
89 }
90 
91 FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])
92 {
93  return fmi_get_boolean(c, vr, nvr, value);
94 }
95 
96 FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String value[])
97 {
98  return fmi_get_string(c, vr, nvr, value);
99 }
100 
101 FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])
102 {
103  return fmi_set_real(c, vr, nvr, value);
104 }
105 
106 FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])
107 {
108  return fmi_set_integer(c, vr, nvr, value);
109 }
110 
111 FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])
112 {
113  return fmi_set_boolean(c, vr, nvr, value);
114 }
115 
116 FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String value[])
117 {
118  return fmi_set_string(c, vr, nvr, value);
119 }
120 
121 /* FMI 2.0 CS Functions */
123 {
124  return fmi_get_types_platform();
125 }
126 
128 {
129  return fmi_terminate(c);
130 }
131 
133 {
134  return fmi_reset(c);
135 }
136 
137 FMI2_Export fmi2Status fmi2SetRealInputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], const fmi2Real value[])
138 {
139  return fmi_set_real_input_derivatives(c, vr, nvr, order, value);
140 }
141 
142 FMI2_Export fmi2Status fmi2GetRealOutputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], fmi2Real value[])
143 {
144  return fmi_get_real_output_derivatives(c, vr, nvr, order, value);
145 }
146 
148 {
149  return fmi_cancel_step(c);
150 }
151 
152 FMI2_Export fmi2Status fmi2DoStep(fmi2Component c, fmi2Real currentCommunicationPoint, fmi2Real communicationStepSize, fmi2Boolean newStep)
153 {
154  return fmi_do_step(c, currentCommunicationPoint, communicationStepSize, newStep);
155 }
156 
157 FMI2_Export fmi2Status fmi2GetStatus(fmi2Component c, const fmi2StatusKind s, fmi2Status* value)
158 {
159  return fmi_get_status(c, s, value);
160 }
161 
162 FMI2_Export fmi2Status fmi2GetRealStatus(fmi2Component c, const fmi2StatusKind s, fmi2Real* value)
163 {
164  return fmi_get_real_status(c, s, value);
165 }
166 
167 FMI2_Export fmi2Status fmi2GetIntegerStatus(fmi2Component c, const fmi2StatusKind s, fmi2Integer* value)
168 {
169  return fmi_get_integer_status(c, s, value);
170 }
171 
172 FMI2_Export fmi2Status fmi2GetBooleanStatus(fmi2Component c, const fmi2StatusKind s, fmi2Boolean* value)
173 {
174  return fmi_get_boolean_status(c, s, value);
175 }
176 
177 FMI2_Export fmi2Status fmi2GetStringStatus(fmi2Component c, const fmi2StatusKind s, fmi2String* value)
178 {
179  return fmi_get_string_status(c, s, value);
180 }
fmiStatus fmi_cancel_step(fmiComponent c)
Definition: fmu1_model.c:560
FMI2_Export fmi2Status fmi2SetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[])
#define FMI2_Export
Definition: fmu2_model.h:24
FMI2_Export fmi2Status fmi2SetRealInputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], const fmi2Real value[])
FMI2_Export fmi2Status fmi2CancelStep(fmi2Component c)
fmiStatus fmi_set_debug_logging(fmiComponent c, fmiBoolean loggingOn)
Definition: fmu1_model.c:82
FMI2_Export fmi2Status fmi2GetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Boolean value[])
Definition: fmu2_model_cs.c:91
size_t jm_callbacks * c
FMI2_Export fmi2Component fmi2Instantiate(fmi2String instanceName, fmi2Type fmuType, fmi2String GUID, fmi2String location, const fmi2CallbackFunctions *functions, fmi2Boolean visible, fmi2Boolean loggingOn)
Definition: fmu2_model_cs.c:48
#define fmi2Boolean
Definition: fmi2_types.h:39
fmiStatus fmi_get_string(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[])
Definition: fmu1_model.c:141
FMI2_Export fmi2Status fmi2Terminate(fmi2Component c)
fmiStatus fmi_set_boolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[])
Definition: fmu1_model.c:189
FMI2_Export fmi2Status fmi2SetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2String value[])
fmiStatus fmi_get_real(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[])
Definition: fmu1_model.c:93
fmiStatus fmi_get_status(fmiComponent c, const fmiStatusKind s, fmiStatus *value)
Definition: fmu1_model.c:662
void fmi_free_instance(fmi2Component c)
Definition: fmu2_model.c:312
fmiStatus fmi_get_boolean_status(fmiComponent c, const fmiStatusKind s, fmiBoolean *value)
Definition: fmu1_model.c:694
FMI2_Export fmi2Status fmi2DoStep(fmi2Component c, fmi2Real currentCommunicationPoint, fmi2Real communicationStepSize, fmi2Boolean newStep)
fmiStatus fmi_set_string(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[])
Definition: fmu1_model.c:203
FMI2_Export fmi2Status fmi2SetupExperiment(fmi2Component c, fmi2Boolean toleranceDefined, fmi2Real tolerance, fmi2Real startTime, fmi2Boolean stopTimeDefined, fmi2Real stopTime)
Definition: fmu2_model_cs.c:62
fmiStatus fmi_set_real_input_derivatives(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger order[], const fmiReal value[])
Definition: fmu1_model.c:532
FMI2_Export fmi2Status fmi2GetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Integer value[])
Definition: fmu2_model_cs.c:86
fmiStatus fmi_get_integer(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[])
Definition: fmu1_model.c:113
fmi2Status fmi_setup_experiment(fmi2Component c, fmi2Boolean toleranceDefined, fmi2Real tolerance, fmi2Real startTime, fmi2Boolean stopTimeDefined, fmi2Real stopTime)
Definition: fmu2_model.c:323
#define fmi2ValueReference
Definition: fmi2_types.h:36
FMI2_Export fmi2Status fmi2SetDebugLogging(fmi2Component c, fmi2Boolean loggingOn, size_t n, const fmi2String cat[])
Definition: fmu2_model_cs.c:43
#define fmi2Integer
Definition: fmi2_types.h:38
FMI2_Export fmi2Status fmi2ExitInitializationMode(fmi2Component c)
Definition: fmu2_model_cs.c:76
fmi2Component fmi_instantiate(fmi2String instanceName, fmi2Type fmuType, fmi2String fmuGUID, fmi2String fmuLocation, const fmi2CallbackFunctions *functions, fmi2Boolean visible, fmi2Boolean loggingOn)
Definition: fmu2_model.c:260
FMI2_Export fmi2Status fmi2GetReal(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[])
Definition: fmu2_model_cs.c:81
FMI2_Export fmi2Status fmi2SetBoolean(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Boolean value[])
const char * fmi_get_version()
Definition: fmu1_model.c:77
FMI2_Export fmi2Status fmi2GetBooleanStatus(fmi2Component c, const fmi2StatusKind s, fmi2Boolean *value)
fmiStatus fmi_get_string_status(fmiComponent c, const fmiStatusKind s, fmiString *value)
Definition: fmu1_model.c:702
#define fmi2Component
Definition: fmi2_types.h:33
fmiStatus fmi_get_real_output_derivatives(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger order[], fmiReal value[])
Definition: fmu1_model.c:548
FMI2_Export fmi2Status fmi2GetRealOutputDerivatives(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer order[], fmi2Real value[])
fmiStatus fmi_set_integer(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[])
Definition: fmu1_model.c:175
FMI2_Export fmi2Status fmi2GetIntegerStatus(fmi2Component c, const fmi2StatusKind s, fmi2Integer *value)
FMI2_Export fmi2Status fmi2GetStringStatus(fmi2Component c, const fmi2StatusKind s, fmi2String *value)
#define fmi2String
Definition: fmi2_types.h:41
fmiStatus fmi_get_integer_status(fmiComponent c, const fmiStatusKind s, fmiInteger *value)
Definition: fmu1_model.c:686
FMI2_Export fmi2Status fmi2EnterInitializationMode(fmi2Component c)
Definition: fmu2_model_cs.c:71
fmi2Status fmi_enter_initialization_mode(fmi2Component c)
Definition: fmu2_model.c:344
fmiStatus fmi_get_boolean(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[])
Definition: fmu1_model.c:127
FMI2_Export const char * fmi2GetTypesPlatform()
#define fmi2Real
Definition: fmi2_types.h:37
FMI2_Export fmi2Status fmi2SetInteger(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, const fmi2Integer value[])
const char * fmi_get_types_platform()
Definition: fmu1_model.c:475
fmiStatus fmi_get_real_status(fmiComponent c, const fmiStatusKind s, fmiReal *value)
Definition: fmu1_model.c:674
FMI2_Export fmi2Status fmi2GetString(fmi2Component c, const fmi2ValueReference vr[], size_t nvr, fmi2String value[])
Definition: fmu2_model_cs.c:96
fmi2Status fmi_reset(fmi2Component c)
Definition: fmu2_model.c:499
fmiStatus fmi_set_real(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[])
Definition: fmu1_model.c:155
FMI2_Export void fmi2FreeInstance(fmi2Component c)
Definition: fmu2_model_cs.c:57
FMI2_Export fmi2Status fmi2GetStatus(fmi2Component c, const fmi2StatusKind s, fmi2Status *value)
FMI2_Export const char * fmi2GetVersion()
Definition: fmu2_model_cs.c:38
fmiStatus fmi_terminate(fmiComponent c)
Definition: fmu1_model.c:464
fmi2Status fmi_exit_initialization_mode(fmi2Component c)
Definition: fmu2_model.c:354
FMI2_Export fmi2Status fmi2Reset(fmi2Component c)
fmiStatus fmi_do_step(fmiComponent c, fmiReal currentCommunicationPoint, fmiReal communicationStepSize, fmiBoolean newStep)
Definition: fmu1_model.c:565
FMI2_Export fmi2Status fmi2GetRealStatus(fmi2Component c, const fmi2StatusKind s, fmi2Real *value)