- (JNIEnv *env, jobject obj, jstring id, jstring parameter, jint value) {
- /*
- const char *fmuId = env->GetStringUTFChars(id, 0);
- if(exists(fmuId)) {
- FMUControlStruct& fmuStruct = fmus[fmuId];
- const char *name = env->GetStringUTFChars(parameter, 0);
- string nameString = name;
- string modelId = fmuId;
- if(!referenceExists(fmuStruct, name)) {
- string errorMessage = "setIntegerValue: Model (id " + modelId + ") does not contain variable: " + nameString;
- env->ReleaseStringUTFChars(parameter, name);
- env->ReleaseStringUTFChars(id, fmuId);
- return throwException(env, errorMessage);
- } else {
- // Check variable type
- ScalarVariable* sv = fmuStruct.vars[fmuStruct.indexes[name]];
- switch (sv->typeSpec->type){
- case elm_Integer:
- break; // ok
- default: {
- string errorMessage = "setIntegerValue: " + nameString + " is not of type Integer. (type: + " + getTypeString(sv) + ")";
- env->ReleaseStringUTFChars(parameter, name);
- env->ReleaseStringUTFChars(id, fmuId);
- return throwException(env, errorMessage);
- }
- }
-
- // Change value
- fmiValueReference vr = getReference(fmuStruct, name);
- const int intValue = (int) value;
- fmuStruct.fmu.setInteger(fmuStruct.c, &vr, 1, &intValue);
- env->ReleaseStringUTFChars(parameter, name);
- env->ReleaseStringUTFChars(id, fmuId);
- return 1;
- }
- } else {
- string message = fmuId;
- env->ReleaseStringUTFChars(id, fmuId);
- return throwException(env, "setIntegerValue: Model id " + message + " not found");
+ (JNIEnv *env, jobject obj, jint id, jint vr, jint value) {
+
+ const char *error = "";
+ FMI1 fmi = fmus[id];
+ if (fmi.version == 1) {
+ FMI1_CS_SET_INTEGER(fmi.fmu, vr, value, &error);