Previously the default values were 0.0. Now, we can clearly see if the
values are fetched internally correctly by starting out with NaN. If an
actual value is found, it replaces it. If it fails, then NaN is still
present.
Change-Id: I019950cdf1559598d216cddbac28b8f2c1da95d5
import java.nio.channels.FileLock;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.nio.channels.FileLock;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
}
public boolean subscribe(String name) throws FMILException {
}
public boolean subscribe(String name) throws FMILException {
- // Safety check
- int vr = variableMap.get(name);
- if(vr == 0) return false;
- if(!subscriptionSet.add(name)) return false;
- subscribedNames.add(name);
- System.err.println("subscribed : " + name + " => " + subscribedNames.size());
- subscription.add(vr);
- subscribe(new int[] { vr });
- return true;
+ synchronized(syncObject) {
+ // Safety check
+ int vr = variableMap.get(name);
+ if(vr == 0) return false;
+ if(!subscriptionSet.add(name)) return false;
+ subscribedNames.add(name);
+ subscription.add(vr);
+ subscribe(new int[] { vr });
+ return true;
+ }
synchronized(syncObject) {
try {
synchronized(syncObject) {
try {
double[] results = new double[subscription.size()];
double[] results = new double[subscription.size()];
- return getSubscribedResults_(getModelIDNew(), results);
-
+ Arrays.fill(results, Double.NaN);
+
+ return getSubscribedResults_(getModelIDNew(), results);
} catch (UnsatisfiedLinkError err) {
throw new FMILException(UNSATISFIED_LINK);
} catch (Exception e) {
} catch (UnsatisfiedLinkError err) {
throw new FMILException(UNSATISFIED_LINK);
} catch (Exception e) {