2 Copyright (C) 2012 Modelon AB
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the BSD style license.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 FMILIB_License.txt file for more details.
12 You should have received a copy of the FMILIB_License.txt file
13 along with this program. If not, contact Modelon AB <http://www.modelon.com>.
17 #ifndef FMI1_CAPI_IMPL_H_
18 #define FMI1_CAPI_IMPL_H_
24 #include <FMI1/fmi1_types.h>
25 #include <FMI1/fmi1_functions.h>
26 #include <FMI1/fmi1_enums.h>
27 #include <FMI1/fmi1_capi.h>
28 #include <JM/jm_portability.h>
29 #include <JM/jm_callbacks.h>
31 #define FMI_CAPI_MODULE_NAME "FMICAPI"
34 * \brief C-API struct used as a placeholder for the FMI funktions and shared library handler.
38 const char* modelIdentifier;
39 fmi1_callback_functions_t callBackFunctions;
41 jm_callbacks* callbacks;
45 fmi1_fmu_kind_enu_t standard;
52 fmi1_get_version_ft fmiGetVersion;
53 fmi1_set_debug_logging_ft fmiSetDebugLogging;
54 fmi1_set_real_ft fmiSetReal;
55 fmi1_set_integer_ft fmiSetInteger;
56 fmi1_set_boolean_ft fmiSetBoolean;
57 fmi1_set_string_ft fmiSetString;
58 fmi1_get_real_ft fmiGetReal;
59 fmi1_get_integer_ft fmiGetInteger;
60 fmi1_get_boolean_ft fmiGetBoolean;
61 fmi1_get_string_ft fmiGetString;
64 fmi1_get_model_typesPlatform_ft fmiGetModelTypesPlatform;
65 fmi1_instantiate_model_ft fmiInstantiateModel;
66 fmi1_free_model_instance_ft fmiFreeModelInstance;
67 fmi1_set_time_ft fmiSetTime;
68 fmi1_set_continuous_states_ft fmiSetContinuousStates;
69 fmi1_completed_integrator_step_ft fmiCompletedIntegratorStep;
70 fmi1_initialize_ft fmiInitialize;
71 fmi1_get_derivatives_ft fmiGetDerivatives;
72 fmi1_get_event_indicators_ft fmiGetEventIndicators;
73 fmi1_event_update_ft fmiEventUpdate;
74 fmi1_get_continuous_states_ft fmiGetContinuousStates;
75 fmi1_get_nominal_continuousStates_ft fmiGetNominalContinuousStates;
76 fmi1_get_state_valueReferences_ft fmiGetStateValueReferences;
77 fmi1_terminate_ft fmiTerminate;
80 fmi1_get_types_platform_ft fmiGetTypesPlatform;
81 fmi1_instantiate_slave_ft fmiInstantiateSlave;
82 fmi1_initialize_slave_ft fmiInitializeSlave;
83 fmi1_terminate_slave_ft fmiTerminateSlave;
84 fmi1_reset_slave_ft fmiResetSlave;
85 fmi1_free_slave_instance_ft fmiFreeSlaveInstance;
86 fmi1_set_real_inputDerivatives_ft fmiSetRealInputDerivatives;
87 fmi1_get_real_outputDerivatives_ft fmiGetRealOutputDerivatives;
88 fmi1_do_step_ft fmiDoStep;
89 fmi1_cancel_step_ft fmiCancelStep;
90 fmi1_get_status_ft fmiGetStatus;
91 fmi1_get_real_status_ft fmiGetRealStatus;
92 fmi1_get_integer_status_ft fmiGetIntegerStatus;
93 fmi1_get_boolean_status_ft fmiGetBooleanStatus;
94 fmi1_get_string_status_ft fmiGetStringStatus;
102 #endif /* End of header file FMI1_CAPI_IMPL_H_ */