#include <vector>
#include <iostream>
#include <regex>
+#include <atomic>
#include <org_simantics_fmil_FMILJNI.h>
using namespace std;
+static std::atomic<int> instanceNameID;
+
+int create_id() {
+ return instanceNameID++;
+}
+
struct FMI1 {
void *fmu;
JNIEXPORT jint JNICALL Java_org_simantics_fmil_core_FMIL_instantiateSimulation_1
(JNIEnv *env, jobject obj, jint id) {
+ int uniqueId = create_id();
+ std::string instanceName = std::to_string(uniqueId);
int returnValue;
const char *error = "";
FMI1 &fmi = fmus[id];
if (fmi.version == 1) {
- returnValue = FMI1_CS_INSTANTIATE(fmi.fmu, "", &error);
+ returnValue = FMI1_CS_INSTANTIATE(fmi.fmu, instanceName, &error);
} else if (fmi.version == 2) {
- returnValue = FMI2_CS_INSTANTIATE(fmi.fmu, "", &error);
+ returnValue = FMI2_CS_INSTANTIATE(fmi.fmu, instanceName, &error);
}
if(returnValue != 0) {
string message = "No FMU loaded: ";