]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.history/src/org/simantics/history/HistorySampler.java
History sampling improvements
[simantics/platform.git] / bundles / org.simantics.history / src / org / simantics / history / HistorySampler.java
index 73df6dc618bbb99e84f3638f8dbff795ea80bc28..1c45a220fcf005ac80bf0e2b92f9c988127987fc 100644 (file)
@@ -15,9 +15,10 @@ public class HistorySampler {
     public synchronized static TDoubleArrayList sample( HistorySamplerItem item, double from, double end, double timeWindow, double timeStep, boolean resample ) throws HistoryException, IOException {
 
        try {
-               item.open();
+               // If there is something pending at this point, flush before opening for read
                if(item.collector != null)
                        item.collector.flush();
+               item.open();
                return sample(item.iter, from, end, timeWindow, timeStep, resample);
        } finally {
                item.close();
@@ -25,10 +26,18 @@ public class HistorySampler {
     }
 
     public static TDoubleArrayList sample( StreamIterator iter, double from, double end, double timeWindow, double timeStep, boolean resample ) throws HistoryException, IOException {
+       return sample(iter, from, end, timeWindow, timeStep, resample, 0.0);
+    }
+
+    public static TDoubleArrayList sample( StreamIterator iter, double from, double end, double timeWindow, double timeStep, boolean resample, Double sampleFrom ) throws HistoryException, IOException {
 
        ExportInterpolation numberInterpolation = ExportInterpolation.LINEAR_INTERPOLATION;
 
-       double startTime = 0.0;
+       double startTime = from;
+       if(sampleFrom != null) {
+                // This option can be used do define the offset of sampling. Samples will be sampleFrom + n * timeStep
+               startTime = sampleFrom;
+       }
 
        TDoubleArrayList result = new TDoubleArrayList();