#ifndef __FMI1_CS_H__ #define __FMI1_CS_H__ #ifdef __cplusplus extern "C" { #endif #ifdef _MSC_VER #define DLLEXPORT __declspec(dllexport) #else #define DLLEXPORT #endif typedef struct { char *name; char *description; char *declaredType; long vr; // 0 = real // 1 = integer // 2 = boolean // 3 = string // 4 = enumeration int type; // 0 = constant // 1 = parameter // 2 = discrete // 3 = continuous // 4 = unknown int variability; // 0 = input // 1 = output // 2 = internal // 3 = none // 4 = unknown int causality; } FMIL_Variable; typedef struct { char *name; char *description; char *quantity; char *unit; } FMIL_DeclaredType; DLLEXPORT int FMI_CS_LOAD(const char *zipFilePath, const char *unzipFolder, void **fmuPointer, int *fmuVersion, const char **error); DLLEXPORT int FMI1_CS_UNLOAD(void* fmu, const char **error); DLLEXPORT FMIL_Variable *FMI1_CS_GET_VARIABLES(void* fmu, int *count, const char **error); DLLEXPORT FMIL_DeclaredType *FMI1_CS_GET_DECLARED_TYPES(void* fmu, int *count, const char **error); DLLEXPORT int FMI1_CS_INSTANTIATE(void* fmu, const char *instanceName, const char **error); DLLEXPORT int FMI1_CS_INITIALIZE(void* fmu, const char **error); DLLEXPORT int FMI1_CS_STEP(void* fmu, double masterTime, double stepSize, const char **error); DLLEXPORT int FMI1_CS_SET_REAL(void* fmu, int vr, double value, const char **error); DLLEXPORT double FMI1_CS_GET_REAL(void* fmu, int vr, const char **error); DLLEXPORT int FMI1_CS_GET_REALS(void* fmu, int *vrs, double *values, int count, const char **error); DLLEXPORT int FMI2_CS_UNLOAD(void* fmu, const char **error); DLLEXPORT FMIL_Variable *FMI2_CS_GET_VARIABLES(void* fmu, int *count, const char **error); DLLEXPORT FMIL_DeclaredType *FMI2_CS_GET_DECLARED_TYPES(void* fmu, int *count, const char **error); DLLEXPORT int FMI2_CS_INSTANTIATE(void* fmu, const char *instanceName, const char **error); DLLEXPORT int FMI2_CS_INITIALIZE(void* fmu, const char **error); DLLEXPORT int FMI2_CS_STEP(void* fmu, double masterTime, double stepSize, const char **error); DLLEXPORT int FMI2_CS_SET_REAL(void* fmu, int vr, double value, const char **error); DLLEXPORT double FMI2_CS_GET_REAL(void* fmu, int vr, const char **error); DLLEXPORT int FMI2_CS_GET_REALS(void* fmu, int *vrs, double *values, int count, const char **error); #ifdef __cplusplus } #endif #endif // __FMI1_CS_H__