fmi2.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /* -------------------------------------------------------------------------
  2. * fmi.h
  3. * Struct with the corresponding function pointers for FMI 2.0.
  4. * Copyright QTronic GmbH. All rights reserved.
  5. * -------------------------------------------------------------------------*/
  6. #ifndef FMI_H
  7. #define FMI_H
  8. #include "fmi2Functions.h"
  9. typedef struct {
  10. // ModelDescription* modelDescription;
  11. void *dllHandle; // fmu.so handle
  12. /***************************************************
  13. Common Functions
  14. ****************************************************/
  15. fmi2GetTypesPlatformTYPE *getTypesPlatform;
  16. fmi2GetVersionTYPE *getVersion;
  17. fmi2SetDebugLoggingTYPE *setDebugLogging;
  18. fmi2InstantiateTYPE *instantiate;
  19. fmi2FreeInstanceTYPE *freeInstance;
  20. fmi2SetupExperimentTYPE *setupExperiment;
  21. fmi2EnterInitializationModeTYPE *enterInitializationMode;
  22. fmi2ExitInitializationModeTYPE *exitInitializationMode;
  23. fmi2TerminateTYPE *terminate;
  24. fmi2ResetTYPE *reset;
  25. fmi2GetRealTYPE *getReal;
  26. fmi2GetIntegerTYPE *getInteger;
  27. fmi2GetBooleanTYPE *getBoolean;
  28. fmi2GetStringTYPE *getString;
  29. fmi2SetRealTYPE *setReal;
  30. fmi2SetIntegerTYPE *setInteger;
  31. fmi2SetBooleanTYPE *setBoolean;
  32. fmi2SetStringTYPE *setString;
  33. fmi2GetFMUstateTYPE *getFMUstate;
  34. fmi2SetFMUstateTYPE *setFMUstate;
  35. fmi2FreeFMUstateTYPE *freeFMUstate;
  36. fmi2SerializedFMUstateSizeTYPE *serializedFMUstateSize;
  37. fmi2SerializeFMUstateTYPE *serializeFMUstate;
  38. fmi2DeSerializeFMUstateTYPE *deSerializeFMUstate;
  39. fmi2GetDirectionalDerivativeTYPE *getDirectionalDerivative;
  40. /***************************************************
  41. Functions for FMI2 for Co-Simulation
  42. ****************************************************/
  43. fmi2SetRealInputDerivativesTYPE *setRealInputDerivatives;
  44. fmi2GetRealOutputDerivativesTYPE *getRealOutputDerivatives;
  45. fmi2DoStepTYPE *doStep;
  46. fmi2CancelStepTYPE *cancelStep;
  47. fmi2GetStatusTYPE *getStatus;
  48. fmi2GetRealStatusTYPE *getRealStatus;
  49. fmi2GetIntegerStatusTYPE *getIntegerStatus;
  50. fmi2GetBooleanStatusTYPE *getBooleanStatus;
  51. fmi2GetStringStatusTYPE *getStringStatus;
  52. /***************************************************
  53. Functions for FMI2 for Model Exchange
  54. ****************************************************/
  55. fmi2EnterEventModeTYPE *enterEventMode;
  56. fmi2NewDiscreteStatesTYPE *newDiscreteStates;
  57. fmi2EnterContinuousTimeModeTYPE *enterContinuousTimeMode;
  58. fmi2CompletedIntegratorStepTYPE *completedIntegratorStep;
  59. fmi2SetTimeTYPE *setTime;
  60. fmi2SetContinuousStatesTYPE *setContinuousStates;
  61. fmi2GetDerivativesTYPE *getDerivatives;
  62. fmi2GetEventIndicatorsTYPE *getEventIndicators;
  63. fmi2GetContinuousStatesTYPE *getContinuousStates;
  64. fmi2GetNominalsOfContinuousStatesTYPE *getNominalsOfContinuousStates;
  65. } FMU;
  66. #endif // FMI_H