1 /* -------------------------------------------------------------------------
\r
3 * Function types for all function of the "FMI for Model Exchange 1.0"
\r
4 * and a struct with the corresponding function pointers.
\r
5 * Copyright 2011 QTronic GmbH. All rights reserved.
\r
6 * -------------------------------------------------------------------------
\r
12 #include <windows.h>
\r
13 #include "fmiModelFunctions.h"
\r
14 #include "xml_parser.h"
\r
16 typedef const char* (*fGetModelTypesPlatform)();
\r
17 typedef const char* (*fGetVersion)();
\r
18 typedef fmiComponent (*fInstantiateModel)(fmiString instanceName, fmiString GUID,
\r
19 fmiCallbackFunctions functions, fmiBoolean loggingOn);
\r
20 typedef void (*fFreeModelInstance) (fmiComponent c);
\r
21 typedef fmiStatus (*fSetDebugLogging) (fmiComponent c, fmiBoolean loggingOn);
\r
22 typedef fmiStatus (*fSetTime) (fmiComponent c, fmiReal time);
\r
23 typedef fmiStatus (*fSetContinuousStates)(fmiComponent c, const fmiReal x[], size_t nx);
\r
24 typedef fmiStatus (*fCompletedIntegratorStep)(fmiComponent c, fmiBoolean* callEventUpdate);
\r
25 typedef fmiStatus (*fSetReal) (fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiReal value[]);
\r
26 typedef fmiStatus (*fSetInteger)(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiInteger value[]);
\r
27 typedef fmiStatus (*fSetBoolean)(fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiBoolean value[]);
\r
28 typedef fmiStatus (*fSetString) (fmiComponent c, const fmiValueReference vr[], size_t nvr, const fmiString value[]);
\r
29 typedef fmiStatus (*fInitialize)(fmiComponent c, fmiBoolean toleranceControlled,
\r
30 fmiReal relativeTolerance, fmiEventInfo* eventInfo);
\r
31 typedef fmiStatus (*fGetDerivatives) (fmiComponent c, fmiReal derivatives[] , size_t nx);
\r
32 typedef fmiStatus (*fGetEventIndicators)(fmiComponent c, fmiReal eventIndicators[], size_t ni);
\r
33 typedef fmiStatus (*fGetReal) (fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiReal value[]);
\r
34 typedef fmiStatus (*fGetInteger)(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiInteger value[]);
\r
35 typedef fmiStatus (*fGetBoolean)(fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiBoolean value[]);
\r
36 typedef fmiStatus (*fGetString) (fmiComponent c, const fmiValueReference vr[], size_t nvr, fmiString value[]);
\r
37 typedef fmiStatus (*fEventUpdate) (fmiComponent c, fmiBoolean intermediateResults, fmiEventInfo* eventInfo);
\r
38 typedef fmiStatus (*fGetContinuousStates) (fmiComponent c, fmiReal states[], size_t nx);
\r
39 typedef fmiStatus (*fGetNominalContinuousStates)(fmiComponent c, fmiReal x_nominal[], size_t nx);
\r
40 typedef fmiStatus (*fGetStateValueReferences) (fmiComponent c, fmiValueReference vrx[], size_t nx);
\r
41 typedef fmiStatus (*fTerminate) (fmiComponent c);
\r
44 ModelDescription* modelDescription;
\r
46 fGetModelTypesPlatform getModelTypesPlatform;
\r
47 fGetVersion getVersion;
\r
48 fInstantiateModel instantiateModel;
\r
49 fFreeModelInstance freeModelInstance;
\r
50 fSetDebugLogging setDebugLogging;
\r
52 fSetContinuousStates setContinuousStates;
\r
53 fCompletedIntegratorStep completedIntegratorStep;
\r
55 fSetInteger setInteger;
\r
56 fSetBoolean setBoolean;
\r
57 fSetString setString;
\r
58 fInitialize initialize;
\r
59 fGetDerivatives getDerivatives;
\r
60 fGetEventIndicators getEventIndicators;
\r
62 fGetInteger getInteger;
\r
63 fGetBoolean getBoolean;
\r
64 fGetString getString;
\r
65 fEventUpdate eventUpdate;
\r
66 fGetContinuousStates getContinuousStates;
\r
67 fGetNominalContinuousStates getNominalContinuousStates;
\r
68 fGetStateValueReferences getStateValueReferences;
\r
69 fTerminate terminate;
\r
71 fInstantiateSlave instantiateSlave;
\r
72 fInitializeSlave initializeSlave;
\r
73 fTerminateSlave terminateSlave;
\r
74 fResetSlave resetSlave;
\r
75 fFreeSlaveInstance freeSlaveInstance;
\r
76 fGetRealOutputDerivatives getRealOutputDerivatives;
\r
77 fSetRealInputDerivatives setRealInputDerivatives;
\r
79 fCancelStep cancelStep;
\r
80 fGetStatus getStatus;
\r
81 fGetRealStatus getRealStatus;
\r
82 fGetIntegerStatus getIntegerStatus;
\r
83 fGetBooleanStatus getBooleanStatus;
\r
84 fGetStringStatus getStringStatus;
\r