From 617d3cfecbcb21e71d44d154cb65854d7e6bd41b Mon Sep 17 00:00:00 2001 From: lempinen Date: Fri, 18 Jan 2013 08:22:44 +0000 Subject: [PATCH] Separated fmu instantiation from initialization. Initial values can be changed after instantiation and before initialization with normal setRealValue, setBooleanValue, etc. If initialization has not been run after instantiation, and user tries to simulate steps, initialiation is run. (fixes #3909) git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@26644 ac1ea38d-2e2b-0410-8846-a27921b304fc --- .../libraries/FMUSimulator.dll | Bin 287744 -> 288768 bytes .../libraries/miniunz.dll | Bin 64512 -> 64512 bytes .../libraries/zlibwapi.dll | Bin 86528 -> 86528 bytes .../include/org_simantics_fmu_FMUControlJNI.h | 16 ++++ .../FMUSimulator/src/fmu_control.cpp | 71 ++++++++++++++++-- .../src/org/simantics/fmu/FMUControlJNI.java | 46 +++++++++++- .../src/org_simantics_fmu_FMUControlJNI.h | 16 ++++ .../sysdyn/manager/SaveResultJob.java | 3 +- .../sysdyn/manager/SysdynGameExperiment.java | 62 ++++++++------- 9 files changed, 178 insertions(+), 36 deletions(-) diff --git a/org.simantics.fmu.me.win32/libraries/FMUSimulator.dll b/org.simantics.fmu.me.win32/libraries/FMUSimulator.dll index 52c78ab79ca12790bf8138918d32728dd92a79d4..52dcd12b762d017f1526def213bb484719184623 100644 GIT binary patch delta 57108 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 Ve&%#|{0cCH82I~hjV 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 B1DpT= delta 7248 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 J`@yIV{{!9%b&mi5 diff --git a/org.simantics.fmu.me.win32/libraries/zlibwapi.dll b/org.simantics.fmu.me.win32/libraries/zlibwapi.dll index 6efda05e77acb088904eecd97768b143062d8135..767b655a9a69443f7f28ee3aff3ceaf9e0aa31de 100644 GIT binary patch delta 31 ncmZoz!rHKebpa!@``^#a%#7Qa85tYRnce<=-rjD(SSbkrxhD&2 delta 31 mcmZoz!rHKebpa!@b8~JpGvjt subscription; // result subscriptions vector allVariables; // all variables in an initialized model @@ -385,6 +387,22 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_setBooleanValue_1 } } +JNIEXPORT jboolean JNICALL Java_org_simantics_fmu_FMUControlJNI_isInitialized_1 + (JNIEnv *env, jobject obj, jstring id) { + const char *fmuId = env->GetStringUTFChars(id, 0); + if(exists(fmuId)) { + FMUControlStruct& fmuStruct = fmus[fmuId]; + env->ReleaseStringUTFChars(id, fmuId); + return fmuStruct.initialized; + } else { + string message = fmuId; + env->ReleaseStringUTFChars(id, fmuId); + throwException(env, "getTime: Model id " + message + " not found"); + return false; + } +} + + JNIEXPORT jdouble JNICALL Java_org_simantics_fmu_FMUControlJNI_getTime_1 (JNIEnv *env, jobject obj, jstring id) { const char *fmuId = env->GetStringUTFChars(id, 0); @@ -462,7 +480,7 @@ JNIEXPORT jdoubleArray JNICALL Java_org_simantics_fmu_FMUControlJNI_getSubscribe return result; } -JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_initializeSimulation_1 +JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_instantiateSimulation_1 (JNIEnv *env, jobject obj, jstring id) { const char *fmuId = env->GetStringUTFChars(id, 0); @@ -480,8 +498,6 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_initializeSimulation if(fmu.modelDescription == NULL) return throwException(env, "No FMU loaded"); - fmiBoolean toleranceControlled = fmiFalse; - fmuStruct.currentTime = 0; // start time // instantiate the fmu @@ -507,11 +523,9 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_initializeSimulation //if (!x || !xdot) return error("out of memory"); if (!fmuStruct.x || !fmuStruct.xdot || fmuStruct.nz>0 && (!fmuStruct.z || !fmuStruct.prez)) return throwException(env, "out of memory"); - // set the start time and initialize + // set the start time fmuStruct.fmiFlag = fmu.setTime(fmuStruct.c, fmuStruct.currentTime); if (fmuStruct.fmiFlag > fmiWarning) return throwException(env, "could not set time"); - fmuStruct.fmiFlag = fmu.initialize(fmuStruct.c, toleranceControlled, fmuStruct.currentTime, &(fmuStruct.eventInfo)); - if (fmuStruct.fmiFlag > fmiWarning) return throwException(env, "could not initialize model"); // Clear all variables -vector fmuStruct.allVariables.clear(); @@ -524,6 +538,42 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_initializeSimulation fmuStruct.indexes.insert ( pair(s,k) ); } + // Set initialized flag to 0 + fmuStruct.initialized = false; + + fflush(stdout); + return 1; + + } else { + string message = fmuId; + env->ReleaseStringUTFChars(id, fmuId); + return throwException(env, "instantiateSimulation: Model id " + message + " not found"); + } +} + +JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_initializeSimulation_1 + (JNIEnv *env, jobject obj, jstring id) { + + const char *fmuId = env->GetStringUTFChars(id, 0); + if(exists(fmuId)) { + FMUControlStruct& fmuStruct = fmus[fmuId]; + env->ReleaseStringUTFChars(id, fmuId); + + FMU& fmu = fmuStruct.fmu; + + if(fmu.modelDescription == NULL) + return throwException(env, "No FMU loaded"); + + if(fmuStruct.initialized == true) + return throwException(env, "FMU already initialized. Instantiate it first."); + + fmiBoolean toleranceControlled = fmiFalse; + + fmuStruct.fmiFlag = fmu.initialize(fmuStruct.c, toleranceControlled, fmuStruct.currentTime, &(fmuStruct.eventInfo)); + if (fmuStruct.fmiFlag > fmiWarning) return throwException(env, "could not initialize model"); + + fmuStruct.initialized = true; + fflush(stdout); return 1; @@ -617,7 +667,14 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_simulateStep_1 } if(fmuStruct.x == NULL) { - return throwException(env, "Simulate step failed - fmu not initialized"); + return throwException(env, "Simulate step failed - fmu not instantiated"); + } + + if(fmuStruct.initialized == false) { + fmiBoolean toleranceControlled = fmiFalse; + fmuStruct.fmiFlag = fmuStruct.fmu.initialize(fmuStruct.c, toleranceControlled, fmuStruct.currentTime, &(fmuStruct.eventInfo)); + if (fmuStruct.fmiFlag > fmiWarning) return throwException(env, "could not initialize model"); + fmuStruct.initialized = true; } FMU& fmu = fmuStruct.fmu; diff --git a/org.simantics.fmu/src/org/simantics/fmu/FMUControlJNI.java b/org.simantics.fmu/src/org/simantics/fmu/FMUControlJNI.java index f49c2627..716a864b 100644 --- a/org.simantics.fmu/src/org/simantics/fmu/FMUControlJNI.java +++ b/org.simantics.fmu/src/org/simantics/fmu/FMUControlJNI.java @@ -200,11 +200,37 @@ public class FMUControlJNI { private native int setStepLength_(String id, double step); /** - * Initializes a simulation. + * Instantiates a simulation. *

* Make sure that an FMU is loaded first. * @throws FMUJNIException */ + public void instantiateSimulation() throws FMUJNIException { + synchronized(syncObject) { + + try { + + int ret = instantiateSimulation_(getModelID()); + if(ret == ERROR) + throw new FMUJNIException(getLastErrorMessage()); + + } catch (UnsatisfiedLinkError err) { + throw new FMUJNIException(UNSATISFIED_LINK); + } catch (Exception e) { + throw new FMUJNIException(e.getMessage()); + } + } + } + + private native int instantiateSimulation_(String id); + + + /** + * Initializes a simulation. + *

+ * Make sure that simulation is instantiated first! + * @throws FMUJNIException + */ public void initializeSimulation() throws FMUJNIException { synchronized(syncObject) { @@ -426,6 +452,24 @@ public class FMUControlJNI { } } private native int unloadFMU_(String id); + + /** + * Checks if fmu has been initialized + * @return current simulation time + */ + public boolean isInitialized() throws FMUJNIException { + synchronized(syncObject) { + try { + return isInitialized_(getModelID()); + } catch (UnsatisfiedLinkError err) { + throw new FMUJNIException(UNSATISFIED_LINK); + } catch (Exception e) { + throw new FMUJNIException(e.getMessage()); + } + } + } + + private native boolean isInitialized_(String id); /** * Get the current simulation time diff --git a/org.simantics.fmu/src/org_simantics_fmu_FMUControlJNI.h b/org.simantics.fmu/src/org_simantics_fmu_FMUControlJNI.h index 9f2697b4..20599879 100644 --- a/org.simantics.fmu/src/org_simantics_fmu_FMUControlJNI.h +++ b/org.simantics.fmu/src/org_simantics_fmu_FMUControlJNI.h @@ -23,6 +23,14 @@ JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_loadFMUFile_1 JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_setStepLength_1 (JNIEnv *, jobject, jstring, jdouble); +/* + * Class: org_simantics_fmu_FMUControlJNI + * Method: instantiateSimulation_ + * Signature: (Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_instantiateSimulation_1 + (JNIEnv *, jobject, jstring); + /* * Class: org_simantics_fmu_FMUControlJNI * Method: initializeSimulation_ @@ -95,6 +103,14 @@ JNIEXPORT jdoubleArray JNICALL Java_org_simantics_fmu_FMUControlJNI_getSubscribe JNIEXPORT jint JNICALL Java_org_simantics_fmu_FMUControlJNI_unloadFMU_1 (JNIEnv *, jobject, jstring); +/* + * Class: org_simantics_fmu_FMUControlJNI + * Method: isInitialized_ + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_simantics_fmu_FMUControlJNI_isInitialized_1 + (JNIEnv *, jobject, jstring); + /* * Class: org_simantics_fmu_FMUControlJNI * Method: getTime_ diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SaveResultJob.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SaveResultJob.java index 6269318e..859bbc7a 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SaveResultJob.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SaveResultJob.java @@ -19,7 +19,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; -import org.simantics.Simantics; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.WriteGraph; @@ -55,7 +54,7 @@ public class SaveResultJob extends Job { int resultItemsNumber = sysdynResult.numberOfVariables(); monitor.beginTask("Save result", resultItemsNumber * 2); try { - File file = Simantics.getSession().syncRequest(new WriteResultRequest() { + File file = session.syncRequest(new WriteResultRequest() { @Override public File perform(WriteGraph graph) throws DatabaseException { diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynGameExperiment.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynGameExperiment.java index ed136642..77332a9e 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynGameExperiment.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/manager/SysdynGameExperiment.java @@ -22,6 +22,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.simantics.db.AsyncReadGraph; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +import org.simantics.db.Session; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.AsyncListener; import org.simantics.db.request.Read; @@ -187,25 +188,7 @@ public class SysdynGameExperiment extends SysdynExperiment { try { control.loadFMUFile(simulationLocation.executableFile.getAbsolutePath()); // unzip and load fmu control.setStepLength(stepLength); // FIXME: fixed step lenghth - control.initializeSimulation(); // initialize simulation - if(inits.get("variableFilter") == null || inits.get("variableFilter").equals(".*")) - subscription = control.getAllVariables(); - else - subscription = control.filterVariables(inits.get("variableFilter")); - control.subscribe(subscription); // subscribe all variables - - // Initialize results - results.clear(); - - double[] initialValues = new double[subscription.length]; - initialValues = control.getSubscribedResults(initialValues); - for(int k = 0; k < subscription.length; k++) { - results.put(subscription[k], new ArrayList()); - results.get(subscription[k]).add(initialValues[k]); - } - - getCurrentResult().setResult(new GameResult(this.results, this.subscription)); - resultsChanged(); + instantiate(); } catch (FMUJNIException e) { System.err.println("SysdynGameExperiment initialization failed:\n\t" + e.getMessage()); @@ -260,6 +243,13 @@ public class SysdynGameExperiment extends SysdynExperiment { try { + + // initialize if not initialized + if(!control.isInitialized()) { + control.initializeSimulation(); + getInitialResultValues(); + } + control.setStepLength(stepLength); // Set step length each time in case there has been changes double time = control.getTime(); @@ -343,38 +333,58 @@ public class SysdynGameExperiment extends SysdynExperiment { return; if(time >-0.001 && time < 0.001) { - initialize(); + instantiate(); } else { System.out.println("rewindTo"); } } - private synchronized void initialize() { + @Override + public void refresh(Session session) { + try { + control.initializeSimulation(); + getInitialResultValues(); + + } catch (FMUJNIException e) { + System.err.println("SysdynGameExperiment instantiate failed: " + e.getMessage()); + } + } + + private synchronized void instantiate() { try { HashMap inits = getExperimentParameters(null); control.setStepLength(stepLength); // FIXME: fixed step lenghth - control.initializeSimulation(); // initialize simulation + control.instantiateSimulation(); // instantiate simulation if(inits.get("variableFilter") == null || inits.get("variableFilter").equals(".*")) subscription = control.getAllVariables(); else subscription = control.filterVariables(inits.get("variableFilter")); control.subscribe(subscription); // subscribe all variables + getInitialResultValues(); + + } catch (FMUJNIException e) { + System.err.println("SysdynGameExperiment instantiate failed: " + e.getMessage()); + } + } + + private synchronized void getInitialResultValues() { + try { // Initialize results results.clear(); - + double[] initialValues = new double[subscription.length]; initialValues = control.getSubscribedResults(initialValues); for(int k = 0; k < subscription.length; k++) { results.put(subscription[k], new ArrayList()); results.get(subscription[k]).add(initialValues[k]); } - + getCurrentResult().setResult(new GameResult(this.results, this.subscription)); - resultsChanged(); + resultsChanged(); } catch (FMUJNIException e) { - System.err.println("SysdynGameExperiment rewind failed: " + e.getMessage()); + System.err.println("SysdynGameExperiment getInitialResultValues failed: " + e.getMessage()); } } } -- 2.47.1