2 Copyright (C) 2012 Modelon AB
\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.
\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
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
17 #include <FMI2/fmi2_capi.h>
\r
18 #include <FMI2/fmi2_capi_impl.h>
\r
21 fmi2_status_t fmi2_capi_enter_event_mode(fmi2_capi_t* fmu)
\r
23 assert(fmu); assert(fmu->c);
\r
24 jm_log_verbose(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2EnterEventMode");
\r
25 return fmu->fmi2EnterEventMode(fmu->c);
\r
28 fmi2_status_t fmi2_capi_new_discrete_states(fmi2_capi_t* fmu, fmi2_event_info_t* eventInfo)
\r
30 assert(fmu); assert(fmu->c);
\r
31 jm_log_verbose(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2NewDiscreteStates");
\r
32 return fmu->fmi2NewDiscreteStates(fmu->c, eventInfo);
\r
35 fmi2_status_t fmi2_capi_enter_continuous_time_mode(fmi2_capi_t* fmu)
\r
37 assert(fmu); assert(fmu->c);
\r
38 jm_log_verbose(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2EnterContinuousTimeMode");
\r
39 return fmu->fmi2EnterContinuousTimeMode(fmu->c);
\r
42 fmi2_status_t fmi2_capi_set_time(fmi2_capi_t* fmu, fmi2_real_t time)
\r
45 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2SetTime");
\r
46 return fmu->fmi2SetTime(fmu->c, time);
\r
49 fmi2_status_t fmi2_capi_set_continuous_states(fmi2_capi_t* fmu, const fmi2_real_t x[], size_t nx)
\r
52 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2SetContinuousStates");
\r
53 return fmu->fmi2SetContinuousStates(fmu->c, x, nx);
\r
56 fmi2_status_t fmi2_capi_completed_integrator_step(fmi2_capi_t* fmu,
\r
57 fmi2_boolean_t noSetFMUStatePriorToCurrentPoint,
\r
58 fmi2_boolean_t* enterEventMode, fmi2_boolean_t* terminateSimulation)
\r
61 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2CompletedIntegratorStep");
\r
62 return fmu->fmi2CompletedIntegratorStep(fmu->c, noSetFMUStatePriorToCurrentPoint,
\r
63 enterEventMode, terminateSimulation);
\r
66 fmi2_status_t fmi2_capi_get_derivatives(fmi2_capi_t* fmu, fmi2_real_t derivatives[], size_t nx)
\r
69 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2GetDerivatives");
\r
70 return fmu->fmi2GetDerivatives(fmu->c, derivatives, nx);
\r
73 fmi2_status_t fmi2_capi_get_event_indicators(fmi2_capi_t* fmu, fmi2_real_t eventIndicators[], size_t ni)
\r
76 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2GetEventIndicators");
\r
77 return fmu->fmi2GetEventIndicators(fmu->c, eventIndicators, ni);
\r
80 fmi2_status_t fmi2_capi_get_continuous_states(fmi2_capi_t* fmu, fmi2_real_t states[], size_t nx)
\r
83 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2GetContinuousStates");
\r
84 return fmu->fmi2GetContinuousStates(fmu->c, states, nx);
\r
87 fmi2_status_t fmi2_capi_get_nominals_of_continuous_states(fmi2_capi_t* fmu, fmi2_real_t x_nominal[], size_t nx)
\r
90 jm_log_debug(fmu->callbacks, FMI_CAPI_MODULE_NAME, "Calling fmi2GetNominalsOfContinuousStates");
\r
91 return fmu->fmi2GetNominalsOfContinuousStates(fmu->c, x_nominal, nx);
\r