]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/src/Import/include/FMI1/fmi1_import_capi.h
Switch to full JavaSE-11+ compatibility
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / src / Import / include / FMI1 / fmi1_import_capi.h
1 /*\r
2     Copyright (C) 2012 Modelon AB\r
3 \r
4     This program is free software: you can redistribute it and/or modify\r
5     it under the terms of the BSD style license.
6 \r
7     This program is distributed in the hope that it will be useful,\r
8     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
10     FMILIB_License.txt file for more details.\r
11 \r
12     You should have received a copy of the FMILIB_License.txt file\r
13     along with this program. If not, contact Modelon AB <http://www.modelon.com>.\r
14 */\r
15 \r
16 #ifndef FMI1_IMPORT_CAPI_H_\r
17 #define FMI1_IMPORT_CAPI_H_\r
18 \r
19 #ifdef __cplusplus
20 extern "C" {
21 #endif\r
22 \r
23 #include <JM/jm_callbacks.h>\r
24 #include <FMI/fmi_import_util.h>\r
25 #include <FMI/fmi_import_context.h>\r
26 /* #include <FMI1/fmi1_xml_model_description.h>*/\r
27 \r
28 #include <FMI1/fmi1_types.h>
29 #include <FMI1/fmi1_functions.h>
30 #include <FMI1/fmi1_enums.h>\r
31 /* #include <FMI1/fmi1_capi.h> */\r
32 \r
33 /**
34 \file fmi1_import_capi.h
35 Wrapper functions for the FMI 1.0 functions
36 */\r
37 \r
38 /**\r
39  * \addtogroup fmi1_import_capi\r
40  * @{\r
41  */\r
42 \r
43 /**     \addtogroup fmi1_import_capi_const_destroy FMI 1.0 Constructor and Destructor   \r
44  * \brief Functions for instantiating and freeing the container of the struct that is responsible for the FMI functions.\r
45  *\r
46  *      Before any of the FMI functions may be called, the construction function must instantiate a fmi_import_t module.\r
47  *      After the fmi_import_t module has been succesfully instantiated, all the FMI functions can be called. To unload\r
48  *      the FMI functions, the destroy functions shall be called.\r
49  *\r
50  *      \addtogroup fmi1_import_capi_me FMI 1.0 (ME) Model Exchange functions\r
51  * \brief List of Model Exchange wrapper functions. Common functions are not listed.\r
52  *      \addtogroup fmi1_import_capi_cs FMI 1.0 (CS) Co-Simulation functions \r
53  * \brief List of Co-Simulation wrapper functions. Common functions are not listed.\r
54  *      \addtogroup fmi1_import_capi_common FMI 1.0 (ME & CS) Common functions\r
55  * \brief List of wrapper functions that are in common for both Model Exchange and Co-Simulation.\r
56  */\r
57 \r
58 /**\r
59  * \addtogroup fmi1_import_capi_const_destroy\r
60  * @{\r
61  */\r
62 \r
63 /**\r
64  * \brief Create a C-API struct. The C-API struct is a placeholder for the FMI DLL functions.\r
65  *\r
66  * This function may only be called once if it returned succesfully. fmi1_import_destroy_dllfmu \r
67  * must be called before this function can be called again. \r
68  * \r
69  * @param fmu A model description object returned by fmi1_import_parse_xml().\r
70  * @param callBackFunctions Callback functions used by the FMI functions internally.\r
71  * @param registerGlobally Register the FMU globally to enable use of fmi1_log_forwarding(). If this parameter is non-zero the code becomes non-thread safe.\r
72  * @return Error status. If the function returns with an error, it is not allowed to call any of the other C-API functions.\r
73  */
74 FMILIB_EXPORT jm_status_enu_t fmi1_import_create_dllfmu(fmi1_import_t* fmu, fmi1_callback_functions_t callBackFunctions, int registerGlobally);
75
76 /** \brief Free a C-API struct. All memory allocated since the struct was created is freed.\r
77  * \r
78  * @param fmu A model description object returned from fmi1_import_parse_xml().\r
79  */
80 FMILIB_EXPORT void fmi1_import_destroy_dllfmu(fmi1_import_t* fmu);
81
82 /**\r
83  * \brief Set CAPI debug mode flag. Setting to non-zero prevents DLL unloading in fmi1_import_destroy_dllfmu\r
84  *  while all the memory is deallocated. This is to support valgrind debugging. \r
85  * \r
86  * @param fmu C-API struct that has succesfully loaded the FMI function.\r
87  * @param mode The debug mode to set.\r
88  */\r
89 FMILIB_EXPORT void fmi1_import_set_debug_mode(fmi1_import_t* fmu, int mode);
90
91 /**@} */
92
93 /**\r
94  * \addtogroup fmi1_import_capi_common\r
95  * @{\r
96  */
97
98 /**\r
99  * \brief Wrapper for the FMI function fmiGetVersion() \r
100  * \r
101  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
102  * @return FMI version.\r
103  */
104 FMILIB_EXPORT const char* fmi1_import_get_version(fmi1_import_t* fmu);
105
106 /**\r
107  * \brief Wrapper for the FMI function fmiSetDebugLogging(...) \r
108  * \r
109  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
110  * @param loggingOn Enable or disable the debug logger.\r
111  * @return FMI status.\r
112  */
113 FMILIB_EXPORT fmi1_status_t fmi1_import_set_debug_logging(fmi1_import_t* fmu, fmi1_boolean_t loggingOn);
114
115 /**\r
116  * \brief Wrapper for the FMI function fmiSetReal(...) \r
117  * \r
118  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
119  * @param vr Array of value references.\r
120  * @param nvr Number of array elements.\r
121  * @param value Array of variable values.\r
122  * @return FMI status.\r
123  */
124 FMILIB_EXPORT fmi1_status_t fmi1_import_set_real(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_real_t    value[]);
125
126 /**\r
127  * \brief Wrapper for the FMI function fmiSetInteger(...) \r
128  * \r
129  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
130  * @param vr Array of value references.\r
131  * @param nvr Number of array elements.\r
132  * @param value Array of variable values.\r
133  * @return FMI status.\r
134  */
135 FMILIB_EXPORT fmi1_status_t fmi1_import_set_integer(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_integer_t value[]);
136
137 /**\r
138  * \brief Wrapper for the FMI function fmiSetBoolean(...) \r
139  * \r
140  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
141  * @param vr Array of value references.\r
142  * @param nvr Number of array elements.\r
143  * @param value Array of variable values.\r
144  * @return FMI status.\r
145  */
146 FMILIB_EXPORT fmi1_status_t fmi1_import_set_boolean(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_boolean_t value[]);
147
148 /**\r
149  * \brief Wrapper for the FMI function fmiSetString(...) \r
150  * \r
151  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
152  * @param vr Array of value references.\r
153  * @param nvr Number of array elements.\r
154  * @param value Array of variable values.\r
155  * @return FMI status.\r
156  */
157 FMILIB_EXPORT fmi1_status_t fmi1_import_set_string(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_string_t  value[]);
158
159
160 /**\r
161  * \brief Wrapper for the FMI function fmiGetReal(...) \r
162  * \r
163  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
164  * @param vr Array of value references.\r
165  * @param nvr Number of array elements.\r
166  * @param value (Output)Array of variable values.\r
167  * @return FMI status.\r
168  */
169 FMILIB_EXPORT fmi1_status_t fmi1_import_get_real(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, fmi1_real_t    value[]);
170
171 /**\r
172  * \brief Wrapper for the FMI function fmiGetInteger(...) \r
173  * \r
174  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
175  * @param vr Array of value references.\r
176  * @param nvr Number of array elements.\r
177  * @param value (Output)Array of variable values.\r
178  * @return FMI status.\r
179  */
180 FMILIB_EXPORT fmi1_status_t fmi1_import_get_integer(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, fmi1_integer_t value[]);
181
182 /**\r
183  * \brief Wrapper for the FMI function fmiGetBoolean(...) \r
184  * \r
185  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
186  * @param vr Array of value references.\r
187  * @param nvr Number of array elements.\r
188  * @param value (Output)Array of variable values.\r
189  * @return FMI status.\r
190  */
191 FMILIB_EXPORT fmi1_status_t fmi1_import_get_boolean(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, fmi1_boolean_t value[]);
192
193 /**\r
194  * \brief Wrapper for the FMI function fmiGetString(...) \r
195  * \r
196  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
197  * @param vr Array of value references.\r
198  * @param nvr Number of array elements.\r
199  * @param value (Output)Array of variable values.\r
200  * @return FMI status.\r
201  */
202 FMILIB_EXPORT fmi1_status_t fmi1_import_get_string(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, fmi1_string_t  value[]);
203
204 /**@} */
205
206 /**\r
207  * \addtogroup fmi1_import_capi_me\r
208  * @{\r
209  */
210
211 /**\r
212  * \brief Wrapper for the FMI function fmiGetModelTypesPlatform(...) \r
213  * \r
214  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
215  * @return The platform the FMU was compiled for.\r
216  */
217 FMILIB_EXPORT const char* fmi1_import_get_model_types_platform(fmi1_import_t* fmu);
218
219 /**\r
220  * \brief Wrapper for the FMI function fmiInstantiateModel(...) \r
221  * \r
222  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
223  * @param instanceName The name of the instance.\r
224  * @return Error status. Returnes jm_status_error if fmiInstantiateModel returned NULL, otherwise jm_status_success.\r
225  */
226 FMILIB_EXPORT jm_status_enu_t fmi1_import_instantiate_model(fmi1_import_t* fmu, fmi1_string_t instanceName);
227
228 /**\r
229  * \brief Wrapper for the FMI function fmiFreeModelInstance(...) \r
230  * \r
231  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
232  */
233 FMILIB_EXPORT void fmi1_import_free_model_instance(fmi1_import_t* fmu);
234
235 /**\r
236  * \brief Wrapper for the FMI function fmiSetTime(...) \r
237  * \r
238  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
239  * @param time Set the current time.\r
240  * @return FMI status.\r
241  */
242 FMILIB_EXPORT fmi1_status_t fmi1_import_set_time(fmi1_import_t* fmu, fmi1_real_t time);
243
244 /**\r
245  * \brief Wrapper for the FMI function fmiSetContinuousStates(...) \r
246  * \r
247  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
248  * @param x Array of state values.\r
249  * @param nx Number of states.\r
250  * @return FMI status.\r
251  */
252 FMILIB_EXPORT fmi1_status_t fmi1_import_set_continuous_states(fmi1_import_t* fmu, const fmi1_real_t x[], size_t nx);
253
254 /**\r
255  * \brief Wrapper for the FMI function fmiCompletedIntegratorStep(...) \r
256  * \r
257  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
258  * @param callEventUpdate (Output) Call fmiEventUpdate indicator.\r
259  * @return FMI status.\r
260  */
261 FMILIB_EXPORT fmi1_status_t fmi1_import_completed_integrator_step(fmi1_import_t* fmu, fmi1_boolean_t* callEventUpdate);
262
263 /**\r
264  * \brief Wrapper for the FMI function fmiInitialize(...) \r
265  * \r
266  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
267  * @param toleranceControlled Enable or disable the use of relativeTolerance in the FMU.\r
268  * @param relativeTolerance A relative tolerance used in the FMU.\r
269  * @param eventInfo (Output) fmiEventInfo struct.\r
270  * @return FMI status.\r
271  */
272 FMILIB_EXPORT fmi1_status_t fmi1_import_initialize(fmi1_import_t* fmu, fmi1_boolean_t toleranceControlled, fmi1_real_t relativeTolerance, fmi1_event_info_t* eventInfo);
273
274 /**\r
275  * \brief Wrapper for the FMI function fmiGetDerivatives(...) \r
276  * \r
277  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
278  * @param derivatives (Output) Array of the derivatives.\r
279  * @param nx Number of derivatives.\r
280  * @return FMI status.\r
281  */
282 FMILIB_EXPORT fmi1_status_t fmi1_import_get_derivatives(fmi1_import_t* fmu, fmi1_real_t derivatives[], size_t nx);
283
284 /**\r
285  * \brief Wrapper for the FMI function fmiGetEventIndicators(...) \r
286  * \r
287  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
288  * @param eventIndicators (Output) The event indicators.\r
289  * @param ni Number of event indicators.\r
290  * @return FMI status.\r
291  */
292 FMILIB_EXPORT fmi1_status_t fmi1_import_get_event_indicators(fmi1_import_t* fmu, fmi1_real_t eventIndicators[], size_t ni);
293
294 /**\r
295  * \brief Wrapper for the FMI function fmiEventUpdate(...) \r
296  * \r
297  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
298  * @param intermediateResults Indicate whether or not the fmiEventUpdate shall return after every internal event interation.\r
299  * @param eventInfo (Output) An fmiEventInfo struct.\r
300  * @return FMI status.\r
301  */
302 FMILIB_EXPORT fmi1_status_t fmi1_import_eventUpdate(fmi1_import_t* fmu, fmi1_boolean_t intermediateResults, fmi1_event_info_t* eventInfo);
303
304 /**\r
305  * \brief Wrapper for the FMI function fmiGetContinuousStates(...) \r
306  * \r
307  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
308  * @param states (Output) Array of state values.\r
309  * @param nx Number of states.\r
310  * @return FMI status.\r
311  */
312 FMILIB_EXPORT fmi1_status_t fmi1_import_get_continuous_states(fmi1_import_t* fmu, fmi1_real_t states[], size_t nx);
313
314 /**\r
315  * \brief Wrapper for the FMI function fmiGetNominalContinuousStates(...) \r
316  * \r
317  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
318  * @param x_nominal (Output) The nominal values.\r
319  * @param nx Number of nominal values.\r
320  * @return FMI status.\r
321  */
322 FMILIB_EXPORT fmi1_status_t fmi1_import_get_nominal_continuous_states(fmi1_import_t* fmu, fmi1_real_t x_nominal[], size_t nx);
323
324 /**\r
325  * \brief Wrapper for the FMI function fmiGetStateValueReferences(...) \r
326  * \r
327  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
328  * @param vrx (Output) The value-references of the states.\r
329  * @param nx Number of value-references.\r
330  * @return FMI status.\r
331  */
332 FMILIB_EXPORT fmi1_status_t fmi1_import_get_state_value_references(fmi1_import_t* fmu, fmi1_value_reference_t vrx[], size_t nx);
333
334 /**\r
335  * \brief Wrapper for the FMI function fmiTerminate(...) \r
336  * \r
337  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
338  * @return FMI status.\r
339  */
340 FMILIB_EXPORT fmi1_status_t fmi1_import_terminate(fmi1_import_t* fmu);
341
342 /**@} */
343
344 /**\r
345  * \addtogroup fmi1_import_capi_cs\r
346  * @{\r
347  */
348
349 /**\r
350  * \brief Wrapper for the FMI function fmiGetTypesPlatform(...) \r
351  * \r
352  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
353  * @return The platform the FMU was compiled for.\r
354  */
355 FMILIB_EXPORT const char* fmi1_import_get_types_platform(fmi1_import_t* fmu);
356
357 /**\r
358  * \brief Wrapper for the FMI function fmiInstantiateSlave(...) \r
359  * \r
360  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
361  * @param instanceName The name of the instance.\r
362  * @param fmuLocation Access path to the FMU archive. If null FMU will get the path to the directory where it was unpacked.\r
363  * @param mimeType MIME type. If NULL the FMU will get "application/x-fmu-sharedlibrary".\r
364  * @param timeout Communication timeout value in milli-seconds.\r
365  * @param visible Indicates whether or not the simulator application window shoule be visible.\r
366  * @param interactive Indicates whether the simulator application must be manually started by the user.\r
367  * @return Error status. Returnes jm_status_error if fmiInstantiateSlave returned NULL, otherwise jm_status_success.\r
368  */
369 FMILIB_EXPORT jm_status_enu_t fmi1_import_instantiate_slave(fmi1_import_t* fmu, fmi1_string_t instanceName, fmi1_string_t fmuLocation, fmi1_string_t mimeType,
370                                                                                                                                  fmi1_real_t timeout, fmi1_boolean_t visible, fmi1_boolean_t interactive);
371
372 /**\r
373  * \brief Wrapper for the FMI function fmiInitializeSlave(...) \r
374  * \r
375  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
376  * @param tStart Start time of the simulation\r
377  * @param StopTimeDefined Indicates whether or not the stop time is used.\r
378  * @param tStop The stop time of the simulation.\r
379  * @return FMI status.\r
380  */
381 FMILIB_EXPORT fmi1_status_t fmi1_import_initialize_slave(fmi1_import_t* fmu, fmi1_real_t tStart, fmi1_boolean_t StopTimeDefined, fmi1_real_t tStop);
382
383 /**\r
384  * \brief Wrapper for the FMI function fmiTerminateSlave(...) \r
385  * \r
386  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
387  * @return FMI status.\r
388  */
389 FMILIB_EXPORT fmi1_status_t fmi1_import_terminate_slave(fmi1_import_t* fmu);
390
391 /**\r
392  * \brief Wrapper for the FMI function fmiResetSlave(...) \r
393  * \r
394  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
395  * @return FMI status.\r
396  */
397 FMILIB_EXPORT fmi1_status_t fmi1_import_reset_slave(fmi1_import_t* fmu);
398
399 /**\r
400  * \brief Wrapper for the FMI function fmiFreeSlaveInstance(...) \r
401  * \r
402  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
403  */
404 FMILIB_EXPORT void fmi1_import_free_slave_instance(fmi1_import_t* fmu);
405
406 /**\r
407  * \brief Wrapper for the FMI function fmiSetRealInputDerivatives(...) \r
408  * \r
409  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
410  * @param vr Array of value references.\r
411  * @param nvr Number of array elements.\r
412  * @param order Array of derivative orders.\r
413  * @param value Array of variable values.\r
414  * @return FMI status.\r
415  */
416 FMILIB_EXPORT fmi1_status_t fmi1_import_set_real_input_derivatives(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_integer_t order[], const  fmi1_real_t value[]);                                                  
417
418 /**\r
419  * \brief Wrapper for the FMI function fmiGetOutputDerivatives(...) \r
420  * \r
421  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
422  * @param vr Array of value references.\r
423  * @param nvr Number of array elements.\r
424  * @param order Array of derivative orders.\r
425  * @param value (Output) Array of variable values.\r
426  * @return FMI status.\r
427  */
428 FMILIB_EXPORT fmi1_status_t fmi1_import_get_real_output_derivatives(fmi1_import_t* fmu, const fmi1_value_reference_t vr[], size_t nvr, const fmi1_integer_t order[], fmi1_real_t value[]);                                              
429
430 /**\r
431  * \brief Wrapper for the FMI function fmiCancelStep(...) \r
432  * \r
433  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
434  * @return FMI status.\r
435  */
436 FMILIB_EXPORT fmi1_status_t fmi1_import_cancel_step(fmi1_import_t* fmu);
437
438 /**\r
439  * \brief Wrapper for the FMI function fmiDoStep(...) \r
440  * \r
441  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
442  * @param currentCommunicationPoint Current communication point of the master.\r
443  * @param communicationStepSize Communication step size.\r
444  * @param newStep Indicates whether or not the last communication step was accepted by the master.\r
445  * @return FMI status.\r
446  */
447 FMILIB_EXPORT fmi1_status_t fmi1_import_do_step(fmi1_import_t* fmu, fmi1_real_t currentCommunicationPoint, fmi1_real_t communicationStepSize, fmi1_boolean_t newStep);
448
449 /**\r
450  * \brief Wrapper for the FMI function fmiGetStatus(...) \r
451  * \r
452  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
453  * @param s Kind of status to return the value for.\r
454  * @param value (Output) FMI status value.\r
455  * @return FMI status.\r
456  */
457 FMILIB_EXPORT fmi1_status_t fmi1_import_get_status(fmi1_import_t* fmu, const fmi1_status_kind_t s, fmi1_status_t*  value);
458
459 /**\r
460  * \brief Wrapper for the FMI function fmiGetRealStatus(...) \r
461  * \r
462  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
463  * @param s Kind of status to return the value for.\r
464  * @param value (Output) FMI real value.\r
465  * @return FMI status.\r
466  */
467 FMILIB_EXPORT fmi1_status_t fmi1_import_get_real_status(fmi1_import_t* fmu, const fmi1_status_kind_t s, fmi1_real_t*    value);
468
469 /**\r
470  * \brief Wrapper for the FMI function fmiGetIntegerStatus(...) \r
471  * \r
472  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
473  * @param s Kind of status to return the value for.\r
474  * @param value (Output) FMI integer value.\r
475  * @return FMI status.\r
476  */
477 FMILIB_EXPORT fmi1_status_t fmi1_import_get_integer_status(fmi1_import_t* fmu, const fmi1_status_kind_t s, fmi1_integer_t* value);
478
479 /**\r
480  * \brief Wrapper for the FMI function fmiGetBooleanStatus(...) \r
481  * \r
482  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
483  * @param s Kind of status to return the value for.\r
484  * @param value (Output) FMI boolean value.\r
485  * @return FMI status.\r
486  */
487 FMILIB_EXPORT fmi1_status_t fmi1_import_get_boolean_status(fmi1_import_t* fmu, const fmi1_status_kind_t s, fmi1_boolean_t* value);
488
489 /**\r
490  * \brief Wrapper for the FMI function fmiGetStringStatus(...) \r
491  * \r
492  * @param fmu A model description object returned by fmi1_import_parse_xml() that has loaded the FMI functions, see fmi1_import_create_dllfmu().\r
493  * @param s Kind of status to return the value for.\r
494  * @param value (Output) FMI string value.\r
495  * @return FMI status.\r
496  */
497 FMILIB_EXPORT fmi1_status_t fmi1_import_get_string_status(fmi1_import_t* fmu, const fmi1_status_kind_t s, fmi1_string_t*  value);\r
498 \r
499 /**@} */\r
500 \r
501 \r
502 /**@} */\r
503 \r
504 #ifdef __cplusplus\r
505 }\r
506 #endif\r
507 #endif /* End of header FMI1_IMPORT_CAPI_H_ */\r