const char *valueChars = env->GetStringUTFChars(value, 0);
FMI1 fmi = fmus[id];
if (fmi.version == 1) {
- FMI1_CS_SET_INTEGER(fmi.fmu, vr, value != 0, &error);
+ FMI1_CS_SET_STRING(fmi.fmu, vr, valueChars, &error);
}
else if (fmi.version == 2) {
- FMI2_CS_SET_INTEGER(fmi.fmu, vr, value != 0, &error);
+ FMI2_CS_SET_STRING(fmi.fmu, vr, valueChars, &error);
}
env->ReleaseStringUTFChars(value, valueChars);
if (!isEmpty(error)) {
} 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);