struct FMI1 {\r
\r
void *fmu;\r
- vector<string> variables; // all variables in an initialized model\r
- vector<int> valueReferences; // all value references\r
- vector<int> subscription; // subscribed value references\r
+\r
+ vector<string> variables;\r
+ vector<string> descriptions;\r
+ vector<int> valueReferences;\r
+ vector<int> types;\r
+ vector<int> variabilities;\r
+ vector<int> causalities;\r
+\r
+ vector<int> subscription;\r
double currentTime;\r
double timeStep;\r
\r
vars = FMI1_CS_GET_VARIABLES(fmi1.fmu, &variableCount);\r
for(int i=0;i<variableCount;i++) {\r
fmi1.variables.push_back(string(vars[i].name));\r
+ if(vars[i].description)\r
+ fmi1.descriptions.push_back(string(vars[i].description));\r
+ else\r
+ fmi1.descriptions.push_back(string(""));\r
+ fmi1.types.push_back(vars[i].type);\r
+ fmi1.causalities.push_back(vars[i].causality);\r
+ fmi1.variabilities.push_back(vars[i].variability);\r
fmi1.valueReferences.push_back(vars[i].vr);\r
}\r
\r
\r
}\r
\r
+JNIEXPORT jobjectArray JNICALL Java_org_simantics_fmil_FMIL_getAllVariableDescriptions_1\r
+ (JNIEnv *env, jobject obj, jint id) {\r
+\r
+ jobjectArray ret= (jobjectArray)env->NewObjectArray(fmus[id].descriptions.size(), \r
+ env->FindClass("java/lang/String"), \r
+ env->NewStringUTF("")); \r
+ \r
+ for(int i=0;i<fmus[id].descriptions.size();i++) { \r
+ env->SetObjectArrayElement(ret,i,env->NewStringUTF(fmus[id].descriptions[i].c_str())); \r
+ } \r
+\r
+ return ret; \r
+\r
+}\r
+\r
JNIEXPORT jintArray JNICALL Java_org_simantics_fmil_FMIL_getAllVariableReferences_1\r
(JNIEnv *env, jobject obj, jint id, jintArray result) {\r
\r
\r
}\r
\r
+JNIEXPORT jintArray JNICALL Java_org_simantics_fmil_FMIL_getAllVariableTypes_1\r
+ (JNIEnv *env, jobject obj, jint id, jintArray result) {\r
+\r
+ jboolean isCopy;\r
+ jint* resultElements = env -> GetIntArrayElements(result, &isCopy);\r
+ jsize n = env -> GetArrayLength(result);\r
+\r
+ int i;\r
+ for (i = 0; i < n; i++) {\r
+ resultElements[i] = fmus[id].types[i];\r
+ } \r
+ \r
+ if (isCopy == JNI_TRUE) {\r
+ env -> ReleaseIntArrayElements(result, resultElements, 0);\r
+ }\r
+\r
+ return result;\r
+\r
+}\r
+\r
+JNIEXPORT jintArray JNICALL Java_org_simantics_fmil_FMIL_getAllVariableVariabilities_1\r
+ (JNIEnv *env, jobject obj, jint id, jintArray result) {\r
+\r
+ jboolean isCopy;\r
+ jint* resultElements = env -> GetIntArrayElements(result, &isCopy);\r
+ jsize n = env -> GetArrayLength(result);\r
+\r
+ int i;\r
+ for (i = 0; i < n; i++) {\r
+ resultElements[i] = fmus[id].variabilities[i];\r
+ } \r
+ \r
+ if (isCopy == JNI_TRUE) {\r
+ env -> ReleaseIntArrayElements(result, resultElements, 0);\r
+ }\r
+\r
+ return result;\r
+\r
+}\r
+\r
+JNIEXPORT jintArray JNICALL Java_org_simantics_fmil_FMIL_getAllVariableCausalities_1\r
+ (JNIEnv *env, jobject obj, jint id, jintArray result) {\r
+\r
+ jboolean isCopy;\r
+ jint* resultElements = env -> GetIntArrayElements(result, &isCopy);\r
+ jsize n = env -> GetArrayLength(result);\r
+\r
+ int i;\r
+ for (i = 0; i < n; i++) {\r
+ resultElements[i] = fmus[id].causalities[i];\r
+ } \r
+ \r
+ if (isCopy == JNI_TRUE) {\r
+ env -> ReleaseIntArrayElements(result, resultElements, 0);\r
+ }\r
+\r
+ return result;\r
+\r
+}\r
+\r
/*\r
JNIEXPORT jobjectArray JNICALL Java_org_simantics_fmil_FMIL_filterVariables_1\r
(JNIEnv *env, jobject obj, jstring id, jstring regexp) {\r