]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
History sampling improvements 68/368/1
authorAntti Villberg <antti.villberg@semantum.fi>
Mon, 20 Mar 2017 06:43:29 +0000 (08:43 +0200)
committerAntti Villberg <antti.villberg@semantum.fi>
Mon, 20 Mar 2017 06:43:29 +0000 (08:43 +0200)
refs #7028

Change-Id: Ia4653ee76859dae1842bdef82fe552ca70f61995

bundles/org.simantics.charts/src/org/simantics/charts/Charts.java
bundles/org.simantics.charts/src/org/simantics/charts/TrendSupport.java
bundles/org.simantics.history/src/org/simantics/history/HistorySampler.java

index 1358c402333b40a42d425e66acaef6faf339af42..5e4ef406db3b9185f22e553b43e88c90b1383656 100644 (file)
@@ -48,9 +48,9 @@ public final class Charts {
     public static HistorySamplerItem createHistorySamplerItem(ReadGraph graph, Resource subscriptionItem, ChartData data) throws DatabaseException {
 
         try {
-            Resource model = graph.syncRequest(new PossibleIndexRoot(subscriptionItem));
-            if (model == null) {
-                throw new DatabaseException("There is no model for " + subscriptionItem);
+            Resource indexRoot = graph.syncRequest(new PossibleIndexRoot(subscriptionItem));
+            if (indexRoot == null) {
+                throw new DatabaseException("There is no index root for " + subscriptionItem);
             }
 
             ItemManager im = new ItemManager(data.history.getItems());
index a396d10dacef442fbe089af59e6cdb85b975f369..aeae9f5d3595f05bae50abc8cc168b892947c976 100644 (file)
@@ -41,7 +41,7 @@ import org.simantics.utils.FileUtils;
  * 
  * @author Tuukka Lehtonen
  */
-public class TrendSupport {
+public class TrendSupport implements ITrendSupport {
 
     // Input
     private IDynamicExperiment experiment;
@@ -170,4 +170,13 @@ public class TrendSupport {
         return finalPath.toFile();
     }
 
+    @Override
+    public void setChartData(ReadGraph graph) throws DatabaseException {
+    }
+
+    @Override
+    public ChartData getChartData() {
+       return chartData;
+    }
+    
 }
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();