From f6f05cb36bc0b849af8090efac1d549779e2076f Mon Sep 17 00:00:00 2001 From: Miro Richard Eklund Date: Wed, 10 Oct 2018 14:49:08 +0300 Subject: [PATCH] Pending status can be returns from FMU to Native C to Java Previous doStep only returned status OK or ERROR. Now pending status is possible for asyncronous FMUs. gitlab #10 Change-Id: I5d2ff07e98fe0137fcc9ed3500b3b0986bf1dbe0 --- org.simantics.fmil.core/README.md | 6 +++--- .../native/FMUSimulator/src/fmi_util.c | 4 ++++ .../native/FMUSimulator/src/fmu_control.cpp | 4 ++-- .../src/org/simantics/fmil/core/FMIL.java | 8 +++++--- .../libraries/FMUSimulator.dll | Bin 136704 -> 136704 bytes .../libraries/FMUSimulator.dll | Bin 168448 -> 168448 bytes 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/org.simantics.fmil.core/README.md b/org.simantics.fmil.core/README.md index d5ef5ef..e1036be 100644 --- a/org.simantics.fmil.core/README.md +++ b/org.simantics.fmil.core/README.md @@ -56,6 +56,6 @@ under /native/FMUSimulator/fmi_util.c.txt. The Dockerfile already does this so i When you have the Visual Studio files: Build from command-line our FMUSimulator.dll -1) Open a terminal -2) Navigate to org.simantics.fmil.core/native/FMUSimulator -3) Run "msbuild.exe" +1) Open a VS development terminal +2) Navigate to org.simantics.fmil.core/native +3) Run "windowsbuildsim.bat" diff --git a/org.simantics.fmil.core/native/FMUSimulator/src/fmi_util.c b/org.simantics.fmil.core/native/FMUSimulator/src/fmi_util.c index 5341d95..e91a6c4 100644 --- a/org.simantics.fmil.core/native/FMUSimulator/src/fmi_util.c +++ b/org.simantics.fmil.core/native/FMUSimulator/src/fmi_util.c @@ -571,6 +571,8 @@ int FMI1_CS_STEP(void *fmu, double masterTime, double stepSize, const char **err if (status == fmi1_status_error || status == fmi1_status_fatal) { *error = "Error happened during stepping!"; return 1; + } else if (status == fmi1_status_pending) { + return 2; } return 0; } @@ -583,6 +585,8 @@ int FMI2_CS_STEP(void *fmu, double masterTime, double stepSize, const char **err if (status == fmi2_status_error || status == fmi2_status_fatal) { *error = "Error happened during stepping!"; return 1; + } else if (status == fmi2_status_pending) { + return 2; } return 0; } diff --git a/org.simantics.fmil.core/native/FMUSimulator/src/fmu_control.cpp b/org.simantics.fmil.core/native/FMUSimulator/src/fmu_control.cpp index ae86d2b..28e75f7 100644 --- a/org.simantics.fmil.core/native/FMUSimulator/src/fmu_control.cpp +++ b/org.simantics.fmil.core/native/FMUSimulator/src/fmu_control.cpp @@ -693,14 +693,14 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmil_core_FMIL_simulateStep_1 } else if (fmi.version == 2) { returnValue = FMI2_CS_STEP(fmi.fmu, fmi.currentTime, fmi.timeStep, &error); } - if(returnValue != 0) { + if(returnValue == 1) { string message = "Could not simulate step: "; return throwException(env, message += error); } fmi.currentTime += fmi.timeStep; - return 0; + return returnValue; //Pass return value up. 0 is OK, 1 is error, 2 is pending /* const char *fmuId = env->GetStringUTFChars(id, 0); diff --git a/org.simantics.fmil.core/src/org/simantics/fmil/core/FMIL.java b/org.simantics.fmil.core/src/org/simantics/fmil/core/FMIL.java index 06d1fd2..4b1eeac 100644 --- a/org.simantics.fmil.core/src/org/simantics/fmil/core/FMIL.java +++ b/org.simantics.fmil.core/src/org/simantics/fmil/core/FMIL.java @@ -39,6 +39,7 @@ public class FMIL { */ private static int OK = 0; private static int ERROR = 1; + private static int PENDING = 2; private static String UNSATISFIED_LINK = "Method not found. DLL might not be loaded properly."; public static final String TEMP_FMU_DIRECTORY_NAME = "fmil"; public static String TEMP_FMU_COMMON_DIRECTORY; @@ -513,10 +514,11 @@ public class FMIL { try { - int ret = simulateStep_(getModelIDNew()); - if(ret != OK) + int ret = simulateStep_(getModelIDNew()); //0 is ok, 1 is error, 2 is pending + if(ret == PENDING) + LOGGER.warn("Pending status return from FMU. This is not implemented in our Simulator yet!"); + else if(ret != OK) LOGGER.warn("Function return value != OK, an exception should have been thrown from native code!"); - } catch (FMILException e) { throw e; } catch (UnsatisfiedLinkError err) { diff --git a/org.simantics.fmil.win32/libraries/FMUSimulator.dll b/org.simantics.fmil.win32/libraries/FMUSimulator.dll index 23d5a23caa8a1b51d550ccd3f00acab73da61047..fddcb48658fb1b8794b5ab66caeb08316a084716 100644 GIT binary patch delta 11176 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 delta 10955 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 OZN!mf4ok$lcK-+V8=#N? delta 23240 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 nRc`L6L^S`Hf