From 816be185c1008de22a51ca995d56780f0c5861ca Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Mon, 24 Jun 2024 11:05:05 +0200 Subject: [PATCH] Rename fmiVersion to fmiMajorVersion (#518) and add FMI version string to Model Description --- fmusim/FMIModelDescription.c | 49 ++++++++++++++++++++---------------- fmusim/FMIModelDescription.h | 3 ++- fmusim/FMIRecorder.c | 6 ++--- fmusim/FMIUtil.c | 26 +++++++++---------- fmusim/FMIUtil.h | 2 +- fmusim/fmusim.c | 16 ++++++------ fmusim/fmusim_input.c | 28 ++++++++++----------- fmusim/fmusim_input.h | 2 +- include/FMI.h | 12 ++++----- src/FMI.c | 12 ++++----- src/FMI1.c | 4 +-- src/FMI2.c | 2 +- src/FMI3.c | 2 +- 13 files changed, 86 insertions(+), 78 deletions(-) diff --git a/fmusim/FMIModelDescription.c b/fmusim/FMIModelDescription.c index 20120029..850cc49c 100644 --- a/fmusim/FMIModelDescription.c +++ b/fmusim/FMIModelDescription.c @@ -60,7 +60,7 @@ static FMIModelDescription* readModelDescriptionFMI1(xmlNodePtr root) { CALL(FMICalloc((void**)&modelDescription, 1, sizeof(FMIModelDescription))); - modelDescription->fmiVersion = FMIVersion1; + modelDescription->fmiMajorVersion = FMIMajorVersion1; modelDescription->modelName = (char*)xmlGetProp(root, (xmlChar*)"modelName"); modelDescription->instantiationToken = (char*)xmlGetProp(root, (xmlChar*)"guid"); modelDescription->description = (char*)xmlGetProp(root, (xmlChar*)"description"); @@ -283,12 +283,12 @@ static FMIModelDescription* readModelDescriptionFMI2(xmlNodePtr root) { CALL(FMICalloc((void**)&modelDescription, 1, sizeof(FMIModelDescription))); - modelDescription->fmiVersion = FMIVersion2; - modelDescription->modelName = (char*)xmlGetProp(root, (xmlChar*)"modelName"); - modelDescription->instantiationToken = (char*)xmlGetProp(root, (xmlChar*)"guid"); - modelDescription->description = (char*)xmlGetProp(root, (xmlChar*)"description"); - modelDescription->generationTool = (char*)xmlGetProp(root, (xmlChar*)"generationTool"); - modelDescription->generationDate = (char*)xmlGetProp(root, (xmlChar*)"generationDate"); + modelDescription->fmiMajorVersion = FMIMajorVersion2; + modelDescription->modelName = (char*)xmlGetProp(root, (xmlChar*)"modelName"); + modelDescription->instantiationToken = (char*)xmlGetProp(root, (xmlChar*)"guid"); + modelDescription->description = (char*)xmlGetProp(root, (xmlChar*)"description"); + modelDescription->generationTool = (char*)xmlGetProp(root, (xmlChar*)"generationTool"); + modelDescription->generationDate = (char*)xmlGetProp(root, (xmlChar*)"generationDate"); modelDescription->variableNamingConvention = getVariableNamingConvention(root); const char* numberOfEventIndicators = (char*)xmlGetProp(root, (xmlChar*)"numberOfEventIndicators"); @@ -456,7 +456,7 @@ static FMIModelDescription* readModelDescriptionFMI3(xmlNodePtr root) { CALL(FMICalloc((void**)&modelDescription, 1, sizeof(FMIModelDescription))); - modelDescription->fmiVersion = FMIVersion3; + modelDescription->fmiMajorVersion = FMIMajorVersion3; modelDescription->modelName = (char*)xmlGetProp(root, (xmlChar*)"modelName"); modelDescription->instantiationToken = (char*)xmlGetProp(root, (xmlChar*)"instantiationToken"); modelDescription->description = (char*)xmlGetProp(root, (xmlChar*)"description"); @@ -749,8 +749,8 @@ FMIModelDescription* FMIReadModelDescription(const char* filename) { xmlSchemaParserCtxtPtr pctxt = NULL; xmlSchemaValidCtxtPtr vctxt = NULL; FMIModelDescription* modelDescription = NULL; - const char* version = NULL; - FMIVersion fmiVersion; + const char* fmiVersion = NULL; + FMIMajorVersion fmiMajorVersion; doc = xmlParseFile(filename); @@ -769,22 +769,22 @@ FMIModelDescription* FMIReadModelDescription(const char* filename) { goto TERMINATE; } - version = (char*)xmlGetProp(root, (xmlChar*)"fmiVersion"); + fmiVersion = (char*)xmlGetProp(root, (xmlChar*)"fmiVersion"); - if (!version) { + if (!fmiVersion) { FMILogError("Attribute fmiVersion is missing.\n"); goto TERMINATE; - } else if (!strcmp(version, "1.0")) { - fmiVersion = FMIVersion1; + } else if (!strcmp(fmiVersion, "1.0")) { + fmiMajorVersion = FMIMajorVersion1; pctxt = xmlSchemaNewMemParserCtxt((char*)fmi1Merged_xsd, fmi1Merged_xsd_len); - } else if (!strcmp(version, "2.0")) { - fmiVersion = FMIVersion2; + } else if (!strcmp(fmiVersion, "2.0")) { + fmiMajorVersion = FMIMajorVersion2; pctxt = xmlSchemaNewMemParserCtxt((char*)fmi2Merged_xsd, fmi2Merged_xsd_len); - } else if(!strncmp(version, "3.", 2)) { + } else if(!strncmp(fmiVersion, "3.", 2)) { pctxt = xmlSchemaNewMemParserCtxt((char*)fmi3Merged_xsd, fmi3Merged_xsd_len); - fmiVersion = FMIVersion3; + fmiMajorVersion = FMIMajorVersion3; } else { - FMILogError("Unsupported FMI version: %s.\n", version); + FMILogError("Unsupported FMI version: %s.\n", fmiVersion); goto TERMINATE; } @@ -806,14 +806,20 @@ FMIModelDescription* FMIReadModelDescription(const char* filename) { goto TERMINATE; } - if (fmiVersion == FMIVersion1) { + if (fmiMajorVersion == FMIMajorVersion1) { modelDescription = readModelDescriptionFMI1(root); - } else if (fmiVersion == FMIVersion2) { + } else if (fmiMajorVersion == FMIMajorVersion2) { modelDescription = readModelDescriptionFMI2(root); } else { modelDescription = readModelDescriptionFMI3(root); } + if (modelDescription) { + modelDescription->fmiVersion = fmiVersion; + } else { + xmlFree((void*)fmiVersion); + } + TERMINATE: if (vctxt) { @@ -841,6 +847,7 @@ void FMIFreeModelDescription(FMIModelDescription* modelDescription) { return; } + xmlFree((void*)modelDescription->fmiVersion); free((void*)modelDescription->modelName); free((void*)modelDescription->instantiationToken); free((void*)modelDescription->description); diff --git a/fmusim/FMIModelDescription.h b/fmusim/FMIModelDescription.h index a23d4119..2de4d12a 100644 --- a/fmusim/FMIModelDescription.h +++ b/fmusim/FMIModelDescription.h @@ -103,7 +103,8 @@ typedef struct { typedef struct { - FMIVersion fmiVersion; + FMIMajorVersion fmiMajorVersion; + const char* fmiVersion; const char* modelName; const char* instantiationToken; const char* description; diff --git a/fmusim/FMIRecorder.c b/fmusim/FMIRecorder.c index 70cc1f14..bab0c93b 100644 --- a/fmusim/FMIRecorder.c +++ b/fmusim/FMIRecorder.c @@ -89,7 +89,7 @@ FMIStatus FMISample(FMIInstance* instance, double time, FMIRecorder* result) { const FMIValueReference* vr = &variable->valueReference; const FMIVariableType type = variable->type; - if (instance->fmiVersion == FMIVersion1) { + if (instance->fmiMajorVersion == FMIMajorVersion1) { if (type == FMIRealType || type == FMIDiscreteRealType) { fmi1Real value; @@ -109,7 +109,7 @@ FMIStatus FMISample(FMIInstance* instance, double time, FMIRecorder* result) { fprintf(file, ",\"%s\"", value); } - } else if (instance->fmiVersion == FMIVersion2) { + } else if (instance->fmiMajorVersion == FMIMajorVersion2) { if (type == FMIRealType || type == FMIDiscreteRealType) { fmi2Real value; @@ -129,7 +129,7 @@ FMIStatus FMISample(FMIInstance* instance, double time, FMIRecorder* result) { fprintf(file, ",\"%s\"", value); } - } else if (instance->fmiVersion == FMIVersion3) { + } else if (instance->fmiMajorVersion == FMIMajorVersion3) { size_t nValues; diff --git a/fmusim/FMIUtil.c b/fmusim/FMIUtil.c index fbee2c67..2a776c79 100644 --- a/fmusim/FMIUtil.c +++ b/fmusim/FMIUtil.c @@ -174,7 +174,7 @@ FMIStatus FMI3SetValues( (*nValues)++; \ } -FMIStatus FMIParseValues(FMIVersion fmiVersion, FMIVariableType type, const char* literal, size_t* nValues, void** values) { +FMIStatus FMIParseValues(FMIMajorVersion fmiMajorVersion, FMIVariableType type, const char* literal, size_t* nValues, void** values) { FMIStatus status = FMIOK; @@ -235,14 +235,14 @@ FMIStatus FMIParseValues(FMIVersion fmiVersion, FMIVariableType type, const char size_t size = 0; - switch (fmiVersion) { - case FMIVersion1: + switch (fmiMajorVersion) { + case FMIMajorVersion1: size = sizeof(fmi1Boolean); break; - case FMIVersion2: + case FMIMajorVersion2: size = sizeof(fmi2Boolean); break; - case FMIVersion3: + case FMIMajorVersion3: size = sizeof(fmi2Boolean); break; } @@ -487,13 +487,13 @@ FMIStatus FMIRestoreFMUStateFromFile(FMIInstance* S, const char* filename) { void* FMUState = NULL; - switch (S->fmiVersion) { - case FMIVersion2: + switch (S->fmiMajorVersion) { + case FMIMajorVersion2: CALL(FMI2DeSerializeFMUstate(S, serializedFMUState, serializedFMUStateSize, &FMUState)); CALL(FMI2SetFMUstate(S, FMUState)); CALL(FMI2FreeFMUstate(S, FMUState)); break; - case FMIVersion3: + case FMIMajorVersion3: CALL(FMI3DeserializeFMUState(S, serializedFMUState, serializedFMUStateSize, &FMUState)); CALL(FMI3SetFMUState(S, FMUState)); CALL(FMI3FreeFMUState(S, FMUState)); @@ -513,7 +513,7 @@ FMIStatus FMIRestoreFMUStateFromFile(FMIInstance* S, const char* filename) { FMIStatus FMISaveFMUStateToFile(FMIInstance* S, const char* filename) { - if (S->fmiVersion == FMIVersion1) { + if (S->fmiMajorVersion == FMIMajorVersion1) { return FMIError; } @@ -521,7 +521,7 @@ FMIStatus FMISaveFMUStateToFile(FMIInstance* S, const char* filename) { void* FMUState = NULL; - if (S->fmiVersion == FMIVersion2) { + if (S->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2GetFMUstate(S, &FMUState)); } else { CALL(FMI3GetFMUState(S, &FMUState)); @@ -529,7 +529,7 @@ FMIStatus FMISaveFMUStateToFile(FMIInstance* S, const char* filename) { size_t serializedFMUStateSize = 0; - if (S->fmiVersion == FMIVersion2) { + if (S->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2SerializedFMUstateSize(S, FMUState, &serializedFMUStateSize)); } else { CALL(FMI3SerializedFMUStateSize(S, FMUState, &serializedFMUStateSize)); @@ -539,7 +539,7 @@ FMIStatus FMISaveFMUStateToFile(FMIInstance* S, const char* filename) { CALL(FMICalloc((void**)&serializedFMUState, serializedFMUStateSize, sizeof(char))); - if (S->fmiVersion == FMIVersion2) { + if (S->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2SerializeFMUstate(S, FMUState, serializedFMUState, serializedFMUStateSize)); } else { CALL(FMI3SerializeFMUState(S, FMUState, serializedFMUState, serializedFMUStateSize)); @@ -563,7 +563,7 @@ FMIStatus FMISaveFMUStateToFile(FMIInstance* S, const char* filename) { free(serializedFMUState); - if (S->fmiVersion == FMIVersion2) { + if (S->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2FreeFMUstate(S, FMUState)); } else { CALL(FMI3FreeFMUState(S, FMUState)); diff --git a/fmusim/FMIUtil.h b/fmusim/FMIUtil.h index 9a2d81a3..01f53603 100644 --- a/fmusim/FMIUtil.h +++ b/fmusim/FMIUtil.h @@ -37,7 +37,7 @@ FMIStatus FMI3SetValues( const void* values, size_t nValues); -FMIStatus FMIParseValues(FMIVersion fmiVerion, FMIVariableType type, const char* literal, size_t* nValues, void** values); +FMIStatus FMIParseValues(FMIMajorVersion fmiVerion, FMIVariableType type, const char* literal, size_t* nValues, void** values); FMIStatus FMIParseStartValues(FMIVariableType type, const char* literal, size_t nValues, void* values); diff --git a/fmusim/fmusim.c b/fmusim/fmusim.c index 7ee4b548..44c9d3b8 100644 --- a/fmusim/fmusim.c +++ b/fmusim/fmusim.c @@ -150,7 +150,7 @@ FMIStatus applyStartValues(FMIInstance* S, const FMISimulationSettings* settings if (causality == FMIStructuralParameter && type == FMIUInt64Type) { - CALL(FMIParseValues(FMIVersion3, type, literal, &nValues, &values)); + CALL(FMIParseValues(FMIMajorVersion3, type, literal, &nValues, &values)); if (!configurationMode) { CALL(FMI3EnterConfigurationMode(S)); @@ -180,7 +180,7 @@ FMIStatus applyStartValues(FMIInstance* S, const FMISimulationSettings* settings continue; } - CALL(FMIParseValues(S->fmiVersion, type, literal, &nValues, &values)); + CALL(FMIParseValues(S->fmiMajorVersion, type, literal, &nValues, &values)); if (variable->type == FMIBinaryType) { @@ -190,11 +190,11 @@ FMIStatus applyStartValues(FMIInstance* S, const FMISimulationSettings* settings } else { - if (S->fmiVersion == FMIVersion1) { + if (S->fmiMajorVersion == FMIMajorVersion1) { CALL(FMI1SetValues(S, type, &vr, 1, values)); - } else if (S->fmiVersion == FMIVersion2) { + } else if (S->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2SetValues(S, type, &vr, 1, values)); - } else if (S->fmiVersion == FMIVersion3) { + } else if (S->fmiMajorVersion == FMIMajorVersion3) { CALL(FMI3SetValues(S, type, &vr, 1, values, nValues)); } } @@ -425,7 +425,7 @@ int main(int argc, const char* argv[]) { } } - FMIPlatformBinaryPath(unzipdir, modelIdentifier, modelDescription->fmiVersion, platformBinaryPath, FMI_PATH_MAX); + FMIPlatformBinaryPath(unzipdir, modelIdentifier, modelDescription->fmiMajorVersion, platformBinaryPath, FMI_PATH_MAX); S = FMICreateInstance("instance1", logMessage, logFMICalls ? logFunctionCall : NULL); @@ -552,7 +552,7 @@ int main(int argc, const char* argv[]) { goto TERMINATE; } - if (modelDescription->fmiVersion == FMIVersion1) { + if (modelDescription->fmiMajorVersion == FMIMajorVersion1) { if (interfaceType == FMICoSimulation) { @@ -564,7 +564,7 @@ int main(int argc, const char* argv[]) { status = simulateFMI1ME(S, modelDescription, result, input, &settings); } - } else if (modelDescription->fmiVersion == FMIVersion2) { + } else if (modelDescription->fmiMajorVersion == FMIMajorVersion2) { char resourceURI[FMI_PATH_MAX] = ""; CALL(FMIPathToURI(resourcePath, resourceURI, FMI_PATH_MAX)); diff --git a/fmusim/fmusim_input.c b/fmusim/fmusim_input.c index 1345977a..a25978f0 100644 --- a/fmusim/fmusim_input.c +++ b/fmusim/fmusim_input.c @@ -19,7 +19,7 @@ FMUStaticInput* FMIReadInput(const FMIModelDescription* modelDescription, const CALL(FMICalloc((void**)&input, 1, sizeof(FMUStaticInput))); - input->fmiVersion = modelDescription->fmiVersion; + input->fmiMajorVersion = modelDescription->fmiMajorVersion; char* row = NULL; int cols = 0; @@ -82,7 +82,7 @@ FMUStaticInput* FMIReadInput(const FMIModelDescription* modelDescription, const const size_t index = (input->nRows * input->nVariables) + i; - CALL(FMIParseValues(modelDescription->fmiVersion, variable->type, col, &input->nValues[index], &input->values[index])); + CALL(FMIParseValues(modelDescription->fmiMajorVersion, variable->type, col, &input->nValues[index], &input->values[index])); i++; } @@ -114,7 +114,7 @@ void FMIFreeInput(FMUStaticInput* input) { FMIFree((void**)&input); } -static size_t FMISizeOf(FMIVariableType type, FMIVersion fmiVersion) { +static size_t FMISizeOf(FMIVariableType type, FMIMajorVersion fmiMajorVersion) { switch (type) { @@ -151,12 +151,12 @@ static size_t FMISizeOf(FMIVariableType type, FMIVersion fmiVersion) { return sizeof(fmi3UInt64); case FMIBooleanType: - switch (fmiVersion) { - case FMIVersion1: + switch (fmiMajorVersion) { + case FMIMajorVersion1: return sizeof(fmi1Boolean); - case FMIVersion2: + case FMIMajorVersion2: return sizeof(fmi2Boolean); - case FMIVersion3: + case FMIMajorVersion3: return sizeof(fmi3Boolean); default: return 0; @@ -208,7 +208,7 @@ double FMINextInputEvent(const FMUStaticInput* input, double time) { const void* values0 = input->values[i * input->nVariables + j]; const void* values1 = input->values[(i + 1) * input->nVariables + j]; - const size_t size = FMISizeOf(type, input->fmiVersion) * nValues; + const size_t size = FMISizeOf(type, input->fmiMajorVersion) * nValues; if (memcmp(values0, values1, size)) { return t1; @@ -324,11 +324,11 @@ FMIStatus FMIApplyInput(FMIInstance* instance, const FMUStaticInput* input, doub } - if (instance->fmiVersion == FMIVersion1) { + if (instance->fmiMajorVersion == FMIMajorVersion1) { CALL(FMI1SetValues(instance, type, &vr, 1, input->buffer)); - } else if (instance->fmiVersion == FMIVersion2) { + } else if (instance->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2SetValues(instance, type, &vr, 1, input->buffer)); - } else if (instance->fmiVersion == FMIVersion3) { + } else if (instance->fmiMajorVersion == FMIMajorVersion3) { CALL(FMI3SetValues(instance, type, &vr, 1, input->buffer, nValues)); } @@ -366,11 +366,11 @@ FMIStatus FMIApplyInput(FMIInstance* instance, const FMUStaticInput* input, doub if (nValues == 0) continue; - if (instance->fmiVersion == FMIVersion1) { + if (instance->fmiMajorVersion == FMIMajorVersion1) { CALL(FMI1SetValues(instance, type, &vr, 1, values)); - } else if (instance->fmiVersion == FMIVersion2) { + } else if (instance->fmiMajorVersion == FMIMajorVersion2) { CALL(FMI2SetValues(instance, type, &vr, 1, values)); - } else if (instance->fmiVersion == FMIVersion3) { + } else if (instance->fmiMajorVersion == FMIMajorVersion3) { CALL(FMI3SetValues(instance, type, &vr, 1, values, nValues)); } diff --git a/fmusim/fmusim_input.h b/fmusim/fmusim_input.h index 5fa6a314..9db447a3 100644 --- a/fmusim/fmusim_input.h +++ b/fmusim/fmusim_input.h @@ -5,7 +5,7 @@ typedef struct { - FMIVersion fmiVersion; + FMIMajorVersion fmiMajorVersion; size_t nVariables; const FMIModelVariable** variables; size_t* nValues; diff --git a/include/FMI.h b/include/FMI.h index 2241c937..35759e53 100644 --- a/include/FMI.h +++ b/include/FMI.h @@ -100,10 +100,10 @@ typedef enum { } FMIVariableType; typedef enum { - FMIVersion1 = 1, - FMIVersion2 = 2, - FMIVersion3 = 3 -} FMIVersion; + FMIMajorVersion1 = 1, + FMIMajorVersion2 = 2, + FMIMajorVersion3 = 3 +} FMIMajorVersion; typedef enum { FMIModelExchange, @@ -175,7 +175,7 @@ struct FMIInstance_ { FMIStatus status; - FMIVersion fmiVersion; + FMIMajorVersion fmiMajorVersion; FMIInterfaceType interfaceType; @@ -205,7 +205,7 @@ FMI_STATIC void FMIAppendArrayToLogMessageBuffer(FMIInstance* instance, const vo FMI_STATIC FMIStatus FMIPathToURI(const char *path, char *uri, const size_t uriLength); -FMI_STATIC FMIStatus FMIPlatformBinaryPath(const char *unzipdir, const char *modelIdentifier, FMIVersion fmiVersion, char *platformBinaryPath, size_t size); +FMI_STATIC FMIStatus FMIPlatformBinaryPath(const char *unzipdir, const char *modelIdentifier, FMIMajorVersion fmiMajorVersion, char *platformBinaryPath, size_t size); #ifdef __cplusplus } /* end of extern "C" { */ diff --git a/src/FMI.c b/src/FMI.c index d9a1f497..2621defb 100644 --- a/src/FMI.c +++ b/src/FMI.c @@ -262,14 +262,14 @@ void FMIAppendArrayToLogMessageBuffer(FMIInstance* instance, const void* values, length = snprintf(s, n, "%" PRIu64, ((uint64_t *)values)[i]); break; case FMIBooleanType: - switch (instance->fmiVersion) { - case FMIVersion1: + switch (instance->fmiMajorVersion) { + case FMIMajorVersion1: length = snprintf(s, n, "%d", ((char*)values)[i]); break; - case FMIVersion2: + case FMIMajorVersion2: length = snprintf(s, n, "%d", ((int*)values)[i]); break; - case FMIVersion3: + case FMIMajorVersion3: length = snprintf(s, n, "%d", ((bool*)values)[i]); break; } @@ -391,7 +391,7 @@ FMIStatus FMIPathToURI(const char *path, char *uri, const size_t uriLength) { return FMIOK; } -FMIStatus FMIPlatformBinaryPath(const char *unzipdir, const char *modelIdentifier, FMIVersion fmiVersion, char *platformBinaryPath, size_t size) { +FMIStatus FMIPlatformBinaryPath(const char *unzipdir, const char *modelIdentifier, FMIMajorVersion fmiMajorVersion, char *platformBinaryPath, size_t size) { char* separator = ""; // optional separator after the unzipdir @@ -401,7 +401,7 @@ FMIStatus FMIPlatformBinaryPath(const char *unzipdir, const char *modelIdentifie separator = FMI_FILE_SEPARATOR; } - const char* platform = fmiVersion < FMIVersion3 ? FMI_PLATFORM : FMI_PLATFORM_TUPLE; + const char* platform = fmiMajorVersion < FMIMajorVersion3 ? FMI_PLATFORM : FMI_PLATFORM_TUPLE; const int rc = snprintf(platformBinaryPath, size, "%s%sbinaries" FMI_FILE_SEPARATOR "%s" FMI_FILE_SEPARATOR "%s" FMI_SHARED_LIBRARY_EXTENSION, unzipdir, separator, platform, modelIdentifier); diff --git a/src/FMI1.c b/src/FMI1.c index d660f71e..16b63e89 100644 --- a/src/FMI1.c +++ b/src/FMI1.c @@ -161,7 +161,7 @@ FMIStatus FMI1InstantiateModel(FMIInstance *instance, fmi1String modelIdentifier currentInstance = instance; - instance->fmiVersion = FMIVersion1; + instance->fmiMajorVersion = FMIMajorVersion1; instance->interfaceType = FMIModelExchange; @@ -419,7 +419,7 @@ FMIStatus FMI1InstantiateSlave(FMIInstance *instance, fmi1String modelIdentifier currentInstance = instance; - instance->fmiVersion = FMIVersion1; + instance->fmiMajorVersion = FMIMajorVersion1; instance->interfaceType = FMICoSimulation; diff --git a/src/FMI2.c b/src/FMI2.c index 888ca93b..32991d65 100644 --- a/src/FMI2.c +++ b/src/FMI2.c @@ -136,7 +136,7 @@ FMIStatus FMI2SetDebugLogging(FMIInstance *instance, fmi2Boolean loggingOn, size FMIStatus FMI2Instantiate(FMIInstance *instance, const char *fmuResourceLocation, fmi2Type fmuType, fmi2String fmuGUID, fmi2Boolean visible, fmi2Boolean loggingOn) { - instance->fmiVersion = FMIVersion2; + instance->fmiMajorVersion = FMIMajorVersion2; instance->fmi2Functions = calloc(1, sizeof(FMI2Functions)); diff --git a/src/FMI3.c b/src/FMI3.c index 1540b1a2..3458960a 100644 --- a/src/FMI3.c +++ b/src/FMI3.c @@ -129,7 +129,7 @@ static FMIStatus loadSymbols3(FMIInstance *instance) { return FMIError; } - instance->fmiVersion = FMIVersion3; + instance->fmiMajorVersion = FMIMajorVersion3; /*************************************************** Common Functions