diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java index 3a06db54cc..6266df8acd 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceArchiveReaderConstants.java @@ -52,6 +52,8 @@ public class ApplianceArchiveReaderConstants { public static final String OP_MEAN = "mean_"; /** Operator for the optimized post processor */ public static final String OP_OPTIMIZED = "optimized_"; + /** Operator for the optimized with last sample post processor */ + public static final String OP_OPTIMIZED_WITH_LAST_SAMPLE = "optimLastSample_"; /** The schema delimiter: ca://pvName or pva://pvname */ static final String SCHEMA_DELIMITER = "://"; diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java index cbb8b653a8..2ffc21c533 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/ApplianceOptimizedValueIterator.java @@ -66,7 +66,11 @@ public ApplianceOptimizedValueIterator(ApplianceArchiveReader reader, String nam */ @Override protected void fetchDataInternal(String pvName) throws ArchiverApplianceException { - String optimized = new StringBuilder().append(ApplianceArchiveReaderConstants.OP_OPTIMIZED) + String optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED; + if (AppliancePreferences.ppOptimizedWithLastSample) + optimizedOperator = ApplianceArchiveReaderConstants.OP_OPTIMIZED_WITH_LAST_SAMPLE; + + String optimized = new StringBuilder().append(optimizedOperator) .append(requestedPoints).append('(').append(pvName).append(')').toString(); super.fetchDataInternal(optimized); } @@ -155,4 +159,4 @@ public VType next() { return super.extractData(message); } } -} \ No newline at end of file +} diff --git a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java index db6e196395..451a140772 100644 --- a/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java +++ b/app/trends/archive-reader/src/main/java/org/phoebus/archive/reader/appliance/AppliancePreferences.java @@ -20,6 +20,7 @@ public class AppliancePreferences { @Preference static boolean useStatisticsForOptimizedData; @Preference static boolean useNewOptimizedOperator; @Preference static boolean useHttps; + @Preference static boolean ppOptimizedWithLastSample; static { AnnotatedPreferences.initialize(AppliancePreferences.class, "/appliance_preferences.properties"); diff --git a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties index 17c55c3225..2a0df35b72 100644 --- a/app/trends/archive-reader/src/main/resources/appliance_preferences.properties +++ b/app/trends/archive-reader/src/main/resources/appliance_preferences.properties @@ -7,3 +7,8 @@ useNewOptimizedOperator=true # Use 'https://..' instead of plain 'http://..'? useHttps=false + +# Query the AA using the 'Optimized With Last Sample' post processor. +# Setting to false means that the 'Optimized' post processor will be +# used. +ppOptimizedWithLastSample=false